C++ Builder bliżej Delphi

Przeglądając możliwości Borland C++ Builder 5.0, można odnieść wrażenie, że czyta się opis nowej wersji Delphi. C++ Builder wzbogacono o obsługę COM+ i elementy związane z Windows 2000.

Przeglądając możliwości Borland C++ Builder 5.0, można odnieść wrażenie, że czyta się opis nowej wersji Delphi. C++ Builder wzbogacono o obsługę COM+ i elementy związane z Windows 2000.

Firma Borland, przejęta niedawno przez Corela, dodała do C++ Builder 5.0 (BCB) wiele nowych funkcji. Jednocześnie twórcy pakietu zadbali, by nowe środowisko przypominało to znane z poprzednich wersji i zmiany w kompilatorze nie sprawiały zbyt wielu kłopotów.

Środowisko

Jedną z ciekawszych możliwości BCB jest zapis układu elementów na ekranie. Programista może zdefiniować kilka własnych układów okien i w razie potrzeby szybko między nimi się przełączać. Pomocne jest też grupowanie właściwości prezentowanych w oknie Object Inspector. Programista może samodzielnie tworzyć kategorie, a następnie podczas dalszego projektowania wyszukać metody wg zdefiniowanych kategorii.

W pracy nad projektem, zwłaszcza w większym zespole, dużym ułatwieniem będzie "inteligentne" zarządzanie listą zadań do wykonania. Programista albo samodzielnie dodaje nowe zadania w specjalnym oknie, albo wpisuje w kodzie programu komentarz sformatowany w odpowiedni sposób, który zostanie automatycznie potraktowany jako zadanie do wykonania.

Układ elementów na formatce jest domyślnie zapisywany w postaci pliku tekstowego. Można to zmienić i zażądać, by format zapisu był zgodny z BCB 4.0. Większość opcji, m.in. parametry projektu, jest zapisywana w postaci pliku XML, który można edytować.

Niestety, zbiór narzędzi, podpowiadających listę metod i wyświetlających parametry pisanej właśnie funkcji - Code Insight - nie zawsze działa poprawnie z zagnieżdżonymi klasami czy bardzo złożonymi konstrukcjami. Problemy występują np. gdy wykorzystywane są makra MFC czy ATL. Ponadto Code Insight w nowym BCB działa bardzo wolno, a jednocześnie spowalnia środowisko. Przy większych projektach warto go wyłączyć.

Pojawił się zupełnie nowy element - Data Module Designer, który pozwala graficznie projektować strukturę relacji łączących tabele w bazie danych. Nie jest to pakiet, który umożliwia projektowanie bazy, a raczej narzędzie pomocnicze przy tworzeniu interfejsu, ułatwiające grupowanie różnych źródeł danych w jednym miejscu.

Obiekty

Borland dołączył wiele nowych kreatorów. Jest wśród nich kreator, który na podstawie dowolnego COM tworzy gotowy szablon z takim samym interfejsem, jak wzorcowy obiekt. W pewnych przypadkach można nawet zbudować kod wykonujący funkcje z obiektu "nadrzędnego". Pozwala to ominąć dużą niedogodność COM - brak dziedziczenia w takiej postaci, jaka występuje w C++.

Pojawiły się specjalne narzędzia do obsługi nowego standardu - COM+. BCB zawiera kreator obiektów COM+, zniknął natomiast dotychczasowy kreator obiektów dla Microsoft Transaction Server. Zastąpił go kreator obiektów transakcyjnych, gdzie można wybierać, czy obiekt ma być typu COM współpracującym z MTS czy kontrolką COM+. Jednak kreator, który ma ułatwiać tworzenie procedur obsługi zdarzeń COM+, w zasadzie tworzy tylko szablon obiektu COM+. Niemal cały szkielet kodu obsługi zdarzenia musi być napisany ręcznie.

W BCB 5 wprowadzono specjalny obiekt - ramki (frame), pełniące rolę kontenera, w którym można umieszczać elementy interfejsu użytkownika. Ramka może być dodawana do palety narzędzi. Następnie można ją "dziedziczyć" w kilku formatkach. Bardzo ułatwi to tworzenie spójnego interfejsu użytkownika, a jednocześnie uprości pracę programisty.

Do pakietu dołączono kody źródłowe komponentów Decision Cube, co pozwala np. na bardzo dokładne dostosowanie standardowych mechanizmów analizy OLAP do potrzeb własnej aplikacji.

Sposoby dostępu do danych

Borland odchodzi powoli od obsługi baz danych opartych na BDE (to uniwersalny pośrednik między kodem w BCB, sterownikiem konkretnej bazy a danymi). Obok istniejących klas obsługujących BDE, pojawiły się komponenty ADOExpress (korzystający z technologii ADO opartej na OLE DB Microsoftu) czy InterBase Express (przeznaczony jest do współpracy z motorem InterBase). Struktura obiektów służących do obsługi BDE, ADO czy InterBase jest podobna - mają analogiczne nazwy i funkcje. Przenoszenie kodu pomiędzy nimi nie powinno sprawiać problemów.

Jednocześnie Borland rozszerzył możliwości TCustomDataConnection, specjalnej klasy, która pozwala włączać do środowiska BCB własne sterowniki do bazy danych. Dla BCB i Delphi powstało już wiele komponentów, służących do łączenia się z bazami danych. W nowym BCB wyraźnie brakuje mechanizmu ułatwiającego korzystanie bezpośrednio z OLE DB.

Kompilator

BCB 5.0 obsługuje najnowsze dostępne rozszerzenia C++: RTTI, STL. Pozwala także na korzystanie z bibliotek Microsoftu: ATL i MFC. Co więcej, kod w MFC czy ATL można łączyć z projektem BCB. Natomiast niemal zupełnie zrezygnowano ze wsparcia dla OWL.

Ciekawym elementem jest rozszerzenie informacji o błędach kompilacji. BCB 5.0 może wyświetlać drzewo zależności, które pokazuje, jakie operacje wykonywał parser, gdy napotkał błąd. Ta opcja przyda się zwłaszcza przy szukaniu "trudnych" błędów, gdy programista nie jest w stanie na pierwszy rzut oka znaleźć przyczyny wystąpienia błędu.

Kompilator BCB 5.0 zawiera sporo opcji, pozwalających precyzyjnie dostroić wykorzystywanie tzw. prekompilowanych nagłówków. Korzystanie z tej możliwości bardzo przyspiesza kompilację. Jednak w każdym pliku projektu tworzonego w BCB jest dołączanych nierzadko kilkaset tysięcy linii, co powoduje, że prekompilowane nagłówki zużywają wiele pamięci. W poprzednich wersjach pakietu powodowało to duże kłopoty - prowadziło nawet do zawieszenia kompilatora.

Ograniczona zgodność

BCB 5 zawiera wiele elementów, które pozwalają na współpracę z produktami Microsoftu. Przykładowo, dodano specjalne narzędzie, które konwertuje projekt Visual C++ 5.0/6.0 na projekt Buildera.

Należy jednak mieć na uwadze, że rozszerzenia C++ wprowadzone przez Borlanda nie są zgodne z rozszerzeniami Microsoftu. W praktyce oznacza to, iż pewna część kodu musi być przetłumaczona na postać zrozumiałą przez oprogramowanie Borlanda. Można wprawdzie włączyć opcję "zgodności z MFC", co eliminuje dużą część błędów, jednak nadal pozostaje sporo fragmentów kodu VC, których BCB nie kompiluje (np. większość fragmentów, gdzie VC nie wymaga użycia operatora const).

Bez większych trudności można korzystać z bibliotek (LIB czy DLL, a w niektórych przypadkach także z plików OBJ), tworzonych w VC, i podłączyć je do projektu w BCB (po konwersji na odpowiedni format). BCB 5.0 pozwala skorzystać z wielu specjalnych słów kluczowych, które np. dostosowują sposób wywoływania _fastcall do implementacji Microsoftu czy wręcz stosują ten sam schemat rozszerzania nazw, co kompilator VC++. Dzięki temu możliwa jest niemal bezproblemowa kompilacja większości przykładów dostosowanych do VC z SDK do Win32 Microsoftu.

Do BCB dodano wiele gotowych komponentów, pozwalających aplikacjom na łatwą współpracę z programami spośród zestawu biurowego pakietu Office. BCB 5 korzysta z obiektów COM, wykorzystujących "rzadkie" tablice funkcji wirtualnych, które często powstają w obiektach tworzonych przy użyciu Visual Basica.

Debugger

Znacznie rozbudowano debugger. Pozwala on na równoczesne śledzenie wielu wątków, można "dołączać się" do działających procesów. W podglądzie kodu w assemblerze programista może obejrzeć wszystkie rejestry procesora (włącznie z MMX i rejestrami koprocesora). Unikalną cechą jest możliwość grupowania pułapek. W ten sposób można jednym kliknięciem włączać czy blokować wiele pułapek w różnych modułach kodu. Jest to bardzo wygodne, zwłaszcza podczas pracy z dużą aplikacją.

Równocześnie programista ma do dyspozycji wygodne narzędzie do wyszukiwania "przecieków pamięci" - gdy aplikacja zarezerwuje, ale nie zwolni obszaru pamięci. CodeGuard wykrywa błędy wewnątrz aplikacji, w bibliotekach RTL Borlanda, a nawet błędne wywołania funkcji API.

Internet, XML, CORBA, MIDAS

Rozszerzono możliwości internetowe. Wprowadzono komponenty Internet- Express. Specjalny XML Broker umożliwia obsługę zhierarchizowanych informacji zapisanych w XML. Dodano narzędzia pozwalające na wykorzystanie danych w XML i np. dynamiczne tworzenie strony HTML, zawierającej dane w XML. MIDAS PageProducer ułatwia przekształcanie aplikacji internetowych tak, by korzystały z XML i HTML 4.

Mechanizmy obsługujące standard CORBA dostosowano do VisiBroker for C++ ORB w wersji 4.0.

Aplikacje z interfejsami w wielu językach

Interesującym narzędziem jest Translation Manager, pozwalający łatwo tworzyć aplikacje z interfejsami w różnych językach.

Translation Manager ma możliwość utworzenia centralnego repozytorium, pozwalającego zachować często stosowane komunikaty w różnych aplikacjach (repozytorium można zapisywać w XML). Narzędzie to może być bardzo przydatne. Jednak warto je stosować dopiero wtedy, gdy aplikacja jest już napisana i przetestowana - uaktualnianie bazy tekstów może sprawiać pewne kłopoty.

Borland C++ Builder 5.0 a inni

Borland C++ Builder w znacznym stopniu upodobnił się do Delphi. W rzeczywistości te dwa pakiety różni niemal wyłącznie język programowania - w Delphi jest nim Object Pascal, w BCB - rozszerzony C++. Interfejs, kontrolki, logika aplikacji są prawie takie same.

Jednak taka unifikacja ma cenę. Środowisko RAD BCB 5.0 jest wprawdzie bardzo wygodne, jednak odbywa się to kosztem wydajności kompilatora i powstałego kodu. Prędkość działania analogicznych aplikacji w BCB i Delphi 5.0 jest bardzo zbliżona. Kod wygenerowany w BCB jest wolniejszy niż ten, który powstaje np. po kompilacji Visual C++ 6.0.

Zdecydowanie dłużej trwa także kompilacja. Można mieć nadzieję, że w kolejnych wersjach to się zmieni, chociażby dlatego że w BCB 5.0 po raz pierwszy pojawiła się możliwość ustawiania opcji kompilatora dla poszczególnych plików składowych projektu (co bardzo ułatwia dostrojenie aplikacji), a także wprowadzono specjalną wersję funkcji matematycznych FastMath, które działają znacznie szybciej niż standardowe. Ich wadą jest to, że nie sprawdzają większoś-ci warunków brzegowych i nie obsługują błędów.

--------------------------------------------------------------------------------

Borland C++ Builder 5.0

Wersje: Standard, Professional (zawiera komponenty do obsługi baz danych) i Enterprise (dołączone wszystkie elementy przydatne w tworzeniu aplikacji rozproszonych)

Dystrybucja: BSC Polska, http//www.bsc.com.pl

Cena: 129-2750 USD

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200