ASP.NET MVC. Kompletny przewodnik dla programistów interaktywnych aplikacji internetowych w Visual Studio

ASP.NET MVC. Kompletny przewodnik dla programistów interaktywnych aplikacji internetowych w Visual Studio

Autorzy: Maciej Pakulski Dawid Borycki Jacek Matulewski Maciej Grabek

Wydawnictwo: Helion

Kategorie: Informatyka

Typ: e-book

Formaty: EPUB MOBI

Ilość stron: 544

cena od: 71.20 zł



ASP.NET MVC - skorzystaj z pomocy potężnego sprzymierzeńca!







  • Jak stworzyć wydajną aplikację działającą po stronie serwera?


  • Jak zaprząc bazy danych do ścisłej współpracy z aplikacją internetową?


  • Jak połączyć technologie ASP.NET MVC i ASP.NET WebForms dla uzyskania najlepszego efektu?


  • Jak zaimplementować serwis Web API oraz aplikację ASP.NET MVC 4 kompatybilną z urządzeniami mobilnymi?




ASP.NET MVC to platforma, o której zaletach nie trzeba nikomu przypominać. Potężne narzędzie do budowy aplikacji internetowych działających według wzorca model widok - kontroler pozwala tworzyć oprogramowanie zapewniające bezkolizyjny przepływ dużych ilości danych. Dzięki temu administratorzy sieci mogą względnie łatwo kontrolować stan aplikacji, a użytkownicy internetu są zadowoleni z szybkości ładowania stron internetowych. Ta książka kompleksowo zapozna Cię z programowaniem aplikacji w oparciu o technologie ASP.NET MVC, JavaScript, jQuery oraz AJAX na przykładzie aplikacji internetowej zaimplementowanej od podstaw w środowisku Visual Studio 2012.





Z części pierwszej dowiesz się więcej o najważniejszych aspektach aplikacji ASP.NET MVC, takich jak projektowanie kontrolerów, dostęp do baz danych, walidacja i ochrona danych, implementowanie interaktywnych i asynchronicznych widoków, trasowanie, filtrowanie i zarządzanie użytkownikami. Poznasz też bibliotekę Knockout, umożliwiającą projektowanie interfejsu użytkownika według wzorca MVVM. Część druga jest poświęcona technologiom ADO.NET i ADO.NET Entity Framework, a także zagadnieniom związanym z transakcjami oraz bezpieczeństwem w aplikacjach bazodanowych. Natomiast w części trzeciej znajdziesz informacje pozwalające zintegrować ASP.NET MVC z ASP.NET WebForms i dowiesz się, co możesz zyskać dzięki takiemu połączeniu. Weź tę książkę do ręki i przetestuj przykłady, a nauczysz się więcej, niż myślisz!







  • Podstawowe aspekty projektu aplikacji ASP.NET MVC


  • Walidacja danych i wyrażenia regularne


  • Asynchroniczne aplikacje internetowe, AJAX a biblioteka jQuery


  • Trasowanie adresów URL i filtry


  • Bezpieczne aplikacje, konfiguracja zabezpieczeń i panel Web Site Administration Tool


  • Podstawy ADO.NET i obiekt TableAdapter


  • Scaffolding i transakcje


  • Bezpieczeństwo w aplikacjach bazodanowych i Entity Framework


  • Integracja komponentów WebForms z aplikacją ASP.NET MVC, tworzenie raportów i eksport danych


  • ASP.NET MVC 4 i tworzenie serwisów sieciowych WebAPI


  • Mobilne aplikacje internetowe




Posłuż się ASP.NET MVC i stwórz wspaniałą aplikację!



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.

Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.

Redaktor prowadzący: Ewelina Burska

Projekt okładki: Studio Gravite/Olsztyn

Obarek, Pokoński, Pazdrijowski, Zaprucki

Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.

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)

Drogi Czytelniku!

Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres

http://helion.pl/user/opinie/aspnvs

Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

ISBN: 978-83-246-3238-1

Copyright © Helion 2014

Printed in Poland.

• Kup książkę

• Księgarnia internetowa

• Poleć książkę

• Lubię to! » Nasza społeczność

• Oceń książkę

Spis treĈci

Przedmowa ......................................................................................................... 9

Wstöp ............................................................................................................... 11

CzöĈè I

ASP.NET MVC .............................................................. 13

Rozdziaä 1. Podstawowe aspekty projektu aplikacji ASP.NET MVC .................... 15

ASP.NET MVC .............................................................................................................. 15

Projekt aplikacji MVC .................................................................................................... 18

Szablon projektu ............................................................................................................. 19

Struktura projektu aplikacji ASP.NET MVC ................................................................. 21

Podsumowanie ................................................................................................................ 23

Rozdziaä 2. Kontroler i widok ............................................................................ 25

Funkcje i metody kontrolera ........................................................................................... 25

Projektowanie kontrolera ................................................................................................ 27

Widok ............................................................................................................................. 30

Projektowanie widoku .............................................................................................. 31

Transfer danych miĊdzy widokiem a kontrolerem .......................................................... 36

Podsumowanie ................................................................................................................ 37

Rozdziaä 3. Model ............................................................................................ 39

Wprowadzenie ................................................................................................................ 39

Baza danych ................................................................................................................... 40

Warstwa dostĊpu do bazy danych ................................................................................... 42

Logika biznesowa ........................................................................................................... 44

Implementacja widoku typu GridView ........................................................................... 48

Podsumowanie ................................................................................................................ 52

Rozdziaä 4. Walidacja danych ........................................................................... 53

Wprowadzenie ................................................................................................................ 53

Atrybuty modelu i walidacja danych w praktyce ............................................................ 55

Przygotowanie projektu aplikacji Kadry .................................................................. 55

Widoki kontrolera .................................................................................................... 58

Kup książkę

Poleć książkę

4

ASP.NET MVC

Kontroler .................................................................................................................. 63

Konfiguracja walidacji danych ................................................................................. 66

Walidacja danych po stronie klienta ............................................................................... 67

Walidacja danych a technologia ADO.NET Entity Framework ..................................... 68

Podsumowanie ................................................................................................................ 71

Rozdziaä 5. WyraĔenia regularne a kontrola poprawnoĈci danych ....................... 73

Podstawowe informacje o wyraĪeniach regularnych ...................................................... 73

Odnajdywanie znaków specjalnych ................................................................................ 74

Odnajdywanie znaków i cyfr .......................................................................................... 74

Odnajdywanie znaków w wyznaczonych miejscach áaĔcucha ....................................... 75

OkreĞlanie liczby wystąpieĔ podanych znaków ............................................................. 76

Tworzenie wzorców ....................................................................................................... 76

Aplikacja .................................................................................................................. 76

Kod pocztowy .......................................................................................................... 80

ImiĊ ĪeĔskie ............................................................................................................. 81

Walidacja adresu URL ............................................................................................. 83

Atrybuty modelu wykorzystujące wyraĪenia regularne .................................................. 84

Podsumowanie ................................................................................................................ 88

Rozdziaä 6. Asynchroniczne aplikacje internetowe — Microsoft AJAX ................ 91

Wprowadzenie ................................................................................................................ 91

Aktualizacja zawartoĞci wybranego elementu witryny ................................................... 92

CzĊĞciowe odĞwieĪanie witryny a fragment widoku ...................................................... 97

Ankieta (moduá do gáosowania) .................................................................................... 102

OdĞwieĪenie widoku mapy serwisu Google ................................................................. 108

Rozdziaä 7. Technologia AJAX a biblioteka jQuery ........................................... 113

Wprowadzenie .............................................................................................................. 113

Aktualizacja zawartoĞci wybranego elementu witryny ................................................. 113

Automatyczne uzupeánienie pola tekstowego ............................................................... 115

Mechanizm IntelliSense a skáadnia jQuery ................................................................... 119

Podsumowanie .............................................................................................................. 120

Rozdziaä 8. Trasowanie adresów URL .............................................................. 121

Wprowadzenie .............................................................................................................. 121

Wzorce URL ................................................................................................................. 122

DomyĞlne reguáy trasowania i wzorce URL ................................................................. 123

Wáasne reguáy trasowania ............................................................................................. 124

Zablokowanie obsáugi wybranych ĪądaĔ ...................................................................... 124

Podsumowanie .............................................................................................................. 126

Rozdziaä 9. Filtry ............................................................................................ 127

Wprowadzenie .............................................................................................................. 127

Podstawowe atrybuty filtrów ........................................................................................ 128

[Authorize] ............................................................................................................. 128

[HandleError] ......................................................................................................... 129

[OutputCache] ........................................................................................................ 133

[RequireHttps] ........................................................................................................ 135

[NonAction] ........................................................................................................... 135

KolejnoĞü wykonywania filtrów ................................................................................... 137

Kup książkę

Poleć książkę

Spis treĈci

5

Implementacja wáasnych filtrów ................................................................................... 139

Filtry akcji .............................................................................................................. 139

Filtry autoryzacyjne, wyniku i wyjątków ............................................................... 144

Podsumowanie .............................................................................................................. 146

Rozdziaä 10. Bezpieczne aplikacje internetowe ................................................. 147

Potrzeba zabezpieczeĔ .................................................................................................. 147

Uwierzytelnienie i autoryzacja ..................................................................................... 149

Mechanizmy uwierzytelnienia zintegrowane z ASP.NET ...................................... 149

Konfiguracja uwierzytelnienia ............................................................................... 153

Autoryzacja ............................................................................................................ 157

Grupy uĪytkowników ............................................................................................. 158

Podsumowanie .............................................................................................................. 160

Rozdziaä 11. Konfiguracja zabezpieczeþ i panel Web Site Administration Tool .... 161

Wprowadzenie .............................................................................................................. 161

UĪytkownicy, grupy i reguáy dostĊpu ........................................................................... 163

Ustawienia aplikacji oraz odczyt zawartoĞci pliku konfiguracyjnego .......................... 167

Wyáączenie aplikacji i konfiguracja serwera SMTP ..................................................... 171

Komunikaty o báĊdach .................................................................................................. 171

Zarządzanie dostawcami usáug ..................................................................................... 178

Podsumowanie .............................................................................................................. 179

Rozdziaä 12. Zabezpieczenie witryny przed zäoĈliwym kodem ............................. 181

Wprowadzenie .............................................................................................................. 181

Dziaáanie záoĞliwego kodu ............................................................................................ 181

Zabezpieczanie pliku konfiguracyjnego ....................................................................... 187

Podsumowanie .............................................................................................................. 192

Rozdziaä 13. Kontroler uwierzytelnienia w aplikacji ASP.NET MVC ..................... 195

Wprowadzenie .............................................................................................................. 195

Model ........................................................................................................................... 195

Klasa kontrolera ............................................................................................................ 198

Widoki kontrolera ......................................................................................................... 203

Podsumowanie .............................................................................................................. 209

Rozdziaä 14. Dynamiczne zarzñdzanie uĔytkownikami i grupami ......................... 211

Wprowadzenie............................................................................................................... 211

Kontroler panelu administracyjnego.............................................................................. 212

Podziaá uĪytkowników na grupy ................................................................................... 219

Podsumowanie............................................................................................................... 224

Rozdziaä 15. Biblioteka Knockout ..................................................................... 227

Knockout, czyli interfejs uĪytkownika z wykorzystaniem wzorca MVVM ................. 227

Knockout — wykorzystanie szablonów JavaScript ...................................................... 230

CzöĈè II Technologie bazodanowe

w aplikacjach internetowych ...................................... 235

Rozdziaä 16. Podstawy ADO.NET ...................................................................... 237

Podstawy relacyjnych baz danych ................................................................................ 237

Technologia ADO.NET ................................................................................................ 238

Kup książkę

Poleć książkę

6

ASP.NET MVC

Instalacja bazy Northwind ............................................................................................ 240

Poáączenie ze Ĩródáem danych ...................................................................................... 241

Modyfikacja danych w obiekcie DataSet ..................................................................... 249

Tworzenie nowych rekordów ................................................................................. 250

Edycja rekordów .................................................................................................... 257

Wersjonowanie obiektu DataRow i kontrola wprowadzanych danych ................... 263

Usuwanie rekordów ................................................................................................ 270

Rozdziaä 17. Obiekt TableAdapter jako pomost miödzy DataSet

a Ēródäem danych ......................................................................... 273

Parametryzacja kwerend ............................................................................................... 274

Edycja danych przy uĪyciu obiektu TableAdapter ....................................................... 279

IntegralnoĞü danych i ich usuwanie .............................................................................. 288

Wstawianie danych z wykorzystaniem obiektu TableAdapter ..................................... 294

Rozdziaä 18. Scaffolding, czyli ekspresowe tworzenie internetowych aplikacji bazodanowych ................................................................ 301

Lista rekordów .............................................................................................................. 301

Usuwanie rekordów ...................................................................................................... 305

Edycja rekordów ........................................................................................................... 307

Tworzenie rekordów ..................................................................................................... 311

Formularz z podformularzem (Master/Detail Form) .................................................... 315

Rozdziaä 19. Transakcje ................................................................................... 319

Tworzenie i rĊczna kontrola transakcji ......................................................................... 319

Automatyczne zarządzanie transakcjami ...................................................................... 327

KonkurencyjnoĞü i poziom izolacji transakcji .............................................................. 332

Rozdziaä 20. Bezpieczeþstwo w aplikacjach bazodanowych ............................... 335

Szyfrowanie poáączenia ................................................................................................ 335

Zabezpieczenie kodu poĞredniego przy pomocy Code Access Security (CAS) ........... 338

ConnectionString a sposoby uwierzytelnienia w serwerze MS SQL Server ................. 344

Uwagi koĔcowe dotyczące projektowania aplikacji bazodanowych ............................ 345

Rozdziaä 21. Entity Framework ......................................................................... 347

Podstawy Entity Framework ......................................................................................... 348

Pierwsze zapytanie ................................................................................................. 348

Detale produktu ...................................................................................................... 352

Dodawanie nowego produktu ................................................................................. 353

Edycja produktu ..................................................................................................... 355

Usuwanie produktu ................................................................................................ 357

Tworzenie schematu bazy danych na bazie modelu encji ...................................... 357

Entity Framework i POCO ..................................................................................... 360

CzöĈè III ASP.NET MVC a ASP.NET WebForms .......................... 365

Rozdziaä 22. Integracja komponentów WebForms z aplikacjñ ASP.NET MVC

na przykäadzie technologii SQL Server Reporting Services .............. 367

Pierwszy raport ............................................................................................................. 368

Konfiguracja Ĩródáa danych ................................................................................... 368

Projektowanie raportu ............................................................................................ 371

Kup książkę

Poleć książkę

Spis treĈci

7

Kolumny obliczeniowe raportu .............................................................................. 378

Stosowanie formatu prezentacji danych ................................................................. 379

Grupowanie danych ................................................................................................ 381

Projektowanie graficznego ukáadu raportu ................................................................... 383

Etykiety, rysunki i listy .......................................................................................... 384

Prezentacja danych w postaci macierzowej ............................................................ 390

Parametry raportu i filtrowanie danych ........................................................................ 394

Filtr definiowany na poziomie raportu ................................................................... 395

Filtrowanie raportu na etapie pobierania danych Ĩródáowych ................................ 401

Kluczowe wskaĨniki efektywnoĞci ............................................................................... 403

Wykresy ....................................................................................................................... 406

Rozdziaä 23. Eksport danych ............................................................................ 413

Rozdziaä 24. Ksiöga goĈci w MVC. Porównanie ASP.NET Web Forms

i ASP.NET MVC ............................................................................ 423

Tworzenie projektu ....................................................................................................... 423

Widok — formularz dodawania wpisu ......................................................................... 425

Model — obsáuga plików XML ................................................................................... 427

Aplikacja — rejestrowanie zdarzeĔ i trasowanie .......................................................... 430

Kontroler — obsáuga POST .......................................................................................... 431

Widok — wyĞwietlanie wpisów ................................................................................... 432

Widok — walidacja ...................................................................................................... 435

Kontroler — uĪycie modelu odsyáanego przez widok .................................................. 440

Dodatki ..................................................................................... 447

Dodatek A ASP.NET MVC 4 ........................................................................... 449

Wsparcie dla urządzeĔ mobilnych ................................................................................ 449

Sformuáowanie problemu ....................................................................................... 450

Przystosowanie widoków aplikacji do urządzeĔ mobilnych .................................. 457

OAuth, czyli otwarta autoryzacja ................................................................................. 460

Implementacja zdalnej autoryzacji w powiązaniu z portalem Facebook ................ 461

Przetwarzanie asynchroniczne ...................................................................................... 464

Wprowadzenie ........................................................................................................ 464

Potrzeba wykorzystania asynchronicznych kontrolerów ........................................ 466

Kontrolery asynchroniczne i klasa Thread ............................................................. 469

Kontrolery asynchroniczne a zadania ..................................................................... 472

Grupowanie i optymalizacja skryptów oraz kaskadowych arkuszy stylów .................. 475

Web API ....................................................................................................................... 477

Wprowadzenie ........................................................................................................ 477

Implementacja serwisu sieciowego ........................................................................ 479

Implementacja klienta Web API ............................................................................. 483

Podsumowanie .............................................................................................................. 494

Dodatek B Publikacja aplikacji ASP.NET za pomocñ internetowych usäug informacyjnych (IIS) ............................................................ 495

Wprowadzenie .............................................................................................................. 495

Instalacja i konfiguracja serwera internetowych usáug informacyjnych IIS ................. 496

Instalacja serwera IIS w systemie Windows 7 ........................................................ 496

Instalacja serwera IIS w systemie Windows 8 ........................................................ 496

Kup książkę

Poleć książkę

8

ASP.NET MVC

Publikowanie aplikacji na serwerze IIS ........................................................................ 497

Konfiguracja puli aplikacji ..................................................................................... 498

Instalacja ASP.NET 4/4.5 na serwerze IIS ............................................................. 498

Publikacja aplikacji ................................................................................................ 500

Uruchomienie aplikacji .......................................................................................... 503

IIS jako serwer do rozwoju aplikacji ............................................................................ 504

Dodatek C ASP.NET Identity w MVC 5 i Visual Studio 2013 ............................ 505

WstĊp............................................................................................................................. 505

Szablony projektów ASP.NET w Visual Studio 2013................................................... 505

Kontroler zarządzający uĪytkownikami i rolami ........................................................... 508

Dynamiczne zarządzanie uĪytkownikami ............................................................... 509

Statyczne zarządzanie rolami .................................................................................. 519

Dynamiczne zarządzanie rolami.............................................................................. 519

Przykáadowe wykorzystanie ról..................................................................................... 524

Podsumowanie............................................................................................................... 526

Skorowidz ....................................................................................................... 527

Kup książkę

Poleć książkę

Rozdziaä 18.

Scaffolding, czyli

ekspresowe tworzenie

internetowych aplikacji

bazodanowych

Dawid Borycki

W dwóch poprzednich rozdziaáach samodzielnie utworzyliĞmy komponenty prezentują-

ce dane rekordów z bazy danych, a takĪe umoĪliwiające ich edycjĊ i usuwanie. Wyko-rzystaliĞmy do tego celu bibliotekĊ jQuery UI. W tym rozdziale chciaábym zaprezen-towaü tak zwany scaffolding. Jest to procedura dostĊpna miĊdzy innymi w aplikacjach ASP.NET MVC, umoĪliwiająca automatyczne wygenerowanie widoków (komponentów) aplikacji internetowej, które realizują bazodanowy schemat CRUD (ang. Create Read Update Delete). Schemat CRUD obejmuje podstawowe elementy wszystkich aplikacji bazodanowych, czyli tworzenie, odczytywanie, aktualizowanie i usuwanie rekordów z tabel danych.

Lista rekordów

Opis techniki scaffolding w aplikacjach ASP.NET MVC rozpocznĊ od wygenerowa-nia widoku listy rekordów w aplikacji NorthwindMVC. Automatycznie wygenerowa-ny widok skorygujĊ w celu dostosowania go do potrzeb aplikacji:

1. Gáówny widok aplikacji NorthwindMVC (plik Index.cshtml) uzupeánij o nastĊpujące polecenie:

<p>

@Html.ActionLink("Scaffolding", "ScaffoldingList")

</p>

Kup książkę

Poleć książkę

302

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych

2. W Solution Explorer rozwiĔ wĊzeá Views, a nastĊpnie kliknij prawym przyciskiem myszy folder Home.

3. Wybierz opcjĊ Add, a nastĊpnie View… z menu kontekstowego.

4. W kreatorze Add View (rysunek 18.1):

Rysunek 18.1.

Widok kreatora

Add View

a) ZmieĔ nazwĊ widoku na ScaffoldingList.

b) Zaznacz pole wyboru Create a strongly-typed view.

c) Z listy dostĊpnych modeli wybierz pozycjĊ CustomersRow.

d) Z listy rozwijanej Scaffold template wybierz List.

e) Kliknij przycisk Add.

5. Utworzony w ten sposób plik ScaffoldingList.cshtml zmodyfikuj wedáug wzoru z listingu 18.1.

Listing 18.1. Zmodyfikowany widok listy klientów

@model IEnumerable<NorthwindMVC.Models.NorthwindDataSet.CustomersRow>

@{

ViewBag.Title = "ScaffoldingList";

}

<h2>ScaffoldingList</h2>

<h2>Lista klientów</h2>

<p>

@Html.ActionLink("Create New", "Create")

@Html.ActionLink("Nowy rekord", "ScaffoldingCreate")

</p>

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 303

<table>

<tr>

<th>

CustomerID

</th>

<th>

CompanyName

</th>

<th>

ContactName

</th>

<th>

ContactTitle

</th>

<th>

Address

</th>

<th>

City

</th>

<th>

Region

</th>

<th>

PostalCode

</th>

<th>

Country

</th>

<th>

Phone

</th>

<th>

Fax

</th>

<th>

RowError

</th>

<th>

HasErrors

</th>

<th></th>

</tr>

@foreach (var item in Model) {

<tr>

<td>

@Html.DisplayFor(modelItem => item.CustomerID)

</td>

<td>

@Html.DisplayFor(modelItem => item.CompanyName)

</td>

<td>

@Html.DisplayFor(modelItem => item.ContactName)

</td>

<td>

Kup książkę

Poleć książkę

304

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych

@Html.DisplayFor(modelItem => item.ContactTitle)

</td>

<td>

@Html.DisplayFor(modelItem => item.Address)

</td>

<td>

@Html.DisplayFor(modelItem => item.City)

</td>

<td>

@Html.DisplayFor(modelItem => item.Region)

</td>

<td>

@Html.DisplayFor(modelItem => item.PostalCode)

</td>

<td>

@Html.DisplayFor(modelItem => item.Country)

</td>

<td>

@Html.DisplayFor(modelItem => item.Phone)

</td>

<td>

@Html.DisplayFor(modelItem => item.Fax)

</td>

<td>

@Html.DisplayFor(modelItem => item.RowError)

</td>

<td>

@Html.DisplayFor(modelItem => item.HasErrors)

</td>

<td>

@Html.ActionLink("Edytuj", "ScaffoldingEdit", new { id =

´item.CustomerID }) |

@Html.ActionLink("Zamówienia", "ScaffoldingMasterDetail", new { id =

´item.CustomerID }) |

@Html.ActionLink("Usuē", "ScaffoldingDelete", new { id =

´item.CustomerID })

</td>

</tr>

}

</table>

6. W pliku HomeController.cs:

a) Utwórz pole klasy:

CustomersTableAdapter customersTableAdapter = new CustomersTableAdapter();

b) Dodaj polecenia z listingu 18.2.

Listing 18.2. Prezentacja listy klientów

private void PobierzDaneKlientow()

{

northwindDataSet.EnforceConstraints = false;

customersTableAdapter.Fill(northwindDataSet.Customers);

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 305

northwindDataSet.EnforceConstraints = true;

}

public ActionResult ScaffoldingList()

{

PobierzDaneKlientow();

return View("ScaffoldingList", northwindDataSet.Customers);

}

7. Skompiluj i uruchom aplikacjĊ.

Po uruchomieniu aplikacji i klikniĊciu hiperáącza z etykietą Scaffolding zostanie wy-

Ğwietlona lista klientów, której postaü powinna byü analogiczna do przedstawionej na rysunku 18.2. W kolejnym kroku zaimplementujemy moĪliwoĞü usuwania, edycji oraz tworzenia rekordów w tabeli Customers.

Rysunek 18.2. Lista klientów

Usuwanie rekordów

W celu zaimplementowania moĪliwoĞci usuwania rekordów z tabeli Customers wyko-naj nastĊpujące czynnoĞci:

1. W widoku projektowania obiektu NorthwindDataSet skonfiguruj relacjĊ

pomiĊdzy tabelami Orders i Customers wedáug wzoru z rysunku 18.3.

2. KlasĊ kontrolera Home uzupeánij o polecenia z listingu 18.3.

Kup książkę

Poleć książkę

306

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych Rysunek 18.3.

Konfiguracja wiĊzów

integralnoĞci danych

Listing 18.3. Usuwanie rekordów z tabeli Customers

private void AktualizujDaneKlientow()

{ northwindDataSet.EnforceConstraints = false;

orderDetailsTableAdapter.Update(northwindDataSet.Order_Details);

ordersTableAdapter.Update(northwindDataSet.Orders);

customersTableAdapter.Update(northwindDataSet.Customers);

northwindDataSet.EnforceConstraints = true;

}

public ActionResult ScaffoldingDelete(string id)

{ NorthwindDataSet.CustomersRow cdr =

ńorthwindDataSet.Customers.FindByCustomerID(id);

if (cdr != null)

{

// Usuwanie rekordów potomnych

DataRow[] zamowienia =

ćdr.GetChildRows(northwindDataSet.Relations["FK_Orders_Customers"]); foreach (DataRow dr in zamowienia)

dr.Delete();

// Usuwanie rekordu klienta

cdr.Delete();

// Aktualizacja wszystkich powiązanych tabel

AktualizujDaneKlientow();

}

return ScaffoldingList();

}

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 307

Podczas usuwania danego rekordu naleĪy zadbaü o rekordy z innych tabel, które są z nim związane relacjami. Wiersze tabeli Customers są skojarzone z rekordami z tabel Orders oraz OrdersDetails. Z tego powodu aktualizujĊ zawartoĞci tych tabel po usuniĊciu wybranego rekordu klienta. Osierocone rekordy z tabeli Orders są usuwane ra-zem z nim.

Edycja rekordów

Do edycji rekordów w tabeli Customers potrzebny bĊdzie odpowiedni widok, który przygotujĊ na bazie automatycznie wygenerowanego kodu Ĩródáowego:

1. Zgodnie z przepisem z podrozdziaáu „Lista rekordów” utwórz widok kontrolera Home i skonfiguruj go wedáug wzoru z rysunku 18.4.

Rysunek 18.4.

Konfiguracja widoku

edycji klienta

2. Wygenerowany automatycznie plik widoku ScaffoldingEdit.cshtml zmodyfikuj zgodnie z listingiem 18.4.

Listing 18.4. Definicja widoku edycji klienta

@model NorthwindMVC.Models.NorthwindDataSet.CustomersRow

@{

ViewBag.Title = "ScaffoldingEdit";

}

<h2>ScaffoldingEdit</h2>

<h2>Edycja rekordu</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"

´type="text/javascript"></script>

Kup książkę

Poleć książkę

308

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych

<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"

´type="text/javascript"></script>

@using (Html.BeginForm("EdytujDaneKlienta", "Home", new {id = Model.CustomerID})) {

@Html.ValidationSummary(true)

<fieldset>

<legend>Dane klientaCustomersRow</legend>

<div class="editor-label">

@Html.LabelFor(model => model.CustomerID)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.CustomerID)

@Html.ValidationMessageFor(model => model.CustomerID)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.CompanyName)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.CompanyName)

@Html.ValidationMessageFor(model => model.CompanyName)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.ContactName)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.ContactName)

@Html.ValidationMessageFor(model => model.ContactName)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.ContactTitle)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.ContactTitle)

@Html.ValidationMessageFor(model => model.ContactTitle)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Address)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Address)

@Html.ValidationMessageFor(model => model.Address)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.City)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.City)

@Html.ValidationMessageFor(model => model.City)

</div>

<div class="editor-label">

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 309

@Html.LabelFor(model => model.Region)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Region)

@Html.ValidationMessageFor(model => model.Region)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.PostalCode)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.PostalCode)

@Html.ValidationMessageFor(model => model.PostalCode)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Country)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Country)

@Html.ValidationMessageFor(model => model.Country)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Phone)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Phone)

@Html.ValidationMessageFor(model => model.Phone)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Fax)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Fax)

@Html.ValidationMessageFor(model => model.Fax)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.RowError)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.RowError)

@Html.ValidationMessageFor(model => model.RowError)

</div>

<p>

<input type="submit" value="SaveZapisz" />

</p>

</fieldset>

}

<div>

@Html.ActionLink("Back to List", "Index")

@Html.ActionLink("Powrót do listy rekordow", "ScaffoldingList")

</div>

Kup książkę

Poleć książkę

310

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych

3. W kontrolerze Home zdefiniuj metody z listingu 18.5.

Listing 18.5. Edycja danych klienta

public ActionResult ScaffoldingEdit(string id)

{

NorthwindDataSet.CustomersRow cdr =

ńorthwindDataSet.Customers.FindByCustomerID(id);

if (cdr != null)

return View("ScaffoldingEdit", cdr);

else

return ScaffoldingList();

}

private void PrzepiszDaneKlienta(FormCollection daneKlienta, ref

ŃorthwindDataSet.CustomersRow rekordKlienta)

{

rekordKlienta.CompanyName = daneKlienta["CompanyName"].ToString(); rekordKlienta.ContactName = daneKlienta["ContactName"].ToString(); rekordKlienta.ContactTitle = daneKlienta["ContactTitle"].ToString(); rekordKlienta.Address = daneKlienta["Address"].ToString(); rekordKlienta.City = daneKlienta["City"].ToString();

}

public ActionResult EdytujDaneKlienta(FormCollection daneKlienta, string id)

{

NorthwindDataSet.CustomersRow cdr =

ńorthwindDataSet.Customers.FindByCustomerID(id);

if (cdr != null)

{

PrzepiszDaneKlienta(daneKlienta, ref cdr);

AktualizujDaneKlientow();

}

return ScaffoldingList();

}

Proces edycji rekordu w bazie danych za pomocą technologii ADO.NET opiera siĊ na informacjach zebranych w poprzednich rozdziaáach, wiĊc nie bĊdĊ go tu szczegóáowo opisywaá. Celem tego przykáadu byáo automatyczne wygenerowanie widoku umoĪliwiającego edycjĊ danych klienta, przystosowanie go do wáasnych potrzeb oraz integracja z kontrolerem.

Separacja modelu, widoku i kontrolera umoĪliwia narzĊdziom Visual Studio 2012 automatyczne generowanie widoku na podstawie definicji modelu. JednakĪe, jak pokaza-

áem w tym podrozdziale, kreator tworzy widok, który umoĪliwia edycjĊ wszystkich pól rekordu (nawet identyfikatora), co sprawia, Īe w wiĊkszoĞci przypadków naleĪy samodzielnie edytowaü plik widoku w celu przystosowania go do potrzeb projektowanej aplikacji. Jednak, jak pokazuje powyĪszy przykáad, nie jest to rzeczą skomplikowaną.

Integracja widoku z kontrolerem polega na odpowiednim przekazywaniu informacji o edytowanym rekordzie oraz wartoĞci jego pól. Do tego celu wykorzystaáem identyfikator klienta, który jednoznacznie identyfikuje rekordy w tabeli Customers.

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 311

Przykáadowy wynik poleceĔ zaimplementowanych w tym podrozdziale przedstawia rysunek 18.5.

Rysunek 18.5.

Edycja danych klienta

Tworzenie rekordów

W poprzednich podrozdziaáach zaimplementowaáem trzy spoĞród czterech podstawo-wych elementów schematu CRUD, czyli odczytywanie (R), aktualizacjĊ (U) oraz usuwanie (D) rekordów. Ostatnim elementem jest tworzenie (C) nowych rekordów. W celu zaimplementowania procedury uzupeániania tabeli Customers nowymi rekordami na-leĪy postąpiü nastĊpująco:

1. W Solution Explorer rozwiĔ wĊzeá Views, a nastĊpnie kliknij prawym przyciskiem myszy folder Home.

2. Wybierz opcjĊ Add, a nastĊpnie View… z menu kontekstowego.

3. W kreatorze Add View:

a) ZmieĔ nazwĊ widoku na ScaffoldingCreate.

b) Zaznacz pole wyboru Create a strongly-typed view.

c) Z listy dostĊpnych modeli wybierz pozycjĊ CustomersRow.

d) Z listy rozwijanej Scaffold template wybierz Create.

e) Kliknij przycisk Add.

4. Utworzony w ten sposób plik ScaffoldingCreate.cshtml zmodyfikuj wedáug wzoru z listingu 18.6.

Kup książkę

Poleć książkę

312

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych Listing 18.6. Widok umoĪliwiający wstawianie rekordów do tabeli Customers

@model NorthwindMVC.Models.NorthwindDataSet.CustomersRow

@{

ViewBag.Title = "ScaffoldingCreate";

}

<h2>ScaffoldingCreate</h2>

<h2>Tworzenie rekordu</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"

´type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"

´type="text/javascript"></script>

@using (Html.BeginForm("DodajKlienta", "Home"))

{

@Html.ValidationSummary(true);

<fieldset>

<legend>Dane klientaCustomersRow</legend>

<div class="editor-label">

@Html.LabelFor(model => model.CustomerID)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.CustomerID)

@Html.ValidationMessageFor(model => model.CustomerID)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.CompanyName)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.CompanyName)

@Html.ValidationMessageFor(model => model.CompanyName)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.ContactName)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.ContactName)

@Html.ValidationMessageFor(model => model.ContactName)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.ContactTitle)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.ContactTitle)

@Html.ValidationMessageFor(model => model.ContactTitle)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Address)

</div>

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 313

<div class="editor-field">

@Html.EditorFor(model => model.Address)

@Html.ValidationMessageFor(model => model.Address)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.City)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.City)

@Html.ValidationMessageFor(model => model.City)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Region)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Region)

@Html.ValidationMessageFor(model => model.Region)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.PostalCode)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.PostalCode)

@Html.ValidationMessageFor(model => model.PostalCode)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Country)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Country)

@Html.ValidationMessageFor(model => model.Country)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Phone)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Phone)

@Html.ValidationMessageFor(model => model.Phone)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.Fax)

</div>

<div class="editor-field">

@Html.EditorFor(model => model.Fax)

@Html.ValidationMessageFor(model => model.Fax)

</div>

<div class="editor-label">

@Html.LabelFor(model => model.RowError)

</div>

<div class="editor-field">

Kup książkę

Poleć książkę

314

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych

@Html.EditorFor(model => model.RowError)

@Html.ValidationMessageFor(model => model.RowError)

</div>

<p>

<input type="submit" value="CreateUtwórz" />

</p>

</fieldset>

}

<div>

@Html.ActionLink("Back to List", "Index")

@Html.ActionLink("Powrót do listy", "ScaffoldingList")

</div>

5. DefinicjĊ kontrolera Home uzupeánij o polecenia z listingu 18.7.

Listing 18.7. Wstawianie rekordów do tabeli Customers

private char PobierzZnak(string lancuch, int index)

{

Random random = new Random();

char znak;

if (lancuch.Length > index)

znak = lancuch[index];

else

znak = (char)random.Next(0, 255).ToString()[0];

return znak;

}

private void UtworzIdentyfikatorKlienta(ref NorthwindDataSet.CustomersRow

´daneKlienta)

{

string identyfikator = "";

int indexZnaku = 0;

identyfikator += PobierzZnak(daneKlienta.CompanyName, indexZnaku); identyfikator += PobierzZnak(daneKlienta.ContactName, indexZnaku); identyfikator += PobierzZnak(daneKlienta.ContactTitle, indexZnaku); identyfikator += PobierzZnak(daneKlienta.Address, indexZnaku);

identyfikator += PobierzZnak(daneKlienta.City, indexZnaku);

daneKlienta.CustomerID = identyfikator;

}

public ActionResult DodajKlienta(FormCollection daneKlienta, string id)

{

NorthwindDataSet.CustomersRow cdr =

ńorthwindDataSet.Customers.NewCustomersRow();

PrzepiszDaneKlienta(daneKlienta, ref cdr);

UtworzIdentyfikatorKlienta(ref cdr);

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 315

customersTableAdapter.Insert(cdr.CustomerID, cdr.CompanyName, cdr.ContactName, cdr.ContactTitle, cdr.Address, cdr.City, " ", " ", " ", " ", " "); AktualizujDaneKlientow();

return ScaffoldingList();

}

Wstawienie rekordów do tabeli Customers jest analogiczne do ich edycji. Jedyną róĪ-

nicą jest koniecznoĞü utworzenia identyfikatora klienta, gdyĪ nie jest on tworzony automatycznie, jak to byáo w przypadku tabeli Employees. Identyfikatory rekordów w tabeli Customers są piĊcioelementowymi ciągami znaków. TworzĊ je na podstawie pierwszych liter pól CompanyName, ContactName, ContactTitle, Address oraz City. JeĞli w tych polach znajdują siĊ puste ciągi, to odpowiednią literĊ zastĊpujĊ losowo wyge-nerowanym znakiem.

W kolejnym podrozdziale pokaĪĊ, w jaki sposób wyĞwietliü informacje o rekordach potomnych, opierając siĊ na relacji pomiĊdzy tabelami.

Formularz z podformularzem

(Master/Detail Form)

Jako podsumowanie tego rozdziaáu utworzĊ formularz z podformularzem, tak zwany formularz Master/Detail. Jego dziaáanie polega na tym, Īe wyĞwietlanie danych od-bywa siĊ na bazie co najmniej dwóch komponentów (np. bloków czy tabel) oraz relacji miĊdzy tabelami. Pierwszy komponent prezentuje rekordy zawarte w tabeli gáów-nej (ang. master), a drugi zawiera dane z tabeli podrzĊdnej (ang. detail). Komponent związany z tabelą podrzĊdną ma zazwyczaj za zadanie prezentowaü szczegóáowe da-ne odpowiadające rekordowi z tabeli nadrzĊdnej, który zostaá wskazany przy pomocy związanej z nim listy rekordów. Pola tych tabel muszą byü zatem uporządkowane w taki sposób, aby pokazywaáy informacjĊ o tym samym rekordzie. Uzyskuje siĊ to przy pomocy relacji miĊdzy tabelami, której zadaniem jest powiązanie informacji zawartych w bazie danych.

W tym podrozdziale tabelą nadrzĊdną bĊdzie tabela Customers, a podrzĊdną Orders.

Po klikniĊciu na hiperáącze z etykietą zamówienia wyĞwietli siĊ lista rekordów tabeli Orders skojarzonych z danym klientem. ĩądania prezentacji zamówieĔ bĊdą realizo-wane asynchronicznie.

1. Plik widoku ScaffoldingList.cshtml zmodyfikuj wedáug wzoru z listingu 18.8.

Listing 18.8. Konfiguracja hiperáącza umoĪliwiającego wyĞwietlenie listy zamówieĔ danego klienta



@foreach (var item in Model) {

<tr>

<td>

Kup książkę

Poleć książkę

316

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych

@Html.DisplayFor(modelItem => item.CustomerID)

</td>

<td>

@Html.DisplayFor(modelItem => item.CompanyName)

</td>

<td>

@Html.DisplayFor(modelItem => item.ContactName)

</td>

<td>

@Html.DisplayFor(modelItem => item.ContactTitle)

</td>

<td>

@Html.DisplayFor(modelItem => item.Address)

</td>

<td>

@Html.DisplayFor(modelItem => item.City)

</td>

<td>

@Html.ActionLink("Edytuj", "ScaffoldingEdit", new { id =

ítem.CustomerID }) |

@Ajax.ActionLink("Zamówienia", "ScaffoldingMasterDetail", new { id =

´item.CustomerID },

new AjaxOptions { UpdateTargetId = "zamowienia", OnSuccess =

´"document.getElementById('zamowienia').scrollIntoView()" }) |

@Html.ActionLink("Usuē", "ScaffoldingDelete", new { id =

ítem.CustomerID })

</td>

</tr>

}

</table>

<div id="zamowienia"></div>

2. Utwórz widok czĊĞciowy o nazwie ZamowieniaPartialView.cshtml i wstaw w nim polecenia z listingu 18.9.

Listing 18.9. Definicja widoku prezentującego listĊ zamówieĔ

@model IEnumerable<NorthwindMVC.Models.NorthwindDataSet.OrdersRow>

@if (Model == null)

{

<h2>Brak zamówieē</h2>

}

else

{ <h2>Lista zamówieē</h2>

<table>

<tr>

<th>

OrderDate

</th>

<th>

RequiredDate

</th>

Kup książkę

Poleć książkę

Rozdziaä 18. i Scaffolding, czyli ekspresowe tworzenie aplikacji bazodanowych 317

<th>

ShippedDate

</th>

<th>

ShipName

</th>

<th>

ShipAddress

</th>

<th>

ShipCity

</th>

<th></th>

</tr>

@foreach (var item in Model)

{

<tr>

<td>

@item.OrderDate.ToShortDateString()

</td>

<td>

@item.RequiredDate.ToShortDateString()

</td>

<td>

@item.ShippedDate.ToShortDateString()

</td>

<td>

@item.ShipName

</td>

<td>

@item.ShipAddress

</td>

<td>

@item.ShipCity

</td>

</tr>

}

</table>

}

3. Kontroler Home uzupeánij o metodĊ ScaffoldingMasterDetail, której definicjĊ

przedstawiáem na listingu 18.10.

Listing 18.10. Pobranie i prezentacja rekordów potomnych wybranego klienta public ActionResult ScaffoldingMasterDetail(string id)

{

NorthwindDataSet.CustomersRow cdr =

ńorthwindDataSet.Customers.FindByCustomerID(id);

NorthwindDataSet.OrdersRow[] zamowieniaPracownika = null;

if (cdr != null)

zamowieniaPracownika =

´(NorthwindDataSet.OrdersRow[])cdr.GetChildRows("FK_Orders_Customers");

Kup książkę

Poleć książkę

318

CzöĈè II i Technologie bazodanowe w aplikacjach internetowych if (Request.IsAjaxRequest())

return View("ZamowieniaPartialView", zamowieniaPracownika); else

return ScaffoldingList();

}

4. SekcjĊ <head> pliku _Layout.cshtml uzupeánij o polecenia z listingu 18.11.

Listing 18.11. Import skryptów obsáugujących Īądania asynchroniczne

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"

´type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")"

´type="text/javascript"></script>

<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")"

´type="text/javascript"></script>

5. Po skompilowaniu i uruchomieniu aplikacji powinieneĞ uzyskaü efekt analogiczny do przedstawionego na rysunku 18.6.

Rysunek 18.6. Przykáad formularza typu Master/Detail

Kup książkę

Poleć książkę

Skorowidz

A

synchronizacja ze Ĩródáem danych, 273

uwagi do projektowania, 345

ACL, 149

moĪliwoĞü edytowania wpisów, 441

action methods, 25

rejestrowanie zdarzeĔ i trasowanie, 430

ActiveX Data Object, 238

Application Domain, 339

ADO, 238

architektura obiektowa, 347

ADO.NET, 238

ASP.NET

obiekty, 238

konfiguracja aplikacji, 161

podstawy, 237

mechanizmy uwierzytelnienia, 149

synchronizacja buforu ze Ĩródáem danych, 273

metody globalne, 107

adresy URL

wáączanie i wyáączanie aplikacji, 171

autoryzacja, 157

ASP.NET AJAX, 91

parametry, 122

ASP.NET MVC, 15

trasowanie, 121

komponenty, 16

wzorce, 122, 123

ASPX, 21, 30

agile programming, 15

asynchroniczne przetwarzanie ĪądaĔ http

AJAX, 91

jQuery, 113

aktualizacja bloku witryny, 113

Asynchronous JavaScript and XML, 48

dodanie referencji do bibliotek JavaScript, 94

Asynchronous Programming Model, 464

akcja

ataki

Create, 354

rodzaje, 147

Delete, 357

SQL Injection, 148, 344

Details, 353

wyáudzenie informacji, 148

dodająca nowy produkt, 355

záoĞliwy kod, 181

Edit, 356

atrybut, 347

aktualizacja

AcceptVerbs(Http.Post), 47

zawartoĞci elementu witryny, 92

AcceptVerbs(HttpVerbs.Post), 65

algorytm

AssociationAttribute, 58

RSA, 187

Authorize, 200

ambient transaction, 329

AuthorizeAttribute, 128

ankieta, 102

autoryzacyjny, 145

AntiXss, 187

ConcurrencyCheckAttribute, 58

aplikacje

Confirm, 95

bazodanowe, 235

cookieless, 154

bezpieczeĔstwo, 335

CustomValidationAttribute, 58, 66

mechanizm transakcji, 319

data-bind, 230

scaffolding, 301

DataType, 54, 57

Kup książkę

Poleć książkę

528

ASP.NET MVC

atrybut

Url, 95

DataTypeAttribute, 58

ValidateInput, 185

defaultRedirect, 173

atrybuty modelu

defaultUrl, 154

wyraĪenia regularne, 84

DisplayAttribute, 58

Attribute, 347

DisplayColumnAttribute, 58

authentication ticket, 151

DisplayName, 436

auto post back, 217

EditableAttribute, 58

autocomplete textbox, 115

enableCrossAppRedirects, 155

automatyczne uzupeánienie pola tekstowego, 115

EnumDataTypeAttribute, 58

autoryzacja, 149, 157

FilterUIHintAttribute, 58

adresów URL, 157

HandleError, 138, 175

konfiguracja, 157

HandleErrorAttribute, 129

grupy uĪytkowników, 158

HttpMethod, 95

mechanizm filtrowania, 158

InsertionMode, 95

otwarta, 460

KeyAttribute, 58

plików, 157

klasy do konfiguracji metadanych, 57, 58

zdalna

LoadingElementDuration, 110

powiązanie z portalem Facebook, 461

LoadingElementId, 95, 110

Azure, 496

Log

klasa implementująca, 142

B

loginUrl, 154

bazy danych, 40, 237

MetadataType, 69

aktualizacja, 41

MetadataTypeAttribute, 58

lista rekordów, 301

mode, 153, 173

Northwind, 240

modelu, 55

detale produktu, 352

name, 155

dodawanie poáączeĔ, 350

NonAction, 26, 135

pobieranie produktów, 351

OnBegin, 95

poáączenie ze Ĩródáem danych, 241

OnComplete, 95

relacyjne, 237

OnFailure, 95

schemat CRUD, 301

OnSuccess, 95, 110

transakcje, 319

OutputCache, 133

tworzenie, 321

OutputCacheAttribute

nowego rekordu, 48

parametry, 134

schematu na bazie modelu encji, 357

passwordFormat, 156

usuwanie danych, 290

protection, 155

reguáy integralnoĞci, 293

Range, 54, 66

usuwanie powiązanych wierszy

RangeAttribute, 58

rekordy potomne, 291

redirectMode, 173

warstwa dostĊpu, 42

RegularExpressionAttribute, 58

bezpieczeĔstwo

Required, 54, 66

aplikacji internetowych, 147

RequiredAttribute, 58

ataki, 147

RequireHttps, 135

mechanizmy, 149

requireSSL, 155

biblioteka .NET

slidingExpiration, 155

programowanie asynchroniczne, 464

StringLength, 66

biblioteka skryptów

StringLengthAttribute, 58

Mapa.js, 32

TestClass, 29

bilet uwierzytelniający, 151

TestMethod, 29

báĊdy

ticketCompatibilityMode, 155

dziaáania aplikacji, 171

timeout, 155

strona báĊdu, 176

TimestampAttribute, 58

tworzenie uĪytkownika, 202

UpdateTargetId, 95

wprowadzenie záego rekordu, 268

Kup książkę

Poleć książkę

Skorowidz

529

body, 383

wyĞwietlanie, 315

buforowanie

zabezpieczenie, 338

danych ze Ĩródeá zewnĊtrznych, 133

Data Binding, 389

bundling, 475

Data Definition Language, 345

Business Intelligence, 368

Database Management System, 237

DBMS, 237

C

wiĊzy integralnoĞci, 238

DDL, 345

callback, 35

denial of service, 147

CAS, 151, 338

detail, 315

CDN, 113

Development Server, 504

Central Authentication Service, 151

DIE, 53

centralna usáuga uwierzytelnienia, 151

DisplayFormatAttribute, 58

certyfikat, 337

document object model, 92

CLR

DOM, 92

procesy systemowe, 466

domena aplikacji, 339, 466

Code Access Security, 338

instancja obiektów, 341

Confirm, 96

tworzenie, 339

connString, 341

wspóádzielenie obiektu, 341

controllers, 16

dostawcy usáug, 178

Coordinated Universal Time, 155

dostĊp anonimowy, 150

Create Read Update Delete, 301

DotNetOpenAuth, 149

cross-site scripting, 181

DPAPI, 187

CRUD, 54, 301

DRY, 53

Crystal Reports, 368

dyrektywa

@model, 46

D

E

dane

agregacja, 378

element

bezpoĞredni dostĊp do Ĩródáa, 346

customErrors, 173

eksport, 413

success, 115

do dokumentu tekstowego, 419

elevation of privilege, 147

do PDF, 420

encapsulation, 107

skoroszyt MS Excel, 421

encja, 347

tabele dynamiczne, 418

atrybuty, 54

integralnoĞü, 288, 319

bazodanowa, 54

pominiĊcie sprawdzania, 292

KategoriaProduktu, 358

reguáy, 291

odwzorowanie w bazie danych, 360

modyfikacja, 249

Order_Details, 362

platforma modelowania, 347

Orders, 361

prezentacja

Products, 361

graficzna, 406

Produkt, 358

w postaci macierzowej, 390

Entity, 347

przekazywanie

Entity Framework, 43, 347

z formularza do Ĩródáa, 46

POCO, 360

z kontrolera do widoku, 437, 439

potwierdzenie explicite, 356

serializacja i transfer struktur, 117

technologie, 349

szyfrowanie, 337

wersje, 347

typu

Entity Relationship Model, 347

ActionResult, 25

Entity SQL, 349

walidacja, 53

ERM, 347

weryfikacja, 53

Event-based Asynchronous Pattern, 465

wiĊzy integralnoĞci, 306

event-driven programming, 17

Kup książkę

Poleć książkę

530

ASP.NET MVC

F

I

File Transfer Protocol, 495

identyfikator

filtry, 127

klienta, 315

akcji, 127, 139

rekordów, 315

autoryzacyjne, 127, 144

IIS, 121, 149, 495

dynamiczne, 395

instalacja

kolejnoĞü wykonywania, 137

ASP.NET 4/4.5, 498

priorytety, 138

serwera w Windows 7, 496

Log

serwera w Windows 8, 496

metody, 141

menedĪer Windows, 499

LogAttribute

uruchamianie aplikacji, 503

definicja klasy, 140

serwer do rozwoju aplikacji, 504

podstawowe atrybuty, 128

information disclosure, 147

statyczne, 395

instancje aplikacji, 465

wáasne, 139

instancjonowanie modelu, 39

wyjątków, 128, 144

IntelliSense, 247

niestandardowe, 145

interfejs uĪytkownika

wyniku, 128, 144

przycisk umoĪliwiający dodanie pracownika,

for, 434

294

foreach, 51

przycisk usuniĊcia wybranego rekordu, 289

Forms Authentication Provider, 149

Internet Information Services, 121

formularz

internetowe usáugi informacyjne, 495

Master/Detail, 315

inĪynieria spoáeczna, 148

z podformularzem, 315

Isolation Level, 332

funkcja

izolacja, 339, 466

delay, 217

ListaPracowników, 57

J

Mid, 390

Roles.IsUserInRole, 217

JavaScript Object Notation, 117

Today, 390

jQM, 457

wyznaczająca trasĊ, 109

jQuery

zmienPrzynaleznoscDoGrupy, 217, 218

autocomplete, 116

pliki Ĩródáowe, 113

G

jQuery Mobile, 457

jQuery UI, 367

Gauge, 383, 403

wykorzystanie przycisków, 284

GDI, 368

JSON, 117

graficzny interfejs uĪytkownika, 17, 30

obiekt typu adres, 118

Graphics Device Interface, 368

GridView, 48

K

grupy uĪytkowników

autoryzacja, 158

Key Performance Indicators, 403

GUI, 17

klasa

AccountController, 198

H

ActionExecutingContext, 143

AdminController, 212

hard-coding, 167

Ajax, 94

haszowanie, 150

AjaxOptions, 94

helper methods, 25

atrybuty, 95

html helper, 455

AspNetHidden, 442

AssemblyName, 170

Assert, 29

Kup książkę

Poleć książkę

Skorowidz

531

AuthConfig, 461

klucze, 237

BundleConfig, 475

MAC, 155

Configuration, 170

obce, 238

ConfigurationManager, 170

podstawowe, 238

ConfigurationSection, 187, 188

kluczowe wskaĨniki efektywnoĞci, 403

ConnectionStringBuilder, 345

dynamiczna zmiana wartoĞci, 404

DpapiProtectedConfigurationProvider, 187

Knockout, 227

FiltryRaportuMacierzowego, 397

wykorzystanie szablonów JavaScript, 230

Form1, 484

wywoáanie skryptu, 229

FormsAuthentication, 152

kodowanie danych

Global, 430

przekazywanych przez uĪytkowników, 186

HandleErrorInfo, 133

komponent

HtmlHelper, 437

FormDanePracownika, 489

HttpClient, 483, 486

obiektu

HttpResponseMessage, 486

PartialView, 99

kontekstu, 362

typu ListBox, 99

LogOnModel, 198

ReportViewer, 368, 375

MarshallByRefObject, 341

eksport danych, 413

Membership, 152, 198, 211

nawigacja miĊdzy stronami raportu, 377

MvcApplication, 430

komponenty uĪytkownika, 30

NorthwindContext, 362

komunikaty o báĊdach, 171

ObjectContext, 348

kod statusowy, 174, 175

ObjectQuery<T>, 348

koncepcja programowania zdarzeniowego, 16

Order_Details, 362

konfiguracja

Orders, 361

poáączenia z bazą danych, 241

Osoba, 228

uprawnieĔ puli aplikacji, 454

ParametryWatku, 470

walidacji danych, 66

Pracownik, 484

konkurencyjnoĞü aplikacji, 332

Products, 361

kontekst wiązania, 389

Produkt, 230

kontrola wprowadzanych danych, 263

Raport, 392

metoda onColumnChanged, 269

Request.Browser, 460

wstrzymanie walidacji wiersza, 267

ResultExecutedContext, 144

zakoĔczenie edycji rekordu, 267

ResultExecutingContext, 144

wymuszenie, 267

Roles, 211

kontroler, 16, 25

RsaProtectedConfigurationProvider, 187

AccountController, 195

SQLConnCAS

Admin, 223

definicja, 340

AdminController, 212

stowarzyszona z modelem, 69

aplikacja Kardy, 63

System.Net.Http.Formatting.JsonMediaTypeF

asynchroniczny, 466

ormatter, 491

a zadania, 472

System.Text.RegularExpressions, 74

dane wyjĞciowe, 25

System.Web.Security.Roles, 159

domeny, 150

Task, 465, 472

ErrorController, 174

testująca, 29

Glosowania, 103

Thread, 465, 469

Home, 182, 224, 228, 231

TransactionScope, 327

BezpieczeĔstwo, 336

UrlRoutingModule, 121

filtr wyjątku, 131

ViewData, 434, 436, 439

HomeController, 184

WebApiConfig, 478

EksportDanych, 415

WebConfigurationManager, 170

Northwind, 245

Wpisy, 427, 436

interfejs Web API, 477

KsiegaGosciController, 424

Kup książkę

Poleć książkę

532

ASP.NET MVC

kontroler

ã

Lista, 93

Mapa, 33

áaĔcuch QueryString, 26

autouzupeánianie, 117

modyfikacja, 45

M

niedostĊpne metody publiczne, 136

obsáuga POST, 431

master, 315

panelu administracyjnego, 212

mechanizm

zarządzanie grupami uĪytkowników, 220

automatycznych wáaĞciwoĞci, 57

Pracownicy, 57, 64

autoryzacji, 157

PracownicyController

eksportu danych, 413

implementacja, 481

filtrów, 127

Produkty, 351

grupowania plików, 475

projektowanie, 27

IntelliSense, 119

przekazywanie danych do widoku

Query¬String, 117

zmiany, 439

szyfrujący, 187

uwierzytelnienia, 195

transakcji, 319, 321

klasa, 198

przelewy bankowe, 326

model, 196

wyznaczania trasy przejzdu, 34

widoki, 203

meotda

uzupeánienie o widok, 31

Insert, 299

uĪycie modelu odsyáanego przez widok, 440

ProtectSection, 191

ValuesController, 478

WersjonowanieDataRow

weryfikacja funkcjonalnoĞci, 28

definicja widoku, 265

wiązanie adresu URL z akcją, 430

message authentication code, 155

widoki, 58

metoda

konwersja obrazu, 278

.on, 262

kreator

@Html.ValidationSummary, 204

Add New Item, 242

About, 124

Add View, 59, 302

AcceptChanges, 255, 263

Application, 162

ActionLink

blokowania szczegóáów báĊdów, 172

ActionLink, 61, 63, 353

dodanie uĪytkowników, 164

AddUserToRole, 159

grup uĪytkowników, 165

akcji, 25

Provider, 162

parametry opcjonalne, 27

Publish Web, 501

aktualizacja statystyk ankiety, 105

Security, 162

AktualizujZdjeciePracownika, 288

tworzenia pracownika, 59

Application_AuthenticateRequest, 108

ustawieĔ aplikacji, 167

Application_BeginRequest, 107, 108

widoków, 60

Application_End, 108

wybór dostawców usáug, 178

Application_EndRequest, 107

kwerendy parametryczne, 274, 401

Application_Error, 108, 172

Application_Start, 108, 123, 139, 430

L

asynchroniczna kontrolera, 472

AttachTo, 356

layout witryny, 30

Authenticate, 152

LINQ

AutoUzupelnienie, 117

to Entities, 349

zapytanie LINQ, 118

lista rekordów, 301

BeginEdit, 267

prezentacja, 304

BeginForm, 47, 94

logika

BeginTransaction, 326, 332

aplikacji, 30

CancelEdit, 263

bazodanowa, 30

ChangeObjectState, 356

biznesowa, 44

Kup książkę

Poleć książkę

Skorowidz

533

ChangePassword, 200

kontrolera Mapa, 34

hiperáącze, 208

testowanie, 28

widok, 206

IsAjaxRequest, 101

ChangePasswordSuccess

IsMatch, 76

widok, 206

IsNotNull, 29

Create{NazwaEncji}, 354

IsUserInRole, 159

CreateRole, 159

Label, 35

CreateUser, 153

ListaDostawcow, 252, 255

czyBazaDanychIstnieje, 326

ListaPracownikow, 248

daneDostawcyForm, 262

hiperáącze skojarzone, 249

DBegin¬Edit, 263

LogOff, 198

Delete, 270

LogOn, 198

DeleteObject, 357

Macierzowy, 397

DeleteRole, 159

mapowalna, 26

DeleteUser, 153

MetodaAsynchronicznaWatki, 472

DeszyfrujPlikKonfiguracyjny, 191

ModelState.AddModelError, 199

DodajDostawce, 255

MvcApplication.RegisterRoutes, 430

DodajElementDoListy, 94, 97, 101

obsáuga zapytaĔ POST, 431

DodajGrupe, 223

odczyt aktualnych bilansów kont, 323

DodajKomentarz, 185

OdczytajStanyKont, 326

DodajPracownika, 299, 491

OnActionExecuted, 143

DopiszDoPlikuLog, 430

OnActionExecuting, 127, 143

Edit, 356

onColumnChanged, 269

EdytujDaneDostawcy, 261

OnResultExecuted, 144

EdytujDanePracownika, 493

OnResultExecuting, 144

Eksportuj, 418

onRowChanged, 266

EmptyResult, 26

onRowChanging, 268

EndEdit, 263

OpenConfiguration, 170

EndForm, 47

otwarcie poáączenia z bazą danych, 341

ErrorCodeToString, 201

OtworzPlikDanych, 107

Fill, 246

Page_Load, 399

FillByCityName, 275

PartialViewResult, 26

FormatDateTime, 390

PobierzDane, 394

FormsAuthentication.SetCookie, 199

modyfikacja, 401

GenerujDane, 468

PobierzPlikLogu, 141, 143

Get(int id), 478

PobierzZdjecie, 278

GetAllRoles, 159

PokazTrasy, 51

GetAsync, 486

PokazWyniki, 107

GetChildRecords, 291

pomocnicza, 25, 455

GetSection, 170

Html.Encode, 51

GetSectionGroup, 170

wykorzystanie, 456

GetUser, 153

PostAsJsonAsync, 486

GetUsersInRole, 160

PostAsXmlAsync, 486

globalna

PostAsync, 486

aplikacji ASP.NET, 108

PostResolveRequestCache, 121

Grupy, 223

PracownicyWedlugMiast

HasVersion, 263

przechowywanie wartoĞci filtru, 285

Html.ListBox, 97

PutAsJsonAsync, 493

Html.RenderPartial, 101

PutAsXmlAsync, 493

Html.ValidationSummary, 61

PutAsync, 493

HtmlHelper.Label, 437

ReadAsAsync, 486

ImiePierwszegoPracownika, 246, 247

ReadXml, 107

Include, 475

ReadXmlSchema, 107

Index, 47, 79, 97, 101

RedirectFromLoginPage, 152

Kup książkę

Poleć książkę

534

ASP.NET MVC

metoda

ValidationMessage, 437

RedirectResult, 26

ValidationMessageFor, 61

RedirectToAction, 26

ValidationSummary, 437

RedirectToLoginPage, 152

ViewResult, 26

RedirectToRoute, 26

WebApiConfig.Register, 478

RedirectToRouteResult, 26

WersjonowanieDataRow, 265

RefreshReport, 384

sparametryzowanie, 266

Register, 199, 478

Wpisy.ZapiszDoPlikuXml, 430

RegisterAuth, 461, 462

wykonywanie przelewów, 323

RegisterBundles, 475

WyswietlLog, 141, 142, 143

RegisterGlobalFilters, 171

wyswietlMape, 34, 35

RegisterRoutes, 94, 123

WyswietlTrase, 50

RejectChanges, 256, 263

modyfikacja, 135, 166

rejestrowanie zdarzeĔ aplikacji, 430

wyznaczTrase, 35

RemoveUserFromRole, 160

ZaktualizujWyniki, 107

Render, 384, 413, 418

ZapamiĊtajNazwĊUĪytkownika, 432

RenderPartial, 99

ZmienStanKont, 328

Response.Write, 223

Microsoft SQL Server, 319

Result.ExecuteResult, 143

sposoby uwierzytelnienia, 344

RoleExists, 159

MIME type, 390

Roles.IsUserInRole, 216

minification, 476

Roles.RemoveUsersFromRole, 223

minimalizacja, 476

route, 35

model, 16, 39

Rows.Add, 255

APM, 464

RozpocznijEdycje, 269

ChangePasswordModel, 196

hiperáącze uruchamiające, 267

EAP, 465

SaveChanges, 354

integracja z elementami aplikacji, 39

ScaffoldingMasterDetail, 317

LogOnModel, 196

Session_End, 108

obsáuga plików XML, 427

Session_Start, 108

przesyáanie z kontrolera do widoku, 432, 435

SetAuthCookie, 152

RegisterModel, 196

SetParameters, 401, 405

TAP, 465

SignOut, 152

model binding, 48

SprawdzDopasowania, 79

model danych encji, 348

SprawdzPoprawnoscDatyZatrudnienia, 67

dodawanie encji, 353

SqlPermission.Add, 343

edycja encji, 355

SqlTransaction.Commit, 326

kreator, 348, 349

SqlTransaction.Rollback, 326

áączenie encji, 359

StronaNieIstnieje, 175

metody akcji, 354

submit, 115

opcje, 361

SzyfrowaniePlikuKonfiguracyjnego, 190

projektowanie relacji, 43

szyfrująca i deszyfrująca, 189

tworzenie, 349

SzyfrujPlikKonfiguracyjny, 191

schematu bazy danych, 357

TextBox, 35

usuwanie encji, 357

Thread.Sleep, 469, 472

wybór tabel, 350

TransactionScope.Complete, 329

model first, 52

Transfer, 36

model związków encji, 347

UpdateUser, 153

models, 16

UstawParametryRaportu, 399

Model-View-Controller, 15

UsunGrupe, 223

Model-View-ViewModel, 227

UsunTrase, 50, 51

Model-Widok-Kontroler, 15

UtworzPracownika, 64

moduá

Uzytkownicy, 216

UrlAuthorizationModule, 157

ValidateUser, 152, 153

Kup książkę

Poleć książkę

Skorowidz

535

MVC, 15

O

a Web Forms, 16, 365, 367, 423

kod, 442

OAuth, 461

serwer internetowych usáug

obiekt

informacyjnych, 495

AppDomain, 339, 341

wydajnoĞü, 443

Chart, 406

wykorzystanie w projektach, 444

Command, 239

ataki XSS, 185

Connection, 239, 241

autoryzacja, 158, 162

wáaĞciwoĞüi, 243

bezpieczeĔstwo aplikacji, 152

ConnectionString, 343

buforowanie, 134

sposoby uwierzytelniania, 344

domyĞlne wzorce aplikacji, 21

szyfrowanie informacji, 335

kreator aplikacji, 20

DataAdapter, 239

mechanizm filtrowania, 127

DataGridView, 491

Model Binder, 355

DataReader, 239, 273

nazwa kontrolera, 27

DataRow, 255

obsáuga interakcji klient-serwer, 121

kontrola wprowadzonych danych, 263

parametry opcjonalne, 27

usuwanie rekordów, 270

pobieranie parametru z adresu URL, 26

wersje, 263

projektowanie aplikacji, 18, 52

wersja proponowana, 265

przetwarzanie Īądania aplikacji klienckiej, 18

wersjonowanie, 263

sprawdzanie poprawnoĞci danych, 68

wáaĞciwoĞci, 255

struktura modelu, 39

DataSet, 239, 244, 345

techniki walidacji danych, 53

edycja rekordów, 257

utworzenie widoku, 30

uzupeánianie o komponenty graficzne, 367

kreator konfiguracji TableAdapter, 274

walidacja, 438

modyfikacja danych, 249

wersja 4, 449

tworzenie nowych rekordów, 250

wybór mechanizmu przetwarzającego widoki, 21

usuwanie rekordów, 271

wzorce URL, 122

wstawianie rekordów, 251

zbiór modeli szablonu aplikacji, 196

wymuszenie wiĊzów integralnoĞci, 292

Ĩródáo danych, 40

DataTable, 107

MVC4, 449

DirectionsService, 35

grupowanie i optymalizacja skryptów, 475

dostawca, 153

kaskadowe arkuszye stylu, 475

FormCollection, 47

przetwarzanie asynchroniczne, 464

jqXHR, 218

przystosowanie do urządzeĔ mobillnych, 457

List, 389

testowanie aplikacji, 457

logiki biznesowej, 348

uwierzytelnianie, 460

materializacja, 348

integracja z portalem Facebook, 462

Matrix, 390

wsparcie dla urządzeĔ mobilnych, 450

Membership, 152

zdalna autoryzacja, 461

MvcRouteHandler, 121, 122

MVVM, 227

o okreĞlonym typie danych, 244

o silnej typizacji, 244

N

o sáabej typizacji, 247

ObjectStateManager, 348

narzĊdzie

PartialView, 98

aspnet_regiis, 187

ReportViewer, 368

przetwarzanie tekstu, 73

ReportViewer.LocalReport, 418

Northwind

Request, 26, 101, 432

instalacja, 240

Response, 26

kwerenda wybierająca, 240

Route, 122

pobieranie informacji o dostawcach, 251

ShippersRow, 255

NuGET, 483

SqlConnCAS, 341

nullable-types, 27

SqlConnection, 326

Kup książkę

Poleć książkę

536

ASP.NET MVC

obiekt

piaskownica, 341

TableAdapter, 239, 244, 273, 274, 345

Plain Old CLR Object, 360

edycja danych, 279, 286

platforma .NET

wstawianie danych, 294

usáugi uwierzytelniania, 153

TransactionScope, 329

plik

parametryzacja, 331

ascx, 22

typu

aspx, 22

adres, 118

bmp, 390

AppDomain, 466

cookie, 151

ConcurrentDictionary, 479

cookies, 154, 155

NorthwindDataSet, 247

cshtml, 22, 434

ObjectSet<T>, 348

css, 475

Route, 121

edmx, 360

Thread, 466

jpg, 390

UrlRoutingModule, 121

js, 475

ViewBag, 36

konfiguracyjny

przekazywanie danych do widoku Web

zabezpieczenie, 187

Forms, 376

master, 22

ViewData, 36, 79, 432

png, 390

Object Relational Mapping, 347

rdl, 368

Object Services, 348

rdlc, 368

obsáuga báĊdów

tekstowy

konfiguracja, 132

wyĞwietlenie w przeglądarce, 143

wáączenie, 129

vbhtml, 22

odrzucenie informacji o transakcji, 148

POCO, 360

odĞwieĪanie witryny

pola klucza, 237

a fragment widoku, 97

polecenie

aktualizacja zawartoĞci, 113

@Html.Encode, 187

czĊĞciowe, 96

@Scripts.Render, 476

OnSuccess, 96

@Styles.Render, 476

operator

GET, 18

await, 474

POST, 18

konkatenacji, 382

poáączenie

Top %, 411

ze Ĩródáem danych, 241

Top N, 411

pomocnik HTML, 455

ORM, 347

Portable Document Format, 413

poĞrednik, 341

P

poziom izolacji, 332

Chaos, 333

parametr

konfiguracja, 332

CountryName, 401

ReadCommitted, 333

data, 115

ReadUncommitted, 333

filtr, 117

Serializable, 333

mapDivId, 35

Snapshot, 333

maxIloscRekordow, 117

Unspecified, 333

Order, 137

poziom zaufania, 339

raportu, 395

ograniczenie, 340

scopeTimeOut, 330

procedura

wartoĞci, 330

ajax, 115

TransactionScopeOption

Ajax.BeginForm, 96

wartoĞci, 329

niemapowalna, 26

type, 115

PartialView, 26

parametryzacja kwerend, 274

serialize, 115

partial view, 30

Kup książkę

Poleć książkę

Skorowidz

537

proces, 465

Raport, 368

programowanie

szablon

oparte na zdarzeniach, 17

mechanizmy uwierzytelnienia, 156

zdarzeniowe, 17

zarządzanie grupami uĪytkowników, 159

projekt aplikacji MVC

Transakcje, 319

ankieta, 102

aktualizacja danych, 328

asynchroniczne przetwarzanie ĪądaĔ HTTP, 92

formularz aktualizacji, 328

BezpieczeĔstwo, 181, 336

szablon stron, 320

nawiązanie komunikacji ze Ĩródáem

uzupeánianie widokiem GridView, 49

danych, 342

WyrazeniaRegularne, 76

szyfrowanie pliku konfiguracyjnego, 191

Zapytania_EF, 349

dodawanie i wyĞwietlanie komentarzy, 183

projekt aplikacji MVC4

domyĞlny, 20

AsynchronicznyKontroler, 466

EksportDanych, 413

prezentacja danych, 468

Filtry, 131

AutoryzacjaOAuth, 461

formularz oceny, 107

implementacja serwisu sieciowego, 479

Kadry

konfiguracja grupowania, 475

walidacja adresu e-mail, 84

MobileMvc, 450

Kardy, 55

testowanie, 457

KsiegaGosci_MVC3, 424

pobranie zdjĊcia, 452

lista prezentująca dodawane elementy, 97

przygotowanie listy pracowników, 452

MojaNawigacja, 18

SerwisSieciowy, 477

blokowanie samodzielnego tworzenia

projekt aplikacji Windows Forms

kont, 224

edycja danych, 487

buforowanie danych, 135

KlientWebAPI, 483

implementacja warstwy dostĊpu, 42

tworzenie nowych pracowników, 486

instalacja na serwerze IIS, 500

Īądania typu

komunikat powitalny, 168

DELETE, 493

komunikaty, 110

POST, 486

komunikaty o báĊdach, 173

PUT, 491

mechanizm podpowiedzi, 115

projektowanie

model weryfikujący poĞwiadczenia

kontrolera, 27

uĪytkowników, 196

widoku, 31

modele kontrolera uwierzytelnienia, 196

protokóá

odĞwieĪenie widoku mapy, 109

FTP, 495

struktura, 21

Kerberos, 150

szablon, 19

NTLM, 150

szablon witryny, 225

SMTP, 495

trasowanie ĪądaĔ HTTP, 123

SSL, 337

uzupeánienie o bazĊ danych, 40

proxy, 341

uzupeánienie o walidacjĊ danych, 69

przechowywanie

widok báĊdu, 175

informacji o trasach, 44

zablokowanie nieautoryzowanego

wyników gáosowania, 107

dostĊpu, 128

przeciąĪenie aplikacji, 147

zarządzanie uĪytkownikami, 163

przekazywanie

zarządzanie grupami uĪytkowników, 212

danych, 44

zarządzanie procesem logowania, 198

miĊdzy widokiem a kontrolerem, 36

MsAjax, 92

parametrów do metod akcji kontrolera, 26

NorthwindMVC, 241

przestrzeĔ nazw

lista rekordów, 301

System.Threading, 465

szablon witryny, 250

przyjazne linki, 122

POCO, 361

publikowanie aplikacji, 495, 500

priorytety reguá filtrowania, 137

na serwerze IIS, 497

Kup książkę

Poleć książkę

538

ASP.NET MVC

pule aplikacji, 465, 497

RDL, 418

konfiguracja, 498

rekordy

Windows 7, 499

edycja, 307

Windows 8, 500

lista, 301

tworzenie, 311

R

usuwanie, 305

Relationship, 347

raporty

Report Definition Language, 418

dane w postaci macierzowej, 390

Report Wizard, 371

data, 386

repudiation, 148

definicja

request, 442

dynamiczna, 418

response, 442

filtrowanie danych, 394

responsywnoĞü, 464

na poziomie Ĩródáa, 401, 418

rollback transaction, 319

filtry, 395

routing, 22, 430

formaty prezentacji danych, 379

routowanie, 121

grupowanie danych, 381

hiperáącza, 387

S

nawigacyjne, 376

kolumny obliczeniowe, 378

SandBox, 341

konfiguracja

scaffolding, 301

filtrowania dynamicznego, 396

Secure Socket Layer, 337

typu, 392

sekcja

Ĩródáa danych, 368

membership, 178

kreator formuá, 382

roleManager, 179

macierzowe, 391

set, 441

numery stron, 386

serwer

obrazy, 390

SMTP

parametry, 383, 394

konfiguracja, 171

konfiguracja, 399

usáug informacyjnych, 149

paski narzĊdziowe, 379

weryfikacja toĪsamoĞci uĪytkownika, 149

pola

Simple Mail Transfer Protocol, 495

bazy danych, 386

sáowo kluczowe

formularza, 398

@helper, 455

raportu, 390

await, 474

poáączenie z aplikacją, 368

using, 47, 329

prezentowanie ukáadu graficznego, 383

spaghetti code, 18

projektowanie, 371

spoofing, 147

i prezentowanie, 368

SQL Server Reporting Services, 367

przystosowanie strony do obsáugi raportów,

SSRS, 367

387

stan pola

renderowanie, 368

typu CheckBox, 269

tryby definicji, 368

pobieranie, 264

tworzenie

STRIDE, 148

definicji lokalnej, 368

strona startowa

formuá, 378

MojaNawigacja, 226

przy uĪyciu kreatora, 372

strona wzorcowa, 30

ukáad, 383

aplikacji Kadry, 55

wstawianie nagáówka i stopki, 385

referencja do bibliotek skryptów, 70

wykresy, 406

systemowy serwer usáug informacyjnych, 121

wyĞwietlenie, 375

szyfrowanie poáączenia, 335

Razor, 21, 30

ze Ĩródáem danych, 336

przetwarzanie definicji widoku, 208

Kup książkę

Poleć książkę

Skorowidz

539

T

transakcje, 319

automatyczne zarządzanie, 327

tabela danych

otaczające, 329

Categories, 418

poziom izolacji, 332

Customers, 305

tworzenie i rĊczna kontrola, 319

deklaracje kaskadowych arkuszy stylu, 275

trasowanie, 121

edycja

aplikacja, 430

danych, 279

blokowanie dostĊpu, 124

danych w wierszu, 257

domyĞlne reguáy, 123

rekordów, 307, 310

KsiĊgaGosci_MVC3, 430

Employees, 240, 288

wáasne reguáy, 124

filtrowanie listy, 275

trasowanie adresów URL, 121

integralnoĞü danych, 288

T-SQL, 319

Konta, 321, 326

czynnoĞci bazodanowe, 345

kwerenda wybierająca, 240

tworzenie

Orders, 291, 315

bazy danych, 40

OrdersDetails, 307

interfejsu uĪytkownika

pobieranie fotografii, 276

jQM, 459

pobranie danych z wykorzystaniem JScript, 280

szablony, 231

prezentacja

wzorzec MVVM, 227

danych, 277, 325

uĪytkownika, 200

informacji, 252

kody báĊdów, 201

listy danych, 248

widoku Index, 231

pierwszego rekordu, 246

wzorców wyraĪeĔ regularnych, 76

rekordów, 317

typed DataSet, 244

przekazanie do widoku, 248

typizacja

Shippers, 251

silna, 46

tworzenie rekordów, 311

sáaba, 46

umieszczenie w bazie danych, 321

typy puste, 27

uruchomienie edycji danych, 258

usuwanie

U

danych, 288

rekordów, 271, 305, 306

ujawnienie krytycznych informacji, 147

widok báĊdu, 268

ukryte pola, 441

wstawianie

Uniform Resource Locator, 18

danych, 294

URL, 18

rekordów, 251

uruchomienie aplikacji, 503

wyĞwietlenie listy

usáuga

konfiguracja hiperáącza, 315

AspNetSqlProvider, 178

zakoĔczenie edycji rekordu, 267

ustawienia aplikacji, 167

tablica asocjacyjna, 479

odczytanie z pliku konfiguracyjnego, 169

tablica bajtów

UTC, 155

konwersja do bitmapy, 277

uwierzytelnienie, 149

tampering, 147

centralny serwis, 151

task pane, 371

certyfikaty, 150

Task-based Asynchronous Pattern, 465

formularze logowania, 151

TDD, 15

atrybuty elementu forms, 154

test jednostkowy funkcjonalnoĞci kontrolera,

konfiguracja, 153

28

mechanizmy zintegrowane z ASP.NET, 149

Test-Driven Development, 15

na bazie protokoáu NTLM, 150

testowanie

przekazywanie informacji, 151

aplikacji, 29

proste, 150

wzorców wyraĪeĔ regularnych, 76, 78

skrócone, 150

Toolbox, 274

usáugi systemu Windows, 150

Kup książkę

Poleć książkę

540

ASP.NET MVC

V

weryfikacja

kodu pocztowego, 81

variable placeholders, 122

toĪsamoĞci, 151

view engine, 21

widok, 16, 25, 30

views, 16

aplikacji

viewstate, 442

MVC4, 453

Visual Studio

przystosowanie do urządzeĔ mobilnych,

kreator projektu, 19

459

Visual Studio Development Server, 496

Transakcje, 326

VS 2012

czĊĞciowy, 30

instalacja, 240

dodawanie, 31

kreator Add New Item, 242

edycji klienta, 307

VSDS, 496

elementy, 31

formularz

W

dodawania wpisu, 425

logowania, 203

walidacja

kontrolera

adresu

aplikacja Kadry, 58

e-mail, 83

panelu administracyjnego, 222

URL, 83

kontrolera AdminController, 213

WWW, 84

kontrolera Dopasowania, 77

danych, 53

kontrolera ErrorControler, 174

a technologia Entity Framework, 68

kontrolera Glosowania, 103

konfiguracja, 66

kontrolera Home, 131, 169, 182, 307

modelu Pracownik, 66

metodaWyswietlLog, 142

odwoáanenie do jQuery, 61

Raport, 375

po stronie klienta, 67

Transakcje, 320

wyraĪenia regularne, 73

kontrolera HomeController, 246

skrypty i style walidatorów, 438

AsynchronicznyKontroler, 468

wáasnoĞci klasy encji, 435

EksportDanych, 417

wątek, 465

kontrolera Lista, 93

Web API, 477

kontrolera Mapa, 33, 34

edycja danych, 491

formularz, 70

klient, 483

Trasa, 50

konfiguracja interfejsu, 478

kreatora

obsáuga ĪądaĔ typu POST, 486

konta uĪytkownika, 205

pobranie danych z serwera, 485

zmiany hasáa, 206

serwis sieciowy, 479

listy

usuwanie danych, 493

klientów, 302

web serwer, 495

pracowników, 61

Web Site Administration Tool, 161

wyznaczonych tras, 48

konfigurowanie uprawnieĔ, 165

zamówieĔ, 316

zarządzanie

mapy

dostawcami usáug, 178

odĞwieĪenie, 108

uĪytkownikami, 163

parametryzacja, 34

WebForms, 17

mechanizm przetwarzania, 30

bezpieczeĔstwo aplikacji, 152

modyfikowanie formularza, 437

integracja komponentów z MVC, 367

obsáuga wyjątków, 130

kontrolka Repeater, 434

Pracownicy.cshtml', 453

obsáuga wyjątków, 172

projektowanie, 31

przetwarzanie Īądania aplikacji klienckiej, 18

transfer danych do kontrolera, 36

separacja modelu, 427

typu CRUD, 52

weryfikacja poprawnoĞci projektu, 434

Kup książkę

Poleć książkę

Skorowidz

541

typu GridView

X

implementacja, 48

typy plików, 30

XSS, 181

utworzenie, 30

uzupeánianie treĞcią, 33

Z

walidacja, 435

wiązanie z modelem, 437

zabezpieczenia

wstawianie rekordów, 312

aplikacji bazodanowych, 335

wyników ankiety, 105

ataki XSS, 187

wyĞwietlanie wpisów, 432

informacje o báĊdach, 171

wielodziedziczenie, 360

kodu poĞredniego, 338

Windows Authentication Provider, 149

konfiguracja, 161

Windows Data Protection API, 187

konfiguracja aplikacji

Windows Forms

kreatory, 162

implementacja klienta, 483

obsáuga wyjątków, 171

Windows Live ID, 149

pliku konfiguracyjnego, 167, 187

wáaĞciwoĞü

przed atakami, 148

ConnectionString, 243

ustawienia aplikacji, 167

IsMobileDevice, 460

witryny, 181

ModelState.IsValid, 47

zarządzanie dostawcami usáug, 178

wstawianie rekordów, 299

záoĞliwy kod, 181

wstrzykniĊcie kodu, 181, 185

zarządzanie

wykresy, 406

uĪytkownikami i grupami, 211

konfiguracja

dostĊp do panelu administracyjnego, 216

serii danych, 407

lista grup, 221

typu, 407

podziaá na grupy, 220

pobranie danych Ĩródáowych, 408

pobieranie listy, 213

wyáączenie aplikacji, 171

tworzenie nowej grupy, 222

wyraĪenia lambda, 46

zmiana przynaleĪnoĞci do grupy, 215

wyraĪenia regularne, 73

záoĪonoĞcią aplikacji, 16

atrybuty modelu, 84

zdarzenie

liczba wystąpieĔ skáadników, 76

DataGridView.CellDoubleClick, 491

wzorzec

rejestrowanie, 430

adres URL, 83

záoĞliwy kod

imiĊ ĪeĔskie, 81

dziaáanie, 181

kod pocztowy, 80

znacznik

tworzenie, 76

input, 288

znaki i cyfry, 74

znaki specjalne

znaki specjalne, 74

odnajdywanie, 74

znaki w wyznaczonych miejscach áaĔcucha, 75

związanie z modelem, 48

wzorzec

związek, 347

odnajdywanie

znaków i cyfr, 74

ē

znaków specjalnych, 74

znaków w wyznaczonych miejscach

Īądanie, 25

áaĔcucha, 75

asynchroniczna obsáuga, 92, 466, 470

okreĞlanie

skrypty, 318

liczby wystąpieĔ znaków, 76

zadania, 473

GET, 64

POST, 64

przetwarzanie, 127

zablokowanie obsáugi, 124

Kup książkę

Poleć książkę

Notatki

Kup książkę

Poleć książkę

KSIĄŻKI TEGO AUTORA

Visual C++. Gotowe rozwiązania dla programistów Windows ASP.NET Web Forms. Kompletny przewodnik dla programistów interaktywnych aplikacji internetowych w Visual Studio ASP.NET MVC. Kompletny przewodnik dla programistów interaktywnych aplikacji internetowych w Visual Studio