Gardens Builder
Gardens Builder

Gardens Builder to implementacja modelu GAM w systemie operacyjnym MS Windows

W zależności od parametrów wywołania oraz uprawnień licencyjnych Gardens Builder może pełnić funkcje zintegrowanego środowiska developerskiego, aplikacji klienta (RunTime) lub serwera aplikacyjnego (GAS – Gardens Application Server). Gardens Builder również może pracować jako instancja serwera aplikacyjnego COM- jako GamConnector dostarcza bibliotekę typów umożliwiającą sterowanie z poziomu innych aplikacji.   

IDE – Zintegrowane Środowisko Rozwoju Gardens Builder zawiera między innymi takie udogodnienia jak:

  • (RAD) wizualny edytor okien i raportów
  • edytor pakietów i funkcji w języku QLX (kolorowana składnia, podpowiedzi „suflera” podczas pisania kodu)
  • debugger z możliwością śledzenia wykonywanego kodu
  • wsparcie dla wielojęzyczności aplikacji

printscreen4_male

 

 

 

 

 

 

 


Gardens Builder
zawiera własny język programowania czwartej generacji o nazwie QLX oraz wbudowany kompilator co umożliwia szybkie i łatwe modyfikowanie każdego obszaru aplikacji. Jądro QLX zawiera w sobie szereg podstawowych funkcji graficznych co umożliwia łatwą modyfikację GUI. Język programowania jest prosty i zoptymalizowany pod kątem czasochłonności budowania i modyfikowania logiki aplikacji. Konstrukcja kompilatora umożliwia natomiast bezpieczne dokonywanie zmian w czasie działania systemu co przyspiesza procesy implementacji i testowania aplikacji. 

System umożliwia pracę z wieloma bazami danych łącząc się z nimi bezpośrednio za pomocą interfejsów OLEDB. Możliwe jest także wykorzystywanie własnej plikowej bazy danych. Istnieją proste mechanizmy do tworzenia automatycznych importów i eksportów danych za pomocą plików tekstowych (XML, CSV, TAB, JSON). 

W jądrze Gardens zawarto mechanizmy podstawowych interfejsów COM+ do sterowania obiektami zewnętrznymi (możliwość komunikowania się z aplikacjami COM typu MS WORD, MS EXCEL). 

Możliwa jest także komunikacja między aplikacjami Gardens za pomocą sieci TCP/IP co umożliwia budowanie rozproszonych systemów wielowarstwowych lub systemów replikacji danych. 

Budowa

Gardens Builder został napisany wyłącznie z wykorzystaniem STL C++. W obszarze GUI zbudowano specjalizowane klasy bezpośrednio za pomocą API systemu WIN32. Do komunikacji z bazami danych wykorzystano bezpośrednio niskopoziomowe interfejsy OLEDB. Napisano również własną plikową bazę danych. W jądrze QLX zawarto natomiast mechanizmy podstawowych interfejsów COM+ do sterowania obiektami zewnętrznymi, własny protokół i możliwości komunikacji TCP/IP, własne algorytmy kompresji i kodowania danych oraz parser XML bezpośrednio do struktur Data Schema. Nowa wersja jądra systemu zawiera również transformację warstwy prezentacyjnej do języka XAML. 

Całość została napisana w języku C++. Źródło jest wysoce zoptymalizowane zajmuje ok. 33000 linii kodu zaś wynikowy program to zaledwie 1,6 Mb. 

Kompilator QLX

Zbudowany kompilator jest wynalazkiem autorskim. Jego działanie polega na parsowaniu, w momencie ładowania, obiektów źródła tekstowego do pamięci o bardzo złożonej strukturze hierarchicznej bazującej na wartościowaniu przez binarne drzewo adresów (drzewo wywołań). W czasie wykonania, tworzone są wyłącznie stosy obiektów oraz wykonywana jest wędrówka po adresach wraz z elementarnymi kalkulacjami. Zapewnia to dobrą wydajność operacji bazowych języka (lepszą od innych języków 4GL) .

Taka konstrukcja umożliwia również ekstrema typu kompilacja jednej z funkcji pakietu w czasie działania aplikacji i przy współdziałania innych funkcji. 

Repozytorium – ogród

Wszystkie elementy repozytorium aplikacji (ogrodu) przechowywane są w bazie danych. Na repozytorium składa się zestaw systemowych tabel zgodnie z filozofią Gardens, powiązanych ze sobą w hierarchiczne struktury Data Schema. Ogród składa się z:

  • Data Schema Trees – kolekcja drzew definiujących schemat danych aplikacji,
  • Custom Types – kolekcja własnych, definiowalnych typów danych,
  • Connections – kolekcja połączeń,
  • Object Tree – kolekcja obiektów aplikacji (Pakiety, Okna, Raporty, Panele, Auto-Widoki)
  • Resources List – lista zasobów graficznych (ikony, obrazy, pliki EMF),
  • Projects – lista projektów – grupowanie obiektów ogrodu dla lepszego zarządzania zmianami aplikacji,
  • ML – słowniki wielojęzyczne.

Dodatkowo istnieją rozbudowywane elementy związane z nadawaniem wersji ogrodu i budowaniem dokumentacji.

GamConnector

Serwer automatyzacji COM udostępnia interfejsy do sterowania zewnętrznego systemem GERP. Do najciekawszych należy interfejs WinGam udostępniający nową technologię budowania cienkich klientów na rozmaitych platformach takich jak Java, JS, WPF, UWP, za pośrednictwem technologii JSON, XAML, XML.

XML .NET Transformer

Gardens Aplication Model Builder może pracować jako serwer aplikacyjny udostępniający GUI klienta na stronach www. Dzieje się tak dzięki komponentowi GAM Buildera o nazwie XML .NET Transformer, który udostępnia wygląd okien w postaci XML. Z tej postaci strona B2B dokonuje transformacji do ASP.NET Web Form. Logika aplikacji przetwarzana jest przez serwer GAM.

Transformacja okien do XML jest również wykorzystywana w rozwiązaniu mobilnym.

Projektowanie aplikacji 

Wysoce zoptymalizowany kod języka QLX posiada możliwości autokreacji. Pozwala to budować wysokopoziomowe narzędzia do projektowania automatycznej generacji ogrodu – aplikacji wynikowej (CASE). 

Gardens umożliwia stworzenie dowolnej aplikacji w bardzo krótkim czasie. Umożliwia też budowę narzędzi do jeszcze większego zoptymalizowania procesu budowy aplikacji. Istnieje zatem możliwość budowania ogrodu, który „projektuje i generuje inne ogrody”.

projektowanie_aplikacji