Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ASP.NET MVC od zera do praktyki Michał Żyliński ISV Developer Evangelist Microsoft Polska.

Podobne prezentacje


Prezentacja na temat: "ASP.NET MVC od zera do praktyki Michał Żyliński ISV Developer Evangelist Microsoft Polska."— Zapis prezentacji:

1 ASP.NET MVC od zera do praktyki Michał Żyliński ISV Developer Evangelist Microsoft Polska

2 ASP.NET na rozstaju dróg? ASP.NET Dynamic Data

3 ASP.NET „Classic”

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

5 Trochę teorii Krok 1 Żądanie z przeglądarki trafia do kontrolera Żądanie Kontroler

6 Trochę teorii Krok 2 Kontroler przetwarza żądanie wykorzystując logikę biznesową zawartą w modelu Model Żądanie Kontroler

7 Trochę teorii Krok 3 Dane z modelu przekazywane są do widoku Widok Żądanie Kontroler

8 Trochę teorii Krok 4 Widok zajmuje się wizualizacją danych pochodzących z modelu Widok Żądanie Kontroler

9 Trochę teorii Krok 5 Serwer zwraca odpowiedź do przeglądarki Odpowiedź Żądanie Kontroler Widok

10 Dlaczego ASP.NET MVC ?

11 ASP.NET ASP.NET MVC 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 Ł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 {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 Nagłówek Stopka Lewa kolumna Treść Lewa kolumna Treść Prawa kolumna Nawigacja Prawa kolumna Nawigacja

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żkaZasó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 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 Routing

21 Kontroler i akcja  Kontroler: 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  Wyświetla dane dostarczone przez kontroler  Podstawy składni:  Np.  Np.  W standardowej implementacji bardzo zbliżony do ASP.NET. aspx.master.ascx  Możliwość wymiany silnika szablonów

23 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 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:

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: Wiek:

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 ModelViewModelView

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 (http://xval.codeplex.com/)http://xval.codeplex.com/ 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 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 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 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: Np.

38 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

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  Wyszukiwarka ofert motoryzacyjnych (samochody nowe i używane)  12 mln odwiedzin miesięcznie

44 Wdrożenia na świecie Stack Overflow  Społecznościowa baza pytań i odpowiedzi dla programistów  Założona przez Joela Spolsky’ego

45 Wdrożenia w Polsce Cineman  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  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

48 © 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.


Pobierz ppt "ASP.NET MVC od zera do praktyki Michał Żyliński ISV Developer Evangelist Microsoft Polska."

Podobne prezentacje


Reklamy Google