[ Pobierz całość w formacie PDF ]
Korzystanie z obiektów .NET jak z obiektów COM............................................................. 679
Korzystanie z API systemu Win32........................................................................................... 680
Wybór zbioru znaków....................................................................................................... 681
Nadanie funkcji z biblioteki DLL innej nazwy..................................................................... 682
Gotowe rozwiązania ..................................................................................................................... 682
Użycie obiektu COM w projekcie .NET................................................................................... 682
Korzystanie z pózno wiązanych obiektów COM........................................................................ 684
Korzystanie z obiektów COM w nadzorowanym C++ ............................................................... 687
Użycie kontrolki ActiveX w projekcie .NET............................................................................. 688
Wywołanie nienadzorowanej funkcji z biblioteki DLL za pomocą mechanizmu PInvoke.............. 690
Przykład w Visual Basicu .................................................................................................. 691
Przykład w języku C# ....................................................................................................... 693
Skorowidz..........................................................................................................695
Rozdział 2.
Model programowania
w środowisku .NET
Teoria
Zanim przejdziemy do omówienia biblioteki klas, konieczne jest przedstawienie modelu
programowania w CLR oraz języka IL, który jest bardzo nietypowym kodem bajtowym.
Kody bajtowe to na ogół proste języki, czego przykładem może być kod bajtowy Javy.
Zazwyczaj instrukcje takiego kodu odpowiadają instrukcjom procesora lub maszyny
wirtualnej. Oznacza to, że struktura programu w języku wysokiego poziomu nie jest za-
chowana po przejściu do kodu bajtowego.
Natomiast IL jest językiem obiektowym. Dzięki temu konstrukcje charakteryzujące
obiektowe języki wysokiego poziomu mogą być teraz użyte w każdym języku, który
będzie kompilowany na IL. Jak już wspomniano, VB7 zawiera konstrukcje obiektowe.
W rzeczywistości możliwości VB7 to odbicie możliwości IL. To samo dotyczy języka
C# i nadzorowanego kodu w C++. W rezultacie wszystkie języki platformy .NET im-
plementują model obiektowy zastosowany w IL. Ten właśnie model jest tematem ni-
niejszego rozdziału. Jak się przekonamy, IL, oprócz tradycyjnych cech języków obiek-
towych, ma również wiele nowych właściwości. Pokażemy również, jak wszystkie te
cechy znajdują odzwierciedlenie w językach platformy .NET, a zwłaszcza w C# i VB.
Każdy z języków programowania ma własne osobliwości i zawiłości składni (co jest
szczególnie widoczne w językach o długiej historii, takich jak VB). W związku z tym
niektóre cechy obiektowe platformy .NET w jednych językach łatwiej zaimplemento-
wać niż w innych. Co więcej platforma ta ma również takie cechy, których w pew-
nych językach nie da się zapisać.
Programowanie obiektowe z lotu ptaka
Niniejszy punkt to wprowadzenie do programowania obiektowego. Informacje tu za-
warte mogą być przydatne dla osób nieznających tej techniki programowania i powinny
umożliwić jej zrozumienie, ale nie zastąpią dobrego podręcznika. Osoby znające temat
mogą pobieżnie przejrzeć ten punkt i kontynuować czytanie od punktu Klasy .
50 VIsuaI StudIo .NET: .NET Framework. Czarna ksIęga
Programowanie obiektowe nie jest czymś nowym, gdyż powstało w środowisku akade-
mickim w latach sześćdziesiątych. Mimo swego słusznego wieku dopiero ostatnio tech-
niki i języki obiektowe stosowane są powszechniej. Stało się tak z kilku powodów. Po
pierwsze, wczesne języki obiektowe były wykorzystywane wyłącznie w środowiskach
akademickich, gdzie nacisk kładziono na techniki programowania obiektowego, a po-
mijano zagadnienia wydajności i łatwości użycia. Po drugie, języki te dostępne były
tylko na dużych uniwersyteckich komputerach typu mainframe, więc były poza zasię-
giem większości programistów.
W latach siedemdziesiątych szersze uznanie zaczął zdobywać pogląd, że podejście obiekto-
we może pomóc w rozwiązaniu niektórych problemów powstających podczas wytwarza-
nia dużych systemów. Pod koniec tej dekady powstało kilka nowych obiektowych języków
programowania, w tym również C++, co wraz z pojawieniem się mocnych komputerów
typu desktop przyczyniło się do szerszego zastosowania tych języków.
Dzisiaj prawie nikt nie kwestionuje korzyści płynących ze stosowania technik progra-
mowania obiektowego. Niemal każdy nowy język programowania to język obiektowy,
co więcej cechy obiektowe dodawane są do tradycyjnych języków programowania.
Czy programowanie obiektowe możliwe jest tylko w obiektowym języku programowania?
Odpowiedz jest zaskakująca nie, nie tylko. Programowanie obiektowe to po prostu
technika, którą z większym lub mniejszym powodzeniem można zastosować w każdym
języku programowania. Można pisać obiektowy kod w nieobiektowym języku progra-
mowania i vice versa nieobiektowy (innymi słowy bardzo zły) kod w języku obiek-
towym. Programistą obiektowym nie zostaje się z powodu pisania w języku obiektowym,
tak jak nie zostaje się mechanikiem z powodu zakupu zestawu kluczy. Obiektowy język
programowania tylko ułatwia wyrażenie koncepcji obiektowych w tworzonym kodzie.
Co to jest obiekt?
Bardzo trudno podać zwięzłą definicję pojęcia obiekt. Co więcej, ankieta przeprowa-
dzona wśród programistów i informatyków pokazałaby duże rozbieżności w rozumieniu
tego terminu. Oto prosta i użyteczna definicja obiekt to coś, czemu można nadać nazwę,
np.: samochód, rachunek bankowy, tablica, przycisk na formularzu. Niektórzy nazywają
obiektem reprezentację rzeczy istniejącej w świecie rzeczywistym. Może to i prawda,
ale dosyć rzadko spotyka się na co dzień tablice lub listy.
Programowanie obiektowe to styl programowania, którego stosowanie daje w efekcie pro-
gram będący systemem obiektów. Program do obsługi banku może zawierać takie obiekty,
jak bank, rachunek i transakcja. Program do obsługi ruchu drogowego może z kolei za-
wierać takie obiekty, jak droga, znak drogowy, pojazd. Obiekty te charakteryzują się
pewnym zachowaniem. Wiadomo, że na rachunek można wpłacić jakąś kwotę, można
[ Pobierz całość w formacie PDF ]