You are previewing ASP.NET MVC 4. Programowanie.
O'Reilly logo
ASP.NET MVC 4. Programowanie

Book Description

Wykorzystaj potencja? ASP.NET!

p>

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

Poznaj i wykorzystaj możliwości ASP.NET w Twoim projekcie!

Table of Contents

  1. Wprowadzenie
    1. Czytelnicy
    2. Założenia
    3. Konwencje zastosowane w książce
    4. Użycie przykładowych kodów
  2. I. Rozkręcamy się
    1. 1. Podstawy ASP.NET MVC
      1. Opracowane przez Microsoft platformy tworzenia aplikacji sieciowych
        1. Active Server Pages (ASP)
        2. ASP.NET Web Forms
        3. ASP.NET MVC
      2. Architektura MVC
        1. Model
        2. Widok
        3. Kontroler
      3. Co nowego w ASP.NET MVC 4?
      4. Wprowadzenie do aplikacji EBuy
      5. Instalacja ASP.NET MVC
      6. Tworzenie aplikacji ASP.NET MVC
        1. Szablony projektów
        2. Konwencja przed konfiguracją
        3. Uruchamianie aplikacji
        4. Routing
        5. Konfiguracja tras
        6. Kontrolery
        7. Akcje kontrolera
        8. Obiekt ActionResult
        9. Parametry akcji
          1. Podstawy dołączania modelu
          2. Dołączanie modelu w przypadku skomplikowanych obiektów
        10. Filtry akcji
      7. Widoki
        1. Wyszukiwanie widoków
        2. Poznaj Razor
        3. Odróżnianie kodu od znaczników
          1. Pakiety kodu
          2. Blok kodu
        4. Układy graficzne
        5. Widoki częściowe
        6. Wyświetlanie danych
          1. Dostęp do wartości ViewData poprzez ViewBag
          2. Modele widoku
          3. Ściśle określone widoki
        7. Metody pomocnicze HTML i URL
      8. Modele
      9. Zebranie wszystkich komponentów w całość
        1. Trasa
        2. Kontroler
          1. Szablony kontrolerów
        3. Widok
      10. Uwierzytelnianie
        1. AccountController
      11. Podsumowanie
    2. 2. ASP.NET MVC dla programistów formularzy sieciowych
      1. Wszystko kręci się wokół ASP.NET
        1. Narzędzia, języki i API
        2. Moduły i procedury obsługi HTTP
        3. Zarządzanie stanem
        4. Wdrażanie i środowisko uruchomieniowe
      2. Więcej różnic niż podobieństw
        1. Oddzielanie logiki aplikacji od logiki widoku
        2. Adresy URL i routing
        3. Zarządzanie stanem
        4. Generowanie kodu HTML
          1. Metody pomocnicze HTML kontra kontrolki serwerowe
          2. Widoki częściowe kontra kontrolki użytkownika
          3. Układy graficzne kontra strony wzorcowe
      3. Tworzenie widoku ASP.NET MVC za pomocą składni Web Forms
        1. Słowo ostrzeżenia
      4. Podsumowanie
    3. 3. Praca z danymi
      1. Tworzenie formularza
      2. Obsługa akcji POST formularza
      3. Zapis danych w bazie danych
        1. Technika Code First — zasada „konwencja przed konfiguracją”
        2. Tworzenie warstwy dostępu do danych z użyciem techniki Code First w Entity Framework
      4. Weryfikacja danych
        1. Określanie reguł biznesowych za pomocą adnotacji danych
          1. Wymagane pola
          2. Zakresy poprawności
          3. Własne komunikaty o błędach
        2. Wyświetlanie komunikatów o błędach z procesu weryfikacji danych
      5. Podsumowanie
    4. 4. Programowanie po stronie klienta
      1. Praca z językiem JavaScript
      2. Selektory
      3. Udzielanie odpowiedzi na zdarzenia
      4. Manipulacje modelem DOM
      5. AJAX
      6. Weryfikacja danych po stronie klienta
      7. Podsumowanie
  3. II. Kolejny poziom
    1. 5. Architektura aplikacji sieciowej
      1. Wzorzec MVC
        1. Zasada separacji zadań
        2. MVC i platformy sieciowe
      2. Architektura aplikacji sieciowej
        1. Architektura logiczna
        2. Architektura logiczna aplikacji sieciowej ASP.NET MVC
        3. Najlepsze praktyki w zakresie architektury logicznej
        4. Architektura fizyczna
        5. Przestrzeń nazw projektu i nazwy podzespołów
        6. Opcje wdrożenia
        7. Najlepsze praktyki w zakresie architektury fizycznej
          1. Wydajność i skalowalność
          2. Przepustowość i opóźnienie
      3. Reguły dotyczące architektury aplikacji
        1. SOLID
          1. Zasada pojedynczej odpowiedzialności
          2. Zasada otwarty/zamknięty
          3. Zasada podstawienia Liskov
          4. Zasada segregacji interfejsu
          5. Zasada odwracania zależności
        2. Odwracanie sterowania
          1. Zrozumienie zależności
          2. Lokalizacja usługi
          3. Wstrzykiwanie zależności
          4. Wybór kontenera IoC
          5. Użycie wzorca odwróconego sterowania do rozszerzenia ASP.NET MVC
      4. Nie powtarzaj się
      5. Podsumowanie
    2. 6. Usprawnianie witryny poprzez użycie technologii AJAX
      1. Częściowe generowanie strony
        1. Generowanie widoków częściowych
          1. Wygenerowanie „zwykłego” widoku
          2. Wygenerowanie widoku częściowego
          3. Zarządzanie skomplikowanymi widokami za pomocą widoków częściowych
      2. Wygenerowanie kodu JavaScript
        1. Wygenerowanie danych JSON
          1. Uniknięcie przechwycenia JSON za pomocą JsonRequestBehavior
        2. Żądanie danych JSON
        3. Szablony po stronie klienta
      3. Ponowne używanie tej samej logiki zarówno w żądaniach AJAX, jak i pozostałych
        1. Udzielanie odpowiedzi na żądania AJAX
        2. Udzielanie odpowiedzi na żądania JSON
        3. Zastosowanie tej samej logiki w wielu akcjach kontrolera
      4. Wysyłanie danych do serwera
        1. Przekazywanie skomplikowanych obiektów JSON
        2. Wybór łącznika modelu
          1. Zastępowanie łącznika domyślnego
          2. Zastosowanie własnych atrybutów w modelu
          3. Rejestracja globalnego łącznika
        3. Efektywne wysyłanie i odbieranie danych JSON
      5. Wykonywanie żądań AJAX między domenami
        1. JSONP
          1. Wykonywanie żądań JSONP
          2. Dodanie obsługi JSONP do akcji kontrolera ASP.NET MVC
        2. Włączanie Cross-Origin Resource Sharing
      6. Podsumowanie
    3. 7. Platforma Web API ASP.NET
      1. Tworzenie usługi danych
        1. Rejestracja tras Web API
        2. Wykorzystanie techniki „konwencja przed konfiguracją”
        3. Nadpisanie konwencji
        4. Użycie API
      2. Stronicowanie i pobieranie danych
      3. Obsługa wyjątków
      4. Media
      5. Podsumowanie
    4. 8. Zaawansowane dane
      1. Wzorce dostępu do danych
        1. Klasy POCO
        2. Używanie wzorca repozytorium
        3. Mapowanie obiektowo-relacyjne
      2. Ogólny opis Entity Framework
        1. Wybór podejścia w zakresie dostępu do danych
        2. Współbieżność w bazie danych
      3. Tworzenie warstwy dostępu do danych
        1. Podejście Entity Framework Code First
          1. Opis danych w podejściu Code First
          2. Nadpisywanie konwencji
        2. Model domeny biznesowej aplikacji EBuy
        3. Praca z kontekstem danych
      4. Sortowanie, filtrowanie i stronicowanie danych
      5. Podsumowanie
    5. 9. Zapewnianie bezpieczeństwa
      1. Tworzenie bezpiecznej aplikacji sieciowej
        1. Obrona
        2. Nigdy nie ufaj danym wejściowym
        3. Wymuszanie stosowania reguły najmniejszych uprawnień
        4. Przyjmuj założenie, że zewnętrzne systemy są niebezpieczne
        5. Ogranicz możliwości ataku
        6. Wyłącz niepotrzebne funkcje
      2. Zabezpieczanie aplikacji
        1. Zabezpieczanie aplikacji intranetowej
          1. Konfiguracja uwierzytelniania Windows
          2. Konfiguracja serwera WWW IIS Express
          3. Konfiguracja serwera WWW IIS 7
          4. Używanie atrybutu AuthorizeAttribute
        2. Uwierzytelnianie formularzy
          1. Klasa AccountController
          2. Uwierzytelnianie użytkowników
          3. Rejestracja nowego użytkownika
          4. Zmiana hasła
          5. Interakcja za pomocą technologii AJAX
          6. Autoryzacja użytkownika
      3. Ochrona przed atakami
        1. SQL Injection
        2. Cross-Site Scripting
        3. Cross-Site Request Forgery
          1. Użycie platformy ASP.NET MVC w celu ochrony przed atakami typu CSRF
      4. Podsumowanie
    6. 10. Programowanie na platformy mobilne
      1. Funkcje mobilne platformy ASP.NET MVC 4
      2. Większa przyjazność aplikacji mobilnej
        1. Tworzenie widoku mobilnego dla aukcji
        2. Rozpoczęcie pracy z jQuery Mobile
        3. Usprawnianie widoku za pomocą jQuery Mobile
          1. Usprawnianie listy aukcji za pomocą komponentu listview platformy jQuery Mobile
          2. Umożliwianie przeszukiwania listy aukcji dzięki komponentowi „data filter” platformy jQuery Mobile
          3. Przełączanie pomiędzy widokami mobilnym i zwykłym
        4. Unikanie widoków biurkowych w witrynie mobilnej
      3. Usprawnianie wersji mobilnej witryny
      4. Technika Adaptive Rendering
        1. Znacznik viewport
        2. Wykrywanie funkcji mobilnych
        3. Zapytania mediów CSS
        4. Widoki dla konkretnych przeglądarek internetowych
      5. Tworzenie nowej aplikacji mobilnej zupełnie od początku
        1. Platforma jQuery Mobile
        2. Szablon aplikacji mobilnej w ASP.NET MVC 4
        3. Używanie szablonu aplikacji mobilnej w ASP.NET MVC 4
      6. Podsumowanie
  4. III. Zagadnienia zaawansowane
    1. 11. Operacje na danych przeprowadzane równolegle, asynchronicznie i w czasie rzeczywistym
      1. Kontroler asynchroniczny
        1. Tworzenie kontrolera asynchronicznego
        2. Kiedy używać kontrolera asynchronicznego?
      2. Asynchroniczna komunikacja w czasie rzeczywistym
        1. Porównanie modeli aplikacji
        2. Model HTTP polling
          1. Obsługa przez przeglądarki internetowe
          2. Wady
        3. Model HTTP long polling
          1. Obsługa przez przeglądarki internetowe
          2. Wady
        4. Zdarzenia wysyłane przez serwer
          1. Obsługa przez przeglądarki internetowe
          2. Wady
        5. WebSocket
          1. Obsługa przez przeglądarki internetowe
          2. Wady
        6. Usprawnianie komunikacji w czasie rzeczywistym
          1. Trwałe połączenia
          2. Koncentratory
        7. Konfiguracja i dostrajanie
          1. Zarządzanie połączeniami SignalR
          2. Konfiguracja środowiska
      3. Podsumowanie
    2. 12. Buforowanie
      1. Rodzaje buforowania
        1. Buforowanie po stronie serwera
        2. Buforowanie po stronie klienta
      2. Techniki buforowania po stronie serwera
        1. Buforowanie o zasięgu żądania
        2. Buforowanie o zasięgu użytkownika
          1. Cykl życiowy sesji
          2. Przechowywanie danych sesji
        3. Buforowanie o zasięgu aplikacji
        4. Bufor ASP.NET
          1. Wygaśnięcie
          2. Zależności bufora
          3. Wymiatanie
        5. Bufor danych wyjściowych
          1. Konfiguracja położenia bufora
          2. Zróżnicowanie buforowania danych wyjściowych na podstawie parametrów żądania
          3. Profile buforowania danych wyjściowych
        6. Buforowanie donut caching
        7. Buforowanie donut hole caching
        8. Buforowanie rozproszone
          1. Rozwiązania z zakresu buforowania rozproszonego
      3. Techniki buforowania po stronie klienta
        1. Działanie bufora przeglądarki internetowej
        2. AppCache
          1. Definicja manifestu
          2. Odwołanie do manifestu
          3. Poprawna obsługa pliku manifestu
        3. Local Storage
      4. Podsumowanie
    3. 13. Techniki optymalizacji po stronie klienta
      1. Anatomia strony
        1. Anatomia HttpRequest
      2. Najlepsze praktyki
        1. Wykonuj mniejszą liczbę żądań HTTP
        2. Używaj CDN
        3. Dodawaj nagłówek Expires lub Cache-Control
          1. Konfiguracja serwera IIS w celu obsługi buforowania po stronie klienta
          2. Konfiguracja ASP.NET MVC w celu obsługi buforowania po stronie klienta
          3. Odświeżanie komponentu w buforze
        4. Komponenty skompresowane w formacie GZip
        5. Umieszczaj arkusze stylów na początku pliku
        6. Umieszczaj skrypty na końcu dokumentu
          1. Opóźnianie wykonania skryptu
          2. Leniwe wczytywanie skryptów
        7. Korzystaj z zewnętrznych skryptów i arkuszy stylów
        8. Zmniejszanie liczby zapytań DNS
        9. Minimalizacja plików JavaScript i CSS
        10. Unikaj przekierowań
        11. Usunięcie powielających się skryptów
        12. Konfiguracja nagłówka ETag
      3. Pomiar wydajności po stronie klienta
      4. Wykorzystanie platformy ASP.NET MVC do pracy
        1. Tworzenie paczek i minimalizacja
          1. Definiowanie paczek
          2. Włączanie paczek
          3. Odświeżanie bufora
      5. Podsumowanie
    4. 14. Zaawansowany routing
      1. Wayfinding
      2. Adresy URL i techniki SEO
      3. Tworzenie tras
        1. Domyślne parametry i opcjonalne trasy
        2. Priorytet i kolejność tras
        3. Routing do istniejących plików
        4. Ignorowanie tras
        5. Trasy typu Catch-All
      4. Ograniczenia trasy
        1. Narzędzie Glimpse i trasy
      5. Routing oparty na atrybutach
      6. Rozszerzanie routingu
        1. Mechanizm routingu
      7. Podsumowanie
    5. 15. Ponownie używane komponenty interfejsu użytkownika
      1. Co platforma ASP.NET MVC oferuje standardowo?
        1. Widoki częściowe
        2. Metody rozszerzające HtmlHelper czy własne metody?
        3. Szablony Display i Editor
        4. Html.RenderAction()
      2. Przejście o krok dalej
        1. Razor Single File Generator
          1. Instalacja Razor Single File Generator
        2. Tworzenie wielokrotnie wykorzystywanych widoków ASP.NET MVC
          1. Dołączanie skompilowanych widoków do aplikacji sieciowej ASP.NET MVC
        3. Tworzenie wielokrotnie używanych metod pomocniczych ASP.NET MVC
      3. Testy jednostkowe dla widoków Razor
      4. Podsumowanie
  5. IV. Kontrola jakości
    1. 16. Rejestrowanie informacji
      1. Obsługa błędów na platformie ASP.NET MVC
        1. Włączanie własnych błędów
        2. Obsługa błędów w akcjach kontrolerów
        3. Definiowanie globalnych procedur obsługi błędów
          1. Dostosowanie do własnych potrzeb strony z informacją o błędzie
      2. Rejestrowanie informacji i śledzenie
        1. Rejestrowanie informacji o błędach
          1. Prosta procedura obsługi z użyciem konstrukcji try-catch
          2. Nadpisanie metody Controller.OnException()
          3. Własne filtry błędów
        2. Monitorowanie stanu ASP.NET
      3. Podsumowanie
    2. 17. Zautomatyzowane testowanie
      1. Semantyka testowania
        1. Ręczne testowanie
          1. Ludzie popełniają błędy
          2. Komputery są znacznie efektywniejsze
          3. Ręczne testowanie zajmuje wiele czasu
        2. Zautomatyzowane testowanie
      2. Poziomy zautomatyzowanego testowania
        1. Testy jednostkowe
          1. Niepodzielność (ang. atomic)
          2. Powtarzalność (ang. repeatable)
          3. Izolacja/niezależność (ang. isolated/independent)
        2. Szybkość (ang. fast)
        3. Testy integracyjne
        4. Testy akceptacyjne
          1. Testowanie akceptacji użytkownika
      3. Co to jest projekt zautomatyzowanych testów?
        1. Tworzenie projektu testowego w Visual Studio
        2. Tworzenie i przeprowadzanie testu jednostkowego
        3. Testowanie aplikacji ASP.NET MVC
        4. Testowanie modelu
          1. Koncentracja na aspektach pozytywnych
          2. Ochrona przed negatywnymi aspektami
        5. Test-Driven Development
        6. Tworzenie przejrzystych, zautomatyzowanych testów
          1. Powielanie kodu
          2. Nazewnictwo
        7. Testowanie kontrolerów
          1. Testowanie logiki dostępu do danych
        8. Refaktoring testów jednostkowych
        9. Symulacja spełnienia zależności
          1. Ręczne tworzenie obiektów imitujących
          2. Użycie platformy obiektów imitujących
        10. Testowanie widoków
          1. Testowanie w przeglądarce internetowej logiki aplikacji
      4. Test pokrycia
        1. Mit 100% wyniku testu pokrycia
      5. Tworzenie kodu łatwego do testowania
      6. Podsumowanie
    3. 18. Automatyzacja kompilacji
      1. Tworzenie skryptów kompilacji
        1. Projekty Visual Studio są skryptami kompilacji!
        2. Dodanie prostego zadania kompilacji
        3. Przeprowadzanie kompilacji
          1. Kompilacja w Visual Studio
          2. Przeprowadzanie kompilacji z poziomu wiersza poleceń
        4. Możliwości są nieograniczone!
      2. Automatyzacja kompilacji
        1. Rodzaje zautomatyzowanej kompilacji
        2. Definiowanie zautomatyzowanej kompilacji
      3. Ciągła integracja
        1. Wykrywanie problemów
        2. Reguły ciągłej integracji
          1. Używaj jednego repozytorium kodu źródłowego
          2. Zautomatyzuj kompilację
          3. Pozwól, aby kompilacja przeprowadzała automatyczne testowanie
          4. Wszyscy powinni często przekazywać do repozytorium wprowadzone zmiany
          5. Każda zmiana w repozytorium powinna wywołać kompilację na komputerze integracyjnym
          6. Zapewnianie szybkiej kompilacji
          7. Testowanie w środowisku odzwierciedlającym środowisko produkcyjne
          8. Ułatwianie każdemu pobierania najnowszych plików wykonywalnych aplikacji
          9. Każdy powinien móc sprawdzić, co się dzieje
          10. Automatyzacja wdrażania
      4. Podsumowanie
  6. V. Umieszczanie aplikacji sieciowej w internecie
    1. 19. Wdrażanie
      1. Co trzeba wdrożyć?
        1. Podstawowe pliki witryny internetowej
          1. „Wdrażanie typu bin” bibliotek ASP.NET MVC
        2. Treść statyczna
        3. Czego nie trzeba wdrażać?
        4. Bazy danych oraz inne zewnętrzne zależności
        5. Jakie są wymagania aplikacji EBuy?
      2. Wdrażanie na serwerze Internet Information Server
        1. Przygotowania
          1. Wdrażanie podzespołów platformy ASP.NET MVC
        2. Tworzenie i konfiguracja witryny internetowej na serwerze IIS
        3. Publikowanie witryny z poziomu Visual Studio
          1. Kopiowanie plików przy użyciu MSBuild
          2. Wykonywanie skryptów bazy danych przy użyciu MSBuild
      3. Wdrażanie za pośrednictwem Windows Azure
        1. Tworzenie konta Windows Azure
        2. Tworzenie nowej witryny internetowej Windows Azure
        3. Publikacja witryny internetowej Windows Azure poprzez system kontroli wersji
      4. Podsumowanie
  7. VI. Dodatki
    1. A. Integracja platform ASP.NET MVC i Web Forms
      1. Wybór pomiędzy platformami ASP.NET MVC i ASP.NET Web Forms
      2. Konwersja witryny Web Forms na ASP.NET MVC
        1. Dodanie ASP.NET MVC do istniejącej aplikacji Web Forms
        2. Kopiowanie funkcjonalności Web Forms do aplikacji ASP.NET MVC
      3. Integracja funkcjonalności Web Forms i ASP.NET MVC
        1. Zarządzanie użytkownikami
        2. Zarządzanie buforem
        3. Wiele, wiele więcej!
      4. Podsumowanie
    2. B. Wykorzystanie NuGet jako platformy
      1. Instalacja wiersza poleceń NuGet
      2. Tworzenie pakietów NuGet
        1. Plik NuSpec
          1. Używanie wiersza poleceń NuGet
          2. Używanie NuGet Package Explorer
        2. Generowanie pakietu NuGet na podstawie pliku NuSpec
          1. Określanie wartości tokenów
          2. Ustawianie wersji
      3. Anatomia pakietu NuGet
        1. Katalog Content
        2. Katalog libs
        3. Katalog tools
      4. Typy pakietów NuGet
        1. Pakiet podzespołu
        2. Pakiet narzędzia
        3. Pakiet meta
      5. Współdzielenie pakietów NuGet
        1. Umieszczanie pakietu w publicznym repozytorium NuGet.org
          1. Użycie kreatora umieszczania pakietu w repozytorium NuGet.org
          2. Używanie narzędzia wiersza poleceń NuGet
        2. Tworzenie własnego repozytorium pakietów
          1. Użycie repozytorium systemu plików
          2. Hosting serwera repozytorium NuGet
      6. Wskazówki, sztuczki i niebezpieczeństwa
        1. Niebezpieczeństwo — NuGet nie rozwiązuje problemu „piekła DLL”
        2. Wskazówka — użyj opcji -Version narzędzia Install-Package, aby zainstalować pakiet w określonej wersji
        3. Wskazówka — używaj semantycznej numeracji wersji oprogramowania
        4. Wskazówka — wersje beta pakietów oznaczaj numerami wskazującymi na przedpremierowy pakiet
        5. Niebezpieczeństwo — unikaj podawania ściśle określonych numerów wersji jako zależności w plikach NuSpec
        6. Wskazówka — używaj własnych repozytoriów do kontroli wersji pakietu
        7. Wskazówka — skonfiguruj kompilację typu ciągłej integracji dla generowanych pakietów NuGet
      7. Podsumowanie
    3. C. Najlepsze praktyki
      1. Używaj menedżera pakietów NuGet do zarządzania zależnościami
      2. Opieraj się na abstrakcjach
      3. Unikaj słowa kluczowego new
      4. Unikaj bezpośrednich odniesień do HttpContext (używaj HttpContextBase)
      5. Unikaj magicznych ciągów tekstowych
      6. Preferuj modele zamiast ViewData
      7. Nie umieszczaj kodu HTML w logice aplikacji
      8. Nie umieszczaj logiki biznesowej w widokach
      9. Najczęściej używany kod widoków skonsoliduj w postaci metod pomocniczych
      10. Preferuj modele prezentacyjne, zamiast bezpośrednio używać obiektów biznesowych
      11. Hermetyzuj polecenia if dla widoków w metodach pomocniczych HTML
      12. Preferuj wyraźne stosowanie nazw widoków
      13. Preferuj obiekty parametrów zamiast długich list parametrów
      14. Hermetyzuj współdzieloną funkcjonalność, logikę i dane za pomocą filtrów akcji lub akcji potomnych (Html.RenderAction)
      15. Preferuj grupowanie akcji w kontrolerach na podstawie ich powiązania z koncepcjami biznesowymi
      16. Unikaj grupowania akcji w kontrolerach na podstawie powiązań technicznych
      17. Preferuj umieszczanie filtrów akcji na najwyższym z możliwych poziomów
      18. Preferuj stosowanie wielu widoków i (lub) widoków częściowych, zamiast używać skomplikowanej logiki if-else do wyświetlania i ukrywania sekcji
      19. Podczas przekazywania danych formularza preferuj wzorzec przekaż-przekieruj-pobierz
      20. Preferuj zadania startowe zamiast logiki umieszczanej w Application_Start (Global.asax)
      21. Preferuj atrybut Authorize zamiast imperatywnego sprawdzania zabezpieczeń
      22. Preferuj użycie atrybutu Route zamiast bardziej ogólnych tras globalnych
      23. Rozważ użycie tokenu Antiforgery w celu ochrony przed atakami CSRF
      24. Rozważ użycie atrybutu AcceptVerbs w celu ograniczenia sposobów wywoływania akcji
      25. Rozważ buforowanie danych wyjściowych
      26. Rozważ usunięcie nieużywanych silników widoku
      27. Rozważ użycie własnych obiektów ActionResult dla unikalnych scenariuszy
      28. Rozważ użycie kontrolerów asynchronicznych dla zadań kontrolerów, które można wykonywać równolegle
    4. D. Odniesienia — tematy, funkcje i scenariusze
  8. E. O autorach
  9. Indeks
  10. Kolofon
  11. Copyright