[ Pobierz całość w formacie PDF ]
na miejscu i pomogły zidentyfikować właściwą przestrzeń nazw dla tego
atrybutu, deklaracja w VB mogłaby wyglądać następująco:
Public Function Factorial(ByVal F _
As Integer) As Integer Implements IMath.Factorial
132 Języki .NET
Atrybut ten wykorzystywany jest przez ASP.NET do oznaczenia, że
metoda ta powinna być udostępniona jako usługa sieciowa, możliwa
do wywołania z SOAP. Podobnie, załączenie atrybutu:
w pliku VB ustawi wartość atrybutu przechowywaną w manifeście
pakietu, która identyfikuje QwickBank jako twórcę tego pakietu. Pro-
gramiści VB mogą także tworzyć własne atrybuty poprzez definiowanie
klas dziedziczących z System.Attribute i następnie automatyczne
skopiowanie wszystkich informacji zdefiniowanych dla tych atrybutów
do metadanych. Tak jak w C# i każdym innym języku opartym na CLR,
własne atrybuty można odczytywać za pomocą metody GetCustom-
Attributes, zdefiniowanej przez klasę Attribute w przestrzeni nazw
System.Reflection.
Atrybuty są tylko jednym z wielu przykładów niesamowitego podo-
bieństwa pomiędzy VB a C#. Wybór zastosowanego języka jest w dużej
mierze decyzją opartą na estetyce.
Przestrzeń nazw My
W wersji VB z 2005 roku istnieje interesujący dodatek, który nie jest
częścią C# przestrzeń nazw My. Celem jest zbliżenie VB do jego
korzeni poprzez ułatwienie programistom wykonywania często spoty-
kanych, ale potencjalnie skomplikowanych rzeczy. W tym celu prze-
strzeń nazw My zawiera pewną liczbę obiektów, które upraszczają życie
programistom VB. Niektóre z tych obiektów to:
My.Application obiekt ten pozwala programistom na łatwiejszy
dostęp do informacji o bieżącej aplikacji. Na przykład właściwość
My.Application.CommandLineArgs pozwala programiście VB
na dostęp do dowolnych argumentów dostarczonych przez wiersz
poleceń, kiedy aplikacja była wywoływana, natomiast metoda
My.Application.ChangeCulture pozwala na modyfikowanie
kultury (na przykład z angielskiej na francuską), wykorzystywanej
do formatowania dat i innych ustawień.
My.User obiekt ten pozwala na dostęp do właściwości bieżącego
użytkownika aplikacji. Na przykład właściwość My.User.Name
zwraca nazwę bieżącego użytkownika, podczas gdy metoda
IsInRole może być wykorzystywana w celu ustalenia, czy
użytkownikowi przypisano pewną rolę, na przykład administratora.
Visual Basic 133
My.Computer obiekt ten zapewnia dostęp do różnych
aspektów maszyny, na której działa bieżąca aplikacja.
My.Computer zawiera zbiór właściwości, które zwracają inne
obiekty dla różnych rodzajów dostępu. Niektóre przykłady
obejmują My.Computer.Audio do odtwarzania plików .wav,
My.Computer.Clock do dostępu do bieżącego czasu,
My.Computer.FileSystem do pracy z plikami i katalogami,
My.Computer.Network do wgrywania i pobierania danych oraz
My.Computer.Registry do dostępu do rejestru lokalnej maszyny.
My.Settings obiekt ten pozwala na pracę z ustawieniami
aplikacji, takimi jak łączenie się z bazą danych lub preferencje
użytkownika.
Nie ma rozsądnego uzasadnienia, dlaczego klasy przestrzeni nazw My
nie mogły być udostępnione programistom pracującym w C# czy in-
nych językach opartych na CLR. Biorąc jednak pod uwagę historyczną
orientację VB w kierunku mniej technicznych programistów, nie po-
winno być niespodzianką, że taki upraszczający zbiór klas pojawił się
najpierw właśnie tu.
Perspektywa: po co udostępniać wszystkie te języki?
Microsoft twierdzi, że ponad 20 języków zostało przeniesionych na CLR. Wraz z języ-
kami dostarczanymi przez sam Microsoft, programiści .NET mają dużo opcji do wyboru.
Jednak biorąc pod uwagę centralną rolę CLR w definiowaniu tych języków, często
mają one ze sobą wiele wspólnego. Jaka jest tak naprawdę korzyść z posiadania wielu
języków opartych na CLR?
Dla Microsoftu istnieją dwie kluczowe zalety tej sytuacji. Po pierwsze, populacja pro-
gramistów dla Windows przed .NET była podzielona na dwa główne obozy: C++ oraz
Visual Basic. Microsoft potrzebował wykonać krok do przodu z obiema grupami pro-
gramistów, którzy są przywiązani do swojego języka. Choć semantyka CLR (i języków
na nim opartych, takich jak C# i VB) różni się zarówno od C++, jak i od VB 6, pod- [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl fopke.keep.pl
na miejscu i pomogły zidentyfikować właściwą przestrzeń nazw dla tego
atrybutu, deklaracja w VB mogłaby wyglądać następująco:
Public Function Factorial(ByVal F _
As Integer) As Integer Implements IMath.Factorial
132 Języki .NET
Atrybut ten wykorzystywany jest przez ASP.NET do oznaczenia, że
metoda ta powinna być udostępniona jako usługa sieciowa, możliwa
do wywołania z SOAP. Podobnie, załączenie atrybutu:
w pliku VB ustawi wartość atrybutu przechowywaną w manifeście
pakietu, która identyfikuje QwickBank jako twórcę tego pakietu. Pro-
gramiści VB mogą także tworzyć własne atrybuty poprzez definiowanie
klas dziedziczących z System.Attribute i następnie automatyczne
skopiowanie wszystkich informacji zdefiniowanych dla tych atrybutów
do metadanych. Tak jak w C# i każdym innym języku opartym na CLR,
własne atrybuty można odczytywać za pomocą metody GetCustom-
Attributes, zdefiniowanej przez klasę Attribute w przestrzeni nazw
System.Reflection.
Atrybuty są tylko jednym z wielu przykładów niesamowitego podo-
bieństwa pomiędzy VB a C#. Wybór zastosowanego języka jest w dużej
mierze decyzją opartą na estetyce.
Przestrzeń nazw My
W wersji VB z 2005 roku istnieje interesujący dodatek, który nie jest
częścią C# przestrzeń nazw My. Celem jest zbliżenie VB do jego
korzeni poprzez ułatwienie programistom wykonywania często spoty-
kanych, ale potencjalnie skomplikowanych rzeczy. W tym celu prze-
strzeń nazw My zawiera pewną liczbę obiektów, które upraszczają życie
programistom VB. Niektóre z tych obiektów to:
My.Application obiekt ten pozwala programistom na łatwiejszy
dostęp do informacji o bieżącej aplikacji. Na przykład właściwość
My.Application.CommandLineArgs pozwala programiście VB
na dostęp do dowolnych argumentów dostarczonych przez wiersz
poleceń, kiedy aplikacja była wywoływana, natomiast metoda
My.Application.ChangeCulture pozwala na modyfikowanie
kultury (na przykład z angielskiej na francuską), wykorzystywanej
do formatowania dat i innych ustawień.
My.User obiekt ten pozwala na dostęp do właściwości bieżącego
użytkownika aplikacji. Na przykład właściwość My.User.Name
zwraca nazwę bieżącego użytkownika, podczas gdy metoda
IsInRole może być wykorzystywana w celu ustalenia, czy
użytkownikowi przypisano pewną rolę, na przykład administratora.
Visual Basic 133
My.Computer obiekt ten zapewnia dostęp do różnych
aspektów maszyny, na której działa bieżąca aplikacja.
My.Computer zawiera zbiór właściwości, które zwracają inne
obiekty dla różnych rodzajów dostępu. Niektóre przykłady
obejmują My.Computer.Audio do odtwarzania plików .wav,
My.Computer.Clock do dostępu do bieżącego czasu,
My.Computer.FileSystem do pracy z plikami i katalogami,
My.Computer.Network do wgrywania i pobierania danych oraz
My.Computer.Registry do dostępu do rejestru lokalnej maszyny.
My.Settings obiekt ten pozwala na pracę z ustawieniami
aplikacji, takimi jak łączenie się z bazą danych lub preferencje
użytkownika.
Nie ma rozsądnego uzasadnienia, dlaczego klasy przestrzeni nazw My
nie mogły być udostępnione programistom pracującym w C# czy in-
nych językach opartych na CLR. Biorąc jednak pod uwagę historyczną
orientację VB w kierunku mniej technicznych programistów, nie po-
winno być niespodzianką, że taki upraszczający zbiór klas pojawił się
najpierw właśnie tu.
Perspektywa: po co udostępniać wszystkie te języki?
Microsoft twierdzi, że ponad 20 języków zostało przeniesionych na CLR. Wraz z języ-
kami dostarczanymi przez sam Microsoft, programiści .NET mają dużo opcji do wyboru.
Jednak biorąc pod uwagę centralną rolę CLR w definiowaniu tych języków, często
mają one ze sobą wiele wspólnego. Jaka jest tak naprawdę korzyść z posiadania wielu
języków opartych na CLR?
Dla Microsoftu istnieją dwie kluczowe zalety tej sytuacji. Po pierwsze, populacja pro-
gramistów dla Windows przed .NET była podzielona na dwa główne obozy: C++ oraz
Visual Basic. Microsoft potrzebował wykonać krok do przodu z obiema grupami pro-
gramistów, którzy są przywiązani do swojego języka. Choć semantyka CLR (i języków
na nim opartych, takich jak C# i VB) różni się zarówno od C++, jak i od VB 6, pod- [ Pobierz całość w formacie PDF ]