Professional Documents
Culture Documents
Edycja polska
Autor: Andrew Stellman, Jennifer Greene Tumaczenie: Pawe Dyl ISBN: 978-83-246-1546-9 Tytu oryginau: Head First C# (Head First) Format: 200x230, stron: 752
Jzyk programowania C# zosta zaprojektowany specjalnie dla firmy Microsoft. C# czerpie najlepsze wzorce z jzyka Java oraz C++. Aktualnie dostpna wersja 3.0 zawiera takie elementy jak automatyczne oczyszczanie pamici, typy oglne, dynamiczne tworzenie kodu i wiele innych. Jzyk C# zawiera bogat bibliotek klas pozwalajcych na tworzenie i rozwijanie aplikacji okienkowych, bazodanowych, a take dynamicznych aplikacji internetowych. Rozwizanie to zdobyo ju swoj pozycj na rynku jzykw programowania, a narzdzia dla programistw dostarczane przez firm Microsoft sprawiaj, e pozycja ta wydaje si niezagroona. W ksice Head First C#. Edycja polska autorzy, jak zwykle w charakterystyczny dla tej serii niekonwencjonalny, a przy tym niezwykle skuteczny sposb, naucz Ci niezbdnych podstaw C#. Lektura tej ksiki pozwoli Ci na swobodne poruszanie si wrd takich zagadnie jak wykorzystanie interfejsw czy te dziedziczenie. Dowiesz si, w jaki sposb obsugiwa wyjtki oraz zapisywa dane do pliku, aby potem je z niego odczyta. Nauczysz si korzysta z jzyka LINQ, a take odbdziesz krtki kurs korzystania z Visual Studio. Sposb, w jaki zostaa napisana ta ksika, gwarantuje, e szybko i z atwoci opanujesz jzyk C#!
Podstawy C# Typy danych wykorzystywane w C# Wykorzystanie interfejsw oraz klas abstrakcyjnych Zastosowanie typw wyliczeniowych i kolekcji Sposb wykorzystania plikw do przechowywania danych Wykorzystanie zdarze i delegacji Zastosowania jzyka LINQ Visual Studio sposb na wydajniejsze tworzenie aplikacji
Spis treci
Spis treci
1
Nazwa: Laverne Smith Firma: XYZ Industries Telefon: (212) 555-8129 E-mail: Laverne.Smith@xyzindustries.com Klient: Tak Ostatni kontakt: 26.05.2007
ularza
O biekty f
orm
Dobre programy s intuicyjne w uyciu Jak zamieni TWOJ aplikacj w aplikacj WSZYSTKICH Daj innym uytkownikom moliwo korzystania z Twojej aplikacji Jeszcze nie skoczye: przetestuj instalacj Stworzye penowartociow aplikacj bazodanow
Dostp do danych
10
Spis treci
T tylko kod o
Pod mask
Jeste programist, nie tylko uytkownikiem IDE. IDE moe wykona za Ciebie wiele pracy, ale na razie jest to wszystko, co moe dla Ciebie zrobi. Oczywicie, istnieje wiele powtarzalnych czynnoci podczas pisania aplikacji i IDE okazuje si tu bardzo pomocne. Praca z nim to jednak dopiero pocztek. Moesz wycisn ze swoich programw znacznie wicej pisanie kodu C# to wanie droga, ktra doprowadzi Ci do tego celu. Jak tylko osigniesz mistrzowski poziom w kodowaniu, nie bdzie adnej rzeczy, ktrej Twj program nie umiaby zrobi.
Kiedy robisz to IDE robi to Skd si bior programy IDE pomaga Ci kodowa Kiedy zmieniasz co w IDE, zmieniasz take swj kod Anatomia programu Twj program wie, skd zacz Moesz zmieni punkt wejcia programu W tej samej przestrzeni nazw mog by dwie klasy
Stwrz ten formularz
Twoje programy uywaj zmiennych do pracy z danymi C# uywa znanych symboli matematycznych Ptle wykonuj czynno wielokrotnie Kodowanie czas zacz Instrukcje if/else podejmuj decyzje Ustal warunki i sprawd, czy s prawdziwe
Za kadym razem, kiedy tworzysz nowy program, definiujesz dla niego prze strze nazw. W ten sposb jego kod jest odseparowany od innych klas platformy .NET .
Klasa zawiera kawaek kodu Twojego programu (chocia istniej take bardzo mae programy ktre skadaj si , z tylko jednej klasy). Klasa posiada jedn lub wicej metod. Twoje metody zawsze bd umieszczane wewntrz klas, a kada z nich bdzie si skadaa z instrukcji i wyrae jak te, ktre do tej pory widziae.
Przestrze nazw
Klasa
Metoda 1 instrukcja instrukcja Metoda 2 instrukcja instrukcja
11
Spis treci
3
w ne ) r( to ga vi Na
122 123 124 125 126 127 128 129 130 134 135 136 137 138 140 142 146 147 148 151 152
t N a vi g
ator
Mike moe uy obiektw do rozwizania swojego problemu Uywasz klasy do utworzenia obiektu Kiedy tworzysz obiekt na podstawie klasy, to taki obiekt nazywamy instancj klasy
Ob
ator
ne w
Lepsze rozwizanie... uzyskane dziki obiektom! Instancja uywa pl do przechowywania danych na temat rnych rzeczy Stwrzmy kilka instancji! Dziki za pami Co Twj program ma na myli Moesz uywa nazw klas i metod w celu uczynienia kodu bardziej intuicyjnym Nadaj swojej klasie naturaln struktur Diagramy klas pozwalaj w sensowny sposb zorganizowa klasy Utwrz klas do pracy z kilkoma facetami Stwrz projekt dla facetw Stwrz formularz do interakcji z facetami Jest jeszcze prostszy sposb inicjalizacji obiektw Kilka pomysw na projektowanie intuicyjnych klas
ie k
t N a vi g
Kiedy definiujesz klas, definiujesz take jej metody, podobnie jak projekt definiuje ukad pomieszcze w domu.
Moesz uy jednego projektu do zbudowania dowolnej liczby domw. Moesz rwnie przy uyciu jednej klasy utworzy kad liczb obiektw.
12
ator
Ob
ie k
t N a vi g
Ob
Spis treci
T ypy i referencje
Typ zmiennej okrela rodzaj danych, jakie zmienna moe przechowywa Zmienna jest jak kubek z danymi 10 kilogramw danych w piciokilogramowej torebce Nawet wtedy, gdy liczba ma prawidowy rozmiar, nie moesz przypisa jej do kadej zmiennej Kiedy rzutujesz warto, ktra jest zbyt dua, C# dopasuje j automatycznie C# przeprowadza niektre rzutowania automatycznie Kiedy wywoujesz metod, zmienne musz pasowa do typw parametrw Poczenie = z operatorem Obiekty take s zmiennymi Korzystaj ze swoich obiektw przy pomocy zmiennych referencyjnych Referencje s jak etykiety do Twoich obiektw Jeeli nie ma ju adnej referencji, Twoje obiekty s usuwane z pamici Referencje wielokrotne i ich efekty uboczne
Lucky
158 160 161 162 163 164 165 170 171 172 173 174 175 180 181 182 183 185 186
m er 1
Dwie referencje oznaczaj DWA sposoby na zmian danych obiektu Specjalny przypadek: tablice Tablice mog take zawiera grup zmiennych referencyjnych Witamy w barze Niechlujny Janek najtasze kanapki w miecie! Obiekty uywaj referencji do komunikacji midzy sob
t D og
er 2
nu
Ob
ek
i
m er 1
ek
t D og
ek
t Dog n
nu
ek
t Dog n
um
pyk!
fido
er 2
um
Lucky
fido
Ob
Ob
Ob
13
Spis treci
Laboratorium C# nr 1
Joe, Bob i Al uwielbiaj chodzi na tor wycigowy, ale ciga utrata pienidzy powoduje u nich frustracj. Potrzebuj symulatora, aby mogli okreli zwycizc, zanim pozbd si wszystkich pienidzy. Jeli dobrze wywiesz si z zadania, zostaniesz wprowadzony w arkana ich sposobu zarabiania.
196 204
14
Spis treci
Hermetyzacja
Krystyna planuje przyjcia Co powinien robi program szacujcy? Jazda prbna Krystyny Kada opcja powinna by obliczana indywidualnie Bardzo atwo przez przypadek le skorzysta z obiektw Hermetyzacja oznacza, e niektre dane w klasie s prywatne Uyj hermetyzacji w celu kontroli dostpu do metod i pl Twojej klasy Ale czy jego prawdziwa tosamo jest NAPRAWD chroniona? Dostp do prywatnych pl i metod mona uzyska tylko z wntrza klasy Kilka sugestii dotyczcych hermetyzacji Hermetyzacja utrzymuje Twoje dane w nieskazitelnym stanie Waciwoci sprawi, e hermetyzacja bdzie atwiejsza
206 207 212 214 216 217 218 219 220 223 224 225 226 227 228 229
Agent C
GB
IA
A g e nt K
Stwrz aplikacj do przetestowania klasy Farmer Uyj automatycznych waciwoci do ukoczenia klasy Co wtedy, gdy chcemy zmieni pole mnonika wyywienia? Uyj konstruktora do inicjalizacji pl prywatnych
A g e nt M
I5
T ak Nie
T ak
Nie
15
Spis treci
Dziedziczenie
16
Spis treci
7
Dziedziczenie Abstrakcja Hermetyzacja Polimorfizm
Wrmy do pszczelej korporacji Moemy uy dziedziczenia do utworzenia klas dla rnych typw pszcz Interfejs daje klasie do zrozumienia, e musi zaimplementowa okrelone metody i waciwoci Uyj sowa kluczowego interface do zdefiniowania interfejsu Teraz moesz utworzy instancj NectarStinger, ktra bdzie wykonywaa dwa rodzaje zada Klasy implementujce interfejsy musz zawiera WSZYSTKIE ich metody Powicz troch z interfejsami Nie moesz stworzy instancji interfejsu, ale moesz uzyska jego referencj Referencje interfejsw dziaaj tak samo jak referencje obiektw Za pomoc is moesz sprawdzi, czy klasa implementuje okrelony interfejs Interfejsy mog dziedziczy z innych interfejsw RoboBee 4000 moe wykonywa zadania pszcz bez potrzeby spoywania cennego miodu is okrela, co obiekt implementuje, as mwi kompilatorowi, jak go traktowa Ekspres do kawy take jest urzdzeniem Rzutowanie w gr dziaa w odniesieniu do obiektw i interfejsw Rzutowanie w d pozwala zamieni urzdzenie z powrotem w ekspres do kawy Rzutowanie w gr i w d dziaa take w odniesieniu do interfejsw
Salon Podwrko przed domem Jadalnia
282 283 284 285 286 287 288 290 291 292 293 294 295 296 297 298 299 303 304 307 308 310 311 319
Jest co wicej ni tylko public i private Modyfikatory dostpu zmieniaj zasig Obiekty niektrych klas nigdy nie powinny by tworzone
Podwrko za domem
Kuchnia
Klasa abstrakcyjna jest jak skrzyowanie klasy i interfejsu Obiekty niektrych klas nigdy nie powinny by tworzone Metoda abstrakcyjna nie ma ciaa Polimorfizm oznacza, e jeden obiekt moe przyjmowa wiele rnych postaci
Ogrd
17
Spis treci
pyk!
18
Spis treci
Laboratorium C# numer 2
Twoim zadaniem jest stworzenie gry przygodowej, w ktrej potny wojownik wyrusza na misj i dzielnie walczy, poziom za poziomem, ze miertelnie niebezpiecznymi wrogami. Stworzysz system turowy. Oznacza to, e najpierw gracz wykonuje jeden ruch, a nastpnie ruch wykonuje przeciwnik. Gracz moe przesun si lub zaatakowa; potem moliwo ruchu lub ataku dostaje kady z wrogw. Gra toczy si do czasu, a gracz pokona wszystkich przeciwnikw na wszystkich siedmiu poziomach lub zginie.
Specyfikacja: stwrz gr przygodow Zabawa dopiero si zaczyna! 390 410
19
Spis treci
9
am
t FileSt
ek
t FileSt
am
re
am
re
Ob Ob
ek
i i
ek
t FileSt
re
.NET automatycznie konwertuje tekst do postaci Unicode C# moe uy tablicy bajtw do przesyania danych
ek
am
t FileSt
20
re
Ob
33
Do zapisywania danych binarnych uywaj klasy BinaryWriter Pliki utworzone dziki serializacji mog by czytane take rcznie StreamReader i StreamWriter bd do tego odpowiednie
Spis treci
10
Obsuga wyjtkw
Damian potrzebuje swoich wymwek, aby by mobilnym Kiedy program wyrzuca wyjtek, .NET tworzy obiekt Exception Kod Damiana zrobi co nieoczekiwanego Wszystkie obiekty wyjtkw dziedzicz z Exception Debuger pozwala Ci wyledzi wyjtki w kodzie i zapobiec im Uyj debugera wbudowanego w IDE, aby znale problem w programie do zarzdzania wymwkami Oj, oj! w kodzie dalej s bdy... Obsu wyjtki za pomoc try i catch Co si stanie, jeeli wywoywana metoda jest niebezpieczna? Uyj debugera do przeledzenia przepywu try/catch Jeli posiadasz kod, ktry powinien by uruchomiony ZAWSZE, zastosuj finally Uyj obiektu Exception w celu uzyskania informacji o problemie
Praca jest dzisiaj nudna. Chciabym ponurkowa. Czas na uruchomienie mojego generatora wymwek.
464 468 470 472 473 474 477 479 480 482 484 489 490 491 492 495 496 498 499 500 503
Uyj wicej ni jednego bloku catch do wyapania rnych typw wyjtkw Jedna klasa wyrzuca wyjtek, inna klasa go wyapuje Pszczoy i ich wyjtek OutOfHoney atwy sposb na uniknicie licznych problemw: using umoliwia Ci stosowanie try i finally za darmo Unikanie wyjtkw: zaimplementuj IDisposable, aby przeprowadzi wasne procedury sprztania Najgorszy z moliwych blok catch: komentarze Tymczasowe rozwizania s dobre (tymczasowo) Kilka wskazwek dotyczcych obsugi wyjtkw Damian w kocu pojecha na urlop...
21
Spis treci
11
Zdarzenia i delegaty
Pika zostaa uderzona pod ktem 70 stopni w stosunku do poziomu i poleci na odlego 82 metrw.
bi
e k t all B
ek
t P i t c h er
Zawodnik moe zaj si pik uderzon pod tym ktem i na dan odlego (90 jest wiksze ni 82).
Ob
22
Spis treci
12
Powtrka i pokaz
Przebye dug drog Zajmowalimy si take pszczoami Architektura symulatora ula Budowanie symulatora ula ycie i mier kwiatw Potrzebujemy teraz klasy Bee Wypenianie klasy Hive Metoda Go() klasy Hive Jestemy gotowi na stworzenie wiata Tworzymy system turowy Uczenie pszcz zachowa Gwny formularz wywouje Go() dla caego wiata Moemy uy obiektu World do pobrania statystyk Zegary sygnalizuj zdarzenia wielokrotnie Zegar w tle uywa delegata Pracujmy z grupami pszcz Kolekcje kolekcjonuj... DANE LINQ uatwia prac z danymi w kolekcjach i bazach danych
538 539 540 541 545 546 554 555 556 557 564 566 567 568 569 576 577 579
O e k Fl o
O e k Fl o
MIER
O e k Fl o
e
23
Spis treci
13
Kontrolki i grafika
Upiksz to
Czasami musisz wzi sprawy grafiki we wasne rce. Przez wikszo czasu polegalimy na kontrolkach i w naszych aplikacjach korzystalimy z ich moliwoci obsugi grafiki. Czasami to wszystko nie wystarcza na przykad wtedy, gdy chcesz animowa obrazek. Jeli ju przejdziesz do animacji, bdziesz musia dla programu .NET stworzy wasne kontrolki, by moe dodajc podwjne buforowanie. Czasem nawet bdziesz zmuszony do rysowania bezporednio na formularzach. Wszystko to zaczyna si od obiektu Graphics, obiektw Bitmap i determinacji, aby zburzy dotychczasowy porzdek w zarzdzaniu grafik.
Cay czas do interakcji z programami uywae kontrolek Kontrolki formularza s tylko obiektami Dodaj do projektu rendering Kontrolki s dobrze przystosowane do wywietlania rnych elementw wizualnych Stwrz swoj pierwsz animowan kontrolk Twoje kontrolki take musz usuwa swoje kontrolki! UserControl to dobry sposb na tworzenie kontrolek Dodaj do projektu formularze reprezentujce ul i pole Stwrz klas Renderer Przyjrzyjmy si bliej sprawom wydajnoci Zmienie rozmiar bitmap przy pomocy obiektu Graphics Zasoby Twoich obrazkw przechowywane s w postaci obiektw Bitmap Uyj System.Drawing do PRZEJCIA KONTROLI nad grafik 30-sekundowa podr do wiata tajemnic grafiki GDI+ Uyj Graphics, aby na formularzu narysowa obrazek Klasa Graphics moe usun problem przezroczystoci... Uyj zdarzenia Paint, aby grafika bya mocno zwizana z formularzem Blisze spojrzenie na sposb rysowania formularzy i kontrolek Podwjne buforowanie czyni animacj bardziej pynn Podwjne buforowanie jest wbudowane w formularze i kontrolki Uyj obiektu Graphics i procedury obsugi zdarzenia do drukowania PrintDocument pracuje z obiektem okna dialogowego drukowania i obiektem okna podgldu wydruku
586 587 590 592 595 599 600 604 605 612 614 615 616 617 618 623 624 627 630 631 636 637
24
Spis treci
14
Kapitan Wspaniay
mier obiektu
Kapitan Wspaniay, najbardziej zdumiewajcy obiekt Objectville, prbuje pokona arcyrdo za Twoj ostatni szans na ZROBIENIE czego jest uycie finalizatora Kiedy DOKADNIE wywoywany jest finalizator? Dispose() dziaa z using, a finalizatory dziaaj z mechanizmem odzyskiwania elementw bezuytecznych Finalizatory nie mog polega na stabilnoci Spraw, aby obiekt serializowa si w Dispose() W midzyczasie na ulicach Objectville Struktura jest podobna do obiektu ale nie jest na stercie Wartoci s kopiowane, referencje s przypisywane Struktury traktowane s jak typy wartociowe, obiekty jak typy referencyjne Stos i sterta: wicej na temat pamici Kapitan Wspaniay nie tak bardzo Metody rozszerzajce zwikszaj funkcjonalno ISTNIEJCYCH klas Rozszerzanie podstawowego typu: string 644 650 651 652 654 655 658 659 659 660 661 663 667 668 670
25
Spis treci
15
LINQ
atwy projekt ale dane s w rnych miejscach Dziki LINQ moesz pobra dane z rnych rde Kolekcje .NET s przystosowane do dziaania z LINQ LINQ uatwia wykonywanie zapyta LINQ jest prosty, ale Twoje zapytania wcale takie by nie musz LINQ ma wiele zastosowa LINQ moe poczy Twoje wyniki w grupy Pocz wartoci Janka w grupy Uyj join do poczenia dwch kolekcji w jednym zapytaniu Janek zaoszczdzi kup szmalu Pocz LINQ z baz danych SQL Uyj join, aby poczy Starbuzz i Objectville
676 677 678 679 680 681 684 689 690 693 694 696 700
26
Spis treci
Laboratorium C# numer 3
Dziki temu laboratorium oddasz hod jednej z najbardziej popularnych, czczonych i powielanych ikon w historii gier komputerowych. Nie potrzebuje ona adnego wprowadzenia. Czas utworzy gr Invaders.
704 723
27
Spis treci
A S
Pozostaoci
1. Zastosowanie LINQ do XML 2. Refaktoryzacja 3. Niektre z naszych ulubionych komponentw okna Toolbox 4. Aplikacje konsolowe 5. Windows Presentation Foundation Czy wiesz, e C# i .NET Framework potrafi
Skorowidz
739
28
1.
Wraz z C# dostajesz do rki potny jzyk programowania i wartociowe narzdzie w swoje rce. Dziki Visual Studio IDE do historii przejd sytuacje, w ktrych musiae pisa jaki ndzny kod, pozwalajcy przyciskowi po raz kolejny zadziaa. I to nie wszystko. Dodatkowo bdziesz mg skupi si na faktycznym wykonywaniu swojej pracy, zamiast zajmowa umys, pamitajc, ktry parametr metody odpowiada za nazw przycisku, a ktry by odpowiedzialny za wywietlany na nim tekst. Brzmi zachcajco? Przewr zatem stron i przystpmy do programowania.
41
C# to uatwia
IDE lub Visual Studio Integrated Development Environment peni wan rol w pracy z C#. To program, ktry pozwala Ci edytowa kod, zarzdza plikami, a take publikowa Twoje projekty.
private void Init ializeComponent( { ) this.button1 = new System.Windows.F this.SuspendLayo orms.Button(); ut(); // // button1 // this.button1.Loc this.button1.Nam ation = new System.Drawing.Point (105, 56); this.button1.Siz e = button1; this.button1.Tab e = new System.Drawing.Size(75, 23); this.button1.Tex Index = 0; t = button1; this.button1.Use this.button1.Cli VisualStyleBackColor = true; ck += new System.E // ventHandler(this .button1_Click); // Form1 // this.AutoScaleDi this.AutoScaleMo mensions = new System.Drawing.S izeF this.ClientSize de = System.Windows.Forms.AutoSca (8F, 16F); leMode.Font; this.Controls.Ad = new System.Drawing.Size(292, 267); this.Name = Ford(this.button1); this.Text = For m1; m1; this.ResumeLayou t(false); }
Tyle kodu po tr przycisk na fo zeba, aby narysowa niego nieco w rmularzu. Dodanie do wizualnych m ikszej iloci elementw e wynikowy oe spowodowa, kod bdzie dz duszy. iesi razy
Wynikiem jest lep dziaajca aplikac iej napisanie zabiera ja, ktrej mniej czasu.
r Obiekty fo
Studio C# oraz Visual zeniej siadaj wc IDE po ruktury przygotowane st ym kodem, dn zarzdzajce nu em nt ktry jest eleme nywanych jczciej wyko znych. na yc zada programist
mu
larza
Roz wi zan ia .NE T Fra mew ork
42
Rozdzia 1.
Dostp h do danyc
Tworzenia aplikacji SZYBKO. Tworzenie programw w C# jest niczym robienie zdj aparatem cyfrowym. Jzyk jest potny i atwy do opanowania, natomiast Visual Studio IDE przejmuje ogromn cz pracy i wykonuje j za Ciebie automatycznie. Moesz zostawi przyziemne sprawy zwizane z kodowaniem IDE, a samemu skupi si na tym, co Twj kod powinien wykonywa. Zaprojektowania wspaniale wygldajcego interfejsu uytkownika. Form Designer w rodowisku Visual Studio IDE jest jednym z najprostszych istniejcych narzdzi do projektowania. Robi za Ciebie tak wiele, e kreowanie oszaamiajcych interfejsw uytkownika stanie si jedn z najbardziej satysfakcjonujcych czynnoci podczas tworzenia aplikacji w C#. Moesz budowa profesjonalne, w peni funkcjonalne programy bez niepotrzebnego tracenia wielu godzin na pisanie po raz kolejny od podstaw graficznego interfejsu uytkownika. Tworzenia i zarzdzania bazami danych. IDE wyposaone jest w prosty interfejs
sucy do budowania baz danych. Pozwala on na bezproblemow integracj z SQL Server Express, jak rwnie z kilkoma innymi systemami bazodanowymi.
Skupienia si na rozwizywaniu PRAWDZIWYCH problemw. IDE robi za Ciebie wiele, ale w dalszym cigu to Ty panujesz nad tym, co tworzysz przy pomocy C#. IDE pozwala Ci skupi si na Twoim programie, pracy (lub zabawie!) oraz klientach, a do tego zajmuje si ca czarn robot, tak jak:
ledzenie wszystkich Twoich projektw, uatwianie edycji kodu, kontrolowanie grafiki, dwikw, ikon oraz innych zasobw w Twoich projektach, zarzdzanie i interakcja z bazami danych.
Oznacza to, e cay ten czas, jaki musiaby spdzi, wykonujc rutynowe zadania, mona przeznaczy na tworzenie zabjczych programw.
Wkrtce dowiesz si, co naprawd mamy na myli.
jeste tutaj
43
Nazwa: Laverne Smith Firma: XYZ Industries Telefon: (212) 555-8129 E-mail: Laverne.Smith@xyzindustries.com Klient: Tak Ostatni kontakt: 26.05.2007
Lepiej, eby szybko znalaz sposb na umieszczenie tych danych w laptopie kierownika.
44
Rozdzia 1.
Dyrektor naczelny chce uruchamia program w pracy oraz na swoim laptopie. Potrzebuje zatem programu instalacyjnego, aby mie pewno, e wszystkie niezbdne pliki znajd si na kadym komputerze.
Dyrektor naczelny chce uruchamia ksik adresow na komputerze stacjonarnym i laptopie, zatem program instalacyjny jest niezbdny.
Ins
ta
r lato
Win
dow
Dzia sprzeday firmy papierniczej Objectville Paper take chce mie dostp do ksiki adresowej. Chce on uywa danych do budowania list kontaktowych i w ten sposb zwikszy sprzeda papieru. Dyrektor naczelny dochodzi do wniosku, e baza danych bdzie najlepszym rozwizaniem. W ten sposb kady w firmie bdzie mia dostp do tych informacji, a on bdzie musia zarzdza tylko jedn kopi swoich kontaktw.
sual Studio Wiemy ju, e Vi zami danych. z ba uatwia prac informacji Przechowywanie zwala na takiej formie po do nich w p jednoczesny dostelnemu oraz dyrektorowi nacz y, mimo dziaowi sprzeda je tylko jedna e fizycznie istnie kopia danych.
jeste tutaj
45
ch.
Polecenie SELECT
. Fo r m
ows
danym
ngS
ind
ource
i
Obiekty
Obiekt Syste
reBox
ar
D ia g ra m c h y azy dan b
w ch rysunk Kady z ty je kontrolk j, reprezentu ksiki adresowe a formularz emy tworzy. zi ktry bd
Obie
kt
46
Rozdzia 1.
Potrzebujemy obiektw do komunikacji z tabela diagramu, aby nasza mi, apl wiedziaa, jaka jest str ikacja bazy danych, i innych uktura elementw.
Da
ta S e t
Obiekt Pic
To Obiekt
d Obiekt Bin
tu
olB
in
gN
avigator
Obiekt
aaa
bl
Ta
eA
do
zarzd
nia
za
in Obiekt B
dapter
.W
di
Paczka instalatora
.exe
Plik programu
ych Baza dan
Dzia sprzeday bdzie musia jedynie wskaza plik i klikn go, aby zainstalowa program i z niego korzysta.
ktr To jest prawdziwa baza danych, moemy utworzy i zarzdza przy pomocy Visual Studio.
Inst
ala
Win tor
dow
jeste tutaj
47
Zaczynajmy
Tak wyglda okno New Project w Visual Studio 2008 Express Edition. Jeli uywasz wersji Professional lub Team Foundation, moe ono wyglda nieco inaczej. Ale nie przejmuj si wszystko bdzie dziaao dokadnie tak samo.
Upewnij si, e zaraz po utworzeniu projektu zapisae go, wybierajc Save All z menu File spowoduje to zapisanie do katalogu wszystkich jego plikw. Jeeli wybierzesz Save, zapisany zostanie tylko plik, nad ktrym aktualnie pracujesz.
Kod, ktry definiuje wygld formularza ora z jego obiektw, znajdu je si tutaj.
C#
Form1.cs
C#
Program.cs
Visual Studio tworzy wszystkie trzy pliki automatycznie.
C#
Form1.Designer.cs
48
Rozdzia 1.
Zaostrz owek
Poniej pokazany jest wygld ekranu, jaki prawdopodobnie moesz w tej chwili zaobserwowa. Powiniene odgadn, do czego su poszczeglne okna, bazujc na wiedzy, ktr na tym etapie posiadasz. W kadym z pustych pl wstaw komentarz wyjaniajcy przeznaczenie poszczeglnych obszarw IDE. Na pocztek uzupenilimy jedno pole.
Jeeli Twoje IDE nie wyglda dok na tym obrazku, moesz wybra adnie tak, jak Reset Window Layout z menu Window.
Ten pasek narzdzi posiada przyciski zwizane z tym, co jest aktualnie wykonywane przy pomocy IDE.
jeste tutaj
49
Uzupenilimy komentarze dotyczce rnych obszarw Visual Studio C# IDE. W poszczeglnych miejscach moesz mie napisane inne rzeczy, ale powiniene zna przeznaczenie kadego okna i kadej sekcji IDE.
To jest okno z kontrolkami. Zawiera zestaw kontrolek, ktre moesz przeciga wprost na formularz.
Ten obszar na dole suy do debugowania. Pokazuje si wtedy, gdy w Twoim kodzie znajduj si bdy.
Pliki Form1.cs or az zostay utworzone Program.cs przez IDE podcza dla Ciebie nowego projektu s dodawania i si w oknie Solut pojawiaj ion Explorer.
Moesz przecza pomidzy plikami si pomocy okna So przy lution Explorer w IDE
50
Rozdzia 1.
tycznym generowaniu dla Ciebie czci kodu, ale wicej nie moe zrobi. Jest wiele rzeczy, w ktrych jest naprawd dobre, takich jak wstpna konfiguracja lub automatyczna zmiana waciwoci kontrolek na formularzu. Istnieje jednak znacznie trudniejsza cz programowania, czyli troska o to, co powinien robi program, i zmuszenie go do posuszestwa, a tego adne IDE za Ciebie nie zrobi. Pomimo tego, e Visual Studio IDE jest jednym z najbardziej zaawansowanych spord istniejcych rodowisk, moe ono doj tylko do tego etapu. To Ty, nie adne IDE, jeste odpowiedzialny za pisanie kodu akcji, czyli tego, ktry wykonuje ca prac.
w Visual Studio, ale kiedy sprawdziem podkatalog Projects w folderze Moje dokumenty, nie znalazem go tam. Co si stao?
przystosowane do tworzenia kodu na podstawie tego, w jaki sposb elementy zostay przecignite lub dodane do aplikacji. Czasami nie jest to sposb, jaki byby przez Ciebie podany. Wszystko, co IDE robi dla Ciebie kada linijka kodu, ktr tworzy, kady plik, ktry dodaje moe by zmieniane zarwno rcznie, poprzez bezporedni edycj plikw, jak i przy uyciu atwego w obsudze interfejsu rodowiska.
dziaao dobrze, jeeli pobraem i zainstalowaem Visual Studio Express? Czy nie powinienem uywa jednej z patnych wersji Visual Studio, aby zrobi wszystko, co jest tu opisane?
wprowadzenie nowej nazwy pliku pociga za sob konieczno wprowadzenia zmian we fragmentach kodu lub powoduje dyskomfort ycia z rnymi nazwami pliku oraz klasy w nim zapisanej. W zwizku z tym, e jest to niepodane, zalecamy pozostawienie nazw, chyba e istnieje naprawd powany powd, aby dokona takiej zmiany.
P: Przygldam si wanie
mojemu IDE i dochodz do wniosku, e mj ekran wyglda nieco inaczej ni Twj. Brakuje niektrych okien, inne s poprzestawiane. Co si dzieje?
Reset Window Layout z menu Window, to IDE odtworzy oryginalny wygld i pooenie okien. Twj ekran powinien wyglda dokadnie tak samo, jak inne w tym rozdziale.
Studio 2008 w Visual Studio 2005 projekty przechowywane s w innym miejscu. Kiedy zaczynasz tworzy nowy projekt w Visual Studio 2008, IDE umieszcza go w katalogu Ustawienia lokalne\Dane Aplikacji\Temporary Projects. Gdy zapisujesz go po raz pierwszy, jeste pytany o nazw pliku, a po zaakceptowaniu wyboru projekt zostaje zapisany w katalogu Moje dokumenty\Visual Studio 2008\ Projects. Prbujc otworzy nowy projekt lub zamkn tymczasowy, zostaniesz poproszony o wybr jednej z dwch opcji zapisania lub odrzucenia zmian.
czego nie daoby si zrobi za pomoc darmowej wersji Visual Studio (ktr mona pobra ze strony Microsoft). Gwne rnice pomidzy edycj Express a pozostaymi (Professional i Team Foundation) nie uniemoliwiaj pisania w peni funkcjonalnych i kompletnych aplikacji w C#.
Visual Studio generuje kod, ktry moe by uyty jako podstawa do dalszego pisania aplikacji. Upewnienie si, e aplikacja robi dokadnie to, do czego zostaa stworzona, naley wycznie do Ciebie.
cz swojego programu. IDE jest skonfigurowane w taki sposb, e nazywa nowe pliki z zachowaniem ostronoci. Gdy dodajesz plik do projektu, jego nazwa ma wpyw na cz generowanego kodu, ktry j zawiera. W niektrych przypadkach
jeste tutaj
51
Jeeli nie widzisz okna Toolbox, sprbuj najecha wskanikiem myszy na sowo Toolbox, ktre znajduje si w lewym grnym rogu IDE. Jeli go tam nie ma, wybierz element Toolbox z menu View, aby pojawio si na ekranie.
Za kadym razem, gdy wprowad zasz zmiany we waciwociach kontrolki form w pliku Form1.Designer.cs jest ularza, kod zmieniany przez IDE.
C#
Form1.Designer.cs
Nie przejmuj si, jeeli nie jeste profesjonalist w projektowaniu graficznych interfejsw uytkownika.
W swoim czasie powiemy znacznie wicej o tworzeniu dobrych interfejsw uytkownika. Na tym etapie wystarczy, e wstawisz logo oraz inne kontrolki do formularza i zadbasz o jego prawidowe zachowanie. O stylowy wygld zatroszczymy si pniej.
52
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
Ustaw tryb Zoom w PictureBox. Kada kontrolka na Twoim formularzu posiada waciwoci, ktre moesz ustawi. Aby dosta si do nich, kliknij ma czarn strzak widoczn na kontrolce. Zmie waciwo Size Mode obiektu PictureBox na Zoom, a zobaczysz, jak to dziaa.
p do Aby uzyska dost lki, oci kontro waciw arn kliknij t ma cz strzak.
Wybierz Zoo m PictureBox zm , aby ramka rozmiar w ce ieniaa swj lu si do obrazk dopasowania umiecisz. a, ktry w niej
Pobierz logo firmy Objectville Paper. Pobierz logo Objectville Paper z serwera ftp (ftp://ftp.helion.pl/przyklady/hfcsh.zip) i zapisz je na twardym dysku. Nastpnie wybierz strzak waciwoci i kliknij Choose Image. Zaznacz pole wyboru Local resource, a nastpnie kliknij Import i znajd Logo. Wszystko powinno ustawi si poprawnie.
o Tutaj znajduje si log Objectville Paper oraz ale kon PictureBox, ktry dos r. asowuje swj rozmia dop
at
aSe t
To olbar
Bo
kt
av
ig at or
a d any m
Jeste tutaj
O bi e k t
m o w s.For
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
jeste tutaj
53
Gdy klikniesz Form1.re sx, Explorer moesz zobacz w oknie Solution logo. Plik czy obraze y zaimportowane PictureBox, natomias k z kontrolk t odpowiedni kod, niezb IDE dodaje dny do takiego powizania.
C# C#
Form1.cs
ktre Tu s pliki,dio Visual Stu o a wygenerow czeniej. w
Form1.Designer.cs
C#
Program.cs
C#
Form1.resx
Kiedy zaimportowae obrazek, IDE utworzyo ten plik. Zawiera on wszystkie zasoby (grafik, wideo, dwiki i inne przechowywane dane) skojarzone z formularzem Form1.
54
Rozdzia 1.
prawidowo Nazwa tej metody wykonywan ruje czynno suge ania, czyli podczas jej wywo PictureBox. ie kontrolki kliknic
Gdy dwukrotnie klikniesz w kontrolk PictureBox, otworzy ona ten kod z kursorem ustawionym w tym miejscu. Ignoruj wszystkie okna, ktre pojawiaj si podczas wpisywania. IDE stara si pomc, ale na razie tej pomocy nie potrzebujemy.
mwimy C#, aby umieci fragment Lista kontaktowa v1.0. w jednej linii, a nastpnie rozpocz now dla pozostaej czci.
jeste tutaj
55
Wszystkie trzy przyciski dziaaj nie musisz pisa w tym celu adnego kodu.
Kliknicie w logo Objectville Paper powoduje pokazanie si okna dialogowego, ktre wanie napisae.
przypadku, to uruchamianie aplikacji poprzez IDE. Powiemy sobie wicej na jego temat w dalszej czci ksiki. Na chwil obecn bdzie to po prostu sposb na uruchamianie programw.
Program.cs
Form1. Designer.cs
Contacts.csproj Properties
bin
Form1.cs
Form1.resx
To nie jest bd. Istniej dwa poziomy katalogw. Wewntrzny folder posiada waciwe pliki z kodem C#.
na specjalnym pasku narzdzi, ktry staje si widoczny dopiero po uruchomieniu programu. Uruchom aplikacj jeszcze raz i sprawd, czy przycisk si pojawi.
56
Rozdzia 1.
Paczka instalatora
ia d a n y mi
Fo rm
do
taS et
z a rzd
an
t S y st e m . Wi n d
e k t B i n di
ng
bi
N avigat
ie k
ow
O bi ekt
Da
m Diagra ch ny bazy da
bie
k t P ict u
eB
Ob
iekt To
ol
ebujemy ale wci potrz nikacji tw do komu obiek bdziemy z danymi, ktre bazie. ywa w przechow
Ten etap ma na celu poczenie formularza z baz danych, na co nie jestemy na razie gotowi. Po prostu nie posiadamy jeszcze bazy danych.
ox
Visual Studio moe wygenerowa kod pozwalajcy na poczenie formularza i bazy danych, ale zanim to bdzie moliwe, musimy tak baz stworzy.
jeste tutaj
ba
or
O
Ob
Ob
Ob
s.
ie kt Ta b
le
ie kt Bin
A d a pt e
Plik programu
nych Baza da
Baza danych SQL
di
Obiekt
lato Insta
d r Win
ows
Musimy wic skupi si na tym kroku: stworzeniu bazy danych i wrzuceniu do niej pewnych informacji.
57
Zachowaj to na pniej
SQL
ContactDB.mdf
Baza danych SQL moe pracowa tylko wtedy, gdy zainstalowae wczeniej SQL Server Express. Cofnij si do wstpu, jeeli nie wiesz, jak to zrobi.
Wybierz ikon waciw dla Twojej wersji SQL Database, jeeli uywasz Visual Studio Express 2005, lub Service-Based Database, jeli korzystasz z wersji z roku 2008.
58
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
at
aSe t
To olbar
Bo
kt
av
ig at or
ane Twoje dane przechowyw s w postaci kolumn i rzdw, podobnie jak w arkuszu.
Baza danych SQL prz echowuje Twoje dane. Zawiera ona dodatkowo informacje o strukturze oraz kod SQ ich pomocny przy dostpie L do nich.
Ta b e le
a d any m
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
Jeste tutaj
P ro c e d u s k a d o w a ry ne
jeste tutaj
59
: Kolumna to jedno pole w tabeli. A zatem w tabeli People moesz mie kolumny FirstName oraz LastName, ktre bd oznaczay imi i nazwisko osoby. Pola takie zawsze bd miay typ, taki jak String, Date lub Bool.
W tej chwili potrzebujemy nowych kolumn w naszej bazie. W pierwszej kolejnoci do tabeli dodajmy kolumn ContactID, tak aby kady rekord posiada swj wasny, unikalny identyfikator.
2
To jest przycisk Set Primary Key. Klucz gwny pomaga bazie danych przyspiesza procedury wyszukiwania rekordw.
60
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
at
aSe t
To olbar
Bo
kt
av
ig at or
a d any m
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
Jeste tutaj
Wane jest, aby pozostawi to pole odznaczone. Dopki klucz gwny jest podstawowym sposobem wyszukiwania rekordw, dopty pole ContactID musi mie warto.
Dziki temu pole ContactID aktualizuje si automatycznie za kadym razem, gdy jest dodawany nowy rekord.
jeste tutaj
61
Rozpocznijmy dyskusj
P e o p le
Nazwa: Laverne Smith Firma: XYZ Industries Telefon: (212) 555-8129 E-mail: Laverne.Smith@xyzindustries.com Klient: Tak Ostatni kontakt: 26.05.2007
Chcemy przechowywa dane kad ej osoby znajdujcej si na licie kontaktowej. Nale do nich: nazw a kontaktu, nazwa firmy, numer telefonu, adres e-mail, warto okrelajca, czy jest to klient firm y, oraz data ostatniego kontaktu telefonicznego.
Kade pole na karcie adresowej musi mie swj odpowiednik w tab eli People.
WYT
UMYS
Jakie problemy mog wynikn z przechowywania wielu rekordw dotyczcych tej samej osoby?
62
Rozdzia 1.
Teraz, kiedy stworzye tabel People oraz kolumn z kluczem gwnym, musisz doda kolumny dla wszystkich pozostaych pl danych. Zobaczmy, czy potrafisz dopasowa okrelone dane do odpowiedniej kolumny w tabeli oraz dobra opis waciwy dla ich typu.
Nazwa kolumny
LastCall
Typ danych
Opis
Ten typ przechowuje dat
int
Name Warto logiczna true/false
bit
ContactID acuch liter, cyfr lub innych symboli o maksymalnej dugoci 50 znakw Liczba cakowita
nvarchar(50)
Client?
datetime
jeste tutaj
63
Teraz, kiedy stworzye tabel People oraz kolumn z kluczem gwnym, musisz doda kolumny dla wszystkich pozostaych pl danych. Zobaczmy, czy potrafisz dopasowa okrelone dane do odpowiedniej kolumny w tabeli oraz dobra opis waciwy dla ich typu.
Nazwa kolumny
LastCall
Typ danych
Opis
Ten typ przechowuje dat
int
Name Warto logiczna true/false
bit
ContactID acuch liter, cyfr lub innych symboli o maksymalnej dugoci 50 znakw
nvarchar(50)
Client?
datetime
Liczba cakowita
64
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
at
aSe t
To olbar
Bo
kt
av
ig at or
Pola bitowe przechowuj wartoci True lub False i mog by reprezentowane przez kontrolk CheckBox.
Kliknij przycisk Save na pasku narzdzi, a tabela zostanie zapisana. Zostaniesz poproszony o podanie jej nazwy. Wpisz People i nacinij OK.
m, gdy Za kadym raze li People, o tabe mwilimy t tabel, mielimy na myli z uzyskaa o tera jednak dopier ln nazw. ona swoj oficja
Tutaj tworzym ktra zostanie y tabel People, w bazie dany umieszczona ch ContactDB.
a d any m
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
Jeste tutaj
Jeeli odznaczysz pole Allow Nulls, kolumna bdzie musiaa posiada warto.
Niektre karty mog zawiera niepene informacje, wic niektre kolumny pozostan puste.
People
ContactDB
jeste tutaj
65
Zmapuj
Utwrz diagram dla swoich danych, aby aplikacja miaa do nich dostp
Stworzye baz danych i tabel. Nadszed ju czas, aby aplikacja si o tym dowiedziaa. To jest wanie moment, w ktrym diagram wkracza do akcji. Diagram bazy danych jest prostym opisem tabeli, ktrego Visual Studio moe uy do pracy z ni. Pozwala on take IDE automatycznie generowa instrukcje SQL uywane przy dodawaniu, modyfikacji oraz usuwaniu rekordw.
1
Pamitaj, e opcje te s wywoywane dla bazy ContactDB i dotycz wanie tej konkretnej bazy danych.
lka IDE tworzy kidowanych, edur ska proc na ktre pozwol du interakcj ko worzon programu z ut baz danych.
Jeli posiadasz baz danych z wieloma tab elami, to kada z nich jest reprezentowana przez element w tym oknie.
66
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
at
aSe t
To olbar
Bo
kt
av
ig at or
Diagram bazy danych pokazany jest tutaj. Jest to bardzo prosta reprezentacja twojej tabeli.
Jeli masz w bazie danych jakie inne tabele, ktre chciae doda do diagramu, to one take si tutaj pojawi.
Diagram bazy danych jest dla Visual Studio IDE opisem tabeli. IDE uywa go do automatycznego generowania kodu pomocnego w pracy z baz.
a d any m
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
Jeeli uywasz Visual Studio 2005, wybierz zamiast tego File/Save All.
Jeste tutaj
ilustracja projektu Jest to jedynie ry utworzye. bazy danych, kt tutaj wszystkie Wywietlane s ContactID jest a kolumny tabeli, cz gwny. oznaczona jako klu
jeste tutaj
67
Wstawiajc dane
W oknie Database Explorer (lub Server Explorer) rozwi element Tables, kliknij tabel People prawym przyciskiem myszy i wybierz Show Table Data.
Twoim zadaniem jest wpisanie danych z tych szeciu kart do tabeli People.
Gdy na gwnym ekranie pojawi si tabela, wpisz do niej wszystkie ponisze dane. (Na pocztku bd to same wartoci NULL, ale nie przejmuj si. Zapenij pierwszy rzd prawidowymi danymi, ignorujc ostrzeenia pokazujce si obok nich). Nie musisz uzupenia kolumny ContactID, bo zostanie to zrobione automatycznie.
Nazwa: Liz
Wpisz True lub False w kolumnie Client. To w tej postaci SQL ci przechowuje warto . ie typu Tak lub N
Nelson
Firma: JTP
78 19) 555-25 Telefon: (4 .o P rg Nelson@JT E-mail: Liz 3.2006 ntakt: 04.0 Ostatni ko Klient: Tak
Nazwa: Lucinda Ericson Nazwa: Lloyd Jones Firma: Black Box Inc. Telefon: (718) 555-5638 E-mail: LJones@xblackboxinc.com Klient: Tak Ostatni kontakt: 26.05.2007 Firma: Ericson Events Telefon: (212) 555-9523 E-mail: Lucy@EricsonEvents.info Klient: Nie Ostatni kontakt: 17.05.2007
68
Rozdzia 1.
, Firma: Kalter Riddle and Stoft Telefon: (614) 555-5641 E-mail: Sarah@KRS.org Klient: Nie Ostatni kontakt: 10.12.2005
Nazwa: Laverne Smith Firma: XYZ Industries Telefon: (212) 555-8129 E-mail: Laverne.Smith@xyzindustries.com Klient: Tak Ostatni kontakt: 26.05.2007
Po wpisaniu szeciu rekordw wybierz po raz kolejny Save All z menu File. Powinno to zaowocowa zapisaniem ich wszystkich w bazie.
Save All nakazuje IDE zapisa wszystko to, co naley do aplikacji. e, Tym rni si od zwykego Sav ym zapisujcego tylko plik, nad ktr danej chwili si pracuje. w
: Co si dzieje z danymi po tym, jak je wpisaem? Gdzie one id? : IDE automatycznie zapisuje wprowadzone wartoci w tabeli People w bazie danych. Tabela, jej kolumny, typy i wszystkie dane jej dotyczce, przechowywana jest w pliku ContactDB.mdf SQL Server Express. Plik ten jest integraln czci projektu i IDE aktualizuje go podczas jego zmiany, tak jak kady inny plik z kodem.
P O
: Dobrze, wpisaem te sze rekordw. Czy one bd czci mojego programu na zawsze? : Tak, bd one integraln czci, tak samo jak kod, ktry napisae, i formularz, ktry zaprojektowae. Rnica polega na tym, e baza nie jest kompilowana do postaci programu wykonywalnego. Jej plik jest kopiowany i przechowywany razem z plikiem wykonywalnym. Gdy aplikacja potrzebuje dostpu do danych, wykonuje szereg operacji odczytu i zapisu na pliku ContactDB.mdf znajdujcym si w jej katalogu wyjciowym.
Ten plik jest w rzeczywistoci baz danych SQL i Twj program moe go uywa przy pomocy kodu wygenerowanego dla Ciebie przez IDE.
SQL
P O
ContactDB.mdf
jeste tutaj
69
Przejd z powrotem do formularza aplikacji. Zamknij tabel People i diagram bazy danych ContactDB. Powiniene w tej chwili widzie zakadk Form1.cs [Design].
Musisz zamkn zarwno tabel z danymi, jak i diagram, aby powrci do widoku formularza.
70
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
Jeste tutaj
wybra Database i klikn przycisk Next, klikn Next na ekranie Choose Your Data Connection, upewni si, e pole wyboru Yes, save the connection as: na ekranie Save the Connection jest zaznaczone, i nacisn Next, na ekranie Choose Your Objects zaznaczy pole przy elemencie Tables, upewni si, e w polu DataSet name wpisane jest ContactDBDataSet i klikn Finish.
a Teraz Twj formularz moe uyw rda danych do interakcji z baz danych ContactDB. Przejcie przez poszczeglne etapy pozwala na poczenie rda danych z tabel People w bazie danych ContactDB.
XML
ContactDBDataSet.
at
aSe t
To olbar
Bo
kt
av
ig at or
C#
ContactDBDataSet. Designer.cs
Te pliki zostay wygenerowane przez rdo danych, ktre wanie skonfigurowae.
a d any m
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
SQL
ContactDB.mdf
jeste tutaj
71
Pocz to ze sob
Jeeli nie widzisz tej zakadki, wybierz Show Data Sources z menu Data.
To okno pokazuje wszys tkie Twoje rda danych. W skonfigurowane jest tylk tej chwili ale oczywicie nie ma o jedno, przeciwwskaza do posadnych wikszej iloci dla inn iadania ych tabel lub baz danych.
Moesz take poszuka, a nastpnie klikn zakadk Data Sources w dolnej czci okna Database Explorer.
72
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
Jeste tutaj
Jeeli co przypadkowo klikne i z ekranu znikn formularz, zawsze moesz do tego widoku powrci, wybierajc zakadk Form1.cs [Design], lub otworzy Form1.cs z okna Solution Explorer.
Kiedy przecigne tabel People na formularz, dla kadej jej kolumny zostay utworzone odpowiednie kontrolki.
Te elementy nie bd wywietlane na formularzu, ale bd reprezentoway zbir danych, ktry zosta utworzony przez IDE do zarzdzania tabel People oraz baz danych ContactDB.
Ten adapter pozwala kontrolkom wykorzystywa wyraenia SQL, ktre IDE oraz rdo danych wczeniej wygeneroway.
Obiekt peopleBindingN czy kontrolki paska avigator narzdzi z tabel bazy danych.
at
aSe t
To olbar
Bo
kt
av
ig at or
a d any m
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
jeste tutaj
73
Upiksz to
Nazwa: Laverne Smith Firma: XYZ Industries Telefon: (212) 555-8129 E-mail: Laverne.Smith@xyzindustries.com Klient: Tak Ostatni kontakt: 26.05.2007
Podczas przecigania kontrolek na formularzu bd pojawiay si niebieskie linie. S one po to, aby uatwi wyrwnywanie poszczeglnych elementw interfejsu.
74
Rozdzia 1.
o u rc e
in d
da
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
Powodem, dla ktrego chcesz usun przycisk maksymalizacji, jest to, e nie zmienia ona pozy cji kontrolek na formularzu. Pusta przestrze sprawia, e wyglda to do dziwnie.
Okno Properties powinno si znajdowa zaraz pod oknem Solution Explorer, w dolnej czci prawego panelu IDE.
Jeeli nie masz okna Properties, to moesz je uaktywni, wybierajc odpowiedni pozycj z menu View.
Dobra aplikacja to nie tylko taka, ktra dziaa, ale taka, ktra jest take atwa w uyciu. Dobrym zwyczajem programisty jest upewnienie si, e aplikacja zachowuje si dokadnie tak, jak spodziewaby si tego przecitny uytkownik.
at
aSe t
To olbar
Bo
kt
av
ig at or
a d any m
Jeste tutaj
O bi e k t
m o w s.For
i
O bi ek
ek
Plik programu
Ob
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
jeste tutaj
75
Jazda prbna
Pozostaa nam do zrobienia tylko jedna rzecz uruchomi program i sprawdzi, czy wszystko dziaa tak, jak powinno. Zrb to tak samo, jak do tej pory nacinij klawisz F5 na klawiaturze albo kliknij w przycisk z zielon strzak na pasku narzdzi (lub wybierz Run z menu Debug). Moesz uruchomi swj program w kadej chwili, nawet jeli nie jest jeszcze skoczony. Jeeli w kodzie s bdy, to IDE Ci o tym przypomni i wstrzyma wykonywanie programu.
Nacinij ten X w rogu, aby zamkn program. W ten sposb moesz przej do nastpnego etapu.
76
Rozdzia 1.
d z a ni
o u rc e
in d
da
W tym momencie posiadasz wspaniay program. Problem polega na tym, e dziaa on tylko na Twoim komputerze. Oznacza to, e nikt inny go nie bdzie uywa, nikt Ci za niego nie zapaci, nikt nie zobaczy, jak wspaniaym programist jeste, i nikt Ci nie zatrudni a Twj szef i klienci nie dostan raportw generowanych z bazy danych. C# znacznie uatwia przeprowadzenie procesu wdroenia aplikacji. Wdroenie aplikacji to zainstalowanie jej na innych komputerach. Z pomoc Visual C# IDE przygotowanie wdroenia sprowadza si do dwch etapw.
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
at
aSe t
To olbar
Bo
kt
av
ig at or
Zaakceptuj wszystkie domylne wartoci w oknie Publish Wizard poprzez nacinicie przycisku Finish. Zobaczysz, jak Twoja aplikacja bdzie pakowana, a nastpnie ujrzysz folder, w ktrym znajdzie si plik setup.exe.
a d any m
i
O bi ek
ek
Plik programu
ie
k t Tab
leA
Baza danych
Ob
O bi e k t
O bi
O bi e k t
Jeste tutaj
Budowanie projektu powoduje kopiowanie plikw na komputer lokalny. Element Publish tworzy instalacyjny plik wykonywalny wraz z plikiem konfiguracyjnym, aby inni uytkownicy take mogli zainstalowa Twj program.
jeste tutaj
77
Dziel si mioci
Ten plik udziela h instalatorowi wszelkic o, informacji na temat teg ktre pliki powinny by doczone do programu podczas instalacji.
Moja sekretarka wanie mi powiedziaa, e skoczye pisa now baz kontaktow i e wszystko ju dziaa. Pakuj swoje walizki mamy miejsce w odrzutowcu do Aspen dla takiego pomysowego pracownika jak Ty!
t zadowolony. Wydaje si, e szef jes tylko jedna ra robota! Pozostaa pofruniesz Dob im rzecz do zrobienia, zanchocia szusowa na stokach,
78
Rozdzia 1.
d z a ni
o u rc e
in d
da
Zanim zaczniesz strzela korkami od szampana, musisz przetestowa wdroenie i instalacj. Nie dasz chyba nikomu swojego programu, dopki sam go nie wyprbujesz? Zamknij Visual Studio IDE. Uruchom program instalacyjny i wybierz katalog na swoim komputerze, w ktrym chcesz umieci aplikacj. Nastpnie uruchom program z podanej lokalizacji i upewnij si, e dziaa dokadnie tak, jak sobie wyobraae. Moesz take doda lub zmodyfikowa kilka rekordw. Zostan one oczywicie zapisane w bazie danych.
ty
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
at
aSe t
To olbar
Bo
kt
av
ig at or
Teraz moesz dodawa, zmienia i usuwa rek Wszystko to zostanie ordy. zapisane w bazie danych.
Nie bj si wprowad kilka zmian. Aplikacja jest zainstalowana, wic tym razem dane nie zgin.
TESTUJ WSZYSTKO! Przetestuj swj program, przetestuj swoj instalacj, sprawd dane w swojej aplikacji.
jeste tutaj
a d any m
i
O bi ek
ek
Plik programu
ie
k t Tab
leA
Baza danych
Ob
O bi e k t
O bi
O bi e k t
Jeste tutaj
79
Superszybko
d z a ni
o u rc e
in d
da
ty
Dziki Visual Studio IDE stworzenie aplikacji Windows, zaprojektowanie i utworzenie bazy danych oraz poczenie ich w jedn, zgrabn cao jest do proste. Moesz nawet wygenerowa program instalacyjny za pomoc zaledwie kilku klikni.
do za
t Bi n d in
pt er
rz
Ob
.W
ie k t S y s te m
gS
Pi c t u r e
O b ie k t D
Od tego
Nazwa: Lloyd Jones Firma: Black Box Inc. Telefon: (718) 555-5638 E-mail: LJones@xblackboxinc.com Klient: Tak Ostatni kontakt: 26.05.2007
do tego
at
aSe t
To olbar
Bo
kt
av
ig at or
Sia Visual C# polega na tym, e moesz szybko utworzy co dziaajcego, a nastpnie skupi si na tym, co rzeczywicie Twj program powinien robi a nie na oprogramowywaniu licznych okien, przyciskw i zestawu instrukcji SQL.
80
Rozdzia 1.
a d any m
i
O bi ek
ek
Plik programu
ie
k t Tabl e A
Baza danych
Ob
O bi e k t
O bi
O bi e k t
w mgnieniu oka.