Rozdział 2. Podstawy platformy .NET.

Adam Boduch

W poprzednim rozdziale opisałem, na czym polega programowanie. Nadszedł czas, aby zgłębić tę wiedzę i dowiedzieć się, czym jest programowanie dla platformy .NET. Nazwa wydaje się dość dziwna, niewątpliwie kojarzy się z internetem. I prawidłowo! Ta technologia ma sporo wspólnego z globalną siecią.

Internet odgrywa coraz większą rolę w naszym życiu. Nie służy już tylko do przeglądania statycznych stron WWW. Teraz internet to głównie komunikatory oraz dynamiczne strony WWW, które umożliwiają większą interakcję z użytkownikiem. Przykładowo, po otwarciu strony traktującej o gospodarce uzyskujemy na bieżąco wgląd w najnowsze notowania akcji, kursy walut czy ciekawostki. Po rejestracji w takim serwisie można otrzymywać codzienne informacje kierowane na wskazany telefon komórkowy czy skrzynkę e-mail. Strony WWW dostarczają teraz coraz bardziej interesującej rozrywki dzięki animacjom czy grom wykonanym za pomocą technologii Flash. Wiele serwisów umożliwia rejestrację, w której można ustalać swoje preferencje, takie jak wygląd strony czy korzystanie z rozmaitych opcji.

Obecnie nie istnieje jednak technologia pozwalająca na swobodne komunikowanie się ze sobą serwisów internetowych. Np. przeglądając oferty sklepu muzycznego, chcielibyśmy zamówić bilet na koncert ulubionego zespołu. Takie zamówienia obsługuje jednak inna witryna. Oczywiście sklep muzyczny może oferować swoim klientom kupno biletu na koncert poprzez podanie np. odnośnika do strony, na której można zamówić bilet, lub pośredniczenie w sprzedaży. Nie jest to jednak idealne i wygodne rozwiązanie. Czy nie lepiej byłoby, gdyby witryny mogły się ze sobą komunikować? Wyobraźmy sobie taki scenariusz: nasza strona — sklep muzyczny — wysyła zapytanie do serwisu organizatora koncertu i sprawdza dostępność biletów na występ danego wykonawcy wraz z cenami oraz terminami. W takim przypadku wszystko odbywałoby się automatycznie — nie jest potrzebna jakakolwiek ingerencja człowieka, gdyż informacje są stale pobierane ze strony organizatora koncertu.

Między innymi takie scenariusze zakłada platforma .NET. Chodzi o integrację usług, sprzętu i innych urządzeń, takich jak palmtopy i telefony komórkowe. Microsoft chce, aby aplikacje można było uruchamiać w telefonach, aby programy te mogły pobrać aktualne dane z internetu (na przykład aktualne terminy koncertów). O tym jednak opowiem nieco dalej… najpierw przecież należy wyjaśnić, w jaki sposób odbywa się programowanie dla systemu Windows.

1 Interfejs programistyczny
     1.1 API systemu Windows
2 Wizja .NET
     2.2 Składniki platformy .NET
          2.2.1 Środowisko .NET Framework
          2.2.2 Narzędzia dla programistów
          2.2.3 Kompilator csc.exe
          2.2.4 Serwery .NET Enterprise
     2.3 Konkluzja
3 C# a .NET
4 Rodzaje aplikacji
     4.4 Aplikacje konsolowe
     4.5 Windows Forms
     4.6 Formularze Web Forms
5 Składniki .NET Framework
6 Usługi sieciowe
     6.7 Niezależność
     6.8 Uniwersalność
7 Podsumowanie

Interfejs programistyczny

Kolejnym pojęciem, które trzeba znać, jest API, czyli programistyczny interfejs aplikacji (ang. Application Programming Interface). To pojęcie będzie się często pojawiało w tej książce.

Mówiąc o API, mam na myśli interfejs w kontekście systemu Windows. Wyobraźmy sobie, że chcemy w naszym programie pobrać współrzędny wskaźnik myszy. System Windows udostępnia w tym celu funkcję GetCursorPos. Możemy ją wykorzystać w każdej aplikacji, która będzie działać w systemie Windows. Aby w danym momencie pobrać współrzędne wskaźnika myszy, program zgłasza się do systemu operacyjnego z „prośbą” o udostępnienie tych informacji. W takim przypadku sprawa jest prosta — wystarczy jedno polecenie, aby otrzymać współrzędne wskaźnika myszy. Nie trzeba programować własnych funkcji i głowić się nad sposobem pobrania owych współrzędnych.

API jest zestawem funkcji, poleceń, które udostępnia aplikacja (w tym przypadku system Windows). Owe funkcje mogą być następnie wykorzystywane przez inne, także pisane przez użytkownika, programy. Przykładowo, API systemu Windows jest zestawem wielu poleceń, które zawarte są w bibliotekach DLL. Nasza aplikacja może wykorzystywać te funkcje, dzięki czemu programowanie staje się prostsze.

API systemu Windows

Aby ułatwić nam pisanie programów dla systemu Windows, programiści Microsoftu udostępniają biblioteki DLL (z których najważniejszymi są: user32.dll, kernel32.dll, gdi32.dll). Biblioteki DLL z kolei zawierają funkcje, które możemy wykorzystywać. Oczywiście trzeba też wiedzieć, jakie nazwy noszą owe funkcje oraz w jaki sposób można z nich skorzystać. Informacje te umieszczono w
dokumentacji udostępnionej na witrynie firmy Microsoft (http://msdn.microsoft.com).

API systemu Windows nosi nazwę WinAPI (ang. Windows Application Programming Interface). Na początku, w systemach Windows 3.1., był to interfejs Win16 (systemy Windows 3.1. były 16-bitowe), a później — Win32 dla systemów Windows 95/98/NT/XP/2000. Interfejs Win32 jest wykorzystywany do dzisiaj przez wielu programistów i wiele aplikacji.

Podsumowując:

  • Windows API (WinAPI) — to programistyczny interfejs (ang. application programming interface) używany w systemie operacyjnym Microsoft Windows. Innymi słowy, jest to specyfikacja procedur i funkcji służących do komunikowania się programów z systemem operacyjnym.
  • Win16 — 16-bitowa wersja WinAPI.
  • Win32 — 32-bitowa wersja WinAPI używana w systemach Windows do dzisiaj. Jest to zbiór funkcji napisanych w języku C, które są umiejscowione w bibliotekach DLL — np. kernel32.dll, user32.dll itd.

Teraz najważniejsze: programując w C#, zasadniczo nie korzysta się z tych funkcji zgromadzonych w bibliotekach DLL (WinAPI). WinAPI systemu Windows uważane jest obecnie za przestarzałe, w kolejnych systemach operacyjnych Microsoftu pozostanie jedynie ze względów kompatybilności. Wszak aplikacje, które programiści piszą obecnie, korzystają z tych funkcji, zgromadzonych w licznych bibliotekach DLL. Gdyby zabrakło ich w nowych wersjach systemu, takie programy zwyczajnie przestałyby działać. W nowym systemie operacyjnym, nazwanym Longhorn [#]_ (nazwa kodowa ), obecny WinAPI zostanie zastąpiony nowoczesnym, bardziej przyjaznym i potężniejszym interfejsem WinFX. Platforma .NET ma być łącznikiem pomiędzy obecnym modelem programowania (WinAPI) a nowym interfejsem WinFX. Ma stopniowo, powoli przyzwyczajać programistów do nowego stylu programowania.

Skoro w C# nie korzystamy z WinAPI, to czemu o tym wspominam? Chcę, abyś miał odpowiedź na pytanie, skąd się biorą te wszystkie funkcje, które udostępnia język programowania. Jak to jest, że dane polecenie umożliwia pobranie współrzędnych myszy, a inne wyłączenie wygaszacza ekranu. W rzeczywistości nie są to funkcje/polecenia, które udostępnia język programowania, lecz te udostępniane przez system operacyjny! Te same polecenia można wykorzystać w innych językach programowania.

Wizja .NET

W lipcu 2000 roku Microsoft zwołał konferencję programistów, na której zademonstrowano .NET. W zamierzeniu .NET jest platformą nowej generacji, przeznaczoną do tworzenia aplikacji Windows. Bill Gates w swoim przemówieniu porównał powstanie platformy .NET do przejścia z systemu DOS do Windows 3.1., a później z przejściem do Windows 95. W rzeczywistości .NET nie jest nowym systemem operacyjnym ani językiem programowania. Jest podstawą, pewna ideą, sposobem budowania aplikacji dla systemu Windows. Platforma .NET to po prostu nowe podejście do tworzenia oprogramowania.

Jednym z założeń platformy .NET jest porzucenie dotychczasowego modelu Win32 i zastąpienie go całkowicie nowym, prostszym oraz bardziej zaawansowanym.

W poprzednim rozdziale opisałem proces instalowania platformy .NET. W rzeczywistości podczas tej operacji instalator kopiuje na dysk twardy komputera szereg bibliotek DLL, aplikacji dla programistów oraz dokumentację. Dzięki temu można korzystać z nowych narzędzi oferowanych przez Microsoft. Windows 2003 standardowo jest wyposażony w platformę .NET, więc nie ma potrzeby ponownej instalacji.

Zgodnie z definicją firmy Microsoft:

.NET jest stworzonym przez firmę Microsoft rozwiązaniem dla usług sieciowych, stanowi nową generację oprogramowania łączącego się z naszym światem informacji, urządzeniami i użytkownikami w jednolity, spersonalizowany sposób.

Taka definicja zapewne wydaje się trochę niejasna, dlatego w tym rozdziale postaram się objaśnić kilka kwestii związanych z platformą .NET. Istotnymi założeniami, które zdecydowały o powstaniu platformy .NET, były:

*prostsze tworzenie oprogramowania,
*możliwość komunikowania się aplikacji,
*uproszczone wdrażanie aplikacji.

Składniki platformy .NET

Platforma .NET składa się z kilku składników:

*środowiska .NET Framework,
*narzędzia dla programistów,
*serwerów .NET Enterprise.

Środowisko .NET Framework

Bardzo ważna uwaga: programy pisane w C# wymagają, aby na komputerze, na którym będą uruchamiane, było zainstalowane środowisko .NET Framework. Jeżeli taki program działa na danym komputerze, to znaczy, że zainstalowano pakiet .NET Framework albo pecet pracuje pod kontrolą Windows 2003, gdzie .NET Framework jest zainstalowany domyślnie.

Środowisko .NET Framework jest podstawowym składnikiem platformy .NET. Mówiąc najprościej, są to biblioteki, technologie wspierające działanie programu, odpowiedzialne za zarządzanie pamięcią aplikacji itp.

Należy w tym miejscu zaznaczyć, że programowanie dla platformy .NET różni się od standardowego modelu programowania dla Win32. Środowisko .NET Framework zawiera nowe biblioteki, funkcje, które znacząco różnią się od tych udostępnianych przez Win32. Można powiedzieć, że programowanie dla .NET jest prostsze od programowania dla Win32, gdyż platforma .NET odciąża programistę od zadań, które wcześniej spoczywały na jego głowie (np. zwalnianie pamięci), lecz o tym będziemy mówili w dalszej części książki.

Platforma .NET przyciąga coraz większą liczbę programistów, którzy chcą spróbować swoich sił i modyfikują swoje programy, aby działały pod kontrolą środowiska .NET Framework. Zdobywanie popularności przez środowisko jest jednak procesem długofalowym. Minie jeszcze sporo czasu, zanim większość porzuci standardowy model programowania pod Win32.

Narzędzia dla programistów

Wraz z dostarczeniem technologii, jaką jest platforma .NET, firma Microsoft musiała udostępnić programistom także narzędzia, za pomocą których mogli oni „produkować” swoje aplikacje. W związku z tym powstał pakiet dla programistów o nazwie Visual Studio.NET. Dotychczas językiem programowania popieranym przez Microsoft był Visual Basic, przez wielu uważany za prosty i mało profesjonalny. Język ten został wzbogacony o nowe funkcje i możliwość obsługi platformy .NET (teraz Microsoft promuje go pod nazwą Visual Basic.NET).

Możliwości języka Visual Basic zostały rozszerzone z myślą o programistach, którzy już od dawna używali tego narzędzia. Nie można było o nich zapomnieć, lecz trzeba było dać im ten sam produkt (poszerzony o nową funkcjonalność), który pozwalałby na tworzenie programów dla platformy .NET. Językiem programowania, który powstał specjalnie na potrzeby platformy .NET, jest C#. Jest to język zbudowany na bazie C++ oraz Javy (o czym wspominałem w poprzednim rozdziale). Umożliwia obsługę wszystkich technologii oferowanych przez .NET Framework.

Podstawy języka C# zostaną opisane w kolejnym rozdziale niniejszej książki.

Narzędzia dla programistów to nie tylko języki programowania. To również nowa baza danych — MS SQL Server oraz technologia bazodanowa ADO.NET.

Jeżeli chodzi o technologie związane z internetem, do dyspozycji pozostaje technologia tworzenia dynamicznych stron WWW — ASP.NET. Jest to technologia powstała na bazie ASP (ang. Active Server Pages). Strony ASP.NET mogą być pisane przy użyciu C#, Visual Basic.NET oraz jakiegokolwiek języka obsługującego platformę .NET.

Kompilator csc.exe

Pamiętasz, jak w poprzednim rozdziale wspominałem o kompilatorze języka C# udostępnianym za darmo wraz ze środowiskiem .NET Framework? Nie miałem jeszcze okazji zaprezentować sposobu działania tego programu. W poprzednim rozdziale wspominałem również, iż do programowania nie jest potrzebny żaden specjalistyczny edytor. Wystarczy zwykły, najprostszy edytor tekstu, jak np. Notatnik z systemu Windows.

Uruchom Notatnik i wpisz następującą treść programu:

using System;

class Welcome
{
    static void Main()
    {
        Console.WriteLine("Cześć!");
        Console.ReadLine();
    }
}

Plik o tej treści zapisz w katalogu, w którym znajduje się kompilator csc.exe. W moim wypadku jest to katalog C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727. Plik zapisz pod nazwą welcome.cs. Ten prosty program wyświetla na ekranie konsoli tekst Cześć!.

#Z menu Start wybierz Programy/Akcesoria/Wiersz poleceń.
#Wpisz komendę cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727, która spowoduje otwarcie katalogu z kompilatorem.
#Następnie wpisz polecenie csc welcome.cs, które spowoduje skompilowanie programu.

Jeżeli wszystko poszło dobrze, czyli kod źródłowy nie zawiera błędów, na ekranie konsoli powinien pojawić się tekst:

Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.42
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

Teraz można w katalogu C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 odszukać aplikację welcome.exe i spróbować ją uruchomić. Moje gratulacje! Właśnie wspólnie napisaliśmy pierwszy program konsolowy działający w środowisku .NET Framework w języku C# (rysunek 2.1). Program można zamknąć, naciskając klawisz Enter.

sharp2.1.jpg
Rysunek 2.1. Program konsolowy napisany w C#

Opisując to ćwiczenie, założyłem, że kompilator csc.exe znajduje się w katalogu C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727, jednak wcale nie musi tak być we wszystkich komputerach.

Serwery .NET Enterprise

Serwer .NET Enterprise jest oprogramowaniem, które może zostać użyte wraz z aplikacjami .NET. Dobrym przykładem jest baza SQL Server, która pozwala na wymianę informacji pomiędzy aplikacją a serwerem. Dane — np. informacje o klientach — mogą być zgromadzone na jednym komputerze (serwerze). Baza danych będzie obsługiwana przez serwer SQL Server. Klientem jest aplikacja, która łączy się z serwerem i pobiera aktualną listę klientów oraz umożliwia pobranie szczegółowych informacji na temat jednego z nich.

Do innych serwerów .NET Enterprise zaliczamy m.in. oprogramowanie BizTalk Server czy Exchange. W tej książce nie będę jednak szczegółowo opisywał serwerów Enterprise.

Konkluzja

Podsumujmy pokrótce, czym jest .NET:

*.NET jest nową strategią firmy Microsoft.
*.NET wytycza nowe standardy programowania.
*.NET bazuje na infrastrukturze związanej z internetem.
*.NET ma w założeniu działać na każdym systemie lub platformie [#]_ .
*.NET to nie system operacyjny.

C# a .NET

Podsumujmy więc naszą wiedzę dotyczącą języka C#:

*C# jest językiem programowania na platformę .NET.
*Programując w C#, korzystamy z funkcji, jakie oferuje środowisko .NET Framework.
*Aplikacje napisane w C# wymagają, aby na komputerze zainstalowane było środowisko .NET Framework.

Chcąc pisać aplikację na platformie .NET, nie jesteś skazany jednie na język C#. Platforma .NET wspiera również inne języki, takie jak C++, Visual Basic.NET, Delphi i inne.

Rodzaje aplikacji

W poprzednim rozdziale stworzyłeś swoją pierwszą aplikację w C#. Jak pamiętasz, program składał się z jednego formularza (okna). W takim wypadku mówimy o wykorzystaniu biblioteki Windows Forms. Owa biblioteka, będąca oczywiście częścią platformy .NET, umożliwia użycie tzw. komponentów, takich jak przyciski, listy rozwijane, pola edycyjne. Przed chwilą pokazałem, jak można stworzyć aplikację konsolową.

Aplikacje konsolowe

Aplikacje konsolowe to programy uruchamiane w oknie konsoli. Tego rodzaju aplikacje nie posiadają interfejsu użytkownika i są przydatne, jeżeli chodzi o prosty program, który będzie używany przez wąską grupę ludzi posiadających wiedzę potrzebną do uruchomienia go i sterowania nim z linii poleceń.

Przykład aplikacji konsolowej został przedstawiony w tym rozdziale wcześniej, gdy zaprezentowałem możliwość skompilowania prostego programu napisanego w C#.

Windows Forms

W rozdziale 1. pokazałem, w jaki sposób utworzyć prosty program wizualny na podstawie formularza i z wykorzystaniem komponentu. Po uruchomieniu takiego programu użytkownik widzi standardowe okno Windows wraz z etykietą pośrodku. Tego typu aplikacje będą działać jedynie w przypadku, gdy na komputerze jest zainstalowane środowisko .NET Framework.

Windows Forms (często nazywana w skrócie WinForms) jest biblioteką wizualną, umożliwiającą zaprojektowanie graficznego interfejsu użytkownika (GUI, czyli Graphical User Interface). WinForms jest częścią środowiska .NET Framework, tak więc takie komponenty jak Button (użyty w przykładzie z rozdziału 1.) mogą zostać użyte zarówno w Delphi, jak i w C# czy innym języku obsługiwanym przez platformę .NET (np. Visual Basic.NET).

O bibliotece Windows Forms będzie mowa w rozdziale 10.

Formularze Web Forms

Technologia .NET umożliwia tworzenie dynamicznych stron WWW z użyciem technologii ASP.NET. Chciałbym teraz wspomnieć o czymś takim jak formularze Web Forms.

Tworzenie dynamicznych stron ASP.NET odbywa się w C# w sposób wizualny. Do dyspozycji pozostaje formularz (który odzwierciedla przyszłą stronę WWW) oraz zestaw kontrolek. Wykorzystanie owych komponentów opiera się na dynamicznym generowaniu kodu HTML dla strony. Projektowanie strony odbywa się wizualnie — programista umieszcza odpowiedni element na stronie (np. komponent — tabelę), a środowisko Visual Studio w tle generuje odpowiedni kod HTML, który na końcu będzie przetwarzany przez przeglądarkę.

W tej książce nie będziemy zajmować się tworzeniem dynamicznych stron WWW przy pomocy ASP.NET. Czytelnika zainteresowanego tą technologią odsyłam do dokumentacji firmy Microsoft lub do książek traktujących o tej technologii.

Składniki .NET Framework

W tym miejscu można by się zatrzymać i zapytać: „Zaraz, zaraz… wcześniej była mowa o składnikach platformy .NET, a teraz o składnikach platformy .NET Framework?”. Trzeba więc wyjaśnić, że zagadnienia związane z .NET są bardzo rozległe i całościowe ich omówienie w tej książce jest po prostu niemożliwe. Chciałbym jednak poruszyć kilka najważniejszych kwestii związanych z tą platformą. Nie można przy tym pominąć najważniejszego, czyli środowiska .NET Framework.

Środowisko .NET Framework jest podstawową technologią budowania i uruchamiania aplikacji.
Szczegółowo omówimy ją w rozdziale 4. Tutaj chciałbym wspomnieć jedynie o kilku jej składnikach:

*Class Libraries (CL) — biblioteki klas. Są to gotowe komponenty, funkcje i biblioteki, które można wykorzystać we własnym programie. Wizualna biblioteka WinForms jest także częścią CL, podobnie jak szereg innych funkcji, które stopniowo będę omawiał w tej książce.
*Common Language Runtime (CLR) — wspólne środowisko wykonywalne (albo wspólne środowisko uruchomieniowe). Technologia CLR odpowiada za uruchamianie aplikacji .NET oraz ich prawidłowe działanie, a także za zwalnianie pamięci czy inne skomplikowane czynności. Szerzej o CLR opowiem w rozdziale 4.
*Common Type System (CTS) — wspólny system typów. Dzięki tej technologii jest możliwa współpraca pomiędzy różnymi aplikacjami na platformie .NET. Na razie nie musimy zaprzątać sobie tym głowy. Wystarczy tylko wiedzieć, że coś takiego istnieje.

Usługi sieciowe

Usługi sieciowe są aplikacjami udostępnianymi poprzez interfejs WWW. Nie chodzi tutaj bynajmniej o strony WWW, gdyż aplikacje sieciowe mogą komunikować się ze sobą za pomocą mechanizmu zdalnego wywoływania procedur (ang. Remote Procedure Calls — RPC), przeważnie używając do tego protokołu HTTP.

Dobrym przykładem jest wypożyczalnia DVD. Szef takiej firmy może podpisać umowę z właścicielami sklepów z płytami DVD, którzy na swoich stronach będą oferowali płyty z wypożyczalni. Wówczas serwisy właścicieli sklepów mogą komunikować się z usługą sieciową znajdującą się na serwerze przynależnym do wypożyczalni w celu pobrania aktualnej oferty, sprawdzenia, czy dany tytuł jest już wypożyczony i kiedy ma zostać zwrócony. Podobnie oprogramowanie zainstalowane w placówce/placówkach wypożyczalni może komunikować się z serwerem, pobierając aktualne dane o klientach czy wypożyczonych tytułach. Wszystkie dane znajdują się na jednym serwerze i są udostępniane przez usługę sieciową. Wszelkie zmiany w tytułach bądź produktach będą przeprowadzane jedynie na centralnym serwerze — nie zachodzi wówczas potrzeba aktualizacji oprogramowania w placówkach.

Usługi sieciowe można także sprzedawać. Jeżeli ktoś napisze innowacyjną usługę wykorzystującą niepowtarzalny, nowatorski algorytm szyfrujący, może ją udostępniać w internecie. Klienci natomiast mogą dostosować odpowiednio swoje oprogramowanie, tak aby umożliwić wykorzystanie tej nowej usługi. W takim przypadku wszelkie poprawki czy naprawa błędów będą dotyczyły tylko tej jedynej usługi, a klienci nie muszą nawet o tym wiedzieć. Warunkiem jest jedynie zapewnienie dostępności takiej aplikacji przez internet.

Inny przykład: autorzy popularnej wyszukiwarki Google udostępnili programistom jej interfejs. Dzięki usługom sieciowym można wykorzystać mechanizmy Google do przeszukiwania zasobów internetu. Następnie wyniki takiego wyszukiwania można zaprezentować w swoim programie lub stronie internetowej.
Usługi sieciowe są uniwersalnym sposobem wymiany informacji pomiędzy aplikacjami czy stronami WWW. Teraz aplikacja nie musi składać się z tylko jednego modułu (pliku wykonywalnego .exe), ale może dzielić się na kilka mniejszych, które zostaną rozmieszczone na kilku serwerach. Centralna aplikacja, znajdująca się na komputerze klienta, może bezproblemowo łączyć się z serwerami i wymieniać dane oraz realizować zadania.

Niezależność

Bardzo ważnym aspektem usług sieciowych jest ich niezależność od platformy językowej. Ważne jest, aby usługa działała pod kontrolą .NET Framework, jednak nieistotne jest to, w jakim języku została napisana. Może to być więc C#, Visual Basic.NET czy Delphi. Aplikacja, która korzysta z danej usługi, również może być napisana w jakimkolwiek języku obsługiwanym przez .NET.

Uniwersalność

A zatem już wiadomo, że usługa napisana w C# może być wykorzystywana przez aplikację napisaną w Delphi. Jak to się więc dzieje, że pomiędzy usługą a używającą jej aplikacją zachodzi swobodna komunikacja? Chciałbym zasygnalizować kilka podstawowych pojęć związanych nie tylko z usługami, lecz ogólnie z platformą .NET.

Komunikacja z usługami sieciowymi odbywa się poprzez sieć WWW, a konkretniej przez wykorzystywany tutaj protokół HTTP. Aplikacja może wysłać do usługi sieciowej zapytanie w formacie XML, a następnie otrzymać odpowiedź — również w tym formacie. Kluczową rolę w procesie komunikowania się z usługami sieciowymi odgrywa właśnie język XML opracowany przez konsorcjum W3C.

Konsorcjum W3C (ang. World Wide Web Consorcium) jest organizacją wyznaczającą standardy technologii związanych z internetem (specyfikacje, wytyczne aplikacji itp.). Organizacja W3C jest odpowiedzialna m.in. za opracowanie standardu HTML, który obowiązuje do dzisiaj. Stanowi niewątpliwy autorytet w dziedzinie definiowania standardów sieciowych. Więcej informacji na temat konsorcjum można znaleźć na stronie www.w3c.org.

Z usługami sieciowymi wiąże się kilka następnych pojęć:

*XML — ang. eXtensible Markup Language. Jest to uniwersalny język znaczników przeznaczony do publikowania danych. Jego uniwersalność, niezależność od platformy oraz coraz większa popularność czynią go idealnym formatem do przesyłania danych pomiędzy usługami sieciowymi.
*SOAP — ang. Simple Object Access Protocol. SOAP jest językiem opartym na XML, wykorzystywanym przez usługi sieciowe do wywoływania procedur. Protokół SOAP określa format przesyłanych danych, nazwy parametrów itp.
*WSDL — ang. Web Service Description Language. WSDL jest również opartym na XML formatem opisu usługi sieciowej. WSDL służy do opisywania usługi, dostarcza użytkownikom informacji o jej przeznaczeniu i sposobie wykorzystania.
*UDDI — ang. Universal Description, Discovery and Integration. Jest to spis usług sieciowych udostępnianych publicznie.

Podsumowanie

Uf! W tym rozdziale zaprezentowałem kolejną dawkę teoretycznej wiedzy z zakresu platformy .NET. Bardziej szczegółowo o środowisku .NET Framework opowiem w rozdziale 4., teraz jednak powinieneś zapamiętać pewne podstawowe pojęcia, takie jak CLR czy CLS. Trzeba również odróżniać model programowania dla Win32 od modelu .NET.

.. [#] Nazwy kodowe nadawane są projektom we wczesnym stadium rozwoju, wtedy gdy nie wiadomo jeszcze, jaka będzie rzeczywista nazwa produktu.
.. [#] Odniosę się w tym momencie do starego powiedzenia. Owszem, .NET ma działać na każdej platformie, ale pod warunkiem że będzie to produkt firmy Microsoft. Powstaje jednak darmowy projekt (Open Source), którego założeniem jest stworzenie platformy zintegrowanej z .NET dla systemu Linux. Projekt nosi nazwę dotGNU, a jego strona internetowa to www.dotgnu.org.

[[C_Sharp/Wprowadzenie|Spis treści]]

[[C_Sharp/Wprowadzenie/Prawa autorskie|©]] Helion 2006. Autor: Adam Boduch. Zabrania się rozpowszechniania tego tekstu bez zgody autora.

1 komentarz

Bardzo dobrze opisane, tak dalej