140 11 5MB
Polish Pages [215] Year 2004
Spis treści
W stęp........................................................................................................................................................7 1.
W prow adzenie............................................................................................................................... 9 1.1. 1.2. 1.3.
2.
Technologia A SP.N ET ............................................................................................................... 13 2.1. 2.2. 2.3. 2.4. 2.5. 2.6.
3.
Historia platformy .NET....................................................................................................9 Narzędzia tworzenia aplikacji.N ET................................................................................ 9 Perspektywy technologii .NET.......................................................................................11
Wymagania sprzętowe oraz oprogramowanie.............................................................. 13 Model oprogramowania serwera na platformie .N ET................................................. 13 Wspólne środowisko uruchomieniowe.......................................................................... 15 Kompilacja aplikacji ASP.NET...................................................................................... 16 Instalacja oprogramowania platformy .N E T ................................................................ 19 Podstawowa konfiguracja katalogu głównego aplikacji i serwera IIS ......................20 2.6.1. Katalog wirtualny..................................................................................................20 2.6.2. Pliki startowe aplikacji......................................................................................... 25 2.6.3. Znaczniki kodu ASP.NET....................................................................................26
Podstawowa składnia języka C # 3.1. 3.2. 3.3.
3.4. 3.5.
................................................................................... 27
W prowadzenie....................................................................... 27 Reguły nazewnictwa zm iennych....................................................................................27 28 Typy zm iennych....................................................... 3.3.1. Typ liczbowy......................................................................................................... 29 3.3.2. Typ znakowy (char)............................................................................................ 30 3.3.3. Typ logiczny (bool)...............................................................................................30 3.3.4. Typ łańcuchowy (string)......................................................................................30 3.3.5. Typ tablicowy (array)........................................................................................... 31 3.3.6. Typ wyliczeniowy (enum )...................................................................................31 3.3.7. Typ obiektowy (object)........................................................................................32 Kolejność operatorów...................................................................................................... 32 Deklaracje zmiennej i instrukcje.................................................................................... 34 3.5.1. Deklaracje zmiennej i stałej................................................................................ 34 3.5.2. Instrukcja przypisania.......................................................................................... 34 3.5.3. Instrukcja skoku.................................................................................................... 35 3.5.4. Instrukcja warunkowa if....................................................................-..................35 3.5.5. Instrukcja warunkowa switch........................... 36 3.5.6. Instrukcja pętli fo r................................................................................................37
4
ASP.NET i kolekcje C#
3.6.
3.7.
3.8. 3.9. 3.10. 3.11. 3.12. 3.13. 3.14. 3.15. 4.
Pudow a stron A SP.N E T ............................................................................................................ 57 4.1. 4.2. 4.3. 4.4. 4.5. 4.6.
5.
3.5.7. Instrukcja pętli foreach.................................................................................... 37 3.5.8. Instrukcja pętli while......................................................................................37 3.5.9. Instrukcja pętli do ... while................................................................................. 38 3.5.10.Instrukcja pusta..................................................................................................... 38 Atrybuty.............................................................................................................................. 38 3.6.1. Atrybuty dostępu................................................................................................... 39 3.6.2. Atrybuty przesłaniania......................................................................................... 39 3.6.3. Atrybuty abstract, new i static..............................................................................39 Metody................................................................................................................................ 40 3.7.1. Rodzaje i składnia m etod..................................................................................... 40 3.7.2.Parametry typu: wartościowego, ref, out lub params.......................................... 41 Właściwości........................................................................................................................43 Indeksatory.........................................................................................................................44 Interfejsy.............................................................................................................................46 Delegacje............................................................................................................................47 Obsługa wyjątków.............................................................................................................48 Struktura............................................................................................................................. 49 3.13.1. Konstruktory struktury......................................................................................... 49 Klasa....................................................................................................................................52 3.14.1.Konstruktory i destruktory klasy......................................................................... 52 Pakowanie i odpakowanie obiektów...............................................................................54
Wprowadzenie................................................................................................................... 57 Metoda Write obiektu Responsc...................................................................................... 58 Komentarze.........................................................................................................................59 Kod HTML wysłany z serwera do przeglądarki internetowej.................................... 60 Plik global.asax.................................................................................................................. 62 Aplikacje typu eode-behind..............................................................................................65
Kontrolki serwerowe ASP.NET............................................. 5.1. 5.2. 5.3. 5.4. 5.5. 5.6. 5.7. 5.8. 5.9. 5.10. 5.11. 5.12. 5.13. 5.14.
69
Właściwości kontrolek serwerowych..............................................................................69 Kontrolka Label................................................................................................................. 71 Kontrolka TextBox............................................................................................................72 Kontrolka Im age................................................................................................................ 74 Kontrolka Panel................................................................................................................. 76 Kontrolka Table................................................................................................................. 79 Kontrolka ImageButton.................................................................................................... 81 Kontrolka LinkButton.......................................................................................................83 Kontrolka DropDownList................................................................................................. 85 Kontrolka ListBox............................................................................................................. 87 Kontrolka CheckBox.........................................................................................................89 Kontrolka CheckBoxList.................................................................................................. 90 Kontrolka RadioButtonList..............................................................................................92 Kontrolka C alendar...........................................................................................................94
Spis treści 6.
Kolekcje 6.1. 6.2.
6.3.
7.
C # .................................................................................................................................97
Wprowadzenie..................................................................................................................97 Kolekcje standardowe.................................................................................................... 100 6.2.1. Kolekcja Array List............................................................................................ 100 6.2.2. Kolekcja SortedList.............................................................................................104 6.2.3. Kolekcja Q ueue................................................................................................... 108 6.2.4. Kolekcja Stack....................................................................................................112 6.2.5. Kolekcja HashTablc........................................................................................... 115 6.2.6. Kolekcja BitArray............................................................................................. 119 Kolekcje specjalne..........................................................................................................122 6.3.1. Kolekcja ListDictionary..................................................................................... 122 6.3.2. Kolekcja HybridDictionary................................................................................125 6.3.3. Kolekcja StringCollection..................................................................................129 6.3.4. Kolekcja StringDictionary..................................................................................132 6.3.5. Kolekcja NameValueCollection........................................................................ 136 6.3.6. Kolekcja A rray.................................................................................................... 140
Walidacja danych.....................................................................................................................145 7.1. 7.2. 7.3. 7.4.
8.
5
W prowadzenie.................................................................................................................145 Rodzaje walidacji danych w ASP.NET....................................................................... 145 Wyrażenia regularne.......................................................................................................147 7.3.1. Znaki specjalne.................................................................................................... 147 Kontrolki walidacji danych............................................................................................ 149 7.4.1. Kontrolka RcquiredFieldValidator....................................................................150 7.4.2. Kontrolka Compare Validator............................................................................ 153 7.4.3. Kontrolka RangeValidator.................................................................................157 7.4.4. Kontrolka RegularKxprcssionValidator..........................................................160 7.4.5. Kontrolka CustomValidator...............................................................................163 7.4.6. Kontrolka ValidationSummary......................................................................... 167
Wiązanie danych......................................................................................................................173 8.1. 8.2.
W prowadzenie................................................................................................................. 173 Wiązanie danych prostych..............................................................................................174 8.2.1. Kontrolka Label................................................................................................... 174 8.2.2. Kontrolka TextBox..............................................................................................177 8.2.3. Kontrolka ListBox............................................................................................... 178 8.3. Wiązanie danych złożonych...........................................................................................180 8.3.1. Kontrolka ListBox............................................................................................... 180 8.3.2. Kontrolka CheckBoxList.................................................................................... 183 8.3.3. Kontrolka RadioButtonList................................................................................186 8.3.4. Kontrolka DropDownList..................................................................................188 8.3.5. Obiekt D ataSet.................................................................................................... 190 8.3.6. Kontrolka R epeater.............................................................................................192 8.3.7. Kontrolka DataList..............................................................................................195 8.3.8. Kontrolka DataGrid.............................................................................................197
6 9.
ASP.NET i kolekcje C# Buforowanie danych istronASP.NET.................................................................................201 9.1. 9.2. 9.3.
10.
Wprowadzenie.................................................................................................................201 Buforowanie danych....................................................................................................... 201 Buforowanie stron ASP.NET........................................................................................202 9.3.1. Proces buforowania stron w ASP.NET............................................................203 9.3.2. Metody buforowania stron ASP.NET.............................................................. 204 9.3.3. Dyrektywa OutputCachc....................................................................................205 9.3.4. Buforowanie częściowe stron .aspx................................................................. 207 9.3.5. Podsumowanie....................................................................................................209
Logowanie do aplikacji ASP.NET......................................................................................211 10.1. Wprowadzenie.................................................................................................................211 10.2. Metoda uwierzytelniania - Fortns................................................................................ 212 10.3. Metoda uwierzytelniania - W indows........................................................................... 215
11.
Literatura................................................................................................................................. 221
Skorowidz........................................................................................................................................... 223
1.
Wprowadzenie
1.1.
Historiaplatform y.NET
Pod koniec lat 90. X X w ieku zauw ażono w iele kluczow ych problem ów z tw o rzeniem aplikacji internetow ych, w ynikających zc stałego w zrostu w ym agań użyt kow ników . N ależało zerw ać z dotychczasow ym i poglądam i na tem at pow staw ania i w draża nia aplikacji i stw orzyć zupełnie now e środow isko program istyczne, spełniające ocze kiw ania program istów , oraz udostępnić narzędzia, dzięki którym kolejne etapy tw o rzenia złożonej aplikacji będą m ogły przebiegać szybko i, co najw ażniejsze, rów nole gle. W ym agało to w yelim inow ania najbardziej uciążliw ych i krytycznych fragm entów kodu aplikacji: ręcznego zarządzania pam ięcią i posługiw ania się w skaźnikam i oraz um ożliw ienia szybkiej instalacji i nieskom plikow anej konfiguracji ju ż pracującej apli kacji. B ardzo istotnym aspektem , który w zięto pod uw agę, jest bezpieczeństw o i nie zaw odność oraz uniw ersalność kodu. Aby spełnić te, zdaw ałoby się bardzo trudne do pogodzenia, ży czenia użytkow ników , na początku 1002 firm a M icrosoft zapropono w ała now e, rew olucyjne rozw iązanie, kryjące się pod nazw ą platform y .NET. Koszt tego przedsięw zięcia w yniósł ok. 80% nakładów poniesionych na rozw ój now ych technologii przez firm ę M icrosoft w 2001 roku. Ś w iadczy to o w ielkim zaangażow a niu, aby platform a .N E T została zauw ażona i znalazła uznanie w śród program istów i użytkow ników . Z perspektyw y końca 2003 roku m ożna śm iało pow iedzieć, że w szy stkie w ym ienione założenia zostały spełnione, choć m oże jeszcze ich realizacja nie je s t doskonała, ale jesteśm y św iadkam i w yraźnego przełom u. N iniejsza pozycja książkow a tylko w pew nym niew ielkim stopniu, ale bardzo w yraźnie pokazuje istotne zalety program ow ania na platform ie .NET. N ajnow sza w ersja V isual Studio .N ET z 2003 r. m a w budow ane szablony, co ułatw ia program ow anie m obilnych urządzeń oraz im plem entow anie usług W W W .
1.2.
Narzędzia tworzenia aplikacji .NET
O becnie je s t na rynku w iele dobrych narzędzi do tw orzenia aplikacji .NET. N aj lepsze to, oczyw iście, M icrosoft V isual Studio. N E T 2003 (rysunek 1), które m a w szystkie potrzebne funkcje, bardzo ułatw iające pisanie, testow anie, analizow anie
10
ASP.NET i kolekcje C#
i urucham ianie kodu aplikacji o ra / dodatkow e narzędzia do optym alizacji i dcascm blacji kodu. V isual Studio. N E T 2003 ułatw ia tw orzenie nie tylko aplikacji A S P .N E T , ale także aplikacji okienkow ych W indow s, usług W W W oraz udostępnia szablony do tw orzenie plików różnych typów , niezbędnych w aplikacji, np. plików konfiguracyj nych, bibliotek, aplikacji projektów , usług W W W , urządzeń m obilnych. P oczątkują cym program istom , którzy nigdy w cześniej nie pracow ali w środow isku w izualnym , np. V isual Basic, V isual C ++, nauczenie się obsługi narzędzia V isual Studio. N E T m oże zabrać nieco czasu, dlatego dobrym rozw iązaniem je st zainstalow anie na p ierw szym etapie nauki program u W eb M atrix lub edytorów T extP ad, P ajączek 2000 i N otatnik oraz przeglądarki internetow ej Internet E xplorer w w ersji 6.0, która je st interfejsem podczas testow ania aplikacji. m a s s iii £ile
£dit
V'©w
a n » B a s ig Project
Debug
/¿p - g£| * Qär ISI
T o ols
W in d o w
b: * U4 ......
' Ir
+* *+ © El tö ifc Qa ¿Jej;
Help
O x
S ta r t P ag e
Solution Explorer
Solution ‘Solutionl1(0 projects)
G e t S ta r te d
P r o je c ts
F in d S a m p le s
What*s New
^
Online C om m u n ity Headlines
S olution ;
0
Search Online Downloads
O p e n P r o je c t
Solution Explorer
D y n a r* Help
Class Viw i 9
I X
v] 4 *
N e w P r o je c t Ijd Help Solution EvpVyer Usinq Soluticn Explorer Managing Solutions. Projects, and frnT
XML Web S ervices Web Hosting My Profile
zJ
Jd"
■Zf Sam ple« Vty j ^ Studio Samples
ai
-rJ
Ready
Rysunek 1. Okno startowe Visual Studio .NET Interesującą propozycją jest, przestaw iony na rysunku 2, niew ielki program W eb M atrix (ok. 1,2 M B), stanow iący pośrednie rozw iązanie pom iędzy V isual Studio .N ET a zw ykłym edytorem znaczników A SP.N ET. M a on w budow any prosty serw er W W W , co pozw ala, po zainstalow aniu M icrosoft .N ET F ram ew ork, na pisanie i testo w anie prostych aplikacji A SP.N ET, naw et bez konieczności uruchom ienia Serw era ITS.
Wprowadzenie
11
Is M ic r o so ft ASP .N E T W e b M a t r ix Fite
Edit
! £?|
View
Format
G9
Layout
HTML
Cł «'*
Workspace
loctó
Window
Pdp
AS*i?V.fc
; ■/ iH
9} HTMLEtemerii
ypt key'iOids-tn
vile* !•»>,> *
ł
..
O K 1330
a
ocal intranet
Rysunek 12. Okno aplikacji Cwl po podaniu naz.wy serwera: localhost S po só b d ru g i W pisz na pasku adresu U R L przeglądarki adres z praw dziw ą nazw ą serw era - Celeron700: h ttp ://C elero n 7 0 0 /C w l/C l.asp x - rysunek 13. Podanie takiej ścieżki przez internet spow oduje w yśw ietlenie kom unikatu inform ują cego, że aplikacja nic została odnaleziona. 3 h ttp :/./c e le ro n 7 0 0 /C w l/C 1.a sp x File
Edit
>B ack * Address
View «4
F^vorfces
lools
Help
[ T Personal Bar
m h ttp ://Celeron700/Cw 1/C 1 aspx
3
Search
¿Go ! Links ”
O K 1330
W~
^
Local intranet
Rysunek 13. Okno aplikacji Cwl po podaniu nazwy serwera - Celeron700 Sposób trzeci W pisz na pasku adresu URL przeglądarki adres IP serw era 192.50.100.1 h ttp ://1 9 2 .5 0 .100.1/ C w 1/C 1.aspx - rysunek 14. Podanie takiej ścieżki zaw sze spow oduje w yśw ietlenie strony .aspx.
Technologia ASP.NET
25
3 h»p://lucatho*t/Cwl/f I n*px - Microsoft File
£ d*
View
Back - »*
Favorites
;.r)
jM z i W0Ęjfa
Help
1
Personal Bar
. — —-------
¿dress)
Tools
,
.^ S e a rc h
”
, Si----------------....................................
http://192.50.100.1/C wl/C l.aspx|
''I
: Links ”
OK 1330 Done
Local intranet
Rysunek 14. Okno aplikacji C w l po podaniu numeru IP serwera 192.50.100.1
Podsumowanie K ażda z m etod, polega na w pisaniu do przeglądarki internetow ej innego adresu. •
h ttp ://lo calh o st/C w l/C l.a sp x m oże być użyty tylko na serw erze W W W .
•
h ttp ://C elero n t/C w l/C l.asp x m oże być użyty tylko na serw erze W W W lub w sieci LAN.
•
h ttp ://192.50.100.1 /C w l/C l.a sp x m oże być użyty tylko na serw erze W W W , w sieci L A N lub w sieci Internet.
2.6.2.
Pliki starto w e aplikacji
A dm inistrator serw era W W W m oże spow odow ać, że nazw a pliku startow ego aplikacji A S P .N E T nie będzie w ogóle potrzebna - w ystarczy podać na pasku adresu przeglądarki internetow ej sam ą nazw ę katalogu w irtualnego aplikacji - rysunek 15. 15
h t t p : / / 1 9 2 .S 0 . i 0 0 4 / C W
File
Edit
View
v-j Back » Address
|fc ]
Favorites .J
i / - ! " « c r < * *■
Tools
J]
h ttp ://l9 2 .5 0 .1 0 0 . 1 / C
Ï
r
- i n
Personal Bar w l/
-^ S e a rc h
▼ j
c>G o
..........................................................
OK 1330 Done
i x
i
Help >>
>y
Links J z
•Ù
j
i
internet
Rysunek 15. Okno aplikacji Cwl po podaniu tylko nazwy katalogu aplikacji W IIS 5.0 dom yślne są następujące nazw y plików startow ych aplikacji: •
D efault.aspx,
•
iistartasp
•
D cfault.asp
•
D efault.htm .
26
ASP.NET i kolekcje C#
Aby dodać nazw ę w łasnego pliku startow ego aplikacji, co jest zc w zględów bez pieczeństw a zalecane, należy w program ie IIS w ybrać kolejno: S tart—»Program s-* A dm inistrative T o o ls-»Internet Services M anager, kliknąć D efault W eb Site, a następ nie ppm. C w l -»Properties-» Docum ents-»add...-» Default docum ent nam e: C l.asp x -» O K -»OK. W tedy lista dom yślnych nazw plików zostanie poszerzona o plik startow y C l.asp x . Jednak ze w zględów bezpieczeństw a należy usunąć w szystkie zbędne stan dardow e pliki startow e. 2.6.3.
Z naczn iki kodu A S P .N E T
Podczas pisania kodu aplikacji m ożna używ ać następujących par znaczników : •
znaczniki obiektów A SP.N ET, np. Response,
•
znaczniki kontrolek A SP.N ET,
•
•
< % @ .............................. %> - znaczniki dyrektyw y A SP.N ET.
•
- znaczniki kom entarza w języku CK i na stronie .uspx.
- znaczniki w iązania danych,
Kod w ew nątrz znaczników A SP.N E T przetw arzany je st po stronie serw era.
3.
Podstawowa składnia języka C#
3.1.
Wprowadzenie
Język C # jest, podobnie jak V B .N E T , zarządzalny. B ędziem y się nim posługi w ać, poznając technologię A SP.N ET. O bjętość niniejszego w ydania pozw ala tylko na bardzo zw ięzły opis składni C#, ale w ystarczający dla zrozum ienia podanych ćw iczeń. Język C # został opracow any na podstaw ie języków : C++, Java i Pascal. O soby pro gram ujące w C + + lub Javie nie pow inny m ieć w iększych trudności z je g o opanow a niem . Dzięki system ow i zarządzania pam ięcią przez CLR (w spólne środow isko uru chom ieniow e) nie m a w zasadzie potrzeby tw orzenia destruktorów obiektów (chociaż jest to m ożliw e) - obiekty usuw ane są z pam ięci autom atycznie tylko w tedy, gdy nie są ju ż potrzebne.
3.2.
Reguły nazewnictwa zmiennych
N ie należy zakładać, że każdy plik aplikacji A S P .N E T zostanie napisany tylko w języku C#. D latego, aby kom pilacja w szystkich plików należących do aplikacji, niezależnie od języ k a program ow ania, została popraw nie przeprow adzona, należy p rzestrzegać poniżej w ypunktow anych zasad nazew nictw a zm iennych. W przeciw nym w ypadku aplikacja m oże nie zostać skom pilow ana, a naw et później działać w sposób nieprzew idyw alny i trudno będzie stw ierdzić, dlaczego. T ak się m oże zdarzyć zw łasz cz a w tedy, gdy aplikacja je st napisana przy użyciu w ięcej niż jed n eg o języ k a progra m ow ania. np. gdy korzysta z gotow ych (skom pilow anych) złożeń pochodzących z obcych firm . Usunięcie konfliktów nazew nictw a m oże być w tedy praw ie niem ożliwe. R eguły n azew nictw a zm iennych •
S tandard CLS w ym aga, aby nazw y użyte w deklaracji publicznych składow ych klasy (np. w łaściw ości, m etody) różniły się od siebie co najm niej jednym zna kiem , a nie w ielkością liter (co jest dopuszczalne w C # i C ++). Zapew ni to pełną zgodność z innym i językam i, np. V B .N ET.
•
W szystkie nazw y pól, m etod, w łaściw ości itp. m uszą się zaczynać literą lub znakiem podkreślenia (dolny m yślnik).
•
N azw a nie m oże zaw ierać spacji, m yślników , kropek.
28
ASP.NET i kolekcje C#
•
M aksym alna długość nazw y to 255 znaków.
•
Drugi i następny znak nazw y m oże być dow olny, np. litera, cy fra lub znak
•
Z aleca się nie stosow ać w nazw ach zm iennych polskich liter.
•
U żyw anie słów kluczow ych i nazw zastrzeżonych je st zabronione.
•
Jeżeli koniecznie trzeba użyć słow a kluczow ego jako nazw y, m usi być ono poprzedzone znakiem @.
•
N azw y identyfikatorów publicznych oraz klas i konstruktorów pow inny się ro z poczynać dużą literą.
•
N azw y identyfikatorów niepublicznych pow inny się rozpoczynać m ałą literą.
•
N azw y interfejsów pow inny na początku zaw ierać literę I, np. lspis.
•
N otacja w ęgierska jest niepotrzebna (z w yjątkiem nazw interfejsów ).
•
P ierw sza litera każdego w yrazu w chodzącego w skład nazw y zm iennej pow inna być pisana dużą literą, z w yjątkiem pierw szego w yrazu w nazw ach zm iennych niepublicznych, np. 1 i czbaS tudentow .
3.3.
Typy zmiennych
Typ zm iennej określa rodzaj i zakres w artości, jak ie m oże ona przyjm ow ać w kodzie aplikacji, im plikuje także operacje, w jak ich m oże brać udział zm ienna, oraz relacje pom iędzy dw om a zm iennym i tego sam ego typu. M ożna bezpośrednio porów nać tylko zm ienne dow olnego typu liczbow ego, np. l ong z i n t . B ezpośrednie porów nanie dw óch zm iennych typu nieliczbow ego nie je st m ożliw e. Program ując na platform ie .N ET, należy dokładnie kontrolow ać typy zm iennych, poniew aż kom pilator rygorystycznie w ychw ytuje w szelkie niezgodności typów . N ie jaw n a konw ersja typów przez kom pilator jest ograniczona do m inim um , dlatego zaw sze należy sam em u, za pom ocą standardow ych m etod przeprow adzać konw ersje typu np. s t r i n g , a i n t i odw rotnie. Jedynie w łaściw ość T ex t obiektu Label oraz m etoda Wr i t e obiektu Response dość często autom atyczne konw ertują typ zm iennej na typ łańcuchow y ( s t r i n g ) w celu w yśw ietlenia w artości w oknie przeglądarki interneto wej. W szystkie typy dzielą się na: -
proste - liczbow e, string, char, bool, enum ;
-
złożone - klasy i struktury; m ogą zaw ierać inne zm ienne dow olnego typu.
T ypy zm iennych dzielą się rów nież na typy standardow e - dostępne w p rzestrze niach nazw zaw artych w ew nątrz przestrzeni nazw S y st e m w .N E T F ram ew ork i typy w łasne - utw orzone przez użytkow nika.
Podstawowa składnia języka C# 3.3.1.
29
Typ liczbow y
W tabeli 1 przedstaw iono typy liczbow e wraz z ich rozm iarem (w bajtach) oraz przybliżonym zakresem wartości. Typy liczbow e podzielono na całkow ite i zm ienno przecinkow e (rzeczyw iste). W szystkie typy liczbow e są taktycznie strukturą, dlatego m ają m etody i w łaściw ości, np.: •
MaxVal ue - w artość m inim alna,
•
M i n V a l u e - w artość m aksym alna,
•
T o S t r i n g ( ) - konw ersja na typ s t r i n g .
Tabela 1. Typy liczbowe Skrócona nazwa typu (nazwa przestrzeni nazw)
Rozmiar w bajtach
Przedział wartości
Liczby całkowite sbyte (System.Sbyte)
1
-1 2 7 -+ 1 2 8
byte
(System.Byte)
1
0 - +255
s hort ( S y s t e m . I n t l 6 )
2
-32767-+ 32768
ushort (System.U i n 1 16)
2
0 -+ 65535
int
( S ys tem.I ns t32)
4
±2,147 *109
u1nt
(System.Uint32)
4
+4,294*1 O’
long
(System.I nt64)
8
±9,222 *10"'
ulong (System.U1nt64)
8
0 - 1,833 * 1019
decimal
(System.Decimal)
16
±7.9228162514264337593543950335
decimal
(System.Decimal)
16
od ±1,0 * 10'2* do ±7,9* 1028
float
(System.S1ngle)
4
od ±5,0 * 1045 do ±3,4* 1038
double
(System.Double)
8
od ±5,0 * 10'324 do ±1,9*10308
Liczby zmiennoprzecinkowe
Uwaga! Typ decimal może występować jako typ całkowity (dokładny) lub zmiennoprzecin kowy. O znaczenia literow e liczb Jeżeli chcesz zm ienić jaw n ie typ zm iennej liczbow ej, to po ostatniej cyfrze um ieść literę, k tó ra jednoznacznie określi now y typ, np.: float p - 3 . 1 4 f ; // f d ec i ma l z - 3 0 0 2 . 8 7 m : // m double y - 5E-03; // E //
l i c z b a typu f l o a t l i c z b a t y p u deci mal w y k ł a d n i k p o t ę g i o p o d s t a w i e 10. Wyni k: 0 . 0 0 0 5 .
30
ASP.NET i kolekcje C#
3.3.2.
Typ zn a ko w y (char)
Typ znakow y reprezentuje pojedynczy znak U nicode i m usi zostać ujęty w parę pojedynczych cudzysłow ów . W standardzie U nicode typ c h a r zajm uje 2 bajty. Aby przekonw ertow ać zm ienną typu s t r i n g na typ c h a r trzeba posłużyć się m etodą C h a r . P a r s e ( ): c h a r C - C h a r . P a r s e ( " B " ): 2 bajty
char lub System. Char
3.3.3.
np. 'a'; T ; \u0091’; ,x0091'; V ;
T yp logiczny (boolean)
Z m ienne typu logicznego m ogą przyjąć tylko jedną w artość: t r u e lub f a l s e i zajm ują 1 lub 2 bajty - w zależności od rodzaju procesora. W ybrane m etody i w łaściw ości operujące na typie b o o l : •
f a l s e S t r i ng - odczytuje i reprezentuje w artość f a l se jak o s t r i n g ,
•
f a l s e S t r i ng - odczytuje i reprezentuje w artość t r u e ja k o s t r i ng,
•
T o S t r i n g C ) - konw ertuje w artość logiczną na s t r i n g .
U w aga! Jaw ne, bezpośrednie konw ersje zm iennej typu logicznego na typ liczbow y i zm iennej liczbow ej na typ logiczny są niedozw olone. T ylko za pom ocą standardo wych m etod m ożna przeprow adzać konw ersję na typ logiczny b o o l . bool lub Sys tem. Bool ean
3.3.4.
1 lub 2 bajty
true
lub f a l s e
Typ łań cu c h o w y (string)
T yp s t r i n g jest typem obiektow ym . Z m ienna łańcuchow a (typu s t r i n g ) m usi być ujęta w parę cudzysłow ów . K lasa S y st em. S t r i ng nie zaw iera żadnych m etod pozw alających na zm ianę zaw artości zm iennej typu s t r i n g , dlatego po dodaniu do niej dow olnego łańcucha tw orzony je st niejaw nie now y obiekt typu s t r i n g . N ajlepiej jed n ak posłużyć się m etodam i klasy S t r i n g B u i 1 der, dzięki której m ożna dopisyw ać lub usuw ać dow olne fragm enty łańcucha, unikając konieczności tw orzenia now ego obiektu. Uw aga! Znak @- oznacza, że występujący po nim ciąg znaków (ujęty w cudzysłow y) m a być interpretowany dosłownie przez kompilator, np. s t r i n g s - @ " / n / / / ' A S P ’ / b "; . s t r i n g lub S y s t e m . S t r i n g
min. 20 bajtów
np. "ASP1'; "234";
Podstawowa składnia języka C# 3.3.5.
31
T yp ta b lico w y (array)
T yp tablicow y określa tablice, czyli uporządkow any zbiór elem entów tego sa m ego typu. T ablice m ogą być jed n o - lub w ielow ym iarow e. T ablice w ielow ym iarow e dzielą się na prostokątne, o stałej długości każdego w ym iaru, lub „poszarpane” 0 nieokreślonej w definicji długości każdego w ym iaru. E lem enty tablicy indeksow ane (pozycjonow ane) są od zera, dlatego rozm iar tablicy je st rów ny liczbie w szystkich elem entów m inus 1. K lasa S y s t e m . A r r a y je st rzadko bezpośrednio używ ana, a od w ołanie się elem entu do tablicy typu A r r a y np. T a b [3 ] pow oduje naw et błąd kom pi lacji. G łów nym celem tej klasy je st dostarczenie statycznych m etod, np. A r r a y . Copy, A r r a y .CopyTo, pozw alających na przetw arzanie kolekcji i dow olnych zm iennych tablicow ych. O to przykłady deklaracji tablic: 1n t [ J Tabl - C 2 . 3 . 6 . 8 3 ; i n t [ U Tab2 - new i n t C 4 ] ( 2 , 3 , 6 , 8 ) ; // t a b l i c a z a w i e r a 4 e l eme n ty S y s t e m . A r r a y Tab3 - new i n t [ ] ( 2 , 3 , 6 , 8 3 : // o d w o ł a n i e T a b 3 [ 1 3 // g e n e r u j e b ł ą d k o m p i l a c j i intC,] Tab4 - new i n t C , ] C C 2. 33 , C6, 83 3: // t a b l i c a dwuwymiarowa c h a r C , ] Tab5 - C C ' a f , ' A ' 3 , C ' b ' , ' B , 33: // t a b l i c a p r o s t o k ą t n a // dwuwymiarowa s t r i n g [ 3 Tab6 - C " a " , " A " . " b " . " B " , " c " , " C C C " 3 ; // t a b l i c a n a p i s ó w o b j e c t f ] Tab7 - C " a " ,1, " b " , 2, " c " , ' x 1 3; // t a b l i c a znaków
O dczytanie elem entu tablicy polega na podaniu w artości indeksu (liczone od ze ra), np.: L a b . T e x t + - " < H 4 > " + T a b l C l ] + T a b 3 . L e n gt h + T a b 4 [ l . l ] + T a b 5 [ l , 1 3 + Tab6C13+ T a b 7 [ 1 3 ;
W ynik: 348BA1 Przykład tablicy „poszarpanej” : i n t [ , 3 t a b P - new i n t C 2 3 C 3 ; t a b P C O ] “ new i n t L33; t a b P C l ] - new i n t
3.3.6.
[53:
T yp w ylic zen io w y (enum )
T y p w yliczeniow y enum określa zestaw dow olnych nazw zw anych literałam i, w śród których m ogą być naw et słow a kluczow e, ale w tedy m uszą być one poprze dzone znakiem @ np.@byte. Z n ak @nie jest brany pod uw agę podczas przetw arzania, a służy jed y n ie celom identyfikacji. W artości (nazw y) poszczególnych literałów po zadeklarow aniu nie m ogą się zm ieniać, podobnie ja k stałe. L iterały są indeksow ane od 0, co 1 ja k o typ b y te , i n t 3 2 lub i n t 6 4 - dom yślnie integer.
32
ASP.NET i kolekcje C# S kładnia typu w yliczeniow ego:
enum n a z w a _ z m i e n n e j : t y p _ c a ł k o w i t y C e l e m e n t _ w y l i c z e n i a = w a r t o ś ć }
Poniższy przykład pokazuje różne w arianty deklaracji typu w yliczeniow ego: p u b l i c enum S s a k i :
3.3.7.
byteC Lew-9 . Dzi k - 2 ,Wi 1 k - 2 7 , K ot - Le w, Pi es , My s z , @b yt e }
Typ o b iektow y (object)
O biekt o b j e c t m oże być przechow yw any na stercie lub na stosie. Jeżeli obiekt znajduje się na stercie, to m oże się odw oływ ać do niego kilka zm iennych (referencyjnych), a jeśli na stosie, to tylko jedna, ta, przez k tórą został zadeklarow any. O biekt ze sterty usuw any je st zaw sze autom atycznie przez system zarządzania pam ięcią (G arbare C ollection - GC) w chw ili, gdy nie m a do niego żadnych odw ołań. ob j ec t lub Sys tem. Obj ect
3.4.
od Odo 8 bajtów '+ rozm iar obiektu
Kolejność operatorów
W języ k u C # kolejność przetw arzania polecenia zależy od priorytetu operatorów i je st następująca: ()
—w yrażenia w naw iasach okrągłych, -
kropka - sym bol dostępu do składow ej obiektu,
->
- m yślnik i znak większości - w skaźnik dostępu do składowej obiektu,
f()
- w yw ołanie m etody,
t[i]
- naw iasy kw adratow e indeksow ania,
x++
- d w a znaki dodaw ania - zw iększenie w artości zm iennej x o 1, do p ie ro po w ykonaniu na zm iennej x dow olnej instrukcji,
x --
- d w a znaki odejm ow ania - zm niejszenie w artości zm iennej dopiero po w ykonaniu na zm iennej x dow olnej instrukcji,
new
- słow o kluczow e new,
stackalloc
- alokacja tablicy na stosie, w łączenie w eryfikacji zakresu w artości,
checked u nchecked
- w yłączenie w eryfikacji zakresu w artości,
+
—znak dodaw ania, -
!
znak odejm ow ania,
- w ykrzyknik - negacja, -
tylda - negacja bitow a,
xo
1,
Podstawowa składnia języka C#
33
++x
- dw a znaki dodaw ania - zw iększenie w artości zm iennej x o 1, przed w ykonaniem na zm iennej x dowolne; instrukcji,
--x
- dw a znaki odejm ow ania - zm niejszenie w artości zm iennej x o 1, przed w ykonaniem na zm iennej x dow olnej instrukcji,
*
- gw iazdka - znak m nożenia,
/
- praw y ukośnik - znak dzielenia,
%
- znak procentu - reszta z dzielenia,
>
—dw a znaki w iększości - przesunięcie bitów w praw o,
- znak w iększości - relacja w iększości.
- znaki w iększości i rów ności - relacja w iększe lub rów ne,
is
- zgodr.ość lub rów ność typów , - d w a znaki rów ności - relacja rów ności,
! -
- w ykrzyknik i znak rów ności - relacja nierów ności,
&
- am persand - operator i - AND bitow o,
|
—belka — operator 1 ub - OR bitow o,
&&
- d w a am persandy - operator i - AND logicznie, -
znaki ró w n o ści - operator przypisania,
*-
—gw iazdka i znak rów ności - operator m nożenia i przypisania,
/-
- praw y ukośnik i znak rów ności - operator dzielenia i przypisania,
%-
- znaki pro cen tu i znak rów ności - operator d zielenia z resztą i przypi sania,
+-
- znaki dodaw ania i znak rów ności - operator dodaw ania i przypisania, -
znaki odejm ow ania i znak rów ności - operator odejm ow ania i przy pisania,
-
- dw a znaki w iększości i znak rów ności bitow ego i przypisania,
&-
- am peisand i znak rów ności - operator i logicznie i przypisania,
1=
- belka
i znak
operator przesunięcia
rów ności - operator 1 ub lo g iczn ie i przypisania.
34
3.5.
ASP.NET i kolekcje C#
Deklaracje zmiennej i instrukcje
W języku C # są cztery rodzaje instrukcji: przypisania, w arunkow a, pętli i pusta. S tanow ią podstaw ę w szystkich algorytm ów kodu program u aplikacji. 3.5.1.
D eklaracje zm iennej i stałej
K ażda linia kodu instrukcji lub deklaracji m usi być zakończona średnikiem , np. x - l ; D eklaracja zm iennych naz wa _ty p u
n az wa_z mi ennej np. i n t x ;
string
s;
D eklaracja stałej c o n s t n az wa _t y p u
3.5.2.
n a z w a _ s t a ł e j np. c o n s t i n t x;
const
string
s;
In stru kcja przypisania
Instrukcja przypisania określa w artość zm iennej lub stałej za pom ocą znaku ró w ności. n az wa_z mi ennej z n a k _ r ó w n o ś c i
wartość
średniknp.
x=10;
s="ASP.NET";
lub naz wa_typu n az wa_z mi ennej z n a k _ r ó w n o ś c i strin g s - "A S P .NET";
w a r t o ś ć ś r e d n i k np. i n t x=10;
Blok instrukcji Blok instrukcji składający się z co najm niej dw óch instrukcji m usi być zaw arty w ew nątrz pary naw iasów klam row ych C 3, np. Cx =l ; s="A SP"; d - 3 . 14; 3. Jeżeli blok składa się tylko z jednej instrukcji (naw et bardzo złożonej), to nie trzeb a używ ać naw iasów klam row ych - choć jest to często zalecane, poniew aż zw iększa czytelność kodu. T ylko pojedyncza instrukcja m oże, ale nic m usi być ujęta w naw iasy klam row e. Uwaga! W poniższych opisach składni term in i n s t r u k c j e l ub używ any jest zam iennie i oznacza je d n ą lub w ięcej instrukcji.
bl o k
instrukcji
U waga! Z m ienna deklarow ana w ew nątrz bloku pętli lub bloku instrukcji nie jest w idziana na zew nątrz, a jej użycie poza blokiem instrukcji lub pętlą pow oduje błąd kom pilacji.
Podstawowa składnia języka C# 3.5.3.
35
In stru kcja skoku
Instrukcje skoku przeryw ają działanie pętli, bloku instrukcji lub m etody i przeka zują sterow anie poza dotychczasow y fragm ent kodu program u albo w konkretne i oznaczone m iejsce, np. początek pętli. Jedynie częste stosow anie instrukcji go t o jest w ątpliw e, ze w zględu na chaos, jak i m oże ona w prow adzić do kodu, dlatego w ielu program istów naw et zabrania jej używ ania. Pozostałe instrukcje skoku są bardzo przydatne i należy jc stosow ać bez w ahania. L ista instrukcji skoku: • break;
Przeryw a w ykonyw anie instrukcji whi l e , f o r lub swi t ch.
• continue;
Pow oduje natychm iastow e w ykonyw anie kolej nej iteracji dow olnej pętli.
• go t o e t y k i e t a ; lub go t o w y r a ż e n i e _ s t a ł e _ c a s e
Przenosi w ykonyw anie program u do m iejsca oznaczonego etykietą. W praktyce instrukcja got o nie pow inna być nigdy użyta.
• return
W yjście z m etody proceduralnej lub wyjście z m etody funkcyjnej ( r e t u r n x).
• t hrown
Z głoszenie w łasnego w yjątku np. t hr own new F x c e p t i o n ( " Wi c k n i c może być < 0 " ) ;
3.5.4.
In stru kcja w aru n ko w a
if
in stru k cja w arunkow a i f spraw dza praw dziw ość dow olnego w yrażenia logicz nego, czyli takiego, które m oże przyjm ow ać tylko dw ie w artości: t r u e (praw da) lub f a I se (fałsz). W ew nątrz instrukcji i f m oże pojaw ić się kolejna instrukcja i f . if
( naz wa _z mi e n n ej = ( instrukcje; }
wartość)
C I SC
C instrukcje;
}
N aw ias okrągły po słow ie i f jest obow iązkow y, natom iast człon e l s e - opcjo nalny. O peratory logiczn e (porów nania, relacji, zgodności typów ) W ew nątrz w yrażenia logicznego m ożna użyć jednego z poniższych operatorów logicznych. Jeżeli po słow ie i f nie podam y żadnego operatora logicznego, w tedy d o m yślnie kom pilator przyjm uje, że spraw dzany je st w arunek logiczny t r u c np. i f ( J e s t —t r u e ) a = l ; jest rów now ażne instrukcji i f ( J e s t ) a-l;
36
ASP.NET i kolekcje C#
Porównania
Relacji
Zgodności typów
== równości
< mniejszości
większości
>= większości lub równości
3.5.5.
1s
Instrukcja w aru n ko w a sw itch
Instrukcja s w i t c h pozw ala na bardziej czytelny i zw ięzły zapis w ielu instrukcji w arunkow ych (zam iast posługiw ania się instrukcjam i i f ). Jednak jej użycie jest d o z w olone tylko z typam i podstaw ow ym i, np. 1nt, s t r l n g , i w ym aga spraw dzania tylko w artości w yrażeń stałych. Po każdym bloku instrukcji m usi w ystąpić jed n o z n astęp u jących słów kluczow ych, określających instrukcję skoku: br e a k, c o n t i n u e , goto, thrown lub r e t u r n , najczęściej pierw sze i ostatnie. P odinstrukcja d e f a u l t je st o p cjonalna i w ykonyw ana je st tylko w tedy, gdy nic w ykona się kod zaw arty w ew nątrz dow olnej instrukcji case, czyli nie zostanie spełniony żaden w arunek określony tą in strukcją. N ależy podkreślić, że praw ie nigdy nie pow inno się stosow ać instrukcji s w i t c h , w której byłaby m ożliw ość w ykonania w ięcej niż jednej instrukcji c a s e (co jest m ożliw e przy użyciu słow a kluczow ego g o t o ) - i taki sposób p isania kodu je st od kilku lat stanow czo odradzany jako zbyt nieczytelny. switch
(wyrażenie)
// a n a l i z o w a n e w y r a ż e n i e
case
wyrażenie_stałe:
instrukcje:
break;
case
wyrażenie_stałe:
instrukcje;
break;
default:
instrukcje;
b r e ak :
// // // // // // // // //
spra wdzenie dopasowania wyrażenia s t a ł e g o z wartością analizowanego wyrażenia dowolna l i c z b a wystąpień p o d in stru k c ji case podinstrukcja default: może n i e w y s t ą p i ć
} W poniższym przykładzie zostanie w ybrana w artość y=2. in t y; int x-3; sw it c h (x)
C c a s e 1: y - 1 ; b r e ak ; c a s e 3: c a s e 4: y - 2 ; break; d e f a u l t : y - 7 ; b r e ak ;
3
Podstawowa składnia języka C# 3.5.6.
37
Instrukcja pętli for
f o r jest najszybciej w ykonyw aną pętlą, poniew aż z góry w iadom o, ile razy się w ykona. S kłada się z trzech części: pierw sza ustaw ia w artość początkow ą licznika (m oże jednocześnie deklarow ać licznik), druga zaw iera w yrażenie logiczne, którego w artość rów na t r u e zezw ala na w ykonanie kolejny raz bloku instrukcji w ew nątrz pętli; trzecia określa bieżącą w artość licznika pętli. N igdy nie pow inno się m odyfiko wać wartości licznika w ew nątrz bloku instrukcji, poniew aż bardzo łatw o w tedy o popeł nienie błędu, co m oże spow odow ać nieprzew idziane skutki, np. nieskończoną pętlę. for
( i n s t r u k c j a : wyrażenie ( instrukcje;3
logiczne,
instrukcja)
O to typow y przykład pętli f or : for
( i n t 1 - 1 ; 1 x - M î t v o t fo ftio ir iifa
File
£dit
View
Favorites
Tools
yelp
J O jx J Links ”
Aplikacja C# została uruchomiona 9/18/2003 10:37:16 A Liczba prób logowania do aplikacji: 4 Liczba trwających sesji: 2 Done
M
A J 31
ig g Local Iritranet
Rysunek 18. Odczytanie daty uruchomienia aplikacji, liczby prób logowania i trwających sesji Dla bezpieczeństw a aplikacji kod źródłow y pliku g lo b a l .a s a x pow inien być um iesz czony w oddzielnym pliku typu c o d e - b e h i n d o nazwie: g l o b a l .a s a x .e s , co w ym aga odpow iedniej deklaracji w pierw szej linii kodu pliku g l o b a l .a s a x , co pokazano poni żej:
4.6.
Aplikacje typu code-behind
O becnie prom ow any sposób tw orzenia aplikacji A S P .N E T polega na całkow i tym , fizycznym (gdy to m ożliw e) oddzieleniu kodu języ k a np. C # od języ k a H TM L (D H T M L). A plikacje takie nazyw ane są aplikacjam i typu code-behind. G łów ne ko rzyści polegają na znacznym zm niejszeniu czasu pisania i testow ania kodu aplikacji poprzez podzielnie aplikacji na osobne fragm enty pochodzące od różnych program i stów posługujących się różnym i językam i zarządzalnym i np. C #, V B .N ET. W ten sposób d ana aplikacja A S P .N E T m oże składać się z w ielu złożeń (skom pilow anych m odułów , bibliotek) napisanych w różnych językach. Jest to m ożliw e, bo i tak w szy stkie złożenia zaw ierają tylko kod pośredni MS1L - w spólny dla w szystkich języków zarządzalnych. Z tego w zględu kolejne ćw iczenia zaw sze będą się składały z dw óch plików (.aspx i .cs), aby pokazać i przyzw yczaić przyszłych program istów do nowej filozofii program ow ania, polegającej na osobnym program ow aniu interfejsu użytkow nika - plik .aspx, oraz pliku kodu .cs. R ozdzielenie kodu pojedynczego pliku .aspx polega na usunięciu znaczników i < / s c r i p t > , dopisaniu do dyrektyw y @Page atrybutów : I n h e r l t s "N azw aK lasy" src="Nazwa p l i k u _ c s " oraz przeniesieniu kodu m etod um ieszczo nych pom iędzy znacznikam i < s c r 1 p t > do pliku .cs. N azw aklasy je st nazw ą klasy, w której znajduje się cały kod C # (zm ienne, m etody) w pliku .cs. W szystkie m etody i zm ienne, do których następuje odw ołanie w pliku .aspx, m uszą m ieć atrybut dostępu p r o t e c t e d lub publ i c ; pozostałe elem enty pow inny m ieć atrybut p r i v a t e (w artość dom yślna). W pliku .cs pierw sze dw a w iersze kodu pow inny deklarow ać użycie nastę pujących przestrzeni-nazw : System, S y s t e m . W e b . U l . We bContr ol s. P ozostałe prze strzenie nazw pow inny w ystąpić tylko w razie potrzeby.
Chtm lXbody BgColor” " I v o r y " X f o r m r u n a t -"s e rv e r">
L og owa n i e do baz y d a n y c h < / H l >