ASP.NET MVC 4 Programowanie
Platforma ASP.NET to główny konkurent języka Java w zakresie tworzenia aplikacji
internetowych oraz zaawansowanych stron internetowych. Jej autorzy zadbali o to, aby
każda kolejna wersja ułatwiała pracę programistom w coraz szerszym zakresie.
Programiści to doceniają i ASP.NET znajduje się wśród języków najczęściej
wybieranych przy tworzeniu zaawansowanych projektów.
Jeżeli chcesz w pełni wykorzystać potencjał ASP.NET MVC 4, przyda Ci się
wyjątkowa książka.
Ta, którą trzymasz w rękach, bez wątpienia taka jest! W trakcie lektury poznasz
niuanse architektury MVC oraz dowiesz się, jak tworzyć sieciowe API. Ponadto
wykorzystasz Entity Framework do wydajnego korzystania z baz danych oraz zaznajomisz się
ze sposobami na równoległe przetwarzanie żądań. Szczególną uwagę powinieneś
zwrócić na rozdział poświęcony zapewnieniu jakości — wykorzystanie testów
automatycznych znacząco ułatwi Ci życie! Książka ta powinna trafić na podręczną
półkę każdego programisty ASP.NET!
Sięgnij po tę książkę i:
poznaj wzorzec MVC
stwórz zaawansowane Web API
zobacz, jak uatrakcyjnić Twoją aplikację dzięki technologii AJAX
zbuduj bezpieczną aplikację
zbuduj system testów automatycznych oraz ciągłej integracji
Wprowadzenie (11)
CZĘŚĆ I. ROZKRĘCAMY SIĘ (15)
Rozdział 1. Podstawy ASP.NET MVC (17)
- Opracowane przez Microsoft platformy tworzenia aplikacji sieciowych (17)
- Active Server Pages (ASP) (18)
- ASP.NET Web Forms (18)
- ASP.NET MVC (18)
- Architektura MVC (19)
- Model (20)
- Widok (20)
- Kontroler (20)
- Co nowego w ASP.NET MVC 4? (20)
- Wprowadzenie do aplikacji EBuy (22)
- Instalacja ASP.NET MVC (23)
- Tworzenie aplikacji ASP.NET MVC (23)
- Szablony projektów (23)
- Konwencja przed konfiguracją (27)
- Uruchamianie aplikacji (28)
- Routing (28)
- Konfiguracja tras (29)
- Kontrolery (31)
- Akcje kontrolera (32)
- Obiekt ActionResult (32)
- Parametry akcji (33)
- Filtry akcji (36)
- Widoki (36)
- Wyszukiwanie widoków (37)
- Poznaj Razor (38)
- Odróżnianie kodu od znaczników (39)
- Układy graficzne (40)
- Widoki częściowe (41)
- Wyświetlanie danych (43)
- Modele (46)
- Zebranie wszystkich komponentów w całość (47)
- Trasa (47)
- Kontroler (47)
- Widok (49)
- Uwierzytelnianie (52)
- Podsumowanie (55)
Rozdział 2. ASP.NET MVC dla programistów formularzy sieciowych (57)
- Wszystko kręci się wokół ASP.NET (57)
- Narzędzia, języki i API (58)
- Moduły i procedury obsługi HTTP (58)
- Zarządzanie stanem (58)
- Wdrażanie i środowisko uruchomieniowe (59)
- Więcej różnic niż podobieństw (59)
- Oddzielanie logiki aplikacji od logiki widoku (60)
- Adresy URL i routing (60)
- Zarządzanie stanem (61)
- Tworzenie widoku ASP.NET MVC za pomocą składni Web Forms (66)
- Podsumowanie (67)
Rozdział 3. Praca z danymi (69)
- Tworzenie formularza (69)
- Obsługa akcji POST formularza (71)
- Zapis danych w bazie danych (71)
- Technika Code First - zasada "konwencja przed konfiguracją" (72)
- Tworzenie warstwy dostępu do danych z użyciem techniki Code First w Entity Framework
(72)
- Weryfikacja danych (73)
- Określanie reguł biznesowych za pomocą adnotacji danych (74)
- Wyświetlanie komunikatów o błędach z procesu weryfikacji danych (77)
- Podsumowanie (80)
Rozdział 4. Programowanie po stronie klienta (81)
- Praca z językiem JavaScript (81)
- Selektory (83)
- Udzielanie odpowiedzi na zdarzenia (86)
- Manipulacje modelem DOM (88)
- AJAX (89)
- Weryfikacja danych po stronie klienta (91)
- Podsumowanie (95)
CZĘŚĆ II. KOLEJNY POZIOM (97)
Rozdział 5. Architektura aplikacji sieciowej (99)
- Wzorzec MVC (99)
- Zasada separacji zadań (99)
- MVC i platformy sieciowe (100)
- Architektura aplikacji sieciowej (102)
- Architektura logiczna (102)
- Architektura logiczna aplikacji sieciowej ASP.NET MVC (102)
- Najlepsze praktyki w zakresie architektury logicznej (104)
- Architektura fizyczna (105)
- Przestrzeń nazw projektu i nazwy podzespołów (105)
- Opcje wdrożenia (106)
- Najlepsze praktyki w zakresie architektury fizycznej (107)
- Reguły dotyczące architektury aplikacji (108)
- SOLID (109)
- Odwracanie sterowania (114)
- Nie powtarzaj się (121)
- Podsumowanie (122)
Rozdział 6. Usprawnianie witryny poprzez użycie technologii AJAX (123)
- Częściowe generowanie strony (123)
- Generowanie widoków częściowych (124)
- Wygenerowanie kodu JavaScript (129)
- Wygenerowanie danych JSON (129)
- Żądanie danych JSON (131)
- Szablony po stronie klienta (131)
- Ponowne używanie tej samej logiki zarówno w żądaniach AJAX, jak i pozostałych (134)
- Udzielanie odpowiedzi na żądania AJAX (135)
- Udzielanie odpowiedzi na żądania JSON (136)
- Zastosowanie tej samej logiki w wielu akcjach kontrolera (137)
- Wysyłanie danych do serwera (138)
- Przekazywanie skomplikowanych obiektów JSON (140)
- Wybór łącznika modelu (141)
- Efektywne wysyłanie i odbieranie danych JSON (143)
- Wykonywanie żądań AJAX między domenami (144)
- JSONP (144)
- Włączanie Cross-Origin Resource Sharing (147)
- Podsumowanie (148)
Rozdział 7. Platforma Web API ASP.NET (149)
- Tworzenie usługi danych (149)
- Rejestracja tras Web API (151)
- Wykorzystanie techniki "konwencja przed konfiguracją" (151)
- Nadpisanie konwencji (152)
- Użycie API (153)
- Stronicowanie i pobieranie danych (155)
- Obsługa wyjątków (156)
- Media (158)
- Podsumowanie (161)
Rozdział 8. Zaawansowane dane (163)
- Wzorce dostępu do danych (163)
- Klasy POCO (163)
- Używanie wzorca repozytorium (164)
- Mapowanie obiektowo-relacyjne (166)
- Ogólny opis Entity Framework (168)
- Wybór podejścia w zakresie dostępu do danych (169)
- Współbieżność w bazie danych (169)
- Tworzenie warstwy dostępu do danych (171)
- Podejście Entity Framework Code First (171)
- Model domeny biznesowej aplikacji EBuy (173)
- Praca z kontekstem danych (176)
- Sortowanie, filtrowanie i stronicowanie danych (178)
- Podsumowanie (183)
Rozdział 9. Zapewnianie bezpieczeństwa (185)
- Tworzenie bezpiecznej aplikacji sieciowej (185)
- Obrona (185)
- Nigdy nie ufaj danym wejściowym (186)
- Wymuszanie stosowania reguły najmniejszych uprawnień (186)
- Przyjmuj założenie, że zewnętrzne systemy są niebezpieczne (186)
- Ogranicz możliwości ataku (186)
- Wyłącz niepotrzebne funkcje (187)
- Zabezpieczanie aplikacji (187)
- Zabezpieczanie aplikacji intranetowej (188)
- Uwierzytelnianie formularzy (193)
- Ochrona przed atakami (200)
- SQL Injection (201)
- Cross-Site Scripting (206)
- Cross-Site Request Forgery (207)
- Podsumowanie (209)
Rozdział 10. Programowanie na platformy mobilne (211)
- Funkcje mobilne platformy ASP.NET MVC 4 (211)
- Większa przyjazność aplikacji mobilnej (213)
- Tworzenie widoku mobilnego dla aukcji (214)
- Rozpoczęcie pracy z jQuery Mobile (215)
- Usprawnianie widoku za pomocą jQuery Mobile (218)
- Unikanie widoków biurkowych w witrynie mobilnej (223)
- Usprawnianie wersji mobilnej witryny (224)
- Technika Adaptive Rendering (225)
- Znacznik viewport (225)
- Wykrywanie funkcji mobilnych (226)
- Zapytania mediów CSS (228)
- Widoki dla konkretnych przeglądarek internetowych (229)
- Tworzenie nowej aplikacji mobilnej zupełnie od początku (231)
- Platforma jQuery Mobile (232)
- Szablon aplikacji mobilnej w ASP.NET MVC 4 (232)
- Używanie szablonu aplikacji mobilnej w ASP.NET MVC 4 (233)
- Podsumowanie (236)
CZĘŚĆ III. ZAGADNIENIA ZAAWANSOWANE (237)
Rozdział 11. Operacje na danych przeprowadzane równolegle, asynchronicznie i w czasie
rzeczywistym (239)
- Kontroler asynchroniczny (239)
- Tworzenie kontrolera asynchronicznego (240)
- Kiedy używać kontrolera asynchronicznego? (242)
- Asynchroniczna komunikacja w czasie rzeczywistym (242)
- Porównanie modeli aplikacji (242)
- Model HTTP polling (243)
- Model HTTP long polling (244)
- Zdarzenia wysyłane przez serwer (245)
- WebSocket (246)
- Usprawnianie komunikacji w czasie rzeczywistym (247)
- Konfiguracja i dostrajanie (250)
- Podsumowanie (252)
Rozdział 12. Buforowanie (253)
- Rodzaje buforowania (253)
- Buforowanie po stronie serwera (253)
- Buforowanie po stronie klienta (254)
- Techniki buforowania po stronie serwera (254)
- Buforowanie o zasięgu żądania (254)
- Buforowanie o zasięgu użytkownika (255)
- Buforowanie o zasięgu aplikacji (256)
- Bufor ASP.NET (256)
- Bufor danych wyjściowych (258)
- Buforowanie donut caching (261)
- Buforowanie donut hole caching (263)
- Buforowanie rozproszone (264)
- Techniki buforowania po stronie klienta (269)
- Działanie bufora przeglądarki internetowej (269)
- AppCache (271)
- Local Storage (273)
- Podsumowanie (274)
Rozdział 13. Techniki optymalizacji po stronie klienta (275)
- Anatomia strony (275)
- Anatomia HttpRequest (276)
- Najlepsze praktyki (277)
- Wykonuj mniejszą liczbę żądań HTTP (278)
- Używaj CDN (278)
- Dodawaj nagłówek Expires lub Cache-Control (280)
- Komponenty skompresowane w formacie GZip (282)
- Umieszczaj arkusze stylów na początku pliku (283)
- Umieszczaj skrypty na końcu dokumentu (283)
- Korzystaj z zewnętrznych skryptów i arkuszy stylów (285)
- Zmniejszanie liczby zapytań DNS (286)
- Minimalizacja plików JavaScript i CSS (286)
- Unikaj przekierowań (287)
- Usunięcie powielających się skryptów (289)
- Konfiguracja nagłówka ETag (289)
- Pomiar wydajności po stronie klienta (290)
- Wykorzystanie platformy ASP.NET MVC do pracy (293)
- Tworzenie paczek i minimalizacja (294)
- Podsumowanie (297)
Rozdział 14. Zaawansowany routing (299)
- Wayfinding (299)
- Adresy URL i techniki SEO (301)
- Tworzenie tras (302)
- Domyślne parametry i opcjonalne trasy (303)
- Priorytet i kolejność tras (305)
- Routing do istniejących plików (305)
- Ignorowanie tras (305)
- Trasy typu Catch-All (306)
- Ograniczenia trasy (307)
- Narzędzie Glimpse i trasy (309)
- Routing oparty na atrybutach (310)
- Rozszerzanie routingu (313)
- Podsumowanie (318)
Rozdział 15. Ponownie używane komponenty interfejsu użytkownika (319)
- Co platforma ASP.NET MVC oferuje standardowo? (319)
- Widoki częściowe (319)
- Metody rozszerzające HtmlHelper czy własne metody? (319)
- Szablony Display i Editor (320)
- Przejście o krok dalej (321)
- Razor Single File Generator (321)
- Tworzenie wielokrotnie wykorzystywanych widoków ASP.NET MVC (323)
- Tworzenie wielokrotnie używanych metod pomocniczych ASP.NET MVC (327)
- Testy jednostkowe dla widoków Razor (328)
- Podsumowanie (330)
CZĘŚĆ IV. KONTROLA JAKOŚCI (331)
Rozdział 16. Rejestrowanie informacji (333)
- Obsługa błędów na platformie ASP.NET MVC (333)
- Włączanie własnych błędów (334)
- Obsługa błędów w akcjach kontrolerów (335)
- Definiowanie globalnych procedur obsługi błędów (335)
- Rejestrowanie informacji i śledzenie (337)
- Rejestrowanie informacji o błędach (337)
- Monitorowanie stanu ASP.NET (340)
- Podsumowanie (342)
Rozdział 17. Zautomatyzowane testowanie (343)
- Semantyka testowania (343)
- Ręczne testowanie (344)
- Zautomatyzowane testowanie (345)
- Poziomy zautomatyzowanego testowania (345)
- Testy jednostkowe (345)
- Szybkość (ang. fast) (347)
- Testy integracyjne (348)
- Testy akceptacyjne (349)
- Co to jest projekt zautomatyzowanych testów? (350)
- Tworzenie projektu testowego w Visual Studio (350)
- Tworzenie i przeprowadzanie testu jednostkowego (351)
- Testowanie aplikacji ASP.NET MVC (354)
- Testowanie modelu (354)
- Test-Driven Development (357)
- Tworzenie przejrzystych, zautomatyzowanych testów (358)
- Testowanie kontrolerów (360)
- Refaktoring testów jednostkowych (363)
- Symulacja spełnienia zależności (364)
- Testowanie widoków (368)
- Test pokrycia (370)
- Mit 100% wyniku testu pokrycia (372)
- Tworzenie kodu łatwego do testowania (372)
- Podsumowanie (374)
Rozdział 18. Automatyzacja kompilacji (375)
- Tworzenie skryptów kompilacji (376)
- Projekty Visual Studio są skryptami kompilacji! (376)
- Dodanie prostego zadania kompilacji (376)
- Przeprowadzanie kompilacji (377)
- Możliwości są nieograniczone! (378)
- Automatyzacja kompilacji (378)
- Rodzaje zautomatyzowanej kompilacji (379)
- Definiowanie zautomatyzowanej kompilacji (380)
- Ciągła integracja (383)
- Wykrywanie problemów (383)
- Reguły ciągłej integracji (384)
- Podsumowanie (388)
CZĘŚĆ V. UMIESZCZANIE APLIKACJI SIECIOWEJ W INTERNECIE (389)
Rozdział 19. Wdrażanie (391)
- Co trzeba wdrożyć? (391)
- Podstawowe pliki witryny internetowej (391)
- Treść statyczna (394)
- Czego nie trzeba wdrażać? (394)
- Bazy danych oraz inne zewnętrzne zależności (395)
- Jakie są wymagania aplikacji EBuy? (396)
- Wdrażanie na serwerze Internet Information Server (396)
- Przygotowania (397)
- Tworzenie i konfiguracja witryny internetowej na serwerze IIS (397)
- Publikowanie witryny z poziomu Visual Studio (399)
- Wdrażanie za pośrednictwem Windows Azure (403)
- Tworzenie konta Windows Azure (403)
- Tworzenie nowej witryny internetowej Windows Azure (404)
- Publikacja witryny internetowej Windows Azure poprzez system kontroli wersji (404)
- Podsumowanie (406)
DODATKI (407)
Dodatek A. Integracja platform ASP.NET MVC i Web Forms (409)
Dodatek B. Wykorzystanie NuGet jako platformy (417)
Dodatek C. Najlepsze praktyki (435)
Dodatek D. Odniesienia - tematy, funkcje i scenariusze (449)
Skorowidz (453)
464 strony, oprawa miękka