Narzędzia RAD (wykład 1)

Piotr Cybula

Uniwersytet Łódzki, Wydział Matematyki [email protected] http://www.math.uni.lodz.pl/~cybula Rys historyczny (1)

 lata 80-te i początek 90-tych:  środowiska programistyczne IDE (Integrated Development Environment)  integracja edytora kodu, funkcji programistycznych (kompilacja, łączenie, śledzenie) i zarządzania projektem w jednym narzędziu  biblioteki wspomagające dostęp do funkcji systemu  i Borland (aplikacje konsolowe DOS, biblioteka okienek )  Borland C++ for Windows (aplikacje 16-bitowe dla Win 3.x, biblioteka OWL – Object Windows Library)

2 Rys historyczny (2)

 1995:  – 32-bitowy system operacyjny z bogatym interfejsem GUI (Graphic User Interface)  skomplikowane API (Application Programming Interface) – funkcje systemowe napisane w C, czyli proceduralnie  narzędzia RAD (Rapid Application Development) – rozszerzenie IDE  programowanie wizualne (WYSIWYG), komponentowe i zdarzeniowe  rozbudowane obiektowe biblioteki komponentów umożliwiające szybkie tworzenie aplikacji: formularze, raporty, dostęp do baz danych, komunikacja sieciowa i

in. 3 Rys historyczny (3)

 1995 (cd):  Borland : obiektowa odmiana języka Pascal (), biblioteka komponentów VCL () napisana również w Object Pascal, do roku 2002 powstało 7 wersji Delphi dla Win32 API  Borland C++Builder: C++, VCL, 6 wersji  : C++, biblioteka MFC (Microsoft Foundation Classes), 7 wersji

4 Rys historyczny (4)

 1995-1998:  Sun i Java 2 Platform  wirtualna maszyna Javy (JVM) uruchamiająca binarny kod pośredni (bytecode) – przenośność kodu binarnego  jeden język – wiele systemów operacyjnych i architektur sprzętowych (wieloplatformowość)  narzędzia RAD: Sun NetBeans, IBM Visual Age for Java, IBM , Borland JBuilder  biblioteki komponentów wizualnych AWT i

5 Rys historyczny (5)

 1997-2001:  silny rozwój środowiska XWidows – GUI dla systemu , nakładki KDE, Gnome i inne  KDevelop: biblioteka (wieloplatformowa: Windows, Linux, Solaris i inne), C++, KDE  Glade: biblioteka GTK+ (również dla Windows), C++, bezpłatna licencja GNU, Gnome  Borland Kylix: razem z wersją 6 produktów Delphi i C++Builder, międzyplatformowa biblioteka CLX (Component Library for Cross Platform), przenośność kodu źródłowego między platformami Windows i Linux, Object Pascal i C++ (od wersji 3)

6 Rys historyczny (6)

 2000-2005:  Microsoft.NET Framework  wieloplatformowość konkurencyjna do Java 2  wiele języków – jedna platforma systemowa niezależna od architektury sprzętowej (dostępna również dla systemu Linux – , 2004)  kompilacja programów napisanych w językach C#, VB.NET, ASP.NET, C++.NET, J# do kodu pośredniego MSIL (Microsoft Intermediate Language) tłumaczonego w locie (just-in-time) przez CLR (Common Langauage Runtime) do kodu właściwego dla systemu operacyjnego – przenośność kodu binarnego

 aplikacja może być pisana w kilku językach 7 Rys historyczny (7)

 2000-2005 (cd):  Microsoft Visual Studio .NET (2003, 2005): biblioteka FCL (Framework Class Library) – , wszystkie w.w. języki  Borland Delphi 8: zupełnie nowe środowisko w stosunku do wersji 7, umożliwia tworzenie aplikacji wyłącznie na platformę .NET, biblioteka VCL.NET lub Windows Forms, nowy język Delphi.NET kompilowany do CIL  Borland Developer Studio (Delphi 2005): następca Delphi 8, wsparcie dla języków C#, VB.NET i ASP.NET, jednocześnie umożliwienie kompilacji do Win32

8 Programowanie wizualne (1)

 programowanie (a właściwie projektowanie) kolejnych formularzy i raportów aplikacji metodą umieszczania na pustych formach wymaganych elementów (komponentów)  komponenty wizualne (z interfejsem GUI) umieszczone na formie metodą drag & drop po skompilowaniu aplikacji wyglądają identycznie (WYSIWYG)  zmiana niektórych własności komponentów (np. wielkość, położenie, kolor) oraz ich wzajemnego rozmieszczenia realizowana bez pisania kodu  powiązania komponentów też mogą być realizowane wizualnie – wykorzystanie diagramów klas i encji (dla aplikacji bazodanowych), często bazujące na wcześniej zaprojektowanym modelu UML (Unified Model Language) 9 Programowanie wizualne (2)

 zmiany dokonywane wizualnie automatycznie są zamieniane na odpowiedni kod – CASE (Computer Aided Software Engineering), często w kilku plikach jednocześnie, np. w specyfikacji klasy dodawana jest deklaracja metody, natomiast w ciele szablon definicji  cechy obiektów (własności, metody i zdarzenia) dostępne za pomocą wygodnych tabelarycznych lub drzewiastych struktur oraz podpowiadane podczas tworzenia kodu (code completion)  konfiguracja wartości złożonych i powiązań wspierana za pomocą licznych kreatorów (wizards)  składowe projektu zarządzane za pomocą łatwo konfigurowalnych struktur hierarchicznych 10 Programowanie komponentowe

 składanie aplikacji „z klocków” - komponentów (kontrolek) dostępnych wraz z środowiskiem lub doinstalowywanych lub pisanych na bieżąco – szybkie tworzenie aplikacji (RAD)  programista oprogramowuje interakcję pomiędzy komponentami (glue)  hermetyzacja i wielokrotne użycie – cechy obiektowości  podział komponentów na:  wizualne – ich umieszczanie na formularzu wpływa na jego wizualną postać  niewizualne – nie wpływają na wygląd formularza, umieszczane na formularzu (w kontenerze) w postaci specjalnych ikon-symboli, np. komponenty bazodanowe,

sieciowe i systemowe 11 Programowanie zdarzeniowe

 zgodne z architekturą obecnych systemów operacyjnych z bogatym GUI – użytkownik lub inna aplikacja (również zdalna) generuje zdarzenie, które system przekazuje do odpowiedniej aplikacji  aplikacja może (nie musi) dokonać obsługi zdarzenia  komponenty mają wyspecyfikowane określone, właściwe dla nich zdarzenia, dla których programista może zrealizować funkcje obsługi ( handler)  funkcje obsługi zdarzeń mogą dynamicznie generować nowe komponenty lub zdarzenia  jeżeli kilka zdarzeń ma być obsługiwanych identycznie, nie jest konieczne pisanie osobnych funkcji – możliwość wizualnego wyboru odpowiedniej funkcji obsługi 12 Wspierane technologie

 formularze i raporty - komponenty wizualne realizujące GUI  relacyjne i obiektowo-relacyjne bazy danych SQL – dostęp przez ODBC, JDBC, OLE DB (ADO), ADO.NET, dbExpress, BDE lub rozwiązania dedykowane, np. OCI  programowanie client-server – protokoły sieciowe TCP, UDP, HTTP, SMTP i in.  aplikacje wielowarstwowe – OLE/COM, ISAPI, EJB, JavaServlet  aplikacje Web – ASP, JSP, XML  przetwarzanie rozproszone – DCOM, CORBA, RMI, WebServices (protokoły WSDL, SOAP i UDDI oparte na XML)

13 Literatura

 K. Reisdorph, C++Builder 3 (i dalsze), Helion 1998  J. Hollingworth, B. Swart, et al., C++Builder 6. Vademecum profesjonalisty, Helion 2003  X. Pacheco, S. Teixeira, Delphi 6. Vademecum profesjonalisty, Helion 2002  X. Pacheco, Delphi dla .NET. Vademecum profesjonalisty, Helion 2005  M. Landy, et al., JBuilder. Vademecum profesjonalisty, Helion 2004  J. Templeman, . Vitter, Visual Studio .NET: .NET Framework. Czarna księga, Helion 2003  Dr.Bob's Programming Clinic, http://www.drbob42.com

 Delphi Super Page, http://dephi.icm.edu.pl 14