Dla wielu z was zabrzmi to absurdalnie, ale zadaję to pytanie, ponieważ mam niewielkie lub żadne doświadczenie z ASP.Net Webforms - poszedłem prosto do ASP.Net MVC.
Pracuję teraz nad projektem, w którym ograniczamy się do .Net 2.0 i Visual Studio 2005.
Podobało mi się czyste rozdzielenie problemów podczas pracy z ASP.Net MVC i szukam czegoś, co sprawi, że formularze internetowe będą nie do zniesienia. Czy są jakieś zalecane wzorce lub praktyki dla osób, które wolą asp.net MVC, ale utknęły na .net 2.0 i visual studio 2005?
asp.net-mvc
jlnorsworthy
źródło
źródło
Odpowiedzi:
Polecam Model View Presenter (MVP). Wykorzystaliśmy to w najnowszej aplikacji WebForms, co zwiększyło naszą testowalność i pozwoliło nam wymusić rozdzielenie obaw.
http://msdn.microsoft.com/en-us/magazine/cc188690.aspx to świetny artykuł Jean Paul Boodhoo na ten temat; pobieranie kodu jest również dobre. Może się okazać, że nie potrzebujesz DTO i interfejsów do DTO.
Kolejnym dobrym artykułem jest ten na codeproject.com: http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx
Edycja: istnieje także framework o nazwie WebForms MVP, ale niewiele o nim wiem.
źródło
Polecam, abyś zrozumiał cykl życia strony .net 2.0
Te filmy mogą być warte obejrzenia, chociaż nie wszystkie są darmowe, ale przynajmniej będzie to dobry początek dla Ciebie ... Chodzi o to, że da ci pomysł na dalsze badania w przyszłości.
źródło
Jak być może już odkryłeś, musisz nauczyć się kilku rzeczy, których nauczyłeś się z ASP.NET MVC (tak przy okazji - to samo dzieje się, gdy osoba ASP.NET przyłączy się do nauki ASP.NET MVC). Nadal możesz zaimplementować wzorzec MVC w ASP.NET, ale rozdzielenie View and Model jest bardzo rozmyte w ASP.NET z powodu architektury eventing / post post back.
Moim zdaniem, większość twojej nowej nauki będzie związana z cyklem życia strony oraz zdarzeniami i kontrolami. Zwykłe interakcje Session, Cache, ViewState i DB pozostają takie same.
HTH ...
źródło
Kasa Wzór kontrolera frontowego i implementacja kontrolera frontowego w Asp.Net. Rób te rzeczy tylko wtedy, gdy twój projekt będzie dobrej wielkości. Wykonanie tego w przypadku małego projektu nie uzasadnia zwrotu z inwestycji.
W małym projekcie możesz spróbować ustalić wytyczne. Na przykład - Bez logiki biznesowej, bez użycia sesji itp. W kodzie za.
Zobacz, co najlepiej pasuje do twojego przypadku. W każdym razie kusi cię inżynieria.
źródło
W ciemnych czasach .NET 1.1 stworzyłem (tak jak wszyscy) coś w rodzaju systemu MVC dla aplikacji, która działała w ten sposób.
Strona została stworzona jako rodzaj „fałszywego” mistrza. To miało trochę hydrauliki, aby pokazać menu, skrypty, style itp.
„Widoki” były indywidualnymi kontrolami użytkownika.
Była tabela z informacjami o każdym widoku. Na przykład „Produkt” załaduje
~/Controls/Product.ascx
się do symbolu zastępczego. Tabela miała również pole, które zawierało nazwę typu klasy modelu (tak jakby). Każdy model zawiera dobrze znany interfejs. Ta klasa została utworzona za pomocą instancjiActivator.CreateInstance()
i wywołana w celu zainicjowania, a następnie została przekazana do samej kontroli (odwrócenie kontroli?). Następnie formant wywoływał różne metody pobierania zestawów danych lub czegokolwiek. Sam interfejs został znormalizowany, aby mieć zwykłe metody CRUD (odczyt / zapis / lista / usuwanie). Pod tym była także warstwa DAL / ORM.To nie było ładne, ale działało dobrze. Łatwo było testować i rozwijać, a większość programistów, którzy weszli na pokład, dość szybko się przyzwyczaiła. Przede wszystkim jego utworzenie było stosunkowo proste.
źródło