Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

4GL.NET Problematyka migracji i integracji z Visual Studio.NET Krzysztof Kuśnierz Supra sp. z o.o.

Podobne prezentacje


Prezentacja na temat: "4GL.NET Problematyka migracji i integracji z Visual Studio.NET Krzysztof Kuśnierz Supra sp. z o.o."— Zapis prezentacji:

1 4GL.NET Problematyka migracji i integracji z Visual Studio.NET Krzysztof Kuśnierz Supra sp. z o.o.

2 O nas Historia UNIX Informix (obecnie IBM) Obecnie migrujemy do technologii Microsoft (SQL i.NET) Produkty System ERP ASIMS+ 4GL Migracje istniejących systemów napisanych w 4GL

3 Plan Co to jest 4GL Migracja bazy danych Migracja bibliotek runtime i terminala Integracja z Visual Studio.NET

4 Co to jest Supra-4GL Prosty język zbliżony do naturalnego angielskiego Proceduralny Zorientowany na obsługę baz danych Można go podzielić na cztery części Sterowanie przepływem programu SQL Obsługa interakcji z użytkownikiem Raportowanie

5 Prosty program w 4GL DATABASE sample MAIN DEFINE r RECORD LIKE person.* DECLARE cx SCROLL CURSOR FOR SELECT * FROM person FOREACH cx INTO r.* DISPLAY r.first_name, r.last_name END FOREACH SELECT * INTO r.* FROM person WHERE nr=10 END MAIN Definicja zmiennej Deklaracja kursora Pobieranie/przetwarzanie danych

6 Problem: jak napisać aplikację niezależną od bazy danych Wybór API (czyli język programowania) Uwzględnienie różnic funkcjonalnych różnych baz danych Typy danych (np. SERIAL, DATE) Składnia SQL (DDL i DML) (OUTER JOIN, tablice tymczasowe) Funkcje wbudowane Przetwarzanie transakcyjne Inne

7 Nasze rozwiązanie Stale rozszerzany dialekt SQL opracowany na podstawie SQL/Informix Pośrednik dedykowany dla bazy danych Niwelowanie różnic składniowych Niwelowanie różnic funkcjonalnychAplikacje Bazy Danych Pośrednik(MDC)

8 Rozwiązania dla MS-SQL cz. I O pośredniku: jest serwisem systemowym Dedykowany dla SQL Server 2000 API: OdBC Język Polish_CS_AS, ANSI_NULL Kursory W 4GLu: read-only, forwad-only Scroll For update Insert cursors Ostrożnie z kursorami w OdBC! Kursory serwerowe są zasobożerne

9 Typy danych W MS-SQLu nie ma typów: SERIAL, DATE, DATETIME (inna funkcjonalność) i INTERVAL Pseudokolumna ROWID Struktura SQLCA zawiera między innymi wartości pola typu SERIAL i ROWID, jeżeli ostatnio wykonaną instrukcją był INSERT Rozwiązania dla MS-SQL cz. II CREATE TABLE sample ( c1 SERIAL, c2 DATETIME YEAR TO FRACTION(3), c2 DATETIME YEAR TO FRACTION(3), c3 INTERVAL HOUR TO MINUTE ) c3 INTERVAL HOUR TO MINUTE )

10 Rozwiązania dla MS-SQL cz. III Tablice tymczasowe Nazewnictwo obiektów Substringi SELECT f.a[10,13] FROM f INTO TEMP ttable SELECT substring(f.a,10, ) INTO #ttable FROM server.database..table f Przykłady funkcji: WEEKDAY tłumaczona na DATEPART LOGN tłumaczony na LOG POW tłumaczony na POWER Operatory Katenacja stringów (|| tłumaczony na +) MOD tłumaczony na % MATCHES tłumaczony na LIKE

11 Rozwiązania dla MS-SQL cz. IV SELECT f.*,g.* FROM T1, OUTER T2 WHERE T1.pole1=T2.pole1 AND T2.poleX MATCHES A* Transakcje Poziomy izolacji LOCK TABLE SELECT... OUTER JOIN SELECT f.*,g.* FROM T1 LEFT OUTER JOIN T2 ON T1.pole1=T2.pole1 AND T2.poleX LIKE A% DELETE FROM T1 WITH (TABLOCK/TABLOCKX,HOLDLOCK) WHERE 0=1

12 Rozwiązania dla MS-SQL cz. V Podsumowanie: przydatne mechanizmy Tablice/Widoki systemowe Triggery Zewnętrzne procedury składowane i ODS Typy danych użytkownika Funkcje definiowane przez użytkownika Kolumny Identity Triggery O wydajności Wydajność naszego rozwiązania Wydajność MS-SQLa

13 Migracja bibliotek runtime i terminali Biblioteki runtime Terminal – znakowy Terminal – graficzny

14 Migracja bibliotek runtime Biblioteki runtime napisane w C/C++ Jak to robić Stworzyć projekt - bibliotekę/biblioteki klas (Class Library.NET) Włączyć istniejące źródła Dodać bibliotekę msvcrt.lib W przypadku kodu C musimy dodać klasy, których metody wywołują funkcje w C Tak przygotowaną bibliotekę można użyć w C# na zasadach ogólnych

15 Migracja terminala tekstowego Biblioteka pdcurses

16 Terminal graficzny – koncepcja Terminal Graficzny TSDTSD AplikacjaAplikacja Serwer

17 Przykład terminala graficznego

18 Nowy terminal C# Napisany w C# Zachowana architektura Zachowany protokół komunikacyjny Wykorzystano możliwość łatwej integracji z C/C++

19 Porównanie Java z C# SWING vs. Windows Forms Model View Listener vs. Event handler Zwalnianie zasobów systemowych Integracja z C/C++ JNI vs. (safe/unsafe mode) Garbage Collector Różnice w wywoływaniu konstruktorów dziedziczonych

20 Integracja z VS.NET - VSIP Mechanizmy rozszerzania VS Macro Add-In Pakiety VSIP VSIP – Visual Studio Integration Program Tworzenie nowego typu projektu Tworzenie edytora dla nowego języka Tworzenie projektanta Włączenie kompilatora od procesu kompilacji i konsolidacji projektu Tworzenie debuggera

21 Technologia Integracji Architektura Visual Studio Powłoka Visual Studio (shell) Pakiety (komponenty COM) Pakiety VSIP są buduje się tak samo jak pakiety dostarczane z Visual Studio Dostarczane jest wiele pakietów przykładowych, z których większość można wykorzystać jako podstawę własnych rozwiązań Serwisy językowe (BABEL) Projekty (HierUtil7)

22 BABEL (Language Service) Co można uzyskać Podświetlanie składni (wybrany zestaw kolorów) Sprawdzanie poprawności składni Dopełnienie słów kluczowych, instrukcji i nazw funkcji Sprawdzanie nawiasów Szybkie podpowiedzi Komentarze Jak to zrobić (BABEL SDK) Korzysta się przygotowanego szablonu Definicja symboli (atomów) leksykalnych (LEX) Definicja gramatyki języka (YACC)

23 A tak to wygląda

24 Integracja 4GLa z C# 4GL: NAMESPACE osoby CLASS pracownik DATABASE osoby FUNCTION imienazwisko( numer ) DEFINE numer INTEGER DEFINE numer INTEGER DEFINE imie LIKE osoby.imie, DEFINE imie LIKE osoby.imie, nazwisko LIKE osoby.nazwisko nazwisko LIKE osoby.nazwisko SELECT f.imie, f.nazwisko INTO imie, nazwisko SELECT f.imie, f.nazwisko INTO imie, nazwisko FROM osoby f WHERE f.id=numer FROM osoby f WHERE f.id=numer RETURN imie, nazwisko RETURN imie, nazwisko END FUNCTION C#: Osoby.pracownik.imienazwisko( numer, ref imie, ref nazwisko )

25 Podsumowanie: Co mamy z 4GL.NET Migracja naszego systemu ERP (ASIMS+) do Microsoft Windows Migrację aplikacji UNIX do technologii.NET Nowy język programowania dla platformy.NET

26 Bibliografia Inside Microsoft SQL Server 2000 Migrating Informix Databases to Microsoft SQL Server 2000 (Microsoft) UNIX Application Migration Guide (Microsoft) Inside Microsoft.NET IL ASSEMBLER (Serge Lidin) Programming Microsoft.NET (Jeff Prosise) Mastering Visual Studio.NET (Jon Flanders, Ian Griffiths & Chris Sells (OReilly)) Whitepaper – Babel: Langugane Integration into Visual Studio.NET Dokumentacja MSDN


Pobierz ppt "4GL.NET Problematyka migracji i integracji z Visual Studio.NET Krzysztof Kuśnierz Supra sp. z o.o."

Podobne prezentacje


Reklamy Google