Świat otwartych obiektów
- 07.02.2005
Krakowska firma Soneta opracowała dla platformy .Net bibliotekę funkcji biznesowych, którą wraz ze zbudowanym na jej bazie systemem enova udostępnia partnerom tworzącym nowe moduły.
Krakowska firma Soneta opracowała dla platformy .Net bibliotekę funkcji biznesowych, którą wraz ze zbudowanym na jej bazie systemem enova udostępnia partnerom tworzącym nowe moduły.
Krakowska firma Soneta, jak większość producentów oprogramowania dla firm, stanęła kilka lat temu przed dylematem wyboru długofalowej strategii technologicznej. Po kilku przymiarkach firma zdecydowała się stworzyć własne narzędzia do budowy aplikacji. Opracowana przez nią biblioteka funkcji biznesowych jest koncepcyjnie podobna do ADO .Net i wykorzystuje platformę .Net Microsoftu jako fundament.
Biblioteka posłużyła firmie do stworzenia systemu enova wspomagającego zarządzanie firmą. Nie tylko małą czy średnią - system wdraża właśnie Huta Szczecin SA. Zaskakująca jest przy tym otwartość Sonety na współpracę z innymi producentami oprogramowania. Wspomniane wdrożenie jest realizowane wspólnie z firmą Overtura.cz - producentem systemu obsługi produkcji.
Wraz z systemem enova biblioteka Soneta jest także udostępniana partnerom, którzy dzięki niej mogą łatwo i tanio rozbudowywać system enova o własne specjalizowane moduły.
Ta niecodzienna jak na polski rynek oprogramowania biznesowego strategia okazała się dla firmy zbawienna. Soneta ma ok. 60 partnerów w całym kraju i cieszy się wsparciem Microsoftu.
Lekarstwo własnej roboty
Dylemat Sonety polegał na tym, jak tworzyć innowacyjne oprogramowanie szybko i niedrogo. Narzędzia oparte na C/C++ dawały elastyczność, jednak trudno było mówić o wygodzie czy szybkości. Z kolei języki wysokiego poziomu nie dawały zaś zbyt wiele swobody przy tworzeniu skomplikowanej logiki.
Marcin wojas, współzałożyciel firmy Soneta, a jednocześnie główny architekt biblioteki Soneta i systemu enova
Jednym z etapów dochodzenia do stworzenia własnej technologii był stworzony przez Microsoft w latach 90. pakiet J++ łączący wygodę języka Java z integracją z platformą Windows. "J++ było atrakcyjną propozycją. Można było tworzyć zarządzany kod logiki w Javie, a jednocześnie mieć «windowsowe» okienka. Na dodatek całość była wydajna, czego o Javie nawet teraz nie można do końca powiedzieć. No, ale Microsoft wdał się w spór z Sunem i J++ zostało zarzucone. Na szczęście w tym czasie pojawił się .Net" - opowiada perypetie firmy Marcin Wojas.
Tak zrodził się pomysł, by na bazie architektury .Net - oferującej wiele możliwości analogicznych do tych, które oferuje platforma Java - stworzyć własny świat obiektów biznesowych. Takich, które będzie można w przyszłości łatwo wykorzystać, i których listę będzie można w miarę potrzeb rozszerzać o nowe.
Microsoft i nie tylko
Wzorcem dla programistów Sonety była technologia Microsoft ADO .Net. Przykładowo, obiekt connection obrazuje sesję, obiekt table to tabela będąca zbiorem obiektów biznesowych, zaś row, czyli rekord to pojedynczy obiekt biznesowy. Soneta "dziedziczy" też po ADO .Net podejście do transakcyjności - transakcyjny jest jedynie zapis danych w bazie. "Dzięki temu prostemu zabiegowi udało nam się upiec dwie pieczenie na jednym ogniu: zadowalającą wydajność nawet na słabym sprzęcie, a jednocześnie dużą skalowalność środowiska aplikacyjnego" - wyjaśnia Marcin Wojas.
System Enova zbudowany na bazie biblioteki Soneta pozwala partnerom i klientom na łatwe tworzenie własnej funkcjonalności.
Oprócz struktur danych dostarczany wraz z Sonetą generator tworzy klasy .Net odwołujące się do tych struktur i wymuszające typy danych, w efekcie czego kod jest znacznie bezpieczniejszy.
Sprytne dokumenty
Interesująca jest warstwa prezentacji systemu Soneta/enova, opierająca się na technologii Microsoft Smart Documents (SmartDocs). Główne okno systemu, jak również znajdująca się po prawej stronie ekranu ramka enova Explorer są tak naprawdę zbiorem list będących obiektami biznesowymi .Net. "Microsoft okazał się bardzo pomocny - ich konsultanci pomogli nam opracować interfejs do obsługi SmartDocs. Trzeba spędzić nieco czasu, zanim zrozumie się zasady działania interfejsów API Microsoft Office - odpowiadają za nie te same biblioteki, które zarządzają obiektami SmartTags. Gdy przebrnie się przez ten najtrudniejszy etap, wszystko idzie jak z płatka" - twierdzi Marcin Wojas. Definiowanie interfejsu użytkownika dla nowych modułów trzeba na razie dokonywać w Visual Studio .Net. Soneta pracuje już jednak nad tym, aby użytkownicy mogli definiować ekrany bez tak zaawansowanego narzędzia.
Wygodnie rozwiązano kwestię wydruków - oprogramowanie generuje formularze zgodne z ADO .Net. Przygotowanie dokumentów do druku odbywa się za pośrednictwem biblioteki Print Template zawartej w przeglądarce Internet Explorer, dzięki czemu unika się problemów z błędami interpretacji HTML (generowanego za pomocą innych narzędzi) w IE. Dzięki zastosowaniu takiej techniki wydruki można od razu publikować w intranecie/Internecie.