ASP NET MVC 3 Framework Zaawansowane programowanie.pdf

(1086 KB) Pobierz
945785576.001.png
Ty t uł oryginału: Pro ASP.NET MVC 3 Framework
Tłumaczenie: Paweł Gonera
ISBN: 978-83-246-4822-1
Original edition copyright © 2011 by Adam Freeman and Steven Sanderson.
All rights reserved.
Polish edition copyright © 2012 by HELION SA.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Wydawnictwo HELION dołożyło wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie bierze jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Wydawnictwo HELION nie ponosi również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/aspmv3.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/aspmv3
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
945785576.002.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
945785576.003.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
Zgłoś jeśli naruszono regulamin