Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00460 014114 11053950 na godz. na dobę w sumie
JScript .NET - programowanie. Biblia - książka
JScript .NET - programowanie. Biblia - książka
Autor: Liczba stron: 432
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-666-6 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> .net - programowanie
Porównaj ceny (książka, ebook, audiobook).
JScript .NET to nowe, oparte na technologiach obiektowych, wszechstronne narzędzie do budowy aplikacji platformy Microsoft .NET. Wyczerpujące omówienie metod pracy z obiektami i liczne przykłady czynią z niniejszej książki jedyny w swoim rodzaju przewodnik, prowadzący Czytelnika od podstaw języka, architektury obiektowej i specyfikacji UML, aż do kompletnych aplikacji ASP.NET i usług Windows, wykorzystujących bazy danych, ADO.NET i XML.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

JScript .NET (cid:151) programowanie. Biblia Autor: Essam Ahmed ISBN: 83-7197-666-6 Tytu‡ orygina‡u: Format: B5, stron: 416 oprawa twarda Przyk‡ady na ftp: 1244 kB JScript .NET Programming JScript .NET to nowe, oparte na technologiach obiektowych, wszechstronne narzŒdzie do budowy aplikacji platformy Microsoft .NET. Wyczerpuj„ce om(cid:243)wienie metod pracy z(cid:160) obiektami i liczne przyk‡ady czyni„ z niniejszej ksi„¿ki jedyny w swoim rodzaju przewodnik, prowadz„cy Czytelnika od podstaw jŒzyka, architektury obiektowej i(cid:160) specyfikacji UML a¿ do kompletnych aplikacji ASP.NET i us‡ug Windows, wykorzystuj„cych bazy danych, ADO.NET i XML.• Poznaj, co r(cid:243)¿ni JScript .NET od jŒzyk(cid:243)w JavaScript, Visual Basic i C++. Rozpocznij pracŒ z typami danych, funkcjami, operatorami i innymi podstawowymi elementami JScript .NET. Zadbaj o wydajno(cid:156)(cid:230), wprowadzaj„c mechanizmy obiektowe. Poznaj tajniki tworzenia us‡ug typu Web Service, Windows Forms i klient(cid:243)w ASP.NET. Po‡am zŒby na analizowaniu kodu i obs‡udze b‡Œd(cid:243)w. Zapoznaj siŒ z tajnikami architektury obiektowej i translacji diagram(cid:243)w UML Wykorzystaj posiadan„ wiedzŒ do analizowania aplikacji ASP.NET, przegl„daj„cej bazy danych za po(cid:156)rednictwem ADO.NET. P(cid:243)jd(cid:159) dalej -- odkryj zasady pracy us‡ugi Windows, wykorzystuj„cej ADO.NET do(cid:160) przetwarzania plik(cid:243)w XML. Dowiedz siŒ, jak przenosi(cid:230) aplikacje ASP na platformŒ .NET. IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl 4WVQMCPCMUKæľMú O Autorze ................................................................................................................................15 Wstęp .......................................................................................................................................17 úħè+2NCVHQTOC0 6KLú[M,5ETKRV0 6   Rozdział 1. Infrastruktura .NET Framework..........................................................................23 Rozdział 2. Elementy .NET Framework ................................................................................31 Rozdział 3. JScript .NET .........................................................................................................49 úħè++ NGOGPVCT,5ETKRV C  Rozdział 4. Podstawowe elementy języka .............................................................................59 Rozdział 5. Typy danych i obiekty wewnętrzne ....................................................................67 Rozdział 6. Instrukcje języka JScript i obsługa błędów.........................................................85 Rozdział 7. Kompilacja warunkowa i funkcje języka JScript...............................................97 Rozdział 8. Operatory i typy danych użytkownika ..............................................................103 úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 QMCľF[RTQITCOKUVCYKGFKGèRQYKPKGP  Rozdział 9. Co nowego w JScript .NET? .............................................................................119 Rozdział 10. JScript .NET w praktyce .................................................................................141 Rozdział 11. Usuwanie i obsługa błędów ............................................................................181 Rozdział 12. Wyjątki w JScript .NET ..................................................................................211 úħè+8 NGOGPVCTRTQITCOQYCPKCQDKGMVQYGIQ   Rozdział 13. Metody i fazy programowania obiektowego .................................................235 Rozdział 14. Analizowanie systemu informatycznego ........................................................257 Rozdział 15. Projektowanie klas ..........................................................................................275 úħè8 CUVQUQYCPKC C  Rozdział 16. ASP.NET..........................................................................................................295 Rozdział 17. Przykładowa aplikacja Windows ....................................................................317 Rozdział 18. Migracja od ASP do ASP.NET .......................................................................345 QFCVMK C  Dodatek A Notacja UML .....................................................................................................369 Dodatek B Translacja notacji UML na kod JScript .NET....................................................383 Dodatek C Elementarz XML................................................................................................399 Skorowidz ...................................................4...................................................4..................................... 417  ,5ETKRV0 6ōRTQITCOQYCPKG$KDNKC 5RKUVTGħEK 1#WVQTG 00  9UVúR 00  úħè+2NCVHQTOC0 6KLú[M,5ETKRV0 6   4QFKCđ+PHTCUVTWMVWTC0 6(TCOGYQTM 0  .NET Framework — co to takiego? ...................................................4................................................... 23 JScript a .NET Framework...................................................4...................................................4.............. 24 .NET Framework — rozwiązywane problemy ...................................................4.................................. 25 Brak współdziałania...................................................4...................................................4.................. 26 Niespójne modele programowania ...................................................4..............................................27 Problemy z obsługą wersji ...................................................4...................................................4........ 28 Niespójne zestawy narzędzi...................................................4......................................................... 29 4QFKCđ NGOGPV[0 6(TCOGYQTM 0  Przegląd składników .NET Framework ...................................................4............................................. 31 Common Language Runtime (CLR) ...................................................4.................................................. 32 Współdziałanie międzyjęzykowe i łatwe wdrażanie rozwiązań ...................................................4.. 32 Wspólne usługi wykonawcze...................................................4...................................................4.... 32 .NET Class Library ...................................................4...................................................4......................... 34 Common Type System (CTS) ...................................................4...................................................4......... 35 Typy podstawowe ...................................................4...................................................4..................... 35 Typy wartościowe...................................................4...................................................4..................... 39 Typy odniesieniowe ...................................................4...................................................4.................. 41 ....................... 42 Web Forms...................................................4...................................................4................................ 42 Web Services ...................................................4...................................................4............................ 44 Windows Forms ...................................................4...................................................4.............................. 45 .................. 45 Visual Studio .NET ...................................................4...................................................4....... ASP.NET...................................................4...................................................4.................. 4QFKCđ,5ETKRV0 6 0  JScript .NET w pigułce ...................................................4...................................................4................... 49 Podstawowe cechy języka...............................4...................................................4............................. 51 JScript .NET i JScript ...................................................4...................................................4... ............ 52 JScript .NET i Internet Explorer ...................................................4.................................................. 52 JScript .NET i IIS...................................................4...................................................4....... ............... 52 Dlaczego JScript .NET? ...................................................4...................................................4.................. 53 JScript .NET dla początkujących...................................................4................................................. 53 JScript .NET dla programistów JavaScript...................................................4.................................. 54 JScript .NET dla programistów Visual Basic ...................................................4.............................. 54 5RKUVTGħEK  JScript .NET dla programistów C++ ...................................................4...........................................54 Zalety JScript .NET w stosunku do C#...................................................4........................................54 úħè++ NGOGPVCT,5ETKRV C  4QFKCđ2QFUVCYQYGGNGOGPV[Lú[MC0  Zasady ogólne ...................................................4...................................................4................................. 59 Rozróżnianie wielkich i małych liter ...................................................4........................................... 60 Formatowanie kodu ...................................................4...................................................4.................. 60 Komentarze ...................................................4...................................................4............................... 61 Literały...................................................4...................................................4...................................... 62 Identyfikatory...................................................4...................................................4............................ 63 Niesławny średnik...................................................4...................................................4..................... 64 Klamry ...................................................4...................................................4...................................... 64 4QFKCđ6[R[FCP[EJKQDKGMV[YGYPúVTPG  Typy danych...................................................4...................................................4.................................... 67 Typ Boolean..........................................4...................................................4....................... ................ 67 Typ String ...................................................4...................................................4............... .................. 68 Typ Number ...................................................4...................................................4.............................. 69 Typ Object ...................................................4...................................................4................................ 69 Obiekty wewnętrzne...................................................4...................................................4........................ 70 Obiekt arguments ...................................................4...................................................4...................... 70 Obiekt Array ...................................................4...................................................4............................. 71 Obiekt String...................................................4...................................................4............ ................. 73 Obiekt Number.........................................4...................................................4.................................... 74 Obiekt Math ...................................................4...................................................4.............. ................ 75 Obiekt Date ...................................................4...................................................4............................... 75 Obiekt RegExp...................................................4...................................................4............ .............. 76 Obiekt Error ...................................................4...................................................4.............................. 76 ................... 77 Obiekt this...................................................4...................................................4.............. Obiekt Function ...................................................4...................................................4.......... .............. 77 Obiekt ActiveXObject ...................................................4...................................................4..... ......... 79 Obiekt Enumerator...................................................4...................................................4.................... 79 Obiekt VBArray...................................................4...................................................4........................ 80 Obiekty Microsoft Scripting Runtime ...................................................4.........................................80 4QFKCđ+PUVTWMELGLú[MC,5ETKRVKQDUđWICDđúFÎY   Instrukcje języka JScript ...................................................4...................................................4................. 85 Instrukcja if ...................................................4...................................................4............................... 86 Instrukcja while...................................................4...................................................4......................... 87 Instrukcja do/while.....................................4...................................................4.................................. 88 Instrukcja for...................................................4...................................................4............................. 88 Instrukcja for...in...................................................4...................................................4....................... 88 Instrukcja continue...................................................4...................................................4.................... 89 Instrukcja break...................................................4...................................................4......................... 90 Instrukcja switch ...................................................4...................................................4....................... 90 Instrukcja return ...................................................4...................................................4........................ 92 Instrukcja with ...................................................4...................................................4.......................... 93 Wyjątki i obsługa błędów...................................................4...................................................4................ 93 Przechwytywanie wyjątków ...................................................4...................................................4..... 93 Wywoływanie wyjątków przy użyciu obiektu Error ...................................................4................... 94 Klauzula finally...................................................4...................................................4......................... 95  ,5ETKRV0 6ōRTQITCOQYCPKG$KDNKC 4QFKCđ-QORKNCELCYCTWPMQYCKHWPMELGLú[MC,5ETKRV   Kompilacja warunkowa ...................................................4...................................................4.................. 97 Instrukcja @cc_on ...................................................4...................................................4.................... 98 Instrukcja @set ...................................................4...................................................4......................... 98 Instrukcja if ...................................................4...................................................4............................. 100 Funkcje języka JScript ...................................................4...................................................4.................. 100 4QFKCđ1RGTCVQT[KV[R[FCP[EJWľ[VMQYPKMC   Operatory języka JScript ...................................................4...................................................4............... 103 Operatory jednoargumentowe (unarne) ...................................................4........................................... 104 Operator new...................................................4...................................................4........................... 104 Operator delete...................................................4...................................................4........................ 104 Operator typeof ...................................................4...................................................4....................... 105 Operator instanceof...................................................4...................................................4................. 105 Operatory preinkrementacji i predekrementacji ...................................................4........................ 106 Operatory postinkrementacji i postdekrementacji ...................................................4..................... 106 Operator negacji bitowej (~) ...................................................4...................................................... 106 Operator negacji logicznej (!) ...................................................4.................................................... 107 Operator negacji (–) ...................................................4...................................................4................ 107 Operatory dwuargumentowe (binarne) ...................................................4............................................ 107 Operatory addytywne...................................................4...................................................4.............. 107 Operatory multiplikatywne ...................................................4...................................................4..... 108 Operatory logiczne...................................................4...................................................4.................. 108 Operatory porównania ...................................................4...................................................4............ 111 Operatory trójargumentowe ...................................................4...................................................4.......... 112 Operatory bitowe...................................................4...................................................4........................... 112 Przecinek ...................................................4...................................................4....................................... 113 Tworzenie typów danych ...................................................4...................................................4.............. 113 úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 QMCľF[RTQITCOKUVCYKGFKGèRQYKPKGP  4QFKCđ QPQYGIQY,5ETKRV0 6! 0  Kompilowanie kodu ...................................................4...................................................4........ .............. 119 Nowe typy danych...................................................4...................................................4......................... 121 Precyzowanie typów danych...................................................4...................................................4......... 121 Nowe instrukcje ...................................................4...................................................4............................ 123 Instrukcja class...................................................4...................................................4........................ 124 Instrukcja import...................................................4...................................................4..................... 136 Instrukcja package ...................................................4...................................................4.................. 137 Instrukcja const ...................................................4...................................................4....................... 137 Instrukcja enum...................................................4...................................................4....................... 138 Nowe dyrektywy kompilacji ...................................................4...................................................4......... 138 Dyrektywa @option(fast) ...................................................4...................................................4....... 139 Dyrektywa @debug ...................................................4...................................................4................ 139 Dyrektywa @position ...................................................4...................................................4............. 140 4QFKCđ,5ETKRV0 6YRTCMV[EG0  Tworzenie aplikacji opartych na Windows Forms...................................................4........................... 141 xForm: XML dla formularzy Windows...................................................4..................................... 141 Kompilowanie narzędzia xForm...................................................4................................................143 5RKUVTGħEK  Konwerter walut...................................................4...................................................4............................ 150 Generowanie szablonu aplikacji ...................................................4................................................ 151 Projektowanie klas do konwersji walut ...................................................4..................................... 156 Wiązanie metod z formularzem ...................................................4................................................. 159 Obsługa zdarzeń formularza ...................................................4...................................................... 160 Tworzenie usługi typu Web Service ...................................................4................................................ 161 Kod usługi QoD ...................................................4...................................................4...................... 163 Korzystanie z usługi QoD...................................................4...................................................4....... 166 Dostęp do usługi QoD przy użyciu klienta Windows Forms ...................................................4.... 169 Tworzenie aplikacji ASP.NET...................................................4......................................................... 172 Przegląd kodu ASP.NET ...................................................4...................................................4........ 174 Bliższe spojrzenie na pracę ASP.NET...................................................4....................................... 177 4QFKCđ7UWYCPKGKQDUđWICDđúFÎY 0  Usuwanie błędów w aplikacjach Windows...................................................4...................................... 181 Projekt systemu BugBank...................................................4...................................................4.. ..... 182 Uruchamianie debuggera ...................................................4...................................................4........ 184 Korzystanie z klasy Trace...................................................4...................................................4....... 190 Opcje śledzenia w pliku konfiguracyjnym aplikacji...................................................4.................. 192 Asercje ...................................................4...................................................4.................................... 195 Interaktywne wyszukiwanie błędów...................................................4.......................................... 196 Usuwanie błędów aplikacji ASP.NET ...................................................4............................................. 202 Konfigurowanie aplikacji ASP.NET ...................................................4......................................... 202 Rozpoczynanie sesji usuwania błędów...................................................4...................................... 205 4QFKCđ9[LæVMKY,5ETKRV0 6 0  Obsługa i generowanie wyjątków ...................................................4.................................................... 211 Wyjątki — podstawy ...................................................4...................................................4.............. 213 Różnicowanie wyjątków...................................................4...................................................4......... 215 Tworzenie własnych wyjątków na podstawie typów BCL...................................................4........ 219 Kolejność procedur obsługi wyjątków...................................................4....................................... 222 Wyjątki i infrastruktura .NET ...................................................4.......................................................... 224 Znajomość wyjątków ...................................................4...................................................4.............. 225 Zachowanie spójnego stanu aplikacji ...................................................4........................................ 226 Finalize, Dispose i Close — metody bez wyjątków ...................................................4.................. 228 Zmienianie stanu programu ...................................................4...................................................4.... 231 Inne techniki obsługi błędów ...................................................4..................................................... 232 úħè+8 NGOGPVCTRTQITCOQYCPKCQDKGMVQYGIQ   4QFKCđ/GVQF[KHC[RTQITCOQYCPKCQDKGMVQYGIQ   Programowanie obiektowe...................................................4...................................................4............ 235 Metody programowania obiektowego...................................................4.............................................. 236 Zalety podejścia obiektowego...................................................4.......................................................... 237 Dobre określenie wymagań użytkowników...................................................4............................... 237 Wczesne sprawdzanie poprawności projektu ...................................................4............................ 238 Łatwość konserwacji i uaktualniania ...................................................4.........................................238 Spójne zasady wymiany informacji ...................................................4........................................... 238 Fazy tworzenia aplikacji ...................................................4...................................................4............... 239 Analiza ...................................................4...................................................4.................................... 241 Projektowanie ...................................................4...................................................4......................... 248 Projektowanie architektury ...................................................4........................................................ 249 Gotowe elementy architektury...................................................4................................................... 250  ,5ETKRV0 6ōRTQITCOQYCPKG$KDNKC Podejście intuicyjne ...................................................4...................................................4................ 250 Użycie określonej metodyki tworzenia architektury ...................................................4................. 250 Projektowanie taktyczne ...................................................4...................................................4......... 255 Projektowanie szczegółowe ...................................................4...................................................4.... 255 Tłumaczenie...................................................4...................................................4............................ 255 Testowanie ...................................................4...................................................4.............................. 256 4QFKCđ#PCNKQYCPKGU[UVGOWKPHQTOCV[EPGIQ  Implementowanie przypadków użycia...................................................4............................................. 257 Aktorzy ...................................................4...................................................4................................... 258 Diagramy przypadków użycia ...................................................4................................................... 260 Opisywanie przypadków użycia ...................................................4................................................265 Łączenie przypadków użycia...................................................4..................................................... 270 Modelowanie...................................................4...................................................4................................. 270 Rola notacji modelowania...............................4...................................................4..................... ...... 270 Język UML ...................................................4...................................................4............................. 272 4QFKCđ2TQLGMVQYCPKGMNCU 0  ........................ 275 Obiekty ...................................................4...................................................4.................. Klasy ...................................................4...................................................4............................................. 276 Atrybuty ...................................................4...................................................4................. ....................... 277 Metody (zachowania) i stan obiektu ...................................................4................................................ 277 Komunikaty...................................................4...................................................4............... .................... 277 Współbieżność ...................................................4...................................................4.............................. 279 Synchronizacja wątków ...................................................4...................................................4.......... 280 Komunikacja międzywątkowa...................................................4...................................................4281 Identyfikowanie klas systemu ...................................................4.......................................................... 282 Klasyfikacja jako proces iteracyjny ...................................................4........................................... 282 Analiza dziedziny problemu ...................................................4...................................................... 282 Prototypy...................................................4...................................................4................ ................. 285 Klasyfikacja obiektowa...................................................4...................................................4........... 286 Relacje...................................................4...................................................4........................................... 287 Asocjacja...................................................4...................................................4................................. 287 Agregacja ...................................................4...................................................4................................ 288 Zawieranie..........................................4...................................................4........................................ 288 Uogólnienie-dziedziczenie...................................................4...................................................4...... 289 Liczność ...................................................4...................................................4.................................. 289 Zestawianie elementów architektury...................................................4................................................ 289 .......... 290 Model składników...................................................4...................................................4......... Model rozprzestrzeniania (wdrożeniowy) ...................................................4................................. 291 úħè8 CUVQUQYCPKC C  4QFKCđ#520 60  Instalowanie aplikacji przykładowej...................................................4................................................ 296 Projekt systemu ...................................................4...................................................4.......... ................... 296 Kod strony początkowej...................................................4...................................................4................ 298 Dyrektywy ...................................................4...................................................4.............................. 299 Zdarzenie Page_Load...................................4...................................................4...................... ........ 299 Zmienne sesji ...................................................4...................................................4.......................... 300 Metoda Server.Transfer ...................................................4...................................................4.......... 300 Klasa DirectoryInfo ...................................................4...................................................4................ 301 HTML i elementy sterujące ...................................................4...................................................4.... 302 5RKUVTGħEK  Strona eksplorowania bazy danych ...................................................4.................................................. 302 Kod współpracy z bazą danych...................................................4........................................................ 304 Funkcja PageLoad...................................................4...................................................4................... 305 Pobieranie listy tabel...................................................4...................................................4............... 306 DataView ...................................................4...................................................4................................ 307 Wiązanie listy tabel...................................................4...................................................4................. 307 Lista kolumn tabeli ...................................................4...................................................4................. 307 Pobieranie danych tabeli ...................................................4...................................................4......... 308 Wiązanie wyników z elementem DataGrid i pobieranie informacji o tabeli................................ 309 Kolekcja wyspecjalizowana...................................................4...................................................4.... 310 Wyświetlanie strony....................................4...................................................4............................... 311 Funkcja OnEditCommandTitlesGrid ...................................................4......................................... 311 Funkcja OnUpdateCommandTitlesGrid ...................................................4.................................... 312 Korzystanie z formularza HTML do pobierania wartości wprowadzonych przez użytkownika ..... 313 Zarządzanie wierszami przy użyciu ADO.NET ...................................................4........................ 313 Tworzenie instrukcji SQL Update ...................................................4.............................................314 4QFKCđ2T[MđCFQYCCRNKMCELC9KPFQYU  Aplikacja jsNetNews — wprowadzenie ...................................................4..........................................317 Usługi systemu Windows ...................................................4...................................................4... .... 319 Dlaczego usługa Windows?...................................................4...................................................4.... 320 Zarządzanie usługami Windows ...................................................4................................................321 jsNewsXmlProcessor — infrastruktura...................................................4............................................ 323 Instalowanie plików przykładowych ...................................................4......................................... 323 Rola usługi jsNewsXmlProcessor...................................................4..............................................324 Tworzenie funkcji sterujących usługi ...................................................4........................................325 JScript .NET i metoda ServiceBase.OnStart...................................................4.............................. 329 Instalowanie usługi ...................................................4...................................................4................. 331 jsNewsXmlProcessor — implementacja...................................................4..........................................332 Przetwarzanie XML przy użyciu obiektu DataSet...................................................4..................... 336 Wprowadzanie nowych danych do bazy...................................................4.................................... 337 Kompilowanie usługi ...................................................4...................................................4.............. 338 Tworzenie usługi WWW jsNetNews ...................................................4............................................... 339 Tworzenie klienta usługi WWW...................................................4...................................................... 341 Strona początkowa — prezentacja artykułów...................................................4.................................. 343 4QFKCđ/KITCELCQF#52FQ#520 6 0  Przykładowa aplikacja — badanie opinii...................................................4......................................... 345 Instalowanie plików przykładowych ...................................................4......................................... 346 Baza danych ankiet ...................................................4...................................................4................. 346 Kod ASP ...................................................4...................................................4.................. ............... 348 Tworzenie nowej ankiety...................................................4...................................................4........ 352 Trzy fazy migracji oprogramowania ...................................................4................................................ 355 Wstępna faza migracji..................................4...................................................4..................... ......... 355 Główna faza migracji...................................................4...................................................4.............. 357 Migracja zaawansowana ...................................................4...................................................4......... 358 Migracja bazy danych do ADO.NET...................................................4............................................... 362 ADO i ADO.NET ...................................................4...................................................4............ ....... 362 Plik global.asax ...................................................4...................................................4....................... 362 Plik default.aspx...................................................4...................................................4...................... 363 Plik generateSurvey.aspx...................................................4...................................................4........ 364 Przenoszenie pozostałych części kodu...................................................4....................................... 365  ,5ETKRV0 6ōRTQITCOQYCPKG$KDNKC QFCVMK C  QFCVGM#0QVCELC7/.0  QFCVGM$6TCPUNCELCPQVCELK7/.PCMQF,5ETKRV0 6   QFCVGM  NGOGPVCT:/.0  5MQTQYKF00  4QFKCđ QPQYGIQ Y,5ETKRV0 6! W tym rozdziale:  JScript .NET i kompilowanie kodu  Nowe typy danych  Nowe instrukcje  Dyrektywy kompilatora JScript .NET wyposażony został w wiele nowych elementów — takich jak obsługa zróżnicowanej widoczności elementów klas, dziedziczenie i polimorfizm — które czy- nią z niego język obiektowy o ogromnych możliwościach. W tym rozdziale przedsta- wimy przegląd tych cech, opisując korzystanie z nowych typów danych, tworzenie klas i korzystanie z nowych dyrektyw kompilatora. -QORKNQYCPKGMQFW Program w języku JScript uruchamiany jest w środowisku przetwarzania skryptów, któ- rego rolę pełnią najczęściej: Internet Explorer, host skryptów systemu Windows (Win- dows Scripting Host) lub serwer internetowych usług informacyjnych (Internet Infor- mation Server). Środowisko takie przekształca kolejne wiersze kodu źródłowego do postaci kodu wykonywalnego, który zostaje przekazany głównej jednostce przetwa- rzania systemu. Taki sposób przetwarzania określa się terminem interpretacja — kod źródłowy odczytywany jest wiersz po wierszu, jednocześnie z jego wykonywaniem (patrz rysunek 9.1). 4[UWPGM Przetwarzanie programu JScript przez interpretator  úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 Interpretacyjny model wykonywania programów jest ułatwieniem — uruchomienie nie wymaga żadnych dodatkowych czynności. Wadą tego rozwiązania jest konieczność wykonywania programów w pewnym środowisku, nazywanym hostem lub środowi- skiem hosta (host environment). Specyfikacja, której implementacją jest JScript (EC- MAScript), nie precyzuje więc technik interakcji programów z użytkownikiem, wpro- wadzania i wyprowadzania danych, jak również interakcji z systemem. Owocem tego jest częste dostosowywanie kodu do pracy w pewnym szczególnym środowisku, np. przeglądarki Internet Explorer czy hosta skryptów Windows (Windows Scripting Host). Kolejną wadą modelu interpretacyjnego jest niższa wydajność programów interpreto- wanych niż programów „gotowych”. Ponieważ JScript .NET jest językiem kompilowanym, rozwiązuje wymienione wyżej problemy. Przed wykonaniem programu wymagana jest jego kompilacja. Tworzyć można samodzielne pliki wykonywalne (z rozszerzeniem .exe), pliki wykonywalne przeznaczone dla systemu Windows (pracujące w trybie konsoli bądź GUI) oraz bi- blioteki DLL. Kompilator JScript .NET to program, który przekształca kod źródłowy na kod wyko- nywalny. Rysunek 9.2 ilustruje przebieg takiego przetwarzania. Podobnie jak interpre- tator, kompilator odczytuje kod źródłowy i dzieli na części (elementy składniowe): sło- wa kluczowe, operatory i znaki przestankowe. Wynikiem pracy kompilatora są dwa strumienie danych: lista błędów i skompilowany (wykonywalny) program. Lista błędów powstaje w wyniku analizy składniowej kodu, połączonej z wyszukiwaniem błędów i miejsc, w których niewłaściwie użyto zmiennych. Generowanie kodu i tworzenie pliku EXE lub DLL to ostatnie etapy pracy kompilatora. 4[UWPGM Przetwarzanie programu JScript przez kompilator W przeciwieństwie do tradycyjnych kompilatorów, które generują binarny kod wyko- nywalny, przeznaczony do przetwarzania przez procesory takie jak Intel Pentium, wszystkie kompilatory .NET tworzą kod w języku nazywanym Intermediate Language (IL), czyli języku pośrednim. Kod taki zostaje zapisany do pliku, a ostateczna konwer- sja na właściwy kod wykonywalny następuje dopiero po uruchomieniu programu. Ele- ment wykonujący ostateczną konwersję to kompilator Just-In-Time (JIT, „dokładnie w porę”). Ze względu na jego integrację z biblioteką CLR, jego praca pozostaje zazwy- czaj niewidoczna. 4QFKCđ QPQYGIQY,5ETKRV0 6!  Visual Studio .NET nie ma wbudowanej obsługi projekdtów JScript .NET ani kompilatora JScript .NET. Nowe środowisko programowania wykorzydstywać można do tworzenia kodu źródłowego JScript .NET i usuwania błędów, ale sdamą kompilację inicjujemy z poziomu wiersza poleceń. Kompilator JScript .NET nosi nazwę jsc.exe. Umieszczony zostaje w folderze Microso- ft.NETFrameworkversion (ostatni element ścieżki to numer zainstalowanej wersji in- frastruktury .NET Framework). Przy instalowaniu .NET Framework SDK lub Visual Studio .NET odpowiednia nazwa katalogu dopisywana jest do zmiennej środowiskowej RCVJ systemu. Umożliwia to uruchamianie kompilatora JScript .NET z dowolnego ka- talogu systemu plików. Jeżeli uruchomienie jsc.exe sprawia problemy, należy spróbować wywołać kompilatord z wiersza poleceń Visual Studio .NET. Visual Studio .dNET tworzy nowy skrót do wiersza poleceń, zapewniający dołączenie nazwy katalogdu kompilatorów .NET do zmiennej środowiskowej RCVJ. Skrót ten znajdziemy w menu Start/Microsoft Visual Studio.NET/Visual Studio.NET Tools/Visual Studpio.NET Command Prompt. Kompilator pozwala korzystać ze znacznej liczby opcji, ułatwiających analizowanie programu, kompilację warunkową i optymalizowanie kodu wynikowego. Opcje te wpro- wadzamy w wierszu poleceń kompilacji programu. Najczęściej wykorzystuje się jedy- nie mały podzbiór dostępnych opcji. Gdy pojawia się potrzeba skorzystania z funkcji bardziej zaawansowanych, sięgamy po szczegółowe opisy doi dokumentacji MSDN. 0QYGV[R[FCP[EJ Język JScript .NET, oparty na systemie CTS (Common Type System, wspólny system typów), wprowadza kilka nowych typów danych. Opisujemy je, wraz z mapowaniami do typów CTS, w tabeli 9.1. Szerzej piszemy o CTS w rozdziale 2. 2TGE[QYCPKGV[RÎYFCP[EJ W języku JScript instrukcja XCT deklaruje zmienną beztypową. Zmiennym tego rodzaju można przypisywać dowolny typ danych. JScript konwertuje (przeprowadza koercję) zmienną do odpowiedniego typu na podstawie sposobu jej wykorzystania w programie (kontekst zmiennej). JScript .NET wprowadza ideę zmiennych o określonych typach danych, gdzie progra- mista deklaruje wraz z samą zmienną jej typ. Rozwiązanie takie charakteryzują nastę- pujące zalety:  Wyższa wydajność. Biblioteka wykonawcza JScript .NET nie musi zmieniiać typu zmiennej w zależności od jej zastosowania, co skracai czas jej pracy.  úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 6CDGNC Nowe typy danych języka JScript .NET Typ JScript .NET Typ CTS Opis DQQNGCP 5[UVGO$QQNGCP Wartość logiczna (HCNUG lub VTWG). W odróżnieniu od języka JScript, typ wartościowy, a nie odniesieniowy. D[VG EJCT 5[UVGO$[VG 5[UVGO JCT FGEKOCN 5[UVGO GEKOCN FQWDNG 5[UVGO QWDNG HNQCV KPV NQPI UD[VG UJQTV 5VTKPI WKPV WNQPI WUJQTV 5[UVGO5KPING 5[UVGO+PV 5[UVGO+PV 5[UVGO5$[VG 5[UVGO+PV 5[UVGO5VTKPI 5[UVGO7+PV 5[UVGO7+PV 5[UVGO7+PV 8-bitowa liczba całkowita bez znaku, z zakresu od 0 do +255. 16-bitowa liczba całkowita bez znaku, z zakresu od 0 do +65 535. 96-bitowa liczba zmiennoprzecinkowa ze znakiem, z zakresu od –79,2e27 do +79,2e27. 64-bitowa liczba zmiennoprzecinkowa podwójnej precyzji, z zakresu od –1,7e308 do +1,7e308. Odpowiednik typu 0WODGT języka JScript. 32-bitowa liczba zmiennoprzecinkowa pojedynczej precyzjgi, z zakresu od –3,4e38 do +3,4e38. 32-bitowa liczba całkowita ze znakiem, z zakresu od –2 147 483 648 do +2 147 483 647. 64-bitowa liczba całkowita ze znakiem, z zakresu od –9 223 372 036 854 755 808 do +9 223 372 036 854 755 807. 8-bitowa liczba całkowita ze znakiem z zakresu od –128 do +127. 16-bitowa liczba całkowita ze znakiem, z zakresu od –32 768 do +32 767. Ciąg znaków Unicode o długości do 2 miliardów znaków. 32-bitowa liczba całkowita bez znaku z zakresu od 0 do +4 294 967 295. 64-bitowa liczba całkowita bez znaku z zakresu od 0 do +184 467 440 737 095 551 615. 16-bitowa liczba całkowita bez znaku z zakresu od 0 do +65 535.  Sprawdzanie typów w czasie kompilacji. Można wykryć i zlokalizować nieprawidłowe konwersje typów przed uruchomieniem apilikacji.  Większa przejrzystość kodu. Inny programista łatwiej zrozumie działanie kodu, dysponując dodatkową wskazówką w postaci rodzaju danyich, do których przechowywania można wykorzystać zmienne. Wydruk 9.1 przedstawia kilka przykładów deklarowania zmiennych o określonym typie w języku JScript .NET. Składnia jest stosunkowo prosta i oparta na instrukcji XCT języ- ka JScript. W deklaracji zmiennej, po dwukropku, podawana jest nazwa typu, decydują- ca o możliwościach wykorzystania identyfikatora. 4QFKCđ QPQYGIQY,5ETKRV0 6!  9[FTWM Deklarowanie zmiennych o określonym typie w języku JScrippt .NET XCTKPV8CNWGKPV XCTNQPI8CNWGNQPI XCTHNQCV8CNWGHNQCV XCTFDN8CNWGFQWDNG XCTUVTKPI8CNWG5VTKPI Ponieważ język JScript korzysta ze zmiennych beztypowych, kod przedstawiony na wydruku 9.2 jest jak najbardziej poprawny. Biblioteka wykonawcza JScript przekształ- ca zmienną z typu ciąg na typ liczbowy w trakcie wykonywania programu, zapewniając możliwość wykonania instrukcji przypisania. 9[FTWM Przykład niejawnych konwersji typów w języku JScript XCTL LVGPQM LQM JScript .NET nie pozwoli na skompilowanie takiego fragmentu. Kompilator generuje wówczas błąd 6[RGOKUOCVEJ. Nie oznacza to jednak, że język JScript .NET nie wyko- nuje konwersji niejawnych — przy wyprowadzaniu danych liczbowych do interfejsu użytkownika (na przykład) nie jest konieczne wprowadzanie dodatkowych instrukcji zmiany typu. W jednym wierszu zadeklarować można wiele zmiennych tego samego typu. Ich nazwy rozdzielamy przecinkami, a po ostatniej podajemy nazwę typu. Jest to rozwiązanie pro- ste i intuicyjne. Zmienne o typach określonych i nieokreślonych muszą mideć różne nazwy. Innymi słowy, jeżeli zadeklarujemy zmienną KPFGZ o określonym typie, nie można w innym miejscu tej samej funkcji umieścić deklaracji zmiennedj o tej samej nazwie, ale bez podania typu. Nie można również zmienić typu zmiennej.d W całym zakresie zmiennej jej typ musi pozostać taki sam. 0QYGKPUVTWMELG W języku JScript .NET wprowadzono następujące nowe inistrukcje:       ENCUU, KPVGTHCEG, KORQTV, RCEMCIG, EQPUV, GPWO.  úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 +PUVTWMELCENCUU Słowo kluczowe języka JScript .NET ENCUU umożliwia tworzenie obiektów pierwszego rzędu, w pełni korzystających z ułatwień oferowanych przez język i system operacyjny. Wydruk 9.3 przedstawia przykład definicji prostej klasiy. 9[FTWM Prosta klasa JScript .NET ENCUUFGOQ NCUU ] MQPUVTWMVQT HWPEVKQPFGOQ NCUU ]  QPUQNG9TKVG.KPG 9[YQđCPQMQPUVTWMVQT  _ HWPEVKQPUCORNG/GVJQF ]  QPUQNG9TKVG.KPG *GNNQFGOQ NCUUUCORNG/GVJQF  _ _ Wľ[EKGMNCU[ XCTFEPGYFGOQ NCUU FEUCORNG/GVJQF  Widzimy tu implementację minimalną, zawierającą konstriuktor i jedną metodę. Konstruktor klasy to funkcja składowa nazwana tak samo, jak sama klasa. Na wydruku 9.3 konstruktorem jest funkcja FGOQ NCUU. Konstruktor jest wywoływany automatycznie w chwili tworzenia nowej klasy przy użyciu operatora PGY. Może zostać wykorzystany do inicjowania zmiennych składowych i pozyskiwania wymaganych przez obiekt zasobów. Operacje wykonywane przez klasę, nazywane zachowaniami (behaviors), realizowane są przy użyciu funkcji, określanych terminem metody (methods). Klasa FGOQ NCUU ma jedną metodę — UCORNG/GVJQF. Klasę można traktować jako specyfikację obiektu. Klasa jest pewnym typem, a obiekt — egzemplarzem tego typu. Przy tworzeniu klasy opisujemy zachowania i dane two- rzonych na jej podstawie obiektów. Zachowania reprezentowane są przez publiczne funkcje składowe klasy. Dane obiektu określane są przez właściwości klasy lub jej pu- bliczne zmienne składowe. Całość składa się na strukturę iobiektu. NGOGPV[MNCU[ Definiowane wewnątrz klasy funkcje decydują o zachowaniu tworzonych obiektów; określa się je terminem funkcje składowe (member functions). Zmienne definiowane we- wnątrz klasy decydują o przechowywanych przez obiekty danych; są to zmienne składowe (member variables). Domyślnie elementy składowe klasy widoczne są dla wszystkich innych elementów aplikacji (klas i funkcji). Oznacza to, że wszelkie klasy i funkcje aplikacji mają nieograniczony dostęp do struktury obiektu. Wynika z tego, że programi- sta może zaprojektować aplikację, której działanie zależy od implementacji obiektu, a nie jego metod. Elementy składowe klasy mogą mieć jednak zróżnicowane zakresy widoczności. Element może być publiczny, chroniony, pryiwatny lub wewnętrzny. 4QFKCđ QPQYGIQY,5ETKRV0 6!  Funkcje i zmienne składowe różnią się od funkcji i zmiendnych pozostających poza definicjami klas. Funkcje i zmienne nie należące do żaddnej klasy mają zakres globalny (global), co oznacza, że pozostają widoczne dla wszystkich innych dfunkcji i klas aplikacji. NGOGPV[RWDNKEPG Elementy publiczne (public) to odpowiedniki zmiennych i funkcji globalnych. Wszyst- kie składniki aplikacji mogą z nich bezpośrednio korzystać i wykonywać na nich opera- cje. U źródeł ogromnego znaczenia klas w programowaniu leży jednak możliwość od- dzielenia ich implementacji (struktury wewnętrznej) od interfejsu (struktury widocznej publicznie). Oznacza to, że implementacja może w znacznym stopniu różnić się od in- terfejsu. W przykładowej klasie FGOQ NCUU publiczna metoda UCORNG/GVJQF mogłaby zwracać wartość zmiennej wewnętrznej lub wywoływać wewnętrzną funkcję składową, generującą zwracany przez metodę ciąg. Użytkownik obiektu nie musi wiedzieć, jak klasa została zaimplementowana (i często nie jest tymi zainteresowany). NGOGPV[EJTQPKQPGKRT[YCVPG Klasa oddziela interfejs od implementacji, stosując elementy składowe chronione (pro- tected) lub prywatne (private) — niewidoczne lub widoczne dla innych obiektów jedy- nie częściowo. Tego rodzaju technikę określa się terminem kapsułkowanie (encapsula- tion). Klasa może zostać tak obudowana, że wszelkie jej klienty (użytkownicy klasy) polegać będą wyłącznie na udostępnianych przez nią metodach (zachowaniach). Za- pewnia to projektantowi klasy pełen komfort modyfikowiania jej implementacji. W przeciwieństwie do elementów prywatnych, których widoczność nie wykracza poza ramy jednej klasy, elementy chronione widoczne są dodatkowo dla klas pochodnych (derived). Wydruk 9.4 jest prostą ilustracją wykorzystania chronionej funkcji składowej klasy bazowej przez klasę pochodną. 9[FTWM Użycie chronionego elementu składowego przez klasę pocphodną ENCUUXGJKENG]  KPPGGNGOGPV[RQOKLCO[  RTQVGEVGFHWPEVKQPAOQXG6Q RINQDCN2QKPV ] KORNGOGPVCELúRQOKLCO[ _ _ ENCUUUEQQVGTGZVGPFUXGJKENG] HWPEVKQPIQ6Q.QECVKQP RINQDCN2QKPV ] AOQXG6Q R Y[YQđCPKGOGVQF[AOQXG6Q MNCU[XGJKENG _ _ Element AOQXG6Q jest widoczny dla klasy UEQQVGT, ale pozostaje niedostępny dla in- nych klas i funkcji. Na rysunku 9.3 przedstawiamy zestawienie informacji o widoczno- ści elementów klas.  úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 4[UWPGM Widoczność elementów klas KGFKEGPKGGNGOGPVÎYKPPGLMNCU[ Klasa (określana tu jako klasa pochodna — deriving class) może dziedziczyć elementy innej klasy (określanej jako klasa bazowa — base class), modyfikując jej metody i do- dając nowe składowe funkcje publiczne lub (i) prywatne. Stosuje się w tym celu słowo kluczowe GZVGPFU. Przykład tworzenia klasy pochodnej przedstawia wydruk 9.5. Słowo GZVGPFU zostało wyróżnione pogrubionym drukiem. 9[FTWM Tworzenie klasy pochodnej ENCUUXGJKENG] XCTPCOG5VTKPI XCTOCZ-I.QCFFQWDNG XCTNCVKVWFGFQWDNG XCTNQPIKVWFGFQWDNG RWDNKEHWPEVKQPXGJKENG ]ENGCT _ RWDNKEHWPEVKQPENGCT ] PCOGRQLCF OCZ-I.QCF0WODGT215+6+8 A+0(+0+6; NCVKVWFGNQPIKVWFG_ _XGJKENGMQPKGE ENCUUDKE[ENGGZVGPFUXGJKENG ] HWPEVKQPDKE[ENG ] PCYCVQRWDNKEPCOKGPPCUMđCFQYCMNCU[XGJKENG PCOGTQYGT OCZ-I.QCFVQRWDNKEPCOKGPPCUMđCFQYCMNCU[XGJKENG OCZ-I.QCF _ TGFGHKPKQYCPKGOGVQF[ENGCT MNCU[XGJKENG RWDNKEHWPEVKQPENGCT ] ENGCT Y[YQđCPKGOGVQF[MNCU[XGJKENG PCOGTQYGT OCZ-I.QCF _ PQYCHWPMELCUMđCFQYC RWDNKEHWPEVKQPXKUKV(TKGPF ] NCVKVWFGKNQPIKVWFGVQOKGPPGUMđCFQYGMNCU[XGJKENG NCVKVWFG NQPIKVWFG _ _DKE[ENGMQPKGE 4QFKCđ QPQYGIQY,5ETKRV0 6!  W przedstawionym przykładzie klasa DKE[ENG tworzona jest na podstawie klasy XGJKE NG. Zmieniona została definicja metody ENGCT i dodana została metoda XKUKV(TKGPF . Podobnie można modyfikować i uzupełniać metody dowolnej tworzonej samodzielnie klasy. Nie można jednak wykorzystywać jako klas bazowych klas systemowych, takich jak 5[UVGO5VTKPI. CDGRKGECPKGRTGFOQF[HKMQYCPKGOOGVQFMNCU[ Słowo kluczowe HKPCN uniemożliwia redefiniowanie (zastępowanie) funkcji składo- wych w klasach pochodnych. W poniższym przykładzie definiujemy metodę RWDNKE HKPCN o nazwie FTKXG6Q. Klasa pochodna może z niej korzystać, ale nie ma możliwości zastąpienia jej definicji: ENCUUXGJKENG] RWDNKEHKPCNHWPEVKQPFTKXG6Q RNCEG GUVKPCUVKQP ]  KORNGOGPVCELúRQOKLCO[  _ KPPGGNGOGPV[RQOKLCO[ _ Wprowadzenie słowa kluczowego HKPCN uniemożliwi zmodyfikowanie funkcji składo- wej w klasach pochodnych. 2QNKOQTHKO Polimorfizm korzysta z podobieństw pomiędzy obiektami opartymi na wspólnej klasie bazowej. Wydruk 9.6 przedstawia przykładowe klasy wypriowadzone z klasy XGJKENG: 9[FTWM Przykład hierarchii klas ENCUUVTWEMGZVGPFUXGJKENG]  _ ENCUUXCPGZVGPFUXGJKENG]  _ ENCUUVTKE[ENGGZVGPFUXGJKENG]  _ ENCUUUEQQVGTGZVGPFUXGJKENG]  _ Pewna część aplikacji tworzy egzemplarze tych klas (innymi słowy, tworzy obiekty), a inna — wykonuje na nich operacje. Załóżmy, że dysponujemy funkcją, która wyświe- tla informacje o obiektach UEQQVGT, taką jak przedstawiona na wydruku 9.7. 9[FTWM Funkcja printScooterDetails HWPEVKQPRTKPV5EQQVGT GVCKNU UUEQQVGT ]  QPUQNG9TKVG.KPG 6[R V]_ PđCFQYPQħè V]_UPCOGUOCZ-I.QCF  _ VYQT[O[QDKGMVUEQQVGTKY[ħYKGVNCO[KPHQTOCELGQPKO XCTUEQQVGT1DLGEVPGYUEQQVGT RTKPV5EQQVGT GVCKNU UEQQVGT1DLGEV  Przedstawiona funkcja pobiera obiekt UEQQVGT jako parametr i wyprowadza na ekran in- formacje o nim. Funkcja działa poprawnie, ale dla każdego rodzaju pojazdu (VTWEM, XCP, VTKE[ENG, UEQQVGT) wymagana będzie jej odrębna wersja. Poza oczywistym faktem, że  úħè+++9RTQYCFGPKGFQ,5ETKRV0 6 wszystkie one będą podobne, każda modyfikacja projektu o nowy typ pojazdu wymagać będzie pamiętania o tym, aby utworzyć kolejną funkcję tego rodzaju. W tym momencie skorzystać możemy z polimorfizmu. Ponieważ wszystkie klasy utworzone zostały na bazie klasy XGJKENG, każdy z obiektów może zostać potraktowany jako egzemplarz typu XGJKENG (patrz wydruk 9.8). 9[FTWM Funkcja pobierająca typ vehicle HWPEVKQPRTKPV GVCKNU XXGJKENG ]  QPUQNG9TKVG.KPG 6[R V]_ PĐCFQYPQħè V]_XPCOGXOCZ-I.QCF  _ VYQT[O[RQLCF[KY[ħYKGVNCO[KPHQTOCELGQPKEJ XCTVVTWEMPGYVTWEM XCTDDKE[ENGPGYDKE[ENG XCTO[8CPXCPPGYXCP RTKPV GVCKNU V  RTKPV GVCKNU D  RTKPV GVCKNU O[8CP  Rozwiązanie wykorzystane w funkcji RTKPV GVCKNU jest znacznie prostsze niż w przy- padku funkcj
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

JScript .NET - programowanie. Biblia
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: