ASP.NET MVC 4. Programowanie - Alt Control Delete · 211 ROZDZIA 10. Programowanie na platformy...

50

Transcript of ASP.NET MVC 4. Programowanie - Alt Control Delete · 211 ROZDZIA 10. Programowanie na platformy...

Tytuł oryginału: ASP.NET MVC 4. Programowanie

Tłumaczenie: Robert Górczyński

ISBN: 978-83-246-6644-7

© 2013 Helion S.A.

Authorized Polish translation of the English edition Programming ASP.NET MVC 4, ISBN 9781449320317 © 2012 Jess Chadwick, Todd Snyder, Hrusikesh Panda

This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.

Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

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

Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: 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/aspm4pMożesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.

Printed in Poland.

• Kup książkę• Poleć książkę • Oceń książkę

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

3

Spis tre�ci

Wprowadzenie ........................................................................................................................11

Cz��� I. Rozkr�camy si� .......................................................................................................... 15

Rozdzia� 1. Podstawy ASP.NET MVC .......................................................................................17Opracowane przez Microsoft platformy tworzenia aplikacji sieciowych 17

Active Server Pages (ASP) 18ASP.NET Web Forms 18ASP.NET MVC 18

Architektura MVC 19Model 20Widok 20Kontroler 20

Co nowego w ASP.NET MVC 4? 20Wprowadzenie do aplikacji EBuy 22Instalacja ASP.NET MVC 23Tworzenie aplikacji ASP.NET MVC 23

Szablony projektów 23Konwencja przed konfiguracj� 27Uruchamianie aplikacji 28Routing 28Konfiguracja tras 29Kontrolery 31Akcje kontrolera 32Obiekt ActionResult 32Parametry akcji 33Filtry akcji 36

Widoki 36Wyszukiwanie widoków 37Poznaj Razor 38Odró�nianie kodu od znaczników 39Uk�ady graficzne 40Widoki cz��ciowe 41Wy�wietlanie danych 43Metody pomocnicze HTML i URL 45

Modele 46

Poleć książkęKup książkę

4 � Spis tre�ci

Zebranie wszystkich komponentów w ca�o�� 47Trasa 47Kontroler 47Widok 49

Uwierzytelnianie 52AccountController 54

Podsumowanie 55

Rozdzia� 2. ASP.NET MVC dla programistów formularzy sieciowych ................................. 57Wszystko kr�ci si� wokó� ASP.NET 57

Narz�dzia, j�zyki i API 58Modu�y i procedury obs�ugi HTTP 58Zarz�dzanie stanem 58Wdra�anie i �rodowisko uruchomieniowe 59

Wi�cej ró�nic ni� podobie�stw 59Oddzielanie logiki aplikacji od logiki widoku 60Adresy URL i routing 60Zarz�dzanie stanem 61Generowanie kodu HTML 62

Tworzenie widoku ASP.NET MVC za pomoc� sk�adni Web Forms 66S�owo ostrze�enia 66

Podsumowanie 67

Rozdzia� 3. Praca z danymi ....................................................................................................69Tworzenie formularza 69Obs�uga akcji POST formularza 71Zapis danych w bazie danych 71

Technika Code First — zasada „konwencja przed konfiguracj�” 72Tworzenie warstwy dost�pu do danych z u�yciem techniki Code Firstw Entity Framework 72

Weryfikacja danych 73Okre�lanie regu� biznesowych za pomoc� adnotacji danych 74Wy�wietlanie komunikatów o b��dach z procesu weryfikacji danych 77

Podsumowanie 80

Rozdzia� 4. Programowanie po stronie klienta .................................................................... 81Praca z j�zykiem JavaScript 81Selektory 83Udzielanie odpowiedzi na zdarzenia 86Manipulacje modelem DOM 88AJAX 89Weryfikacja danych po stronie klienta 91Podsumowanie 95

Poleć książkęKup książkę

Spis tre�ci � 5

Cz��� II. Kolejny poziom ......................................................................................................... 97

Rozdzia� 5. Architektura aplikacji sieciowej .........................................................................99Wzorzec MVC 99

Zasada separacji zada� 99MVC i platformy sieciowe 100

Architektura aplikacji sieciowej 102Architektura logiczna 102Architektura logiczna aplikacji sieciowej ASP.NET MVC 102Najlepsze praktyki w zakresie architektury logicznej 104Architektura fizyczna 105Przestrze� nazw projektu i nazwy podzespo�ów 105Opcje wdro�enia 106Najlepsze praktyki w zakresie architektury fizycznej 107

Regu�y dotycz�ce architektury aplikacji 108SOLID 109Odwracanie sterowania 114

Nie powtarzaj si� 121Podsumowanie 122

Rozdzia� 6. Usprawnianie witryny poprzez u�ycie technologii AJAX ............................... 123Cz��ciowe generowanie strony 123

Generowanie widoków cz��ciowych 124Wygenerowanie kodu JavaScript 129

Wygenerowanie danych JSON 129�danie danych JSON 131Szablony po stronie klienta 131

Ponowne u�ywanie tej samej logiki zarówno w ��daniach AJAX, jak i pozosta�ych 134Udzielanie odpowiedzi na ��dania AJAX 135Udzielanie odpowiedzi na ��dania JSON 136Zastosowanie tej samej logiki w wielu akcjach kontrolera 137

Wysy�anie danych do serwera 138Przekazywanie skomplikowanych obiektów JSON 140Wybór ��cznika modelu 141Efektywne wysy�anie i odbieranie danych JSON 143

Wykonywanie ��da� AJAX mi�dzy domenami 144JSONP 144W��czanie Cross-Origin Resource Sharing 147

Podsumowanie 148

Rozdzia� 7. Platforma Web API ASP.NET ............................................................................. 149Tworzenie us�ugi danych 149

Rejestracja tras Web API 151Wykorzystanie techniki „konwencja przed konfiguracj�” 151Nadpisanie konwencji 152U�ycie API 153

Poleć książkęKup książkę

6 � Spis tre�ci

Stronicowanie i pobieranie danych 155Obs�uga wyj�tków 156Media 158Podsumowanie 161

Rozdzia� 8. Zaawansowane dane ....................................................................................... 163Wzorce dost�pu do danych 163

Klasy POCO 163U�ywanie wzorca repozytorium 164Mapowanie obiektowo-relacyjne 166

Ogólny opis Entity Framework 168Wybór podej�cia w zakresie dost�pu do danych 169Wspó�bie�no�� w bazie danych 169

Tworzenie warstwy dost�pu do danych 171Podej�cie Entity Framework Code First 171Model domeny biznesowej aplikacji EBuy 173Praca z kontekstem danych 176

Sortowanie, filtrowanie i stronicowanie danych 178Podsumowanie 183

Rozdzia� 9. Zapewnianie bezpiecze�stwa .......................................................................... 185Tworzenie bezpiecznej aplikacji sieciowej 185

Obrona 185Nigdy nie ufaj danym wej�ciowym 186Wymuszanie stosowania regu�y najmniejszych uprawnie� 186Przyjmuj za�o�enie, �e zewn�trzne systemy s� niebezpieczne 186Ogranicz mo�liwo�ci ataku 186Wy��cz niepotrzebne funkcje 187

Zabezpieczanie aplikacji 187Zabezpieczanie aplikacji intranetowej 188Uwierzytelnianie formularzy 193

Ochrona przed atakami 200SQL Injection 201Cross-Site Scripting 206Cross-Site Request Forgery 207

Podsumowanie 209

Rozdzia� 10. Programowanie na platformy mobilne ...........................................................211Funkcje mobilne platformy ASP.NET MVC 4 211Wi�ksza przyjazno�� aplikacji mobilnej 213

Tworzenie widoku mobilnego dla aukcji 214Rozpocz�cie pracy z jQuery Mobile 215Usprawnianie widoku za pomoc� jQuery Mobile 218Unikanie widoków biurkowych w witrynie mobilnej 223

Usprawnianie wersji mobilnej witryny 224

Poleć książkęKup książkę

Spis tre�ci � 7

Technika Adaptive Rendering 225Znacznik viewport 225Wykrywanie funkcji mobilnych 226Zapytania mediów CSS 228Widoki dla konkretnych przegl�darek internetowych 229

Tworzenie nowej aplikacji mobilnej zupe�nie od pocz�tku 231Platforma jQuery Mobile 232Szablon aplikacji mobilnej w ASP.NET MVC 4 232U�ywanie szablonu aplikacji mobilnej w ASP.NET MVC 4 233

Podsumowanie 236

Cz��� III. Zagadnienia zaawansowane ............................................................................... 237

Rozdzia� 11. Operacje na danych przeprowadzane równolegle,asynchronicznie i w czasie rzeczywistym .......................................................239

Kontroler asynchroniczny 239Tworzenie kontrolera asynchronicznego 240Kiedy u�ywa� kontrolera asynchronicznego? 242

Asynchroniczna komunikacja w czasie rzeczywistym 242Porównanie modeli aplikacji 242Model HTTP polling 243Model HTTP long polling 244Zdarzenia wysy�ane przez serwer 245WebSocket 246Usprawnianie komunikacji w czasie rzeczywistym 247Konfiguracja i dostrajanie 250

Podsumowanie 252

Rozdzia� 12. Buforowanie ....................................................................................................253Rodzaje buforowania 253

Buforowanie po stronie serwera 253Buforowanie po stronie klienta 254

Techniki buforowania po stronie serwera 254Buforowanie o zasi�gu ��dania 254Buforowanie o zasi�gu u�ytkownika 255Buforowanie o zasi�gu aplikacji 256Bufor ASP.NET 256Bufor danych wyj�ciowych 258Buforowanie donut caching 261Buforowanie donut hole caching 263Buforowanie rozproszone 264

Techniki buforowania po stronie klienta 269Dzia�anie bufora przegl�darki internetowej 269AppCache 271Local Storage 273

Podsumowanie 274

Poleć książkęKup książkę

8 � Spis tre�ci

Rozdzia� 13. Techniki optymalizacji po stronie klienta ....................................................... 275Anatomia strony 275

Anatomia HttpRequest 276Najlepsze praktyki 277

Wykonuj mniejsz� liczb� ��da� HTTP 278U�ywaj CDN 278Dodawaj nag�ówek Expires lub Cache-Control 280Komponenty skompresowane w formacie GZip 282Umieszczaj arkusze stylów na pocz�tku pliku 283Umieszczaj skrypty na ko�cu dokumentu 283Korzystaj z zewn�trznych skryptów i arkuszy stylów 285Zmniejszanie liczby zapyta� DNS 286Minimalizacja plików JavaScript i CSS 286Unikaj przekierowa� 287Usuni�cie powielaj�cych si� skryptów 289Konfiguracja nag�ówka ETag 289

Pomiar wydajno�ci po stronie klienta 290Wykorzystanie platformy ASP.NET MVC do pracy 293

Tworzenie paczek i minimalizacja 294Podsumowanie 297

Rozdzia� 14. Zaawansowany routing ..................................................................................299Wayfinding 299Adresy URL i techniki SEO 301Tworzenie tras 302

Domy�lne parametry i opcjonalne trasy 303Priorytet i kolejno�� tras 305Routing do istniej�cych plików 305Ignorowanie tras 305Trasy typu Catch-All 306

Ograniczenia trasy 307Narz�dzie Glimpse i trasy 309

Routing oparty na atrybutach 310Rozszerzanie routingu 313

Mechanizm routingu 314Podsumowanie 318

Rozdzia� 15. Ponownie u�ywane komponenty interfejsu u�ytkownika ........................... 319Co platforma ASP.NET MVC oferuje standardowo? 319

Widoki cz��ciowe 319Metody rozszerzaj�ce HtmlHelper czy w�asne metody? 319Szablony Display i Editor 320Html.RenderAction() 320

Przej�cie o krok dalej 321Razor Single File Generator 321Tworzenie wielokrotnie wykorzystywanych widoków ASP.NET MVC 323Tworzenie wielokrotnie u�ywanych metod pomocniczych ASP.NET MVC 327

Poleć książkęKup książkę

Spis tre�ci � 9

Testy jednostkowe dla widoków Razor 328Podsumowanie 330

Cz��� IV. Kontrola jako�ci .................................................................................................... 331

Rozdzia� 16. Rejestrowanie informacji ................................................................................333Obs�uga b��dów na platformie ASP.NET MVC 333

W��czanie w�asnych b��dów 334Obs�uga b��dów w akcjach kontrolerów 335Definiowanie globalnych procedur obs�ugi b��dów 335

Rejestrowanie informacji i �ledzenie 337Rejestrowanie informacji o b��dach 337Monitorowanie stanu ASP.NET 340

Podsumowanie 342

Rozdzia� 17. Zautomatyzowane testowanie .......................................................................343Semantyka testowania 343

R�czne testowanie 344Zautomatyzowane testowanie 345

Poziomy zautomatyzowanego testowania 345Testy jednostkowe 345Szybko�� (ang. fast) 347Testy integracyjne 348Testy akceptacyjne 349

Co to jest projekt zautomatyzowanych testów? 350Tworzenie projektu testowego w Visual Studio 350Tworzenie i przeprowadzanie testu jednostkowego 351Testowanie aplikacji ASP.NET MVC 354Testowanie modelu 354Test-Driven Development 357Tworzenie przejrzystych, zautomatyzowanych testów 358Testowanie kontrolerów 360Refaktoring testów jednostkowych 363Symulacja spe�nienia zale�no�ci 364Testowanie widoków 368

Test pokrycia 370Mit 100% wyniku testu pokrycia 372

Tworzenie kodu �atwego do testowania 372Podsumowanie 374

Rozdzia� 18. Automatyzacja kompilacji .............................................................................. 375Tworzenie skryptów kompilacji 376

Projekty Visual Studio s� skryptami kompilacji! 376Dodanie prostego zadania kompilacji 376Przeprowadzanie kompilacji 377Mo�liwo�ci s� nieograniczone! 378

Poleć książkęKup książkę

10 � Spis tre�ci

Automatyzacja kompilacji 378Rodzaje zautomatyzowanej kompilacji 379Definiowanie zautomatyzowanej kompilacji 380

Ci�g�a integracja 383Wykrywanie problemów 383Regu�y ci�g�ej integracji 384

Podsumowanie 388

Cz��� V. Umieszczanie aplikacji sieciowej w internecie .....................................................389

Rozdzia� 19. Wdra�anie ....................................................................................................... 391Co trzeba wdro�y�? 391

Podstawowe pliki witryny internetowej 391Tre�� statyczna 394Czego nie trzeba wdra�a�? 394Bazy danych oraz inne zewn�trzne zale�no�ci 395Jakie s� wymagania aplikacji EBuy? 396

Wdra�anie na serwerze Internet Information Server 396Przygotowania 397Tworzenie i konfiguracja witryny internetowej na serwerze IIS 397Publikowanie witryny z poziomu Visual Studio 399

Wdra�anie za po�rednictwem Windows Azure 403Tworzenie konta Windows Azure 403Tworzenie nowej witryny internetowej Windows Azure 404Publikacja witryny internetowej Windows Azure poprzez system kontroli wersji 404

Podsumowanie 406

Dodatki .................................................................................................................................407

Dodatek A. Integracja platform ASP.NET MVC i Web Forms ..............................................409

Dodatek B. Wykorzystanie NuGet jako platformy .............................................................. 417

Dodatek C. Najlepsze praktyki .............................................................................................435

Dodatek D. Odniesienia — tematy, funkcje i scenariusze ................................................. 449

Skorowidz ...................................................................................................................453

Poleć książkęKup książkę

211

ROZDZIA� 10.

Programowanie na platformy mobilne

Sie� mobilna to oferuj�ce bardzo du�e mo�liwo�ci medium dostarczania tre�ci wi�kszej grupieu�ytkowników. Wraz ze zwi�kszaj�c� si� liczb� u�ywanych smartfonów i rozwojem siecimobilnej uwzgl�dnienie urz�dze� mobilnych podczas przygotowywania projektów staje si�coraz wa�niejsze.

Najwi�kszy problem podczas przygotowywania aplikacji do jej u�ywania w sieci mobilnejpolega na tym, �e nie wszystkie urz�dzenia mobilne s� tworzone w taki sam sposób. Poszcze-gólne urz�dzenia maj� ró�ne mo�liwo�ci sprz�towe i zainstalowane przegl�darki internetowe,a tak�e odmienne funkcje, np. w zakresie dotykowej obs�ugi urz�dzenia itd. Przystosowaniewitryny internetowej do prawid�owego i spójnego dzia�ania w ró�nych urz�dzeniach mobilnychnie jest �atwym zadaniem.

W tym rozdziale dowiesz si�, jak u�ywa� funkcji oferowanych przez platform� ASP.NETMVC — w szczególno�ci nowych funkcji, które pojawi�y si� w wersji 4. platformy — w celuzapewnienia prawid�owego i spójnego dzia�ania witryny internetowej na maksymalnej liczbieurz�dze� mobilnych. Przekonasz si� równie�, co zrobi� w sytuacji, gdy dla danego urz�dzeniamobilnego nie mo�na zaoferowa� prawid�owej obs�ugi witryny internetowej, któr� tworzysz.

Funkcje mobilne platformy ASP.NET MVC 4Pocz�wszy od wersji 3., platforma ASP.NET MVC oferuje zestaw funkcji u�atwiaj�cych tworze-nie mobilnych wersji witryn internetowych. Funkcje te zosta�y usprawnione w wersji 4. plat-formy.

Poni�sza lista przedstawia krótki opis funkcji pomagaj�cych w tworzeniu wersji mobilnejaplikacji sieciowej, wprowadzonych w ASP.NET MVC 4. W pozosta�ej cz��ci rozdzia�u przeko-nasz si�, jak wykorzysta� te funkcje w tworzonej aplikacji sieciowej.

Szablon aplikacji mobilnej w ASP.NET MVC 4Je�eli ju� od samego pocz�tku chcesz utworzy� jedynie mobiln� wersj� aplikacji siecio-wej, platforma ASP.NET MVC 4 oferuje szablon Mobile Application, który pozwala nanatychmiastowe przyst�pienie do tworzenia wersji mobilnej aplikacji sieciowej. Podobniejak w przypadku szablonów zwyk�ych aplikacji MVC, w szablonie mobilnym platformaumieszcza ju� pewien kod odpowiedzialny za wygenerowanie widoków dla urz�dze�mobilnych, przeprowadza konfiguracj� pakietów jQuery Mobile MVC NuGet oraz tworzyszkielet aplikacji. Dok�adne omówienie szablonu aplikacji mobilnej znajdziesz w dalszej cz��cirozdzia�u, w podrozdziale zatytu�owanym „Szablon aplikacji mobilnej w ASP.NET MVC 4”.

Poleć książkęKup książkę

212 � Rozdzia� 10. Programowanie na platformy mobilne

Tryby wy�wietlaniaAby mo�na by�o jeszcze �atwiej dostosowa� aplikacj� sieciow� do ró�nych urz�dze�, platfor-ma ASP.NET MVC 4 oferuje tak zwane tryby wy�wietlania — to funkcja odpowiedzialna zawykrycie i przygotowanie odpowiedniego widoku dla poszczególnych urz�dze�.

Poszczególne urz�dzenia mobilne maj� ró�ne rozdzielczo�ci ekranu, inne zachowanieprzegl�darek internetowych, a nawet odmienne funkcje, które mog� by� wykorzystaneprzez aplikacje sieciowe. Zamiast próbowa� dopasowa� dany widok do maksymalnej licz-by ró�nych urz�dze�, lepszym rozwi�zaniem jest umieszczenie poszczególnych zachowa�i funkcji w oddzielnych widokach przeznaczonych dla konkretnych urz�dze�.

Za�ó�my, �e masz przygotowany widok o nazwie Index.cshtml, przeznaczony dla zwy-k�ych urz�dze� biurkowych. Otrzymujesz zadanie przygotowania mobilnej wersji tegowidoku przeznaczonej do wy�wietlania na smartfonach i tabletach. Dzi�ki u�yciu trybówwy�wietlania mo�esz przygotowa� odpowiednie wersje widoku dla ró�nych urz�dze�,np. Index.iPhone.cshtml i Index.iPad.cshtml, a nast�pnie podczas uruchamiania aplikacji za-rejestrowa� je za pomoc� dostawcy widoku na platformie ASP.NET MVC 4. Opieraj�c si�na kryteriach filtrowania, platforma ASP.NET MVC 4 mo�e automatycznie wyszuka�widok zawieraj�cy odpowiedni przyrostek (iPhone lub iPad) i wy�wietli� ten widok za-miast standardowego, przeznaczonego dla urz�dze� biurkowych. (Zwró� uwag�, jak dlawidoków alternatywnych platforma ASP.NET MVC stosuje prost� konwencj� nadawanianazw plikom w postaci nazwa_widoku.urz�dzenie.rozszerzenie). W znajduj�cym si� w dalszejcz��ci rozdzia�u podrozdziale zatytu�owanym „Widoki dla konkretnych przegl�darekinternetowych” przekonasz si�, jak u�y� tej funkcji w celu zapewnienia obs�ugi ró�nychurz�dze�.

Nadpisanie zwyk�ych widoków ich wersjami mobilnymiPlatforma ASP.NET MVC 4 wprowadzi�a prosty mechanizm pozwalaj�cy na nadpisaniedowolnego widoku (w��czaj�c w to uk�ady graficzne i widoki cz��ciowe) dla poszcze-gólnych przegl�darek internetowych, w tym tak�e dla przegl�darek internetowych u�y-wanych w urz�dzeniach mobilnych. Aby dostarczy� widok przeznaczony dla urz�dzeniamobilnego, konieczne jest utworzenie pliku widoku zawieraj�cego w nazwie cz�on .Mobile.Na przyk�ad przygotowanie mobilnej wersji widoku Index wymaga utworzenia jego ko-pii wraz z wymienionym wcze�niej cz�onem w nazwie (Views\Home\Index.Mobile.cshtml);platforma ASP.NET automatycznie wygeneruje ten (zamiast biurkowego) widok w mobilnejwersji przegl�darki internetowej. Warto doda�, �e wprawdzie funkcja trybów wy�wietlaniapozwala na wskazanie widoku dla konkretnej przegl�darki internetowej w urz�dzeniumobilnym, ale odbywa si� to na ogólniejszym poziomie. Takie rozwi�zanie b�dzie u�yteczne,je�li widoki s� wystarczaj�co ogólne, aby mog�y by� prawid�owo wy�wietlane w ró�nychmobilnych wersjach przegl�darek internetowych. T� funkcj� mo�esz równie� stosowa�,je�li u�ywasz platformy takiej jak jQuery Mobile, która zapewnia spójne dzia�anie aplikacjina wi�kszo�ci platform mobilnych.

Platforma jQuery MobilePlatforma jQuery Mobile przynosi aplikacjom sieciowym ca�e bogactwo i u�yteczno�� bi-bliotek jQuery oraz jQuery UI. Zamiast zmaga� si� z niespójno�ciami dzia�ania przegl�-darek internetowych w ró�nych urz�dzeniach mobilnych, mo�esz po prostu utworzy�jedn� aplikacj� sieciow�, która b�dzie dzia�a� we wszystkich urz�dzeniach mobilnych.Platforma ta oferuje korzy�ci wynikaj�ce z mo�liwo�ci stosowania technik progresyw-nych usprawnie� i zapewnia elastyczny projekt, dzi�ki któremu starsze urz�dzenia nadal

Poleć książkęKup książkę

Wi�ksza przyjazno�� aplikacji mobilnej � 213

otrzymuj� funkcjonaln� (cho� niekoniecznie �adn� i bogat� w funkcje) aplikacj�, podczasgdy nowe urz�dzenia korzystaj� z pe�ni mo�liwo�ci dostarczanych przez funkcje j�zykaHTML5. Platforma jQuery Mobile doskonale obs�uguje motywy, co pozwala na utworze-nie niepowtarzalnej witryny bez konieczno�ci rezygnowania z zalet wynikaj�cych z pro-gresywnych uaktualnie�. W rozdziale tym przekonasz si�, jak dzi�ki platformie jQueryMobile mo�na przenie�� aplikacj� na kolejny poziom.

Wi�ksza przyjazno�� aplikacji mobilnejTematyka zwi�zana z programowaniem na platformy mobilne jest obszerna i obejmuje wieleaspektów, które twórca witryny internetowej musi uwzgl�dni�, aby utworzy� tego rodzajuwitryn�. Prawdopodobnie najwa�niejszym aspektem jest najlepszy sposób dostarczenia in-formacji u�ytkownikom oraz interakcja z u�ytkownikami.

We pod uwag� aplikacj� sieciow� dla urz�dzenia biurkowego, w którym okno przegl�darkiinternetowej jest wy�wietlone na du�ym ekranie, a u�ytkownik ma do dyspozycji szybkie i nie-zawodne po��czenie internetowe, natomiast interakcj� z aplikacj� sieciow� prowadzi za po-moc� klawiatury i myszy. Z kolei aplikacje mobilne z regu�y s� wy�wietlane na niewielkichekranach, internet nie zawsze jest szybki i niezawodny, natomiast do wprowadzania danychs�u�y najcz��ciej piórko b�d kilka palców.

Wymienione ograniczenia niew�tpliwie prowadz� do zmniejszenia ilo�ci dostarczanej tre�cioraz liczby oferowanych funkcji w porównaniu z aplikacjami sieciowymi przeznaczonymidla przegl�darek internetowych dzia�aj�cych w urz�dzeniach biurkowych. Jednak aplikacjemobilne dostarczaj� pewnych mo�liwo�ci, które zazwyczaj nie istniej� w tradycyjnych aplika-cjach sieciowych; s� to np. obs�uga danych dotycz�cych geograficznego po�o�enia urz�dzeniamobilnego, wi�ksze mo�liwo�ci komunikacji, obs�uga komunikacji audio i wideo itd.

Trafne okre�lenie wymaga� u�ytkowników aplikacji to pierwszy krok podczas przygotowy-wania strategii tworzenia aplikacji mobilnej. Przeanalizuj przedstawione poni�ej przyk�adysposobów wykorzystania urz�dze� mobilnych.

� Spacer po ulicy i jednoczesne sprawdzanie poczty e-mail (od czasu do czasu podnoszenieprzy tym g�owy, aby nie uderzy� w latarni�).

� Podró� komunikacj� miejsk� i jednoczesne czytanie najnowszych wiadomo�ci.

� Popijanie kawy w kawiarni — u�ytkownik jedn� r�k� trzyma fili�ank� z kaw�, natomiastdrug� urz�dzenie mobilne, w którym sprawdza wysoko�� salda na koncie.

Sytuacje te maj� jedn� wspóln� cech� — u�ytkownik dzieli swoj� uwag�, próbuj�c jak naj-szybciej wykona� pewne zadania i przej�� do kolejnych w dniu wype�nionym po brzegi ró�-nymi zaj�ciami.

Dla twórcy witryny internetowej oznacza to, �e powinna ona koncentrowa� si� na dostarcza-niu u�ytkownikowi tre�ci w ��dany przez niego sposób, szybko, zrozumiale i odpowiedniodo wykonywanego zadania.

Poleć książkęKup książkę

214 � Rozdzia� 10. Programowanie na platformy mobilne

Tworzenie widoku mobilnego dla aukcjiPodczas tworzenia mobilnej aplikacji sieciowej prac� rozpoczynasz od dodania do istniej�cejaplikacji widoków przeznaczonych dla urz�dze� mobilnych lub od utworzenia zupe�nie odpocz�tku nowej aplikacji mobilnej. Ten wybór zale�y od wielu czynników; oba podej�ciamaj� swoje wady i zalety. Jak si� przekonasz, platforma ASP.NET MVC oferuje narz�dziapomagaj�ce w pracy w obu przypadkach.

Skoncentrujemy si� teraz na dodaniu widoku mobilnego do istniej�cego widoku dla urz�-dzenia biurkowego, a nast�pnie b�dziemy powoli usprawnia� widok mobilny kolejnymifunkcjami oferowanymi przez platform� ASP.NET MVC 4.

Rozpoczynamy prac� od utworzenia kopii widoku Auctions.cshtml i nadajemy jej nazw� Auc-tions.Mobile.cshtml, co wskazuje, �e widok jest przeznaczony dla urz�dzenia mobilnego.

Aby zró�nicowa� generowane widoki, zmieniamy tak�e nag�ówek <h1> w widoku mobilnymna Aukcje mobilne.

Utworzenie widoku mobilnego mo�na potwierdzi� poprzez uruchomienie aplikacji siecioweji wy�wietlenie strony aukcji w przegl�darce internetowej dla urz�dzenia mobilnego. Wyniktej operacji pokazano na rysunku 10.1.

Rysunek 10.1. Platforma ASP.NET MVC potrafi wykry i automatycznie wygenerowa widokdla urz�dzenia mobilnego

Poleć książkęKup książkę

Wi�ksza przyjazno�� aplikacji mobilnej � 215

Jak mo�esz zobaczy� na rysunku, nag�ówek Aukcje mobilne potwierdza wy�wietlenie widokumobilnego (przej�cie na stron� aukcji w biurkowej wersji przegl�darki internetowej powodujewy�wietlenie zwyk�ego widoku wraz z nag�ówkiem Aukcje). Tryby wy�wietlania to funkcjaplatformy pozwalaj�ca na wykrycie przegl�darki internetowej u�ywanej przez klienta i wyge-nerowanie dla niej odpowiedniego widoku.

Kiedy ��danie przychodzi z urz�dzenia mobilnego, platforma ASP.NET MVC 4 nie ograniczasi� jedynie do automatycznego wczytania widoku mobilnego. W rzeczywisto�ci wczytuje tak�emobilne wersje uk�adów graficznych i widoków cz��ciowych — pakiet jQuery.Mobile.MVC jestwykorzystywany do utworzenia opartego na jQuery Mobile uk�adu graficznego zoptymalizo-wanego dla urz�dze� mobilnych.

Rozpocz�cie pracy z jQuery MobilejQuery Mobile pozwala na szybkie usprawnienie istniej�cego widoku i utworzenie na jegopodstawie widoku dla urz�dze� mobilnych, który b�dzie mia� rodzimy dla nich wygl�d i ro-dzime zachowanie. Mo�liwe jest tak�e u�ycie motywu w aplikacji; technika uaktualnie� pro-gresywnych powoduje, �e starsze wersje przegl�darek internetowych otrzymuj� nieco zre-dukowan� (niezbyt atrakcyjn� wizualnie), ale funkcjonuj�c� i u�yteczn� stron�.

Aby móc u�ywa� jQuery Mobile, konieczne jest zainstalowanie pakietu jQuery.Mobile.MVCz galerii pakietów NuGet (rysunek 10.2).

Rysunek 10.2. Dodanie platformy jQuery Mobile za pomoc� NuGet

Poleć książkęKup książkę

216 � Rozdzia� 10. Programowanie na platformy mobilne

Pakiet ten powoduje dodanie nast�puj�cych plików:

jQuery Mobile FrameworkZestaw plików JavaScript (jQuery.mobile-1.1.0.js) i CSS (jQuery.mobile-1.1.0.css) wraz z ichzminimalizowanymi wersjami oraz obrazami pomocniczymi.

/Content/Site.Mobile.cssNowy arkusz stylów przeznaczony dla urz�dze� mobilnych.

Views/Shared/_Layout.Mobile.cshtmlUk�ad graficzny zoptymalizowany dla urz�dze� mobilnych i odwo�uj�cy si� do plików plat-formy jQuery Mobile (JavaScript i CSS). Platforma ASP.NET MVC b�dzie automatyczniewczytywa�a ten uk�ad dla widoków mobilnych.

Komponent prze��czania widokuSk�ada si� z widoku cz��ciowego Views/Shared/_ViewSwitcher.cshtml oraz kontroleraViewSwitcherController.cs. Ten komponent powoduje wy�wietlenie w mobilnej przegl�darceinternetowej ��cza pozwalaj�cego u�ytkownikowi na przej�cie do strony w wersji dla urz�-dzenia biurkowego. Sposób dzia�ania tego komponentu zostanie omówiony w dalszej cz��citego rozdzia�u, w podrozdziale „Prze��czanie pomi�dzy widokami mobilnym i zwyk�ym”.

Platforma jQuery Mobile nadal jest w fazie opracowywania, wi�c po jej zainstalowaniumo�e si� okaza�, �e jej pliki s� w nowszych wersjach ni� wymienione w ksi��ce.

Aby umo�liwi� platformie jQuery Mobile nadanie stronie odpowiedniego stylu, przejd dopliku Views/Shared/_Layout.Mobile.cshtml i zmodyfikuj jego tre�� w taki sposób, aby odpowiada�aponi�szemu fragmentowi kodu:

<body> <div data-role="page" data-theme="b"> <header data-role="header"> <h1>@Html.ActionLink("EBuy: Witryna demonstracyjna ASP.NET MVC", "Index", "Home")</h1> </header> <div id="body" data-role="content"> @RenderBody() </div> </div></body>

Nast�pnie zmodyfikuj plik Auctions.Mobile.cshtml i zoptymalizuj go dla uk�adu graficznegoprzeznaczonego dla urz�dze� mobilnych:

@model IEnumerable<AuctionViewModel><link href="@Url.Content("~/Content/product.css")" rel="stylesheet" type="text/css" />@{ ViewBag.Title = "Auctions";}

<header> <h3>Aukcje mobilne</h3></header>

<ul id="auctions">

Poleć książkęKup książkę

Wi�ksza przyjazno�� aplikacji mobilnej � 217

@foreach (var auction in Model) { <li> @Html.Partial("_AuctionTile", auction); </li> }</ul>

Po wprowadzeniu wymienionych zmian skompiluj i uruchom aplikacj�, a nast�pnie wy�wietlstron� g�ówn� aplikacji w mobilnej wersji przegl�darki internetowej. Zwró� uwag� na zmianyw stosunku do wersji biurkowej. Na ekranie powiniene� zobaczy� stron� podobn� do pokaza-nej na rysunku 10.3.

Rysunek 10.3. Aplikacja EBuy zoptymalizowana dla uk�adu graficznego przeznaczonego dla urz�dze�mobilnych

Mo�esz zobaczy�, jak widok Auctions zosta� zmieniony w celu jego dostosowania do przegl�-darki internetowej urz�dzenia mobilnego. Wprawdzie wygl�d strony nie jest perfekcyjny, alepakiet jQuery Mobile dostarcza podstaw, na bazie których mo�esz szybko i �atwo tworzy�widoki mobilne.

Poleć książkęKup książkę

218 � Rozdzia� 10. Programowanie na platformy mobilne

Usprawnianie widoku za pomoc� jQuery MobilePakiet jQuery.Mobile.MVC wykonuje wi�ksz� cz��� pracy za programist�, ale interfejs u�ytkowni-ka witryny internetowej nadal nie przypomina rodzimej aplikacji dla urz�dzenia mobilnego.Na szcz��cie platforma jQuery Mobile dostarcza wielu komponentów i stylów, dzi�ki którymaplikacja otrzyma widok naprawd� przypominaj�cy aplikacj� mobiln�.

Usprawnianie listy aukcji za pomoc� komponentu listview platformy jQuery MobilePrac� rozpoczynamy od usprawnienia listy aukcji poprzez u�ycie komponentu listview plat-formy jQuery Mobile. W celu przeprowadzenia wi�kszo�ci transformacji mobilnych platformajQuery Mobile operuje na atrybutach data-role. Aby zatem wygenerowa� list� aukcji jakolistview, koniecznie nale�y doda� atrybut data-role="listview" do znacznika <ul> aukcji:

<ul id="auctions" data-role="listview"> @foreach (var auction in Model.Auctions) { <li> @Html.Partial("_AuctionTileMobile", auction); </li> }</ul>

oraz w nast�puj�cy sposób zmodyfikowa� widok cz��ciowy _AuctionTileMobile:@model AuctionViewModel@{ var auctionUrl = Url.Auction(Model);}

<a href="@auctionUrl"> @Html.Thumbnail(Model.Image, Model.Title) <h3>@Model.Title</h3> <p> <span>Koniec aukcji za: </span>

<span class="time-remaining" title="@Model.EndTimeDisplay">� @Model.RemainingTimeDisplay</span> </p> <p> <strong>Aktualna cena: </strong> <span class="current-bid-amount">@Model.CurrentPrice</span> <span class="current-bidder">@Model.WinningBidUsername</span> </p></a>

Po wy�wietleniu widoku Auctions w mobilnej wersji przegl�darki internetowej otrzymasz terazznacznie �adniejsz� list� aukcji (rysunek 10.4).

Bior�c pod uwag� to, �e element <ul> to w rzeczywisto�ci lista, mo�esz uzna� za zbytecznedodawanie roli listview. Element <ul> wy�wietla list�, ale obszar ��cza b�dzie zbyt ma�y, abymo�na by�o klikn�� go w urz�dzeniu mobilnym wyposa�onym w niewielki ekran. Zadaniematrybutu data-role="listview" jest umo�liwienie powi�kszania obszaru ��cza i u�atwienieu�ytkownikom naciskania elementów listy.

Poleć książkęKup książkę

Wi�ksza przyjazno�� aplikacji mobilnej � 219

Rysunek 10.4. Zawarto� znacznika <ul> wygenerowana przez platform� jQuery Mobile jako listview

Umo�liwianie przeszukiwania listy aukcjidzi�ki komponentowi „data filter” platformy jQuery MobileKolejnym krokiem jest zwi�kszenie przyjazno�ci widoku poprzez dodanie u�ytecznego polawyszukiwania, pozwalaj�cego u�ytkownikowi na szybkie filtrowanie listy aukcji. Dzi�ki plat-formie jQuery Mobile to zadanie jest bardzo �atwe — znacznikowi <ul> listy aukcji wystarczynada� atrybut data-filter="true":

<ul id="auctions" data-role="listview" data-filter="true"> @foreach (var auction in Model.Auctions) { <li class="listitem"> @Html.Partial("_AuctionTileMobile", auction); </li> }</ul>

Po od�wie�eniu strony w mobilnej wersji przegl�darki internetowej powiniene� zobaczy� nagórze strony pole wyszukiwania (rysunek 10.5).

Poleć książkęKup książkę

220 � Rozdzia� 10. Programowanie na platformy mobilne

Rysunek 10.5. Dzi�ki platformie jQuery Mobile list� aukcji mona przeszukiwa

Wprowad tekst w polu wyszukiwania i zobacz, jak platforma jQuery Mobile automatyczniefiltruje list�, wy�wietlaj�c jedynie te aukcje, które zosta�y dopasowane do wprowadzonegoprzez Ciebie tekstu (rysunek 10.6).

Przekona�e� si�, jak platforma jQuery Mobile u�atwia transformacj� dowolnej strony, aby wy-�wietlona w urz�dzeniu docelowym mia�a dla niego rodzimy wygl�d i sposób dzia�ania.Oprócz wymienionych funkcji jQuery Mobile oferuje tak�e wiele innych u�ytecznych kom-ponentów, które mo�esz wykorzysta� w widokach witryny internetowej, czyni�c je tym samymbardziej dostosowanymi dla u�ytkowników urz�dze� mobilnych. Pe�n� list� odpowiednichatrybutów znajdziesz na stronie dokumentacji API platformy jQuery Mobile pod adresemhttp://jquerymobile.com/test/docs/api/data-attributes.html.

Prze��czanie pomi�dzy widokami mobilnym i zwyk�ymKiedykolwiek dostarczasz wersj� mobiln� witryny internetowej, ogólnie rzecz bior�c, dobrymrozwi�zaniem jest automatyczne przekierowanie u�ytkowników urz�dze� mobilnych do od-powiedniej wersji witryny. Warto jednak zapewni� im mo�liwo�� przej�cia do pe�nej wersjiwitryny internetowej przeznaczonej dla urz�dze� biurkowych.

Poleć książkęKup książkę

Wi�ksza przyjazno�� aplikacji mobilnej � 221

Rysunek 10.6. Platforma jQuery Mobile automatycznie filtruje list� aukcji na podstawie tekstuwprowadzonego w polu wyszukiwania

Zwró� uwag�, �e na górze widoku mobilnego standardowo dostarczanego przez szablonaplikacji mobilnej ASP.NET MVC znajduje si� ��cze pozwalaj�ce u�ytkownikom na przej�ciedo „widoku zwyk�ego”. To jest widget ViewSwitcher zainstalowany jako cz��� pakietu NuGetjQuery.Mobile.MVC.

Aby dowiedzie� si�, jaki jest sposób dzia�ania tego widgetu, konieczne b�dzie zag��bienie si�w komponenty platformy jQuery Mobile.

Spójrz na nowy widok cz��ciowy o nazwie _ViewSwitcher.cshtml, w którym znajdziesz nast�-puj�cy kod znaczników:

@if (Request.Browser.IsMobileDevice && Request.HttpMethod == "GET"){ <div class="view-switcher ui-bar-a"> @if (ViewContext.HttpContext.GetOverriddenBrowser().IsMobileDevice) { @: Wy�wietlenie widoku mobilnego. @Html.ActionLink("Widok zwyk�y", "SwitchView", "ViewSwitcher", new { mobile = false, returnUrl = Request.Url.PathAndQuery }, new { rel = "external" }) } else {

Poleć książkęKup książkę

222 � Rozdzia� 10. Programowanie na platformy mobilne

@: Wy�wietlenie widoku zwyk�ego. @Html.ActionLink("Widok mobilny", "SwitchView", "ViewSwitcher", new { mobile = true, returnUrl = Request.Url.PathAndQuery }, new { rel = "external" }) } </div>}

Warto�ci� zwrotn� metody GetOverridenBrowser() jest obiekt HttpBrowserCapabilities zawiera-j�cy mo�liwo�ci oferowane przez nadpisywan� przegl�dark� internetow� lub aktualnie u�ywan�,je�li nie jest nadpisywana. W ten sposób mo�esz sprawdzi�, czy urz�dzenie, które wykona�o��danie, jest urz�dzeniem mobilnym. Nast�pnie widget okre�la widok, który powinien zosta�wygenerowany, oraz tworzy odpowiednie ��cza pozwalaj�ce na prze��czanie pomi�dzy wi-dokami mobilnym i zwyk�ym.

Bonusem jest ustawienie w�a�ciwo�ci mobile w s�owniku RouteValue, wskazuj�cej aktualnieaktywny widok.

Spójrz teraz na klas� ViewSwitcherController zawieraj�c� logik� odpowiedzialn� za prze��czaniewidoków:

public class ViewSwitcherController : Controller{ public RedirectResult SwitchView(bool mobile, string returnUrl) { if (Request.Browser.IsMobileDevice == mobile) { HttpContext.ClearOverriddenBrowser(); } else { HttpContext.SetOverriddenBrowser(mobile ? BrowserOverride.Mobile : BrowserOverride.Desktop); } return Redirect(returnUrl); }}

W zale�no�ci od tego, czy ��danie pochodzi z urz�dzenia mobilnego (na co wskazuje warto��w�a�ciwo�ci Request.Browser.IsMobileDevice), kontroler u�ywa metod ClearOverriddenBrowser()i SetOverriddenBrowser() w celu poinformowania platformy ASP.NET MVC o sposobie trak-towania ��dania. Nast�pnie platforma wy�wietla odpowiedni� wersj� witryny, mobiln� dlaurz�dzenia mobilnego lub pe�n� dla urz�dzenia biurkowego.

Przedstawiony poni�ej fragment kodu umie�� przez zamykaj�cym znacznikiem <body> w plikuLayout.Mobile.cshtml w celu wygenerowania widoku cz��ciowego ViewSwitcher jako stopki (ry-sunek 10.7):

<div data-role="footer"> @Html.Partial("_ViewSwitcher")</div>

Poleć książkęKup książkę

Wi�ksza przyjazno�� aplikacji mobilnej � 223

Rysunek 10.7. Prze��cznik widoku wy�wietlony w stopce strony

Po klikni�ciu ��cza Widok zwyk�y nast�pi wy�wietlenie zwyk�ej wersji widoku Auctions. Zwró�jednak uwag�, �e widok zwyk�y nie zawiera ��cza pozwalaj�cego na przej�cie do widokumobilnego. Aby to naprawi�, przejd do widoku wspó�dzielonego _Layout.cshtml i umie�� w nimponi�szy wiersz kodu:

@Html.Partial("_ViewSwitcher")

Uruchom aplikacj�; w mobilnej wersji przegl�darki internetowej przejd do dowolnej strony.Przekonasz si�, �e prze��cznik widoków generuje ��cza pozwalaj�ce na prze��czanie pomi�-dzy widokami zwyk�ym i mobilnym (rysunek 10.8).

Unikanie widoków biurkowych w witrynie mobilnejNa pewno zauwa�ysz, �e w przypadku braku mobilnej wersji widoku platforma ASP.NET MVCpowoduje wygenerowanie wersji biurkowej widoku w mobilnym uk�adzie graficznym strony.

Trzymanie si� standardów podczas tworzenia kodu znaczników pomaga w wy�wietlaniuw miar� u�ytecznego widoku, ale mog� zdarza� si� sytuacje, w których po prostu b�dzieszwola� unikn�� takiego zachowania platformy.

Poleć książkęKup książkę

224 � Rozdzia� 10. Programowanie na platformy mobilne

Rysunek 10.8. Prze��cznik widoków wy�wietlony w widoku biurkowym strony

W tym celu nale�y przypisa� warto�� true w�a�ciwo�ci RequireConsistentDisplayMode:@{ Layout = "~/Views/Shared/_Layout.cshtml"; DisplayModeProvider.Instance.RequireConsistentDisplayMode = true;}

Po wprowadzeniu powy�szej zmiany �aden widok domy�lny (to znaczy niemobilny) nie zo-stanie wygenerowany w mobilnym uk�adzie graficznym strony. Ustawienie mo�esz wpro-wadzi� tak�e globalnie dla wszystkich widoków poprzez przypisanie warto�ci true wymienio-nej w�a�ciwo�ci w pliku /Views/_ViewStart.cshtml.

Usprawnianie wersji mobilnej witrynyMobilne wersje przegl�darek internetowych maj� mo�liwo�� wy�wietlania stron HTML,przynajmniej do pewnego stopnia. Jednak poleganie w ca�o�ci na przegl�darce internetowejpodczas wy�wietlania strony wcale nie gwarantuje uzyskania najlepszych wyników. Wynikato z faktu, �e przegl�darki internetowe maj� jedynie ograniczone mo�liwo�ci w zakresiezmiany wielko�ci strony i obrazów. Tylko autor mo�e zadecydowa�, które elementy s� najwa�-niejsze i tym samym powinny by� wyró�nione na ma�ym ekranie oraz które s� mniej wa�ne,przez co mo�na je po prostu pomin��. Dlatego te� Twoim obowi�zkiem jest zapewnienie wi-trynie �adnego wygl�du i umo�liwienie jej funkcjonalnego dzia�ania w ró�nych przegl�darkachinternetowych.

Na szcz��cie mo�esz wykorzysta� techniki Adaptive Rendering i usprawnienia progresywnew celu poprawienia sposobu wy�wietlania witryny. Dzi�ki platformom ASP.NET MVC 4 i jQueryMobile jest to do�� �atwe zadanie, o czym si� przekonasz w poni�szych podrozdzia�ach.

Poleć książkęKup książkę

Technika Adaptive Rendering � 225

Technika Adaptive RenderingAdaptive Rendering to technika pozwalaj�ca widokowi na „zaadaptowanie” mo�liwo�ci ofe-rowanych przez przegl�dark� internetow�. Przyjmujemy za�o�enie, �e na stronie znajduje si�mnóstwo kart, a klikni�ta karta powoduje wykonanie ��dania AJAX w celu pobrania tre�cii jej wy�wietlenia. W przypadku wy��czonej obs�ugi j�zyka JavaScript karta nie b�dzie w staniewy�wietli� tre�ci ��danej przez u�ytkownika. Jednak gdy b�dzie stosowana technika AdaptiveRendering, karta b�dzie po prostu zawiera�a adres URL prowadz�cy do zasobu z tre�ci�, a tymsamym u�ytkownik uzyska dost�p do ��danej tre�ci.

Innym przyk�adem mo�e by� pasek nawigacyjny zawieraj�cy poziom� list� ��czy. Wprawdzieprzedstawia si� on dobrze w urz�dzeniu biurkowym, ale na ma�ym ekranie urz�dzenia mobilne-go mo�e by� przyt�aczaj�cy. Dzi�ki technice Adaptive Rendering pasek nawigacyjny b�dziemóg� zosta� wy�wietlony jako rozwijane menu, co oznacza dostosowanie jego funkcjonalno�cido urz�dzenia o mniejszym ekranie.

Zalet� omawianej techniki jest mo�liwo�� wy�wietlenia „funkcjonalnej” lub inaczej „u�ytecznej”wersji witryny w ró�nych przegl�darkach internetowych i urz�dzeniach. Sam poziom us�ugimo�e by� zale�ny od mo�liwo�ci oferowanych przez poszczególne urz�dzenia, ale witrynamimo wszystko nadal pozostanie u�yteczna.

Je�eli chcesz, aby u�ytkownicy nieustannie powracali na Twoj� witryn�, musisz zagwaran-towa� im przyjemno�� z korzystania z niej niezale�nie od tego, jakich u�ywaj� urz�dze�.

Platforma ASP.NET MVC 4 zapewnia techniki adaptacyjne poprzez jQuery Mobile.

Znacznik viewportW grafice komputerowej poj�cie viewport oznacza wy�wietlany prostok�tny obszar. W przypadkuprzegl�darki internetowej jest to jej okno, w którym nast�puje wy�wietlanie dokumentu HTML.Innymi s�owy, to wyimaginowana konstrukcja zawieraj�ca znacznik <html>, który z kolei jestelementem g�ównym dla ca�ego kodu znaczników strony.

Co si� dzieje w przypadku powi�kszania lub pomniejszania (zmiana stopnia przybli�enia) oknaprzegl�darki internetowej? A co si� stanie po zmianie orientacji urz�dzenia? Czy viewportrównie� ulegnie zmianie?

W �wiecie urz�dze� mobilnych udzielenie odpowiedzi na powy�sze pytania jest nieco utrud-nione, poniewa� w rzeczywisto�ci nie istnieje jeden, ale s� dwa viewporty — jeden dla „uk�adugraficznego” oraz jeden „wizualny”.

Viewport uk�adu graficznego nigdy nie ulega zmianie — to jest wyimaginowana konstrukcjastanowi�ca ogranicznik dla znacznika <html> strony. Podczas zmiany poziomu przybli�eniastrony lub orientacji urz�dzenia zmienia si� viewport wizualny, co wp�ywa na elementy wy-�wietlane na ekranie urz�dzenia.

Rol� viewportu powiniene� postrzega� jako sposób zapewnienia u�ytkownikom funkcjonalneji u�ytecznej witryny internetowej. Kiedy strona jest generowana w urz�dzeniu mobilnym, jejszeroko�� nie powinna by� ani zbyt du�a, ani zbyt ma�a — powinna by� idealnie dopasowanado ekranu. Ponadto strona dopasowana do szeroko�ci ekranu nie powinna by� wy�wietlanajako mikroskopijna, zmniejszona wersja pe�nej strony; powinna to by� wersja odpowiedniodostosowana, czytelna.

Poleć książkęKup książkę

226 � Rozdzia� 10. Programowanie na platformy mobilne

W nowoczesnych przegl�darkach internetowych to nie CSS, ale znacznik <meta name="viewport">pozwala na zdefiniowanie wymiarów wizualnego viewportu:

<meta name="viewport" content="width=device-width" />

U�yta w powy�szym kodzie warto�� "width=device-width" jest warto�ci� specjaln� i oznacza,�e szeroko�� viewportu odpowiada rzeczywistej szeroko�ci ekranu urz�dzenia. To najbardziejelastyczna i najcz��ciej u�ywana warto��.

W�a�ciwo�ci content mo�na przypisa� konkretn� warto�� liczbow�, o ile tre�� b�dzie zaadapto-wana w ten sposób:

<meta name="viewport" content="width=320px" />

Po u�yciu powy�szego kodu niezale�nie od szeroko�ci ekranu urz�dzenia tre�� zawsze b�dziemia�a szeroko�� 320 pikseli. Oznacza to, �e u�ytkownicy wi�kszych ekranów b�d� musieli j�powi�ksza�, natomiast mniejszych — zmniejsza�.

Znacznik <meta name="viewport"> jest standardem przemys�owym, ale w rzeczywisto-�ci nie jest cz��ci� standardu W3C.

Wymieniona funkcja zosta�a po raz pierwszy zaimplementowana w przegl�darce in-ternetowej iPhone’a i bardzo szybko — ze wzgl�du na du�� popularno�� tego smartfona— zacz��a by� obs�ugiwana tak�e przez innych producentów urz�dze� mobilnych.

Wykrywanie funkcji mobilnychPoniewa� ka�de urz�dzenie mobilne obs�uguje odmienny zestaw funkcji, nigdy nie mo�eszprzyjmowa� za�o�enia, �e konkretna funkcja b�dzie dost�pna w ka�dej przegl�darce inter-netowej.

Przyjmujemy za�o�enie, �e aplikacja u�ywa funkcji Web Storage HTML5 obs�ugiwanej wpraw-dzie przez wiele smartfonów (np. iPhone, Android, Blackberry i Windows Phone), ale jedno-cze�nie nieobs�ugiwanej przez pozosta�e.

Programi�ci stosowali zazwyczaj takie techniki jak wykrywanie rodzaju przegl�darki inter-netowej, aby sprawdzi�, czy aplikacja mo�e by� uruchomiona w danej przegl�darce.

Zamiast wi�c sprawdza�, czy funkcja Web Storage jest obs�ugiwana, w podej�ciu klasycznymsprawdza si�, czy u�ywan� przegl�dark� internetow� jest Opera Mini.

Tego rodzaju podej�cie wi��e si� jednak z pewnymi wadami; niektóre z nich podano poni�ej.

� Potencjalne wykluczenie przegl�darek internetowych, które nie zosta�y wykluczone wy-ranie, ale obs�uguj� dan� funkcj�.

� Niebezpiecze�stwo nieprawid�owego dzia�ania witryny internetowej, je�li u�ytkownikwy�wietli j� z poziomu innego urz�dzenia.

Oto przyk�ad omówionego podej�cia.// Ostrze�enie: nie stosuj takiego kodu!if (document.all) { // Internet Explorer 4+ document.write('<link rel="stylesheet" type="text/css" src="style-ie.css">');}

Poleć książkęKup książkę

Technika Adaptive Rendering � 227

else if (document.layers) { // Navigator 4 document.write('<link rel="stylesheet" type="text/css" src="style-nn.css">');}

Zwró� uwag�, �e powy�szy fragment kodu dostarcza arkusze stylów jedynie dla przegl�da-rek Internet Explorer i Netscape Navigator 4 pomimo tego, �e przegl�darka internetowa mu-si mie� w��czon� obs�ug� JavaScript. Oznacza to, �e w innych przegl�darkach internetowych,takich jak Netscape 6, Netscape 7, CompuServe 7, Mozilla i Opera, dana witryna internetowamo�e nie by� wy�wietlona prawid�owo.

Nawet je�li zapewnisz wyran� obs�ug� wi�kszo�ci przegl�darek internetowych, nadal mo-�esz pomin�� nowe wersje przegl�darek zawieraj�ce ju� obs�ug� funkcji wymaganych doprawid�owego dzia�ania witryny.

Inny potencjalny problem wi��e si� z b��dn� identyfikacj� przegl�darki internetowej.

Poniewa� mechanizm wykrywania przegl�darki internetowej w du�ej mierze opiera si� nazgadywaniu na podstawie ci�gu tekstowego okre�laj�cego agenta u�ytkownika i na pewnychw�a�ciwo�ciach, to istnieje niebezpiecze�stwo b��dnej identyfikacji pewnych przegl�darekinternetowych.

// Ostrze�enie: nie u�ywaj tego kodu!if (document.all) { // Internet Explorer 4+ elm = document.all['menu'];}else { // Przyjmujemy za�o�enie, �e przegl�darka to Navigator 4. elm = document.layers['menu'];}

Zwró� uwag� na stosowany przez powy�szy kod podzia� przegl�darek internetowych. Je�liprzegl�darka nie zostanie rozpoznana jako Internet Explorer, to kod uznaje j� za przegl�dar-k� Netscape Navigator 4 i nast�puje próba u�ycia warstw.

To cz�sto spotykane ród�o problemów podczas u�ywania przegl�darek Opera i przegl�da-rek opartych na silniku Gecko.

Wynika z tego, �e najlepszym rozwi�zaniem jest wyrane sprawdzenie istnienia danej funkcjizamiast przyjmowanie za�o�enia o jej obs�udze b�d braku obs�ugi przez konkretne wersjeposzczególnych przegl�darek.

Poni�ej przedstawiono wcze�niejszy fragment kodu, ale zmodyfikowany w celu wykrywaniaobs�ugi konkretnych funkcji zamiast przegl�darek.

// Je�eli obs�ugiwana jest funkcja localStorage, nale�y jej u�y�.if (('localStorage' in window) && window.localStorage !== null) { // atwa w u�yciu w�a�ciwo�� obiektu. localStorage.wishlist = '["Unicorn","Narwhal","Deathbear"]';} else { // W przypadku braku sessionStorage konieczne jest u�ycie pliku cookie // za pomoc� API document.cookie. var date = new Date(); date.setTime(date.getTime()+(365*24*60*60*1000)); var expires = date.toGMTString(); var cookiestr = 'wishlist=["Unicorn","Narwhal","Deathbear"];'+ ' expires='+expires+'; path=/'; document.cookie = cookiestr;}

Poleć książkęKup książkę

228 � Rozdzia� 10. Programowanie na platformy mobilne

Powy�szy fragment kodu nie tylko jest znacznie bardziej niezawodny, ale równie� b�dziedoskonale odgrywa� swoj� rol� w przysz�o�ci — ka�da przegl�darka, w której zostanie do-dana obs�uga funkcji Web Storage, otrzyma dost�p do nowych funkcji aplikacji.

Zapytania mediów CSSZapytania CSS media to technika usprawnie� progresywnych, która pozwala na zaadapto-wanie i wy�wietlanie alternatywnych stylów w zale�no�ci od przegl�darki internetowej.

Wersja druga specyfikacji CSS (znana jako „CSS2”) pozwala na wskazanie stylu na podstawiemedium, np. screen lub print.

Z kolei wersja trzecia specyfikacji CSS (znana jako „CSS3”) wprowadza koncepcj� tak zwa-nych zapyta� mediów, czyli technik� rozszerzaj�c� koncepcj� pomagaj�c� wykrywa� w stan-dardowy sposób funkcje oferowane przez przegl�darki internetowe.

Niestety, specyfikacja CSS3 nadal pozostaje w fazie „rekomendacji”, co oznacza, �ezapytania mediów — oraz oczywi�cie inne nowe funkcje wprowadzone w specyfi-kacji CSS3 — niekoniecznie s� doskonale obs�ugiwane przez wszystkie przegl�darkiinternetowe.

Dlatego te� bardzo wa�ne jest przygotowanie stylów domy�lnych dostarczanychprzegl�darkom internetowym, które nie obs�uguj� nowych funkcji.

Wcze�niej dowiedzia�e� si�, jak znacznik viewport pozwala na zdefiniowanie domy�lnej sze-roko�ci na podstawie ekranu urz�dzenia. Wprawdzie viewport powoduje, �e strona wygl�dadobrze w standardowej wielko�ci, ale nie b�dzie pomocny, gdy u�ytkownik zechce powi�k-szy� lub zmniejszy� stron� w urz�dzeniu.

Wraz ze zmian� uk�adu graficznego konieczne jest znalezienie sposobu na poinformowanieprzegl�darki internetowej, jak ograniczy� tre�� do konkretnej szeroko�ci, aby by�a wy�wie-tlana poprawnie w ka�dej sytuacji.

Spójrz na prosty przyk�ad rozwi�zania opartego na zapytaniu mediów CSS:body {background-color:blue;}@media only screen and (max-width: 800px) { body {background-color:red;}}

Regu�y CSS s� wykonywane od pocz�tku pliku do ko�ca, wi�c rozpoczynamy od umiesz-czenia ogólnej regu�y definiuj�cej niebieski kolor t�a strony.

Nast�pnie znajduje si� regu�a przeznaczona dla konkretnego urz�dzenia — wykorzystanezostaje zapytanie mediów CSS. Regu�a powoduje zmian� koloru t�a na czerwony w urz�dze-niach, których szeroko�� ekranu nie przekracza 800 pikseli.

W urz�dzeniach obs�uguj�cych zapytania mediów CSS i posiadaj�cych ekran o szeroko�ciponi�ej 800 pikseli t�o b�dzie wy�wietlone w kolorze czerwonym. Natomiast w pozosta�ychurz�dzeniach kolorem t�a pozostaje niebieski. (Zauwa�, �e zmiana koloru t�a podczas zmianywielko�ci strony nie jest operacj� wykonywan� w rzeczywistych aplikacjach. Zamiast tegow omówionym przyk�adzie koncentrujemy si� na pokazaniu sposobu u�ywania zapytaniamediów w celu stosowania ró�nych stylów na podstawie okre�lonych warunków).

Poleć książkęKup książkę

Technika Adaptive Rendering � 229

Bardzo wa�ne jest umieszczenie ogólnej regu�y na pocz�tku, a nast�pnie jej usprawnianie po-przez dodanie obs�ugi zapyta� mediów i wykrywania dost�pno�ci poszczególnych funkcji.

Dzi�ki temu witryna internetowa b�dzie wy�wietlana w pe�nej krasie w przegl�darkach in-ternetowych oferuj�cych obs�ug� najnowszych funkcji i jednocze�nie b�dzie wy�wietlana po-prawnie (cho� mniej atrakcyjnie pod wzgl�dem wizualnym) w starszych wersjach przegl�da-rek internetowych.

Widoki dla konkretnych przegl�darek internetowychNowa funkcja platformy ASP.NET MVC 4, jak� jest tryb wy�wietlania, pozwala na wczyty-wanie odmiennych widoków w zale�no�ci od zdefiniowanych warunków. Przyk�adem u�y-cia tej funkcji mo�e by� utworzenie oddzielnych widoków przeznaczonych dla smartfonów(urz�dze� o ma�ych ekranach) i tabletów (urz�dze� o ekranach wi�kszych ni� w smartfonach,ale jednocze�nie mniejszych ni� w urz�dzeniach biurkowych). Przygotowanie widoków dlatych klas urz�dze� pozwala na optymalne wykorzystanie dost�pnej powierzchni ekranu. Po-nadto stanowi przyk�ad dostarczenia efektywnej i u�ytecznej aplikacji przystosowanej domo�liwo�ci oferowanych przez konkretne urz�dzenia.

Pierwszym krokiem podczas realizacji wymienionego podej�cia jest rejestracja trybów wy-�wietlania przeprowadzana w trakcie uruchamiania aplikacji.

using System.Web.WebPages;

// Rejestracja widoku przeznaczonego dla iPhone’a.DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("iPhone"){ ContextCondition = (ctx => ctx.Request.UserAgent.IndexOf( "iPhone", StringComparison.OrdinalIgnoreCase) >= 0)});

// Rejestracja widoku przeznaczonego dla Windows Phone.DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("WindowsPhone"){ ContextCondition = (ctx => ctx.Request.UserAgent.IndexOf( "Windows Phone", StringComparison.OrdinalIgnoreCase) >= 0)});

Drugim krokiem jest przygotowanie odpowiednich widoków. Utwórz widok dla iPhone’apoprzez skopiowanie widoku Auctions.mobile.cshtml i zmian� jego nazwy na Auctions.iPhone.cshtml.Nast�pnie nag�ówek w nowym widoku zmie� na Aukcje iPhone’a, aby go odró�ni� od pozosta-�ych. Aby zobaczy� tak przygotowan� stron� w dzia�aniu (rysunek 10.9), uruchom aplikacj�za pomoc� emulatora przegl�darki internetowej dla urz�dzenia mobilnego (pokazane tutajprzyk�ady u�ywaj� rozszerzenia User Agent Switcher dla przegl�darki internetowej Firefoxpozwalaj�cego na emulacj� przegl�darki internetowej w iPhonie).

Aby przygotowa� wersj� widoku dla Windows Phone, utwórz kolejn� kopi� Auctions.mobile.cshtmli zmie� jego nazw� na Auctions.WindowsPhone.cshtml. Nast�pnie nag�ówek w nowym widokuzmie� na Aukcje Windows Phone, aby go odró�ni� od pozosta�ych. Po uruchomieniu aplikacjiw emulatorze przegl�darki internetowej na urz�dzeniu mobilnym (rysunek 10.10) b�dzieszmóg� podziwia� przygotowan� stron� w dzia�aniu.

Poleć książkęKup książkę

230 � Rozdzia� 10. Programowanie na platformy mobilne

Rysunek 10.9. Widok utworzony dla iPhone’a

Aby sprawdzi�, czy ��danie pochodzi z urz�dzenia mobilnego, platforma ASP.NETanalizuje je i porównuje z zestawem doskonale znanych definicji przegl�darek inter-netowych dla urz�dze� mobilnych.

Dzi�ki klasie HttpBrowserCapabilities (http://msdn.microsoft.com/en-us/library/system.web.httpbrowsercapabilities.aspx) platforma otrzymuje bardzo du�� ilo�� informacji dotycz�-cych mo�liwo�ci danej przegl�darki. Informacje te s� dost�pne poprzez w�a�ciwo��Request.Browser.

Ewentualnie zamiast polega� na wbudowanych w platform� definicjach przegl�darek,mo�esz skorzysta� z us�ugi takiej jak 51Degrees.mobi (http://51degrees.mobi/Support/Blogs/tabid/212/EntryId/26/51Degrees-mobi-and-MVC4.aspx), która oferuje znacznie bardziejaktualn� baz� informacji o ró�nych urz�dzeniach mobilnych.

Poleć książkęKup książkę

Tworzenie nowej aplikacji mobilnej zupe�nie od pocz�tku � 231

Rysunek 10.10. Widok utworzony dla Windows Phone

Tworzenie nowej aplikacji mobilnejzupe�nie od pocz�tkuPlatforma ASP.NET MVC 4 bardzo u�atwia dodawanie widoków mobilnych do istniej�cychaplikacji. Równie �atwo mo�esz jednak zupe�nie od pocz�tku tworzy� aplikacje mobilne. To u�y-teczne rozwi�zanie, je�li nie masz jeszcze aplikacji, któr� móg�by� wykorzysta� jako punktwyj�cia, b�d gdy z jakiego� powodu nie chcesz ��czy� witryn w wersji zwyk�ej i mobilnej.

Na platformie ASP.NET MVC 4 znajdziesz szablon Aplikacja dla urz�dze� przeno�nych, dzi�kiktóremu szybko b�dziesz móg� rozpocz�� tworzenie aplikacji dla urz�dze� mobilnych. Szablonten w du�ej mierze opiera si� na platformie jQuery Mobile. Aby zatem rozpocz�� tworzenieefektywnych aplikacji, w pierwszej kolejno�ci musisz pozna� jQuery Mobile.

Poleć książkęKup książkę

232 � Rozdzia� 10. Programowanie na platformy mobilne

Platforma jQuery MobilePodczas pracy z jQuery Mobile bardzo istotne jest poj�cie strony. W tradycyjnym programo-waniu sieciowym strona oznacza dokument HTML, stron� .aspx w ASP.NET Web Forms lubwidok .cshtml na platformie ASP.NET MVC. Pliki te zawieraj� kod znaczników oraz logik�pozwalaj�ce na wygenerowanie strony w przegl�darce internetowej.

Jednak na platformie jQuery Mobile jeden plik mo�e zawiera� wiele „stron” dla urz�dze�mobilnych. Z technicznego punktu widzenia strona jQuery Mobile to tak naprawd� znacznik<div> wraz z przypisanym mu atrybutem data-role="page". W jednym pliku widoku mo�eszumie�ci� dowoln� liczb� takich znaczników, a jQuery zamieni je na wiele stron wy�wietlanychjednocze�nie.

Poniewa� na podstawie jednego widoku dla urz�dzenia biurkowego mo�e powsta� wielemniejszych widoków dla urz�dzenia mobilnego (g�ównie wskutek przeprojektowania strony,aby jej nawigacja lepiej odpowiada�a ekranowi urz�dzenia mobilnego), takie podej�cie po-maga w zmniejszeniu liczby plików; w przeciwnym razie pliki te trzeba by utworzy�.

Szablon aplikacji mobilnej w ASP.NET MVC 4Aby utworzy� now� aplikacj� mobiln�, rozpoczynasz prac� dok�adnie tak samo jak w przy-padku zwyk�ej aplikacji sieciowej ASP.NET MVC — wybierz opcj� menu Plik/Nowy/Projekt…,a nast�pnie wybierz typ Aplikacja sieci Web platformy ASP.NET MVC 4 (rysunek 10.11).

Rysunek 10.11. Tworzenie nowego projektu

Poleć książkęKup książkę

Tworzenie nowej aplikacji mobilnej zupe�nie od pocz�tku � 233

W kolejnym oknie dialogowym wybierz szablon Aplikacja dla urz�dze� przeno�nych (rysunek 10.12).

Rysunek 10.12. Wybór szablonu aplikacji dla urz�dze� przeno�nych

W ten sposób utworzysz now� aplikacj� ASP.NET MVC wraz z przyk�adowymi kontroleramii widokami zawieraj�cymi oferowane przez platform� ASP.NET MVC funkcje obs�ugi urz�-dze� mobilnych. Szablon ten pozwoli Ci na szybkie rozpocz�cie pracy.

Uruchom projekt, naciskaj�c klawisz F5 b�d wybieraj�c z menu Debug/Start. Visual Studiorozpocznie kompilacj� rozwi�zania, a nast�pnie uruchomi przegl�dark� internetow�, w którejzostanie wy�wietlona strona g�ówna witryny internetowej w wersji przystosowanej dla urz�-dze� mobilnych (rysunek 10.13).

U�ywanie szablonu aplikacji mobilnej w ASP.NET MVC 4Jak mo�esz si� przekona�, utworzony projekt aplikacji mobilnej standardowo zawiera du��ilo�� przygotowanego kodu. Struktura projektu jest podobna do projektu zwyk�ej witrynyinternetowej, ale z dwoma zmianami.

� Katalog Content zawiera arkusze stylów dla jQuery Mobile (rysunek 10.14):

� jquery.mobile-1.1.0.css (i jego zminimalizowana wersja),

� jquery.mobile.structure-1.1.0.css (i jego zminimalizowana wersja).

Poleć książkęKup książkę

234 � Rozdzia� 10. Programowanie na platformy mobilne

Rysunek 10.13. Domy�lna strona g�ówna aplikacji mobilnej

Rysunek 10.14. Nowa zawarto� katalogu Content projektu

� Katalog Scripts zawiera dwa nowe pliki (rysunek 10.15):

� jquery.mobile-1.1.0.js,

� jquery.mobile.structure-1.1.0.js.

Te nowe pliki stanowi� cz��� platformy jQuery Mobile, czyli platformy JavaScript dostarcza-j�cej urz�dzeniom mobilnym ca�e dobrodziejstwo jQuery i jQueryUI.

Teraz spójrz na zmodyfikowan� wersj� pliku _Layout.cshtml, którego znacznik <head> zawierakilka nowych wierszy.

Poleć książkęKup książkę

Tworzenie nowej aplikacji mobilnej zupe�nie od pocz�tku � 235

Rysunek 10.15. Nowa zawarto� katalogu Scripts projektu

Znacznik <meta name="viewport"> okre�la wielko�� viewportu. To jest bardzo wa�ne, poniewa�wi�kszo�� przegl�darek w wersji dla urz�dze� mobilnych wprawdzie pozwala u�ytkowni-kom na zmniejszanie i powi�kszanie strony wedle w�asnego uznania, ale lepsze wra�eniewywo�a w u�ytkowniku ustawienie szeroko�ci pocz�tkowej. Jak ju� wcze�niej powiedziano,warto�� "width=device-width" powoduje, �e tre�ci jest automatycznie przypisywana szeroko��odpowiadaj�ca szeroko�ci u�ywanego urz�dzenia:

<meta name="viewport" content="width=device-width" />

Alternatywnym rozwi�zaniem jest zdefiniowanie konkretnej szeroko�ci dla viewportu po-przez podanie odpowiedniej warto�ci wyra�onej w pikselach. Na przyk�ad w poni�szympoleceniu pocz�tkowa szeroko�� strony zosta�a okre�lona na 320 pikseli:

<meta name="viewport" content="width=320px" />

Przedstawiony poni�ej znacznik powoduje dodanie do strony stylów jQuery Mobile. Ponadtopozwala na konfiguracj� motywów za pomoc� jQuery Theming (http://jquerymobile.com/demos/1.0/docs/api/themes.html):

<link rel="stylesheet" a href="@Url.Content("~/Content/jquery.mobile-1.0b2.min.css")" />

Wreszcie poni�szy znacznik skryptu dodaje do strony pliki platformy jQuery Mobile. W tensposób mo�liwe staje si� wykonywanie operacji w technologii AJAX, animacji, sprawdzaniapoprawno�ci danych itd.:

<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.mobile-1.0b2.min.js")">�</script>

Teraz spójrz na zmodyfikowany kod HTML strony, zawieraj�cy kilka nowych atrybutów.Platforma jQuery Mobile identyfikuje ró�ne elementy, takie jak strony, przyciski, listview itd.,dzi�ki atrybutom data-role. Analizuj�c zawarto�� znacznika <body>, mo�esz dostrzec, �e szablonstandardowo umie�ci� atrybuty data-role w znacznikach <div>:

Poleć książkęKup książkę

236 � Rozdzia� 10. Programowanie na platformy mobilne

<body> <div data-role="page" data-theme="b"> <div data-role="header"> @if (IsSectionDefined("Header")) { @RenderSection("Header") } else { <h1>@ViewBag.Title</h1> @Html.Partial("_LogOnPartial") } </div>

<div data-role="content">` @RenderBody() </div> </div></body>

Pierwszy znacznik <div> ma przypisany atrybut data-role="page", który identyfikuje ten znacz-nik <div> jako pojedyncz� stron� w aplikacji mobilnej. Podobnie nag�ówek strony zosta� okre�lonyatrybutem data-role="header", natomiast znacznik <body> atrybutem data-role="content".

Platforma jQuery Mobile definiuje ró�ne atrybuty dla doskonale znanych elementów HTML,takich jak <h1>, <h2>, <p>, <table>, a tak�e dla list i elementów formularza, np. przycisków, póltekstowych, list wyboru itd. Wi�cej informacji na temat platformy jQuery Mobile, dok�adn�dokumentacj�, przyk�ady itd. znajdziesz na witrynie internetowej http://jquerymobile.com/.

PodsumowanieW rozdziale przedstawiono ró�ne aspekty programowania sieciowego dla urz�dze� mobil-nych. Dowiedzia�e� si�, czym tak naprawd� jest aplikacja mobilna i jakie s� ró�nice pomi�dzywitrynami internetowymi przeznaczonymi dla urz�dze� mobilnych i dla urz�dze� biurko-wych. Zaprezentowano ró�ne platformy oraz dost�pne techniki, dzi�ki którym mo�esz wydaj-nie tworzy� aplikacje mobilne. Dowiedzia�e� si�, jak dzi�ki wykorzystaniu ró�nych mo�liwo-�ci oferowanych przez przegl�darki internetowe zapewni� u�ytkownikowi jak najlepszewra�enia podczas u�ywania aplikacji.

Przedstawiono tak�e oferowane przez platform� ASP.NET MVC 4 funkcje pomagaj�ce w two-rzeniu aplikacji mobilnych:

� usprawnienia w domy�lnym szablonie aplikacji mobilnej;

� mo�liwo�� dostosowania do w�asnych potrzeb szablonu domy�lnego poprzez zmian� jegouk�adu graficznego, widoków i widoków cz��ciowych;

� obs�ug� funkcji oferowanych przez konkretne przegl�darki internetowe (np. widok dlaiPhone’a) oraz opcj� nadpisania mo�liwo�ci przegl�darek internetowych;

� usprawnienie widoków mobilnych poprzez u�ycie platformy jQuery Mobile.

Poleć książkęKup książkę

453

Skorowidz

Aabstrakcja

HttpContextBase, 436IRepository, 114System.Web.Mvc.CustomModelBinderAttri

bute, 142Adaptive Rendering, 225administracja klastrem pami�ci, 267adnotacje danych, 74ADO.NET Entity Framework, 170adresy URL, 60, 301adresy URL dopasowane do wzorca, 30AJAX, 89, 123, 138akcja

AucionsController.Create, 73AuctionsController.Create, 69Create, 35, 139Index, 36JsonResult, 146Login, 195POST, 71Profile, 53Register, 197

akcjeHTTP, 152kontrolera, 29, 32

anatomiapakietu NuGet, 421strony internetowej, 276��dania HttpRequest, 277

API ApplicationCache, 271API Data Annotations, 74API HttpContext.Items, 59API jQuery, 82API jQuery AJAX, 91API Local Storage, 273API REST, 144API System.XML, 58aplikacja

EBuy, 22Web Forms, 411

aplikacje.NET, 26sieciowe, 206

AppCache, 271architektura

aplikacji sieciowej, 102fizyczna, 105logiczna, 102, 103MVC, 19, 100

arkusze stylów, 283arkusze stylów dla jQuery Mobile, 233ASP, Active Server Pages, 18ASP.NET MVC, 18ASP.NET MVC 4, 20ASP.NET Routing, 29ASP.NET Web API, 149ASP.NET Web Forms, 18, 57–67, 316, 409asynchroniczna komunikacja, 242atak typu

CSRF, 207, 208SQL Injection, 201–205XSS, 206, 207

atrybutAcceptVerbs, 445AllowAnonymousAttribute, 195Authorize, 444AuthorizeAttribute, 53, 191BindAttribute, 187CustomModelBinderAttribute, 142DataAnnotation, 92HandleErrorAttribute, 335, 337RangeAttribute, 76RequiredAttribute, 75Route, 444ValidateAntiForgeryTokenAttribute, 208

automatycznetestowanie, 385wygenerowanie widoku, 214

automatyzacjakompilacji, 378wdra�ania, 387

autoryzacja, 187, 199

Poleć książkęKup książkę

454 � Skorowidz

Bbaza danych, 71, 170, 395

Active Directory, 194Microsoft SQL Server, 194SQL Express, 194

bezpiecze�stwo, 185–187bia�a lista, 205biblioteka

AntiXSS, 206jQuery, 81, 85, 91Modernizr, 294ReusableComponents, 323SignalR, 247, 251System.Web.Optimization, 293web-socket-js, 247

blokkodu, 39try-catch, 338

blokowanie wysy�ania nag�ówka, 208b��dy, 333

aplikacji, 340weryfikacji danych, 77��dania sieciowego, 341

buforASP.NET, 256przegl�darki, 269

buforowaniedanych wyj�ciowych, 258–260, 445donut caching, 261donut hole caching, 263o zasi�gu aplikacji, 256o zasi�gu u�ytkownika, 255o zasi�gu ��dania, 254po stronie klienta, 254, 269, 281po stronie serwera, 253rozproszone

redundancja, 265skalowalno��, 265Velocity, 265wydajno��, 265

Windows AppFabric, 265

CCDN, Content Delivery Network, 278chmura Windows Azure, 403ci�g�a integracja, 383, 387, 434ci�g�e wdra�anie, 406

CMS, Content Management Systems, 206Code First, 71, 171COM, Component Object Model, 315CORS, Cross-Origin Resource Sharing, 144, 147CRUD, 152CSRF, Cross-Site Request Forgery, 207CSS, 228CSS3, 228CSV, Comma-Separated Values, 159cykl �yciowy

sesji, 255��dania, 28

czarna lista, 204czas

trwania aukcji, 74utraty wa�no�ci, 257

cz��ciowe generowanie strony, 123

Ddefinicja manifestu, 271DI, Dependency Injection, 114, 116, 165DIP, Dependency Inversion Principle, 113dodawanie widoku, 50do��czanie modelu, model binding, 33–35DOM, Document Object Model, 81dopasowanie do wzorca, 30dostawca cz�onkostwa, 194dost�p do

bazy danych, 153bibliotek, 26danych, 71, 163, 169, 171elementu <span>, 84platformy, 22s�ownika Request, 35ViewData, 44

DRY, Don’t Repeat Yourself, 121DTO, Data Transfer Object, 143dyrektywa AspCompat, 316dzia�anie

bufora przegl�darki, 269klasy Auction, 174

Eelement

<httpCompression>, 283<p>, 84<script>, 93

Poleć książkęKup książkę

Skorowidz � 455

<span>, 84<ul>, 218healthMonitoring, 340rewrite, 288

Entity Framework, 71, 165, 168, 171Entity Framework Code First, 171, 176ETag, Entity Tag, 270, 289

Ffa�szywe alarmy, 348filtr

ActionFilter, 121HandleError, 336ValidateAntiForgeryTokenAttribute, 209

filtrowanie, 178danych, 155listy, 219

filtryakcji, 36, 137, 441b��dów, 339wyj�tków, 157

Firebug, 292formatowanie danych, 159formularz, 69

logowania, 194rejestracji, 194

funkcja$(), 83removeItem(), 273routingu, 61success(), 131w�asnych b��dów, 334, 339wywo�ania zwrotnego, 90

funkcje mobilne, 211, 226funkcjonalno�ci Web Forms, 413

Ggenerowanie

kodu HTML, 62pakietu NuGet, 420strony internetowej, 275widoków cz��ciowych, 124

graficzny interfejs u�ytkownika, 26grupowanie akcji, 441grupy Windows, 192GUI, Graphical User Interface, 26

Hhierarchia katalogów, 394

Iignorowanie tras, 305IIS, Internet Information Server, 59, 396IIS, Internet Information Services, 20instalacja

ASP.NET MVC, 23pakietu z okna konsoli, 26Razor Single File Generator, 321Velocity, 265wiersza polece� NuGet, 417

integracja platform, 409interfejs

IDependencyResolver, 120IEntity, 173IEquatable, 173IRepository, 115IRouteConstraint, 308IRouteHandler, 315ISearchProvider, 112ISecurityProvider, 111System.Web.Mvc.IController, 30

IoC, Inversion of Control, 113ISP, Interface Segregation Principle, 112

JJavaScript, 81j�zyk

C#, 38HTML, 123JavaScript, 81SmallTalk, 99Visual Basic.NET, 38

JIT, Just-In-Time, 392jQuery JavaScript Library, 81jQuery Mobile, 212, 215, 232, 235jQuery Theming, 235JSON, JavaScript Object Notation, 129, 143JSONP, JSON with Padding, 144

Poleć książkęKup książkę

456 � Skorowidz

Kkarta

Components, 293Routes, 309YSlow, 292

katalogContent, 233, 234, 421Controllers, 27, 47, 149inetsrv, 251libs, 422Scripts, 234, 235Shared, 37tools, 423Views, 28

klasaAccountController, 194, 197ActionFilterAttribute, 36ActionResult, 36ActiveDirectoryProvider, 111AspCompatHandler, 316AsyncController, 240, 447Auction, 46, 174AuctionsController, 116, 137BufferedMediaTypeFormatter, 159CustomHandleError, 341DBContext, 72DonutCachingPage, 262Entity, 173EntityObject, 171ErrorLogger, 110, 117ErrorLoggerManager, 109FileLogSource, 110HomeController, 31HtmlHelper, 46, 319HttpResponseException, 157IRepository, 117JsonModelBinder, 141Logger, 338MediaTypeFormatter, 159MockAuctionRepository, 365, 367MvcHandler, 317Page, 317Payment, 174PersistentConnection, 248RouteAttribute, 310RouteData, 303RouteGenerator, 311SearchController, 113, 121, 178

SearchCriteria, 182SearchViewModel, 179System.Data.Entity.DbContexa, 72System.Web.Mvc.Controller, 32UrlHelper, 45ViewSwitcherController, 222ViewUserControl, 321

klasy POCO, 163kod

EBuy, 22formularza, 69HTML, 52JavaScript, 93, 250

kolejno�� tras, 305kolekcja filtrów, 336kompilacja, 375

ci�g�a, 379na okr�g�o, 379szablonu klienta, 132w Visual Studio, 377wed�ug harmonogramu, 379wej�ciowa, 379z poziomu wiersza polece�, 377

komponent listview, 218komponenty

bezstanowe, 101skompresowane, 282

komunikat o b��dzie, 76, 78, 92komunikat o b��dzie serwera, 156konfiguracja

ASP.NET MVC, 281monitorowania, 340nag�ówka ETag, 289opcji bazy danych, 266opcji uwierzytelniania, 192po�o�enia bufora, 259serwera IIS, 281serwera WWW IIS 7, 190serwera WWW IIS Express, 189tras, 29uwierzytelniania Windows, 188witryny, 397w�a�ciwo�ci projektu, 190

konsola, 26konsorcjum W3C, 82kontekst danych, 176kontenery IoC, 118konto us�ugi dla aplikacji, 188kontrola wersji pakietu, 433

Poleć książkęKup książkę

Skorowidz � 457

kontroler, 20, 31, 47AccountController, 54AdminProfile, 192AjaxController, 441Auction, 138AuctionsController, 49, 364HomeController, 36SearchController, 112, 179, 182UserController, 53Web API, 149, 153, 154, 156

kontrolery asynchroniczne, 20, 239, 242kontrolki u�ytkownika, 65konwencja

PluralizingTableNameConvention, 172przed konfiguracj�, 27, 30, 151

konwersja witryny, 410kopiowanie plików, 401

Lleniwe wczytywanie skryptów, 284liczba

po��cze�, 251zapyta� DNS, 286

lista aukcji, 218Local Storage, 273logika biznesowa, 437lokalizacja us�ugi, 114, 116LSP, Liskov Substitution Principle, 111luka w zabezpieczeniach, 144

���cznik

DefaultModelBinder, 142JsonModelBinder, 143modelu, 141

Mmagiczne ci�gi tekstowe, 436mapowanie obiektowo-relacyjne, 164, 166mechanizm

ETag, 270Local Storage, 273routingu, 314

mened�er pakietówbibliotek, 26NuGet, 26, 435

metoda$.post(), 139.after(), 89.before(), 89.click(), 87.contains(), 86.done(), 91.error(), 91.fail(), 91.html(), 89.load(), 124.prepend(), 89.success(), [email protected](), 208About(), 32Assert.AreEqual(), 347Auction.PostBid(), 354, 356Bind<T>, 120CallRemoteWebService(), 373CheckUserRight(), 121connection.start(), 248Content(), 32Controller.OnException(), 338Controller.View(), 124document.getElementById(), 84ExecuteSqlCommand(), 169File(), 32FormsAuthentication.SetAuthCookie(), 196GetApartmentState(), 315GetHttpHandler(), 315GetOverridenBrowser(), 222GetService(), 153Html.Partial(), 42, 128Html.RenderAction(), 440Html.UserAvatar(), 439HttpNotFound(), 32Index(), 178JavaScript(), 33Json(), 33, 130MapRoute(), 303, 307Membership.GetUser(), 197Membership.ValidateUser(), 196ModelBinderDictionary.GetBinder(), 141OnActionExecuted(), 137OnModelCreating(), 177OnReceivedAsync(), 248OnWriteToStream(), 159PartialView(), 33, 127, 135ProcessRequest(), 317

Poleć książkęKup książkę

458 � Skorowidz

metodaRedirect(), 33RedirectToAction(), 33RedirectToActionPermanent(), 33RedirectToRoute(), 33RedirectToRoutePermanent(), 33RegisterGlobalFilters(), 335Render(), 294RenderAction(), 320, 330Request.IsAjaxRequest(), 135, 136Resolve(), 153RouteTable.MapHttpRoute(), 151SearchForBids(), 240, 241setItem(), 273SqlQuery(), 169View(), 32, 42

metody rozszerzaj�ce, 320minimalizacja skryptów, 287model, 20

aplikacji, 242DOM, 81, 88domeny, 175HTTP long polling, 244HTTP polling, 243obs�uguj�cy EBuy, 46widoku, 44

modu�y HTTP, 58monitorowanie stanu ASP.NET, 340MVC, Model-View-Controller, 18

Nnadpisywanie

konwencji, 172widoków, 212

nag�ówekAccept-Encoding, 282Access-Control-Allow-Origin, 147Cache-Control, 280Content-Type, 140ETag, 289Expires, 280Referrer, 208

narz�dzieaspnet_regiis.exe, 399aspnet_regsel.exe, 341Glimpse, 309Install-Package, 430NuGet, 417NuGet Package Explorer, 419

Razor Single File Generator, 321, 327, 330SQLCMD, 403YSlow, 292, 295

nawiasy klamrowe, 30nawigacja po witrynie, 369nowy typ projektu, 23numeracja wersji oprogramowania, 430

Oobiekt

ActionResult, 32Auction, 34Cache, 257, 268COM interop, 370DTO, 143JSON, 250ModelState, 73NavigationMenu ViewData, 440Request, 35TempData, 43ViewBag, 44ViewData, 43ViewResult, 446window, 83XmlHttpRequest, 89

obiekty imituj�ce, 365obs�uga

akcji POST, 71aplikacji ASP.NET, 59AppCache, 271b��dów, 333, 335buforowania po stronie klienta, 281cookies, 209CORS, 147formatu JSON, 129jednego logowania, 102jQuery, 90, 95JSONP, 146kompilacji, 375konfliktów wspó�bie�no�ci, 169logowania, 195pliku manifestu, 272po��cze�, 251stronicowania, 155wyj�tków, 156

OCP, Open/Closed Principle, 109odpowied

JSONP, 145na zdarzenie, 86

Poleć książkęKup książkę

Skorowidz � 459

na ��dania AJAX, 135na ��dania JSON, 136

od�wie�aniebufora, 296komponentu, 281strony, 89

ograniczenia trasy, 307okno

Dodaj kontroler, 50Dodawanie aplikacji, 398Eksplorator testów, 353Nowy projekt, 24

opcje wdro�enia, 106operacje CRUD, 152opónianie wykonania skryptu, 284opónienie, 108oprogramowanie open source, 367optymalizacja po stronie klienta, 275–297ORM, Object Relational Mapping, 71, 164, 166

Ppaczki, 294pakiet

Entity Framework, 26jQuery.Mobile.MVC, 215, 218meta, 424narz�dzia, 424NuGet, 26, 417, 420NuGet MvcDonutCaching, 263podzespo�u, 424PrecompiledMvcEngine, 325

pakiety kodu, 39parametry akcji, 33pasek nawigacyjny, 225p�tla foreach, 39, 128piek�o DLL, 429platforma

.NET, 17ADO.NET Entity Framework, 169ASP.NET MVC, 22, 409ASP.NET Web Forms, 409jQuery Mobile, 212, 216, 232Moq, 367Web API ASP.NET, 149Web Forms, 18

plik_Layout.cshtml, 41, 234_Layout.Mobile.cshtml, 216_ViewSwitcher.cshtml, 221

About.cshtml, 43, 45ajax_content.html, 124ApplicationHost.config, 282aspnet.config, 251ASPNETDB.MDF, 194Auction.cshtml, 45Auctions.cshtml, 126Auctions.Mobile.cshtml, 214, 229AuctionsController.cs, 135BundleConfig.cs, 295CompanyInfo.cs, 44Create.cshtml, 69EbuyDataContext.cs, 72GenericError.cshtml, 323Global.asax, 58, 443Global.asax.cs, 337HomeController.cs, 31, 43, 44Index.cshtml, 37, 439jquery.mobile.structure-1.1.0.css, 233jquery.mobile.structure-1.1.0.js, 234jquery.mobile-1.1.0.css, 233jQuery.mobile-1.1.0.css, 216jquery.mobile-1.1.0.js, 234jQuery.mobile-1.1.0.js, 216jquery.validate.js, 94jquery.validate.unobtrusive.js, 94Layout.cshtml, 294Layout.Mobile.cshtml, 222manifestu, 271NuSpec, 418RouteConfig.cs, 30Trace.axd, 306TwitterHelpers.cs, 327web.config, 53, 58, 91, 194, 207, 411WebResource.axd, 306Wizard.cshtml, 442WizardController.cs, 442

pliki.cshtml, 319, 323.vbhtml, 319uk�adu graficznego, 41zewn�trzne, 285

pobieranie danych aukcji, 135pobranie warto�ci id, 35POCO, Plain Old CLR Object, 72, 163polecenie

if-else, 38, 438Install-Packages, 433

po��czenie SignalR, 250pomiar wydajno�ci, 290

Poleć książkęKup książkę

460 � Skorowidz

portal Windows Azure, 405pow�oka PowerShell, 26, 267PRG, Post-Redirect-Get, 442priorytet tras, 305procedura Html.ValidationMessage(), 77procedury

obs�ugi HTTP, 58obs�ugi zdarze�, 87pomocnicze, 69

projekt, 23aplikacji sieciowej, 26EBuy, 24testowy, 351testów jednostkowych, 25

projektowanie repozytorium, 164przechowywanie danych sesji, 256przekazywanie obiektów JSON, 140przekierowanie, 33, 287przekierowanie domeny, 208prze��czanie widoków, 220, 223przepustowo��, 108przestrze� nazw, 105

System.Web.Mvc.*, 57System.Web.UI.*, 57

przeszukiwanie listy, 219przyrostek Controller, 30publikowanie witryny, 399, 404

RRAD, Rapid Application Development, 61ramka Forever, 247Razor Single File Generator, 38, 321refaktoring testów jednostkowych, 363regu�y ci�g�ej integracji, 384rejestracja

filtru wyj�tku, 158informacji o b��dach, 337nowego u�ytkownika, 196tras Web API, 151trybów wy�wietlania, 229

repozytorium, 164, 384, 385NuGet.org, 424systemu plików, 426

REST, 153rodzaje buforowania, 253routing, 28, 60

ASP.NET, 29oparty na atrybutach, 310zaawansowany, 299

rozszerzenie Firebug, 292

Sselektory, 83SEO, Search Engine Optimization, 301serializacja typu danych, 160serwer

IIS, 20, 59, 251, 397IIS Express, 190NuGet, 427WWW, 282

silnikRazor, 325routingu, 29widoku, view engine, 25

skalowalno��, 107sk�adnia

Razor, 38Web Forms, 66

skrypt, 283modernizr.js, 294MSBuild, 401

skrypty kompilacji, 376s�ownik

IDictionary, 255ModelState, 73Request, 35RouteData, 303RouteTable, 318RouteValue, 222ViewData, 44, 437

s�owo kluczowe@model, 45internal, 366new, 435

SOLID, 109sortowanie, 178sprawdzanie poprawno�ci danych, 204SRP, Single Responsibility Principle, 109stan widoku, View State, 58strona

logowania, 54rejestracji, 55wyszukiwania, 178

stronicowanie, 155stronicowanie danych, 178, 183strony wzorcowe, 65struktura

katalogów, 27projektu, 106, 395

system zarz�dzania tre�ci�, 206

Poleć książkęKup książkę

Skorowidz � 461

szablonAplikacja dla urz�dze� przeno�nych, 25Aplikacja internetowa, 25Aplikacja intranetowa, 25, 188Display, 320Editor, 320Interfejs Web API, 25Podstawowe, 25Pusta, 24

szablonyaplikacji mobilnej, 211, 232kontrolerów, 47po stronie klienta, 131, 133projektów, 23, 30

S�cie�ka wirtualna, 31�rodowisko

produkcyjne, 386uruchomieniowe, 59

Ttabela

Auctions, 201Categories, 201CategoryAuctions, 202routingu, 29

TDD, Test-Driven Development, 357technika Code First, 72test

akceptacyjny, 349integracyjny, 348jednostkowy, 25

izolacja/niezale�no��,isolated/independent, 346

niepodzielno��, atomic, 346powtarzalno��, repeatable, 346szybko��, fast, 347

pokrycia, Code Coverage, 370testowanie, 343

aplikacji, 354kontrolerów, 360logiki aplikacji, 368logiki dost�pu do danych, 361modelu, 354r�czne, 344widoków, 368zautomatyzowane, 345

testyjednostkowe, 328zautomatyzowane, 350, 358

TFS, Team Foundation Server, 404token, 208, 420token Antiforgery, 444trasa, 29, 47, 302trasa Web API, 151trasy

opcjonalne, 303typu Catch-All, 306

tre�� statyczna, 394tryby wy�wietlania, 21, 212tworzenie

aplikacji, 23faza obs�ugi, 19faza testowania, 19faza tworzenia, 19

aplikacji mobilnej, 231filtrów wyj�tków, 157formularza, 69kompilacji ci�g�ej, 380konta Windows Azure, 403kontrolera asynchronicznego, 240metod pomocniczych, 327nowego projektu, 232nowej witryny, 398obiektów imituj�cych, 365paczek, 294pakietów NuGet, 418projektu testowego, 350przekierowania, 288repozytorium pakietów, 426skryptów kompilacji, 376testów zautomatyzowanych, 358testu jednostkowego, 351tras, 302us�ugi danych, 149widoków Razor, 323widoku, 51, 66widoku mobilnego, 214witryny, 404w�asnego typu, 159

typ MIME, 158typy pakietów NuGet, 423

Uuk�ad graficzny, 40, 65uruchamianie aplikacji, 28

Poleć książkęKup książkę

462 � Skorowidz

urz�dzenia mobilne, 211us�uga zautomatyzowanej kompilacji, 378usprawnianie komunikacji, 247usuwanie silników widoku, 446UTA, User Acceptance Testing, 349uwierzytelnianie, 52, 187

formularzy, 193, 197u�ytkowników, 195

u�ywanieabstrakcji, 115CDN, 280paczek, 296SSL, 193szablonu, 133

Wwarstwa

aplikacji, 105danych, 105dost�pu do danych, 171klienta, 105

wayfinding, 299wdra�anie, 59, 106, 387, 391

aplikacji, 188na serwerze IIS, 396typu bin, 392

Web API, 21Web Forms, 57–67WebSocket, 246wersje beta pakietów, 431weryfikacja danych, 73, 77, 93, 95

po stronie klienta, 79, 91po stronie serwera, 79

weryfikacja ��dania, 206widget ViewSwitcher, 221widok, 20, 36, 49

AjaxTimedOut, 241ChangePasswordView, 198DatabaseError, 335Search, 179

widokicz��ciowe, 42, 65, 124, 221, 319dla iPhone’a, 229dla Windows Phone, 231Razor, 321

wiersz polece� NuGet, 418, 425Windows Azure, 403w�a�ciwo�ci atrybutu AuthorizeAttribute, 191

w�a�ciwo��encoderType, 207Model, 44, 45ModelState, 77RouteCollections.RouteExistingFiles, 305Title, 77ViewBag, 44ViewData, 44

w��czanie CORS, 147wspó�bie�no��, 169wstrzykiwanie

zale�no�ci, 114, 116, 165repozytorium, 153

wtyczka weryfikacji, 94WWW, World Wide Web, 123wybór silnika widoku, 25wydajno��, 107wyj�tek, 34, 157

OptimisticConcurrencyException, 170QuotaExceededError, 274System.Data.DataException, 335

wykonywanie ��da�AJAX, 144JSONP, 146

wykrywanie funkcji mobilnych, 226wymagania

aplikacji, 396PowerShell 2.0, 23Visual Studio 2010 Service Pack 1, 23Visual Web Developer Express 2010 Service

Pack 1, 23wymiatanie, scavenging, 258wysy�anie danych, 138wysy�anie danych JSON, 143wyszukiwanie widoków, 37wy�wietlanie

danych, 43widoku, 202

wywo�anie$.ajax(), 131zwrotne, 90

wzorzecFront Controller, 101kontrolera, 101MVC, 99PRG, 442repozytorium, 164trasy URL, 30

Poleć książkęKup książkę

Skorowidz � 463

XXSS, Cross-Site Scripting, 206

Zzabezpieczanie aplikacji, 187zablokowanie w�tku, thread starvation, 239zaciemnianie, 287zale�no�ci bufora, 258zapytania

LINQ, 178, 205mediów CSS, 228SQL, 168, 205

zapytanieDNS, 286do tabeli, 202

zarz�dzaniebuforem, 414po��czeniami SignalR, 250stanem, 58, 61u�ytkownikami, 413widokami, 128zale�no�ciami, 26, 115, 120

zasadaodwracania zale�no�ci, 113odwrócenia sterowania, 113otwarty/zamkni�ty, 109podstawienia Liskov, 111pojedynczej odpowiedzialno�ci, 109segregacji interfejsu, 112separacji zada�, 19, 74, 99, 100

zasady SOLID, 114zasi�g zmiennej, 40zdarzenia serwera, 245zdarzenie

onClick, 86onsubmit, 94

zmianahas�a, 197w�a�ciwo�ci CSS, 88

zmniejszanieliczby zapyta� DNS, 286liczby ��da�, 278, 279pliku, 286

znacznik viewport, 225znaczniki, 38znak @, 39

���danie

asynchroniczne, 90JSON, 131, 140GET, 139, 152HttpRequest, 276JSONP, 147POST, 139synchroniczne, 89

Poleć książkęKup książkę