Narzędzia RAD (Wykład 1)
Total Page:16
File Type:pdf, Size:1020Kb
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 Borland Turbo Pascal i Borland C (aplikacje konsolowe DOS, biblioteka okienek Turbo Vision) Borland C++ for Windows (aplikacje 16-bitowe dla Win 3.x, biblioteka OWL – Object Windows Library) 2 Rys historyczny (2) 1995: Windows 95 – 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 Delphi: obiektowa odmiana języka Pascal (Object Pascal), biblioteka komponentów VCL (Visual Component Library) napisana również w Object Pascal, do roku 2002 powstało 7 wersji Delphi dla Win32 API Borland C++Builder: C++, VCL, 6 wersji Microsoft Visual Studio: C++, biblioteka MFC (Microsoft Foundation Classes), 7 wersji 4 Rys historyczny (4) 1995-1998: Sun Java 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 Eclipse, Borland JBuilder biblioteki komponentów wizualnych AWT i Swing 5 Rys historyczny (5) 1997-2001: silny rozwój środowiska XWidows – GUI dla systemu Linux, nakładki KDE, Gnome i inne KDevelop: biblioteka Qt (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 – Mono, 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) – Windows Forms, 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 (event 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, D. 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.