Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ASP.NET MVC od zera do praktyki

Podobne prezentacje


Prezentacja na temat: "ASP.NET MVC od zera do praktyki"— Zapis prezentacji:

1 ASP.NET MVC od zera do praktyki
4/16/ :12 PM ASP.NET MVC od zera do praktyki Michał Żyliński ISV Developer Evangelist Microsoft Polska © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

2 ASP.NET na rozstaju dróg?
Web Forms ASP.NET AJAX ASP.NET MVC ASP.NET Dynamic Data ASP.NET Framework .NET Framework

3 ASP.NET „Classic”

4 MVC – smacznie i zdrowo … czyli jak zjeść ciastko i mieć ciastko View
…i cała reszta  Controller Model

5 Trochę teorii Krok 1 Żądanie z przeglądarki trafia do kontrolera
MGB 2003 Trochę teorii Kontroler Żądanie Krok 1 Żądanie z przeglądarki trafia do kontrolera © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

6 MGB 2003 Trochę teorii Model Kontroler Żądanie Krok 2 Kontroler przetwarza żądanie wykorzystując logikę biznesową zawartą w modelu © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

7 Trochę teorii Krok 3 Dane z modelu przekazywane są do widoku Żądanie
MGB 2003 Trochę teorii Kontroler Żądanie Widok Krok 3 Dane z modelu przekazywane są do widoku © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 MGB 2003 Trochę teorii Kontroler Żądanie Widok Krok 4 Widok zajmuje się wizualizacją danych pochodzących z modelu © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9 Trochę teorii Krok 5 Serwer zwraca odpowiedź do przeglądarki Żądanie
MGB 2003 Trochę teorii Kontroler Żądanie Widok Odpowiedź Krok 5 Serwer zwraca odpowiedź do przeglądarki © 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 Dlaczego ASP.NET MVC ?

11 Dlaczego ASP.NET MVC a nie ASP.NET
Pełna kontrola nad HTML: Brak ViewState I CodeBehind Większy porządek w architekturze Elastyczność i rozszerzalność TDD jako jeden z głównych filarów Bliższe koncepcyjnie typowemu programiście WWW ASP.NET ASP.NET MVC Łatwość użycia Kontrola

12 Dlaczego ASP.NET MVC a nie RoR, Django itd.
Te same usługi, które dostępne są w ASP.NET: Zarządzanie użytkownikami (role, profile…) Zarządzanie stanem sesji i aplikacji Konfiguracja (web.config) Mechanizmy cache Mechanizmy lokalizacyjne Master i content pages Kontrolki użytkownika Obiekty bazowe: HttpContext, HttpRequest, HttpResponse Designer 

13 … bez użycia klawiatury!
Demo {Hello World} … bez użycia klawiatury!

14 Scenariusz Planeta Microsoft Cel:
Agregator kanałów RSS gromadzący informacje o technologiach Microsoft Funkcjonalność: Prezentowanie (ujednoliconej) listy wpisów Możliwość dodawania nowych kanałów jako administrator

15 Model danych + tabele systemowe

16 Szkielet wizualny Lewa kolumna Prawa kolumna Treść Nawigacja Nagłówek
Stopka

17 Przyjazne adresy URL /Home – wyświetlenie strony głównej
/Home/Search – wyniki wyszukiwania /Home/Search/{phrase} /Home/Feed/{FeedId} – wpisy z pojedynczego kanału

18 Routing W pełni konfigurowalna centrala telefoniczna
Konfiguracja w pliku global.asax 2 scenariusze: Ścieżka Zasób Zasób Ścieżka

19 Routing Ścieżka to: URL (z ew. parametrami) Wartości domyślne
Więzy – walidatory wykorzystujące np. wyrażenia regularne lub typ żądania HTTP Tabela ścieżek Kolekcja ścieżek Ścieżka Ścieżka Ścieżka Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler()); reportRoute.Defaults = new RouteValueDictionary { { "locale", "en-US" }, { "year", DateTime.Now.Year.ToString() } }; reportRoute.Constraints = new RouteValueDictionary { { "locale", "[a-z]{2}-[a-z]{2}" }, { } };

20 Demo Routing

21 Kontroler i akcja Kontroler: Akcja:
Klasa, której część metod będzie dostępna dla przeglądarki Ma przyrostek Controller Implementuje interfejs IController lub jest potomkiem klasy Controller Akcja: Metoda publiczna klasy kontrolera zwracająca typ ActionResult (lub void) Jej rezultatem może być m.in. ViewResult, JsonResult, RedirectResult czy RedirectToRouteResult

22 Widok Możliwość wymiany silnika szablonów
Wyświetla dane dostarczone przez kontroler Podstawy składni: <% {dowolny kod} %> Np. <% if (…) %> <%= {dowolny kod zwracający rezultat tekstowy} %> Np. <%= Model.Name %> W standardowej implementacji bardzo zbliżony do ASP.NET .aspx .master .ascx Możliwość wymiany silnika szablonów

23 Demo Struktura serwisu

24 HTML Helpers Zbiór metod, ułatwiających życie projektantom widoków
Odpowiedzialne (pół)automatyczne generowanie kodu HTML Najpopularniejsze stanowią składnik samej platformy, np.: Html.ActionLink, Html.Encode, Html.TextBox, Html.RenderPartial

25 Własny HTML helper Biblioteka helperów pozwala na rozszerzanie
Własny helper = dowolna metoda zwracająca wartość tekstową Implementacja poprzez metodę statyczną lub metodę rozszerzającą (extension method) (Po zaimportowaniu w szablonie) stanie się standardowo dostępna w Intellisense

26 Demo Własny HTML Helper

27 Przekazywanie danych do widoku
ViewState Kolekcja dowolnych obiektów, kluczem jest wartość tekstowa Wymaga rzutowania Kontroler: ViewState[„Wiek”] = 10; Widok: <%= (ViewState[„Wiek”] as int) %>

28 Przekazywanie danych do widoku
Model – przekazujemy do widoku konkretny obiekt biznesowy W widoku wykorzystujemy słowo kluczowe Model Mocno typowane Kontroler: return View(User); Widok: Użytkownik: <%= Model.Name %> Wiek: <%= Model.Age %>

29 Przekazywanie danych do widoku
ViewModel Podejście architektoniczne eliminujące ograniczenia ViewState i Model Przygotowanie/rozszerzenie modelu o właściwości wykorzystywane przez Model Model ViewModel View

30 Obsługa formularzy Walidacja danych:
Kontroler: ModelState – słownik zawierający rezultat walidacji modelu Widok: Html.ValidationMessage – walidacja pojedynczego pola formularza Html.ValidationSummary – raport zbiorczy Projekt xVal ( Przykład: ModelState.AddModelError(„Name”, „Nieprawidłowa nazwa”) ModelState.IsValid

31 Obsługa formularzy Aktualizacja danych -> ręcznie lub przez UpdateModel ModelBinders - możliwość wiązania pól formularzy z modelem: Dzięki Bogu mamy też scaffolding  Przykład: public ActionResult Save(Person person) { UpdateModel(person, new[] {„Name”, „Password”}); }

32 Demo Obsługa formularzy

33 Action Filters Uzupełnienie akcji (lub całego kontrolera) o specyficzną, uniwersalną funkcjonalność Typy filtrów: Filtry autoryzacji Filtry akcji Filtry odpowiedzi Filtry wyjątków Typowe zastosowania: Kontrola dostępu Obsługa błędów Cache’owanie stron Logowanie zdarzeń

34 Demo Action Filters

35 Kontrola dostępu Domyślnie wykorzystuje usługi Membership i Role
Zarządzanie kontami użytkowników Gotowy filtr Authorize Ograniczanie dostępu do akcji w oparciu o nazwy użytkowników lub ról

36 Demo Kontrola uprawnień

37 Wersje językowe Zasoby (resources) – tak samo, jak w ASP.NET
Lokalne lub globalne Prosta struktura klucz=wartość Nie tylko prosty tekst, ale też grafika i inne Automatycznie wykorzystuje mechanizm ustawień językowych przeglądarki WWW Przykład wykorzystania: <%= Nazwa_zasobu.Klucz %> Np. <%= Resources.AboutUs %>

38 Demo Lokalizacja

39 Korzystanie z Ajaxa Helpery prawie jak UpdatePanel 
Ajax.ActionLink(tekst, akcja, parametry, opcje wywołania) Obsługiwane przez Microsoft Ajax Library Standardowo na pokładzie również biblioteka JQuery (v.1.3.1) W pełni wspierana przez Visual Studio i Microsoft

40 Ajax prawie jak w ASP.NET
Demo Ajax prawie jak w ASP.NET

41 Testy Pełne wsparcie dla TDD – gotowy projekt dla unit testów
Współpraca z zewnętrznymi narzędziami (np. NUnit, Moq) Osobiście zacząłbym od warstwy modelu

42 Uwagi praktyczne MVC nie wymusza dobrych praktyk – o nie należy zadbać samemu Choćby IOC niezbędne dla dobrych testów aplikacji Uwaga na wielkość kontrolera! Warstwa biznesowa to nie tylko automatycznie wygenerowane klasy Warto eksperymentować – ASP.NET MVC jest z założenia otwartą platformą Dowolny ORM Dowolny silnik szablonów Dużo projektów towarzyszących

43 Wdrożenia na świecie Kelley Blue Book http://www.kbb.com
Wyszukiwarka ofert motoryzacyjnych (samochody nowe i używane) 12 mln odwiedzin miesięcznie

44 Wdrożenia na świecie Stack Overflow http://www.stackoverflow.com
Społecznościowa baza pytań i odpowiedzi dla programistów Założona przez Joela Spolsky’ego 

45 Wdrożenia w Polsce Cineman http://www.cineman.pl
Największe w Polsce kino internetowe, działające od 2007 r. Całkowita przebudowa serwisu z platformy LAMP

46 Wdrożenia w Polsce Delikatesy internetowe A.pl http://www.a.pl
Sklep internetowy spółki Action S.A. „ASP.NET MVC znacznie ułatwia dodawanie nowych funkcjonalności, nie ogranicza twórców serwisów we wdrażaniu nowych pomysłów i sprawia, że utrzymanie kodu i zarządzanie całym projektem jest o wiele łatwiejsze” – Jakub Milewski, koordynator działań e-commerce w A.pl

47 Podsumowanie Możliwość wyboru Testy Elastyczność SEO

48 4/16/ :12 PM © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Pobierz ppt "ASP.NET MVC od zera do praktyki"

Podobne prezentacje


Reklamy Google