wtorek, 17 sierpnia 2010

ASP.NET MVC 2 cz. 1

Czas na coś nowego - ASP.NET MVC 2
Zmagania z tym frameworkiem rozpocząłem 2 tygodnie temu. Żeby nie zapomnieć a co najważniejsze - mieć odnośnik na przyszłość stworzę krótki kurs na temat tego wzorca projektowego.
Jako, że na rynku nie ma wielu pozycji literatury dotyczących nowego framworka skorzystam z pewnie znanych większości książek:
Apress Pro ASP.NET MVC 2 Framework Steven Sanderson
Wrox Professional ASP.NET MVC 2 Jon Galloway, Phil Haack, Scott Hanselman, Scott Guthrie, Rob Conery
oraz tego co można znaleźć na blogach deweloperów.

Najpierw może co nieco o samej architekturze.
MVC - Model-View-Controller - tak więc mamy 3 odrębne warstwy. Każda z tych warstw odpowiada za co innego:
Model - dane i operacje na nich
Widok - prezentacja danych użytkownikowi
Kontroler - przekazywanie żądań użytkownika (Widok) do Modelu (dane i operacje na nich)

Działanie MVC doskonale opisuje Wikipedia:
1. kontroler modyfikuje dane modelu
2. model stosownie do zmian weryfikuje i ewentualnie zgodnie z zależnościami uaktualnia inne swoje dane;
3. model informuje wszystkie widoki, że nastąpiły zmiany (może także wyszczególniać, które dane zostały zmienione);
4. widoki są odświeżane stosownie do aktualnych danych modelu.

Tyle na temat teorii samego MVC.

Przejdźmy teraz do ASP.NET MVC 2. Rodzi się tutaj pytanie: dlaczego Microsoft wprowadził nowy framework skoro miał Web Formsy? Otóż MVC wprowadza szereg ulepszeń:
- większa kontrola na kodem HTML (Web Formsy co prawda dają możliwość kontroli generowanego kodu HTML ale w ograniczonym zakresie)
- intuicyjne adresy URL (wprowadzono to także w najnowszym ASP.NET Web Forms)
- integracja z JavaScript po stronie klienta (w Web Formsach mieliśmy dostępny głównie Ajax w MVC możemy korzystać z dowolnego frameworka wspierającego JavaScript)
- metodyka TDD
- rezygnacja z ViewState który konsumował spore ilości zasobów
- skomplikowany cykl życia strony Web Forms
- trudności z adaptacją automatycznych testów w Web Formsach

ASP.MVC 2 wprowadza kilka ulepszeń w porównaniu do wersji 1:
- ulepszona walidacja danych
- szablony oraz nowe HTML Helpers
- Areas (obszary) - grupowanie dużych projektów w logiczne pod-projekty

Tyle teorii na początek.

Brak komentarzy:

Prześlij komentarz