asp.net mvc 3 framework. zaawansowane programowanie full version.pdf

(26414 KB) Pobierz
1014781419.001.png
Spis treci
O autorach ...............................................................................................................5
O recenzencie technicznym ......................................................................................7
Cz I
Wprowadzenie do ASP.NET MVC 3 .................................................. 19
Rozdzia 1.
Zagadnienia ogólne ...............................................................................................21
Krótka historia programowania witryn WWW .............................................................................. 21
Tradycyjna technologia ASP.NET Web Forms ........................................................................ 21
Co poszło nie tak z ASP.NET Web Forms? .............................................................................. 23
Programowanie witryn WWW — stan obecny .............................................................................. 23
Standardy WWW oraz REST ...................................................................................................... 24
Programowanie zwinne i sterowane testami ............................................................................ 24
Ruby on Rails ................................................................................................................................. 25
Sinatra ............................................................................................................................................. 25
Node.js ............................................................................................................................................ 25
Najważniejsze zalety ASP.NET MVC ...............................................................................................26
Architektura MVC ........................................................................................................................ 26
Rozszerzalność .............................................................................................................................. 26
Ścisła kontrola nad HTML i HTTP ............................................................................................ 27
Łatwość testowania ....................................................................................................................... 27
Zaawansowany system routingu ................................................................................................ 28
Zbudowany na najlepszych częściach platformy ASP.NET ................................................... 28
Nowoczesne API ........................................................................................................................... 28
ASP.NET MVC jest open source ................................................................................................ 29
Kto powinien korzystać z ASP.NET MVC? ..................................................................................... 29
Porównanie z ASP.NET Web Forms ......................................................................................... 29
Migracja z Web Forms do MVC ................................................................................................ 30
Porównanie z Ruby on Rails ....................................................................................................... 30
Porównanie z MonoRail .............................................................................................................. 30
Co nowego w ASP.NET MVC 3? ...................................................................................................... 30
Podsumowanie ..................................................................................................................................... 31
1014781419.002.png
SPIS TRECI
Rozdzia 2.
Przygotowania ......................................................................................................33
Przygotowanie stacji roboczej ............................................................................................................ 33
Instalowanie Visual Studio 2010 ................................................................................................33
Instalowanie podstawowego oprogramowania ........................................................................ 34
Instalowanie opcjonalnych komponentów ............................................................................... 35
Przygotowanie serwera ....................................................................................................................... 37
Włączanie roli serwera WWW ................................................................................................... 37
Instalowanie dodatkowych komponentów ............................................................................... 38
Konfigurowanie Web Deployment ............................................................................................ 39
Uzyskiwanie dalszych informacji ...................................................................................................... 40
Podsumowanie ..................................................................................................................................... 41
Rozdzia 3.
Pierwsza aplikacja MVC .........................................................................................43
Tworzenie nowego projektu ASP.NET MVC ................................................................................. 43
Dodawanie pierwszego kontrolera ............................................................................................. 45
Przedstawiamy ścieżki .................................................................................................................. 47
Generowanie stron WWW ................................................................................................................ 47
Tworzenie i generowanie widoku .............................................................................................. 47
Dynamiczne dodawanie treści ....................................................................................................50
Tworzenie prostej aplikacji wprowadzania danych ........................................................................ 51
Przygotowanie sceny .................................................................................................................... 51
Projektowanie modelu danych ................................................................................................... 52
Łączenie metod akcji .................................................................................................................... 53
Budowanie formularza ................................................................................................................. 55
Obsługa formularzy ...................................................................................................................... 57
Dodanie kontroli poprawności ...................................................................................................60
Kończymy ...................................................................................................................................... 63
Podsumowanie ..................................................................................................................................... 65
Rozdzia 4.
Wzorzec MVC .........................................................................................................67
Historia MVC ....................................................................................................................................... 67
Wprowadzenie do wzorca MVC ....................................................................................................... 67
Budowa modelu domeny ............................................................................................................. 68
Implementacja MVC w ASP.NET .............................................................................................. 69
Porównanie MVC z innymi wzorcami ...................................................................................... 69
Przedstawiamy wzorzec Smart UI .............................................................................................. 69
Modelowanie domeny ......................................................................................................................... 72
Przykładowy model domeny .......................................................................................................73
Wspólny język ............................................................................................................................... 73
Agregaty i uproszczenia ............................................................................................................... 74
Definiowanie repozytoriów ......................................................................................................... 75
Budowanie luźno połączonych komponentów ............................................................................... 76
Wykorzystanie wstrzykiwania zależności ................................................................................. 77
Przykład specyficzny dla MVC ...................................................................................................78
Użycie kontenera wstrzykiwania zależności ............................................................................. 79
Zaczynamy testy automatyczne ......................................................................................................... 80
Zadania testów jednostkowych ...................................................................................................80
Zadania testów integracyjnych ................................................................................................... 87
Podsumowanie ..................................................................................................................................... 87
Rozdzia 5.
Najwaniejsze cechy jzyka ...................................................................................89
Najważniejsze cechy C# ...................................................................................................................... 89
Użycie automatycznie implementowanych właściwości ........................................................ 89
Użycie inicjalizatorów obiektów i kolekcji ................................................................................ 91
10
SPIS TRECI
Użycie metod rozszerzających .................................................................................................... 93
Użycie wyrażeń lambda ............................................................................................................... 97
Automatyczne wnioskowanie typów ......................................................................................... 98
Użycie typów anonimowych .......................................................................................................99
Wykonywanie zapytań zintegrowanych z językiem .............................................................. 100
Przedstawiamy składnię silnika Razor ............................................................................................ 105
Tworzenie projektu .................................................................................................................... 105
Prosty widok korzystający z silnika Razor .............................................................................. 108
Podsumowanie ................................................................................................................................... 115
Rozdzia 6.
Wane narzdzia wspierajce MVC .....................................................................117
Użycie Ninject .................................................................................................................................... 117
Tworzenie projektu .................................................................................................................... 119
Zaczynamy korzystać z Ninject ................................................................................................ 119
Tworzenie łańcucha zależności ................................................................................................. 121
Definiowanie wartości właściwości i parametrów ................................................................. 122
Użycie samodzielnego łączenia ................................................................................................. 124
Dołączanie do typu pochodnego .............................................................................................. 124
Użycie łączenia warunkowego .................................................................................................. 125
Użycie Ninject w ASP.NET MVC ................................................................................................... 126
Testowanie jednostkowe w Visual Studio ...................................................................................... 128
Tworzenie projektu .................................................................................................................... 128
Tworzenie testów jednostkowych ............................................................................................ 130
Uruchamianie testów (nieudane) ............................................................................................. 133
Implementacja funkcji ............................................................................................................... 134
Użycie Moq ......................................................................................................................................... 135
Dodawanie Moq do projektu Visual Studio ........................................................................... 135
Tworzenie imitacji za pomocą Moq ......................................................................................... 135
Testy jednostkowe z użyciem Moq .......................................................................................... 137
Weryfikowanie przy użyciu Moq ............................................................................................. 139
Podsumowanie ................................................................................................................................... 139
Rozdzia 7.
SportsStore — kompletna aplikacja ....................................................................141
Zaczynamy .......................................................................................................................................... 142
Tworzenie rozwiązania i projektów w Visual Studio ............................................................ 142
Dodawanie referencji ................................................................................................................. 143
Konfigurowanie kontenera DI .................................................................................................. 144
Uruchamiamy aplikację ............................................................................................................. 145
Tworzenie modelu domeny ............................................................................................................. 146
Tworzenie abstrakcyjnego repozytorium ................................................................................ 147
Tworzenie imitacji repozytorium ............................................................................................. 148
Wyświetlanie listy produktów ......................................................................................................... 148
Dodawanie kontrolera ............................................................................................................... 148
Dodawanie widoku ..................................................................................................................... 149
Konfigurowanie domyślnej ścieżki .......................................................................................... 150
Uruchamianie aplikacji .............................................................................................................. 151
Przygotowanie bazy danych ............................................................................................................. 151
Tworzenie bazy danych ............................................................................................................. 152
Definiowanie schematu bazy danych ...................................................................................... 153
Dodawanie danych do bazy ....................................................................................................... 154
Tworzenie kontekstu Entity Framework ................................................................................. 154
Tworzenie repozytorium produktów ...................................................................................... 156
11
SPIS TRECI
Dodanie stronicowania ..................................................................................................................... 157
Wyświetlanie łączy stron ........................................................................................................... 158
Ulepszanie adresów URL ........................................................................................................... 165
Dodawanie stylu ................................................................................................................................. 165
Definiowanie wspólnej zawartości w pliku układu ................................................................ 166
Dodanie zasad CSS ..................................................................................................................... 167
Tworzenie widoku częściowego ............................................................................................... 167
Podsumowanie ................................................................................................................................... 169
Rozdzia 8.
SportsStore — nawigacja i koszyk na zakupy .....................................................171
Dodawanie kontrolek nawigacji ...................................................................................................... 171
Filtrowanie listy produktów ...................................................................................................... 171
Ulepszanie schematu URL ......................................................................................................... 172
Budowanie menu nawigacji po kategoriach ........................................................................... 175
Poprawianie licznika stron ........................................................................................................ 182
Budowanie koszyka na zakupy ........................................................................................................ 184
Definiowanie encji koszyka ....................................................................................................... 185
Tworzenie przycisków koszyka ................................................................................................ 188
Implementowanie kontrolera koszyka .................................................................................... 189
Wyświetlanie zawartości koszyka ............................................................................................. 190
Użycie dołączania danych ................................................................................................................ 193
Tworzenie własnego łącznika modelu ..................................................................................... 193
Kończenie budowania koszyka ........................................................................................................ 197
Usuwanie produktów z koszyka ............................................................................................... 197
Dodawanie podsumowania koszyka ........................................................................................ 198
Składanie zamówień .......................................................................................................................... 200
Rozszerzanie modelu domeny .................................................................................................. 200
Dodawanie procesu zamawiania .............................................................................................. 201
Implementowanie procesora zamówień ................................................................................. 204
Rejestrowanie implementacji .................................................................................................... 206
Dokańczanie kontrolera koszyka ............................................................................................. 206
Wyświetlanie informacji o błędach systemu kontroli poprawności ................................... 210
Wyświetlanie strony podsumowania ....................................................................................... 210
Podsumowanie ................................................................................................................................... 212
Rozdzia 9.
SportsStore — administracja ...............................................................................213
Dodajemy zarządzanie katalogiem .................................................................................................. 213
Tworzenie kontrolera CRUD .................................................................................................... 214
Generowanie tabeli z produktami dostępnymi w repozytorium ......................................... 215
Tworzenie nowego pliku układu .............................................................................................. 216
Implementowanie widoku listy ................................................................................................ 218
Edycja produktów ....................................................................................................................... 221
Tworzenie nowych produktów ................................................................................................. 232
Usuwanie produktów ................................................................................................................. 232
Zabezpieczanie funkcji administracyjnych .................................................................................... 235
Konfiguracja uwierzytelniania Forms ..................................................................................... 235
Realizacja uwierzytelniania z użyciem filtrów ........................................................................ 236
Tworzenie dostawcy uwierzytelniania ..................................................................................... 238
Tworzenie kontrolera AccountController .............................................................................. 239
Tworzenie widoku ...................................................................................................................... 240
Przesyłanie zdjęć ................................................................................................................................ 242
Rozszerzanie bazy danych ......................................................................................................... 242
Rozszerzanie modelu domeny .................................................................................................. 244
12
Zgłoś jeśli naruszono regulamin