Zasady współpracy

Dowiedz się jak wygląda współpraca z Gardens Software

więcej...

Kluczowe korzyści

Zobacz jakie korzyści możesz uzyskać dla swojej firmy

więcej...

Nasi Partnerzy

Poznaj naszych Partnerów, dzięki którym Klienci osiągają swoje cele

więcej...

 

Gardens Builder

Garden 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).

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 (kolorowana składnia, podpowiedzi "suflera" podczas pisania kodu)
  • debugger z możliwością śledzenia wykonywanego kodu
  • wsparcie dla wielojęzyczności aplikacji

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). 

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. 

Całość została napisana w języku C++. Źródło jest wysoce zoptymalizowane zajmuje ok. 9000 linii kodu zaś wynikowy program to zaledwie 950KB. 

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. 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 ogrodu

Wszystkie elementy ogrodu przechowywane są w bazie danych lub w plikach. Na repozytorium ogrodu 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,
  • 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.

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”.