Tworzenie oddzielnych projektów dla jednego klienta będzie kłopotliwe w utrzymaniu, podczas gdy pojedynczy projekt dla wszystkich klientów może być trudny do dostosowania. To cienka linia, a twoje potrzeby będą decydować o tym, jak zbudujesz swoje rozwiązanie.
Jednym z moich ostatnich projektów, w których wykonujemy SAS (Software as a Service), udało się zbudować naszą aplikację MVC przy użyciu architektury wtyczek, aby każdy klient mógł mieć własną bibliotekę DLL wdrożoną w BIN, która umożliwiłaby dostosowywanie do tylko ten klient (do widoków, zasobów lub nawet kontrolerów). Jesteśmy w stanie wykorzystać jedną podstawę kodu i mieć wielu klientów, większość bez dostosowań, a niektórzy z drobnymi i ciężkimi dostosowaniami.
Każdy klient ma unikatowy adres URL dla ich „Portal” i najczęściej mają sferze prywatnej, więc http://app.mycompany.com lub http://mycompanyapp.com a niektóre są nawet gościł na naszej własnej stronie, http://hostingcompany.com/client/.
Budując aplikację, która może ustalić, który klient jest oparty na adresie URL, z łatwością poradziliśmy sobie z tymi wszystkimi przypadkami. Kiedy wdrażamy, mamy jedną bazę kodu (wdrożoną tylko RAZEM do jednego folderu), a wszystkie witryny używają tego samego wdrożenia kodu.
Prowadzimy farmę internetową, w której mamy wiele serwerów sieci web .NET i skonfigurowaliśmy równoważenie obciążenia, a strony mają wszystkie strony ping, z którymi nasze moduły równoważenia obciążenia wchodzą w interakcje, aby określić ich stan.
Tak jak powiedziałem, twoje potrzeby określą najlepsze rozwiązanie dla ciebie.
dbać o zdefiniowanie "klienta"? –