chciałbym w ramach nauki stworzyć skalowalną aplikację (webową) do obsługi wielu klientów. Będzie to coś w stylu komunikatora. Interesuje mnie technologia .NET. Początkowo miałem zamiar oprzeć się na wątkach, tzn każdy nowy klient = nowy wątek, jednak przy setkach użytkowników zarządzanie tym może być co najmniej kłopotliwe.
Prosiłbym o wskazówkę bardziej zaawansowanych w jaki sposób do tego podejść. Jak powinna być przygotowana architektura takiego systemu? Zakładam, że serwer będzie sobie gdzieś tam stał, a w przeglądarce (np. w jakimś aplecie) będą działać klienci. Jakiś działający przykład byłby naprawdę przydatny. Uprzedzam, że szukałem w literaturze i sieci, jakieś tam pojęcie o tym zdobyłem, ale chcę być pewny zanim zacznę.
A konkretnie w których wątkach jest mało odpowiedzi? ;> Tutaj raczej każdy, kto zada pytanie dostanie odpowiedź.
Inna rzecz, że to chyba jakość, a nie ilość się liczy.
Aplikacje webowe, czyli obsługiwane przez przeglądarkę są skalowalne z definicji, bo za ich działanie odpowiada serwer WWW (konkretnie IIS). Nie Ty tworzysz wątki i nie Ty nimi zarządzasz. Nie ma też znaczenia liczba klientów, bo w bezstanowym protokole HTTP połączenie klient serwer nie jest stałe, lecz tracone, gdy tylko serwer wyśle odpowiedź na żądanie klienta.
Jeśli zaś chcesz mieć emulację trwałego połączenia klient-serwer, to stosujesz np. wbudowany w ASP.NET mechanizm sesji - po prostu zapisujesz lub odczytujesz ze słownika żądaną informację, a przechowywaniem i całą resztą zajmuje się za Ciebie platforma.
W jakim aplecie? W ASP.NET tworzy się zwykłe formularze HTML i to na nich oparta jest cała aplikacja webowa. Dobór architektury jest prosty - jeśli chcesz wykorzystać ASP.NET WebForms, to wybierasz wzorzec MVP, a jeśli ASP.NET MVC, to rzecz jasna MVC.