Pascal.NET

Za sprawą Delphi 8 rodzina języków programowania platformy .NET została ponownie rozszerzona. Teraz kolejna duża grupa programistów będzie mogła wykorzystywać najnowsze technologie i kolejna duża grupa przyczyni się do popularyzacji platformy .NET.

Za sprawą Delphi 8 rodzina języków programowania platformy .NET została ponownie rozszerzona. Teraz kolejna duża grupa programistów będzie mogła wykorzystywać najnowsze technologie i kolejna duża grupa przyczyni się do popularyzacji platformy .NET.

Delphi 8 for the Microsoft .NET Framework to nie tylko "nowa wersja środowiska programistycznego do szybkiego tworzenia aplikacji". To również bardzo nowoczesny język programowania, wywodzący się ze słynnego Pascala. Jego przejrzysta i przyjazna składnia oraz stale dodawane nowe możliwości spowodowały, że wielu programistów nie tylko doceniło, ale i polubiło Delphi. To z kolei sprawiło, że Delphi stał się powszechnie znanym i szeroko stosowanym językiem programowania. Kiedyś pierwszy (przed C++Builderem) wkraczał w szatach Kyliksa do systemu Linux, a obecnie jest pierwszym językiem programowania firmy Borland obsługującym .NET.

Poznając nową wersję, już na początku należy zwrócić uwagę, że Delphi 8 nie jest po prostu rozbudowanym Delphi 7, lecz zupełnie nowym produktem. Służy do tworzenia aplikacji na platformę .NET i tylko takich. Do budowy aplikacji Win32 wykorzystuje się nadal Delphi 7, dostępne w pakiecie z Delphi 8. Przy czym edycja dołączonego Delphi 7 odpowiada edycji pakietu Delphi 8, więc np. z Delphi 8 Professional Edition dostajemy Delphi 7 Professional. Natomiast druga, od razu widoczna zmiana to nowe GUI. Delphi 8 wykorzystuje nowoczesny interfejs Borland Developer Studio, znany już ze środowiska C#Builder, wzorowany na JBuilderze i bardzo podobny do interfejsu Visual Studio .NET.

Standardowe możliwości

Najważniejsze jednak, co nowe Delphi potrafi. Trzy podstawowe rodzaje projektów uruchamianych na platformie .NET to aplikacje zwykłe i internetowe oraz usługi sieciowe. Zwykłe aplikacje to najczęściej aplikacje okienkowe, budowane za pomocą komponentów z biblioteki Windows Forms, albo proste programy bez graficznego interfejsu - uruchamiane z wiersza poleceń. Aplikacje internetowe to uruchamiane na serwerze WWW interaktywne strony internetowe zbudowane w technologii ASP.NET z wykorzystaniem komponentów Web Forms. Natomiast usługi sieciowe, czyli Web Services, to również działające na serwerze WWW aplikacje, które poprzez sieć udostępniają swoje usługi zdalnym klientom. W tym sensie usługi sieciowe przypominają raczej globalne, szeroko dostępne biblioteki funkcji niż klasyczne aplikacje. Wszystkie te projekty można zbudować w Delphi 8, posługując się w większości przypadków językiem Delphi. Wyjątkiem są strony ASP.NET budowane w XML-u, których kod jest jednak generowany automatycznie i na bieżąco w trakcie projektowania formularza.

Biblioteka VCL.NET

Delphi 8 używa interfejsu Borland Developer Studio, znanego już z C#Buildera.

Delphi 8 używa interfejsu Borland Developer Studio, znanego już z C#Buildera.

Wspomniane rodzaje projektów pokrywają większość zapotrzebowania programistów tworzących nowe aplikacje, ale okazują się mało przydatne w sytuacji, gdy chcemy przenieść na platformę .NET programy napisane w poprzednich wersjach Delphi. Problem polega na tym, że programowanie w Delphi dotychczas opierało się na wykorzystywaniu biblioteki komponentów VCL, która jest zasadniczo różna od biblioteki komponentów platformy .NET. Dlatego w Delphi 8, oprócz możliwości tworzenia standardowych projektów.NET, wprowadzono nową wersję biblioteki komponentów VCL.NET, a w szczególności zestaw wizualnych kontrolek VCL Forms.

Biblioteka VCL.NET jest dużym podzbiorem biblioteki VCL, znanej z poprzednich wersji Delphi, i jest z nią zgodna na poziomie kodu źródłowego. Oznacza to, że projekty Delphi mogą zostać zaimportowane do nowego Delphi 8 i ponownie skompilowane na platformę .NET. W zależności od stopnia złożoności projektu, kompilacja na nowej platformie może nie wymagać żadnych lub wymagać jedynie minimalnych zmian w kodzie. Przyczyną jest ograniczona dostępność komponentów VCL.NET (nie wszystkie komponenty VCL mają swoje odpowiedniki w VCL.NET) oraz konieczność wykonania dodatkowych operacji, jeśli w projekcie stosowane były bezpośrednie wywołania funkcji API Win32.

Dostęp do danych

Domyślnie wszystkie okna są posklejane i zadokowane, ale dzięki profilom można łatwo przełączyć się do tradycyjnego układu z poprzednich wersji Delphi.

Domyślnie wszystkie okna są posklejane i zadokowane, ale dzięki profilom można łatwo przełączyć się do tradycyjnego układu z poprzednich wersji Delphi.

Tradycyjnie już mocną stroną Delphi jest współpraca z bazami danych. Na platformie .NET dostęp do danych realizowany jest za pośrednictwem ADO.NET. Standardowo obsługiwane w ten sposób systemy baz danych to SQL Server, Oracle oraz bazy dostępne poprzez sterowniki OLE DB. Wymienione mechanizmy dostępu można stosować bezpośrednio w Delphi, ale można też wykorzystać BDP.NET, czyli Borland Data Providers. Wprowadza on warstwę abstrakcji pomiędzy aplikację oraz system RDBMS, dzięki czemu ewentualna zmiana dostawcy bazy danych nie wymaga ponownego kompilowania aplikacji. Poprzez BDP.NET aplikacje mogą "rozmawiać" z bazami danych Oracle, IBM DB2, SQL Server, Borland InterBase oraz lokalnymi MSDE i Accessem.

Aplikacje oparte na VCL.NET mogą korzystać z tych samych technologii dostępu, co na platformie Win32, ponieważ w Delphi 8 wprowadzono ich odpowiedniki, przystosowane do pracy na platformie .NET. Możliwa jest zatem praca z bazami Oracle, SQL Server, InterBase i MySQL za pośrednictwem sterowników dbExpress.NET oraz z lokalnymi bazami Paradox i dBase za pomocą słynnego BDE - teraz BDE.NET. W Delphi 8 znalazły się również wersje .NET wydajnych sterowników InterBase Express, natomiast w aplikacjach wielowarstwowych do połączeń z bazą danych można wykorzystać wersję .NET technologii DataSnap (połączenie poprzez DCOM), znanej z poprzednich wersji Delphi.

Platforma ECO

Oprócz zestawu standardowych kontrolek, Delphi 8 zawiera także komponenety Internet Direct (INDY) 10, ComponentOne Studio Enterprise, Nevrona Rave Reports oraz dodatkowe narzędzia na Partner CD.

Oprócz zestawu standardowych kontrolek, Delphi 8 zawiera także komponenety Internet Direct (INDY) 10, ComponentOne Studio Enterprise, Nevrona Rave Reports oraz dodatkowe narzędzia na Partner CD.

Coraz większa złożoność aplikacji sprawia, że trudniejszym zadaniem staje się nie implementacja, lecz prawidłowe ich zaprojektowanie. W tym celu wykorzystuje się obecnie specjalistyczne narzędzia do modelowania, których efektem pracy jest szczegółowa i sformalizowana dokumentacja, najczęściej zapisana w postaci diagramów UML. Na podstawie tych modeli często automatycznie generowane są duże fragmenty kodu, uzupełniane następnie przez programistów. Jeżeli jednak model zmieni się w trakcie implementacji, może powstać problem z synchronizacją kodu i modelu. Do tego dochodzą trudności implementacyjne, których najbardziej wyraźnym przykładem jest problem zapisu hierarchicznej struktury obiektów (np. model zależności między pracownikami w przedsiębiorstwie) do płaskiej, relacyjnej bazy danych. Dlatego też pojawiła się idea budowy aplikacji, których działaniem w pewnym sensie steruje nie kod, lecz model.

W Delphi 8 do budowy takich aplikacji służy platforma Enterprise Core Objects (ECO), która z jednej strony jest środowiskiem projektowym do modelowania, a z drugiej platformą uruchomieniową, na której działają gotowe aplikacje. W aplikacjach ECO struktury klas nie definiuje się ręcznie, czyli samodzielnie wpisując kod, lecz graficznie - tworząc odpowiedni model. Na podstawie modelu kompilator sam tworzy odpowiednie klasy oraz ich obiekty, którymi można posługiwać się w kodzie programu tak samo, jak zwykłymi obiektami. Co więcej, obiekty te znają zależności, jakie między nimi występują, dzięki czemu aplikacja potrafi na przykład sama zapisać swój stan w bazie danych. Potrafi też automatycznie generować elementy interfejsu użytkownika - np. dialogi umożliwiające edycję pól obiektów. Funkcja ta dostępna jest w dużej mierze dzięki mechanizmom wbudowanym w platformę .NET, a w szczególności w dostępny tam mechanizm Reflection, który na etapie wykonywania programu dostarcza informacji o jego obiektowej strukturze. Wykorzystywanie ECO wymaga, co prawda, bardziej formalnego podejścia do budowy oprogramowania, ale za to pozwala się skupić na logice aplikacji, zamiast na tworzeniu jej infrastruktury.

Bardzo wyraźnie oddziela też zadania prezentacji, przetwarzania i przechowywania danych, umożliwiając tym samym tworzenie bardziej złożonych systemów.

Win32 i.NET

Ponieważ Delphi 8 tworzy kod wynikowy przeznaczony na platformę .NET, aplikacje tworzone w tym środowisku automatycznie korzystają z jej zalet. Przykłady to: niezależność od platformy, stabilność, bezpieczny kod, automatyczne zarządzanie pamięcią czy dostęp do stale powiększającej się biblioteki komponentów. Delphi 8 to także nowe rozszerzenia samego języka oraz wiele mechanizmów ułatwiających migrację z Win32 na platformę .NET. Jednym z nich jest możliwość definiowania specjalnych fragmentów kodu, w których dopuszczalne są niebezpieczne operacje z użyciem wskaźników, innym - możliwość budowania aplikacji hybrydowych, składających się zarówno z bezpiecznego kodu platformy .NET, jak i zwykłego kodu niezarządzanego.

Co w pakiecie?

Oprócz wymienionych nowych możliwości, Delphi 8 jest też bardzo dobrym zintegrowanym środowiskiem projektowym z wygodnym edytorem, debugerem, mnóstwem narzędzi ułatwiających kodowanie, obsługą systemów kontroli wersji, systemów pracy grupowej, systemów zarządzania wymaganiami oraz narzędziami do modelowania, testowania, optymalizacji i ochrony kodu.


Zobacz również