Visual Basic na Javie

Instant Converter to narzędzie firmy Halcyon Software przydatne w przenoszeniu projektu z Visual Basic na kod źródłowy w języku Java.

Instant Converter to narzędzie firmy Halcyon Software przydatne w przenoszeniu projektu z Visual Basic na kod źródłowy w języku Java.

Głównym przeznaczeniem pakietu Instant Converter (IC) jest ułatwienie migracji aplikacji klient/serwer napisanych w VB do Javy tak, by można z nich korzystać w środowisku heterogenicznym. Firmie Halcyon Software udało się stworzyć narzędzie, które pozwala na przenoszenie wszystkich elementów związanych z interfejsem użytkownika. Pozostałe elementy aplikacji, niestety, trzeba przenosić ręcznie.

Własne środowisko

W skład pakietu wchodzą dwa moduły. Pierwszy służy do tłumaczenia programu z Visual Basic (VB) do środowiska Instant Converter. Drugim jest napisane w Javie środowisko dla programisty, przypominające IDE Visual Basica. Pozwala ono modyfikować importowany program , a nawet pisać aplikacje w języku Visual Basic.

Zadaniem pakietu jest konwersja wszystkich elementów związanych z interfejsem użytkownika, układem formularzy, kontrolek i ich właściwości. Instant Converter importuje tylko formularze i standardowe moduły kodu, nie przenosi klas czy kontrolek użytkownika.

Na podstawie kodu VB powstaje zbiór klas w Javie, które po skompilowaniu tworzą aplikacje (lub aplet), wyglądające podobnie do uruchomionej aplikacji VB.

Większość kontrolek standardowych Visual Basic zrealizowano jako komponenty JavaBeans. Przeniesiono nawet takie kontrolki, jak DriveListBox, Slider, MaskEdit (do wprowadzania danych o określonym formacie) czy Grid i Data (pozwalające na dostęp do bazy danych). Komponenty JavaBeans mają zaimplementowane wszystkie właściwości, jakie występują w odpowiednich kontrolkach w VB.

Instant Basic pozwala na dostęp do bazy danych za pośrednictwem kontrolki Data, przy użyciu interfejsu DAO, lub opracowanego w Javie odpowiednika RDO (Remote Data Object). W przypadku RDO nie ma pełnej zgodności z VB, jednak bez kłopotu można zmodyfikować program tak, by funkcje realizowane w VB były wykonywane także po konwersji do Javy. Do Instant Converter nie został przeniesiony interfejs ADO.

Problem pojawia się w momencie, gdy w projekcie korzysta się z wyspecjalizowanej, niestandardowej kontrolki ActiveX, która nie została zaimplementowana w Instant Converter.

Aby móc importować taki projekt, należy wykorzystać IDE Instant Con-verter. Do tego środowiska można dołączać dowolne kontrolki JavaBeans, które np. będą miały te same właściwości czy metody, co brakująca kontrolka stosowana w importowanym projekcie. Może być to tylko szkielet komponentu JavaBeans. Dzięki temu można szybko przenieść projekt do Javy, a potem poprawiać go w tym środowisku.

Kod tworzony przez Instant Converter nie przypomina kodu generowanego przez wiele innych translatorów, który zwykle jest mało czytelny i w zasadzie nie pozwala na dalszą rozbudowę. IC tworzy czytelne pliki, o czytelnej strukturze, które bez problemu można przenieść do programów tworzonych w Javie przy użyciu Oracle JDeveloper czy Symantec Visual Cafe.

Część ręczna

Niestety, oprócz interfejsu użytkownika i podstawowej obsługi zdarzeń, IC nie umożliwia w 100% przeniesienia funkcjonalności aplikacji w VB. Po pierwsze, nie są importowane klasy z VB, a co za tym idzie, jeżeli np. grupa formatek implementuje wspólny interfejs, to po konwersji ta informacja zaniknie. Po drugie, nie jest przenoszony kod obsługi błędów. Wszystkie polecenia typu On Error czy Resume są pomijane i oznaczane w wyjściowym kodzie w Javie.

Język Basic odpowiada językowi zaimplementowanemu w Visual Basic 5.0 (przeniesiono wszystkie typy zmiennych, w tym także Variant i Object).

Kod Javy tworzony przez Instant Converter w zasadzie może działać na każdej platformie, jednak pewne jego fragmenty są przekładane w taki sposób, by były uruchamiane tylko na Windows. Jest to naturalne, jeżeli kod w VB odwołuje się do mechanizmów automatyzacji Worda. Jednakże IC także czasami niepoprawnie interpretuje polecenie dynamicznego tworzenia obiektu np. CreateObject. W przypadku dynamicznie tworzonej kontrolki siatki, która została przeniesiona do JavaBeans, zdarza się, że po konwersji do Javy powstanie obiekt ActiveX. Czasami jest to trudne do wykrycia, jednak w tych sytuacjach przydatny jest IDE wbudowany w IC.

Pakiet nie ma mechanizmu, który pozwoliłby uaktualnić przeniesiony projekt, gdy pierwowzór w VB zostanie trochę zmieniony. Twórcy konwertera założyli, że translacja będzie wykonana tylko raz.

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

Instant Converter

Producent: Halcyon Software,http://www.halcyonsoft.com

Cena: 995 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