Narzędzia RAD (wykład 1)

Transkrypt

Narzędzia RAD (wykład 1)
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-2008:
 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-2008 (cd):
 Microsoft Visual Studio .NET (2003, 2005, 2008):
biblioteka FCL (Framework Class Library) – Windows
Forms, wszystkie w.w. języki
 Borland Delphi 8: 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, 2006,
C++/C#Builder 2006, Turbo Delphi/C++/C#): następca
Delphi 8, wsparcie dla języków C++, C#, VB.NET i
ASP.NET, jednocześnie umożliwienie kompilacji do Win32
 CodeGear RAD Studio 2007: rozwój linii narzędzi firmy
Borland (Delphi for Win32/.NET/PHP, C++/J Builder) 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
14
Delphi Super Page, http://dephi.icm.edu.pl

Podobne dokumenty