Grzegorz Fałda grzegorzfalda@gmail.com 602-44-59-81 03.06.2014 Narzędzia Rapid Application Development (RAD) dla bazodanowych aplikacji www czyli: co.

Slides:



Advertisements
Podobne prezentacje
One Framework to rule them all
Advertisements

20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Tematyka kursu z informatyki dzień 3
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Prototypowanie oprogramowania l Błyskawiczne tworzenie oprogramowania służące.
FIT Środowisko Testów Integracyjnych
Platforma .Net i Vs.Net.
PHP vs. ASP PHP – lider wydajności wśród języków skryptowych.
ASP.NET i platforma.NET Technologie internetowe ( ) Tomasz Popów
Systemy zarządzania treścią CMS
Paweł Fałat Katedra Informatyki Stosowanej
Projekt i implementacja aplikacji do zasilania bazy danych testowymi danymi Jacek Lis Promotor: prof. dr hab. inż. Włodzimierz KASPRZAK.
REPOZYTORIA 1. Co to są repozytoria?
Wykład 2 Cykl życia systemu informacyjnego
SZPIF – Harmonogram, Opis narzędzi, Schemat bazy danych
System katalogowania i zarządzania sprzętem na uczelni
Przemek Lewicki Piotr Linka Bartek Stasikowski
Promotor: dr.inż. Aleksandra Werner
Twoje narzędzie do pracy grupowej
.NET gdzie szukać? .NET co warto wiedzieć?
Rozwój aplikacji przy wykorzystaniu ASP.NET
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
P ISZ MNIEJ, RÓB WIĘCEJ - ZASTOSOWANIE J Q UERY Kamil Szumański s4126.
Opracował : Przemysław Drzymała
Technologie tworzenia aplikacji internetowych Wykład 3
Lokalne serwery www Serwer WWW - ang. Web server jest to oprogramowanie zainstalowane na serwerze podłączonym do sieci Internet. Używające technologii.
Tworzenie strony internetowej krok po kroku.
Systemy zarządzania treścią Content Management System
Bazy danych.
Witold Bołt. Agenda W czym tkwi problem..? Po co jest oprogramowanie? Kim jest użytkownik? Zbieranie danych Co to jest design Współpraca programista-projektant.
Przygotował: Paweł Ziaja
Mechanizm OLE ang. Object Linking and Embedding źródła:
Serwery aplikacji Zope Tomcat. Składniki Zopea: Serwer Management interface Databases.
Temat 2: Edytory HTML.
Tworzenie stron internetowych www World Wide Web
Systemy zarządzania treścią Wykład 5
SPECJALNOŚĆ: Oprogramowanie Systemowe
Michał Gmerek, Krzysztof Słodowicz
W ramach projektu edukacyjnego pt. „Kalejdoskop zawodów” pracę wykonał Dominik Grelak kl. 2 A Olecko, maj 2014.
W W W Łukasz Stochniał.
Seminarium Dyplomowe Jacek Fohs.
Przeglądarki Wszelkie prawa zastrzeżone! Google Chrome – przeglądarka internetowa tworzona przez Google. Jej kod został napisany w oparciu o rozwiązania.
Visual Basic w Excelu - podstawy
Temat 1: Ogólne cechy języka PHP
Technologie programowania systemów internetowych
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
1 Analiza możliwości języka C# w aspekcie oprogramowania dla myszy Łukasz Łysyganicz Nr indeksu Praca napisana pod kierunkiem: Prof. nzw. Dr hab.
Podstawy języka skryptów
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Platforma .Net.
Edytory tekstowe stron WWW
Informatyka – szkoła gimnazjalna – Scholaris - © DC Edukacja Tworzenie stron WWW w programie Microsoft FrontPage Informatyka.
Temat: Porównanie technologii php,c# oraz javascript na przykładzie webaplikacji typu społecznościowy agregator treści Autor: Wojciech Ślawski.
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
Testy jednostkowe. „Test jednostkowy (unit test) to fragment kodu, który sprawdza inny fragment kodu”
InMoST Wielkopolska sieć współpracy w zakresie innowacyjnych metod wytwarzania oprogramowania Termin realizacji: – Innowacyjne metody.
Wyższa Szkoła Informatyki i Zarządzania W Bielsku-Białej Kierunek informatyka Specjalność : Systemy informatyczne Praca dyplomowa inżynierska : System.
Co to jest WPF? Silnik graficzny odpowiedzialny za renderowanie interfejsów (nie tylko!) użytkownika aplikacji dla Windows. Dostępny od.NET 3.0 (2006)
Kompilator eBook w technologii Java Dyplomant: Maciej Bagrowski Promotor: dr inż. Walery Susłow Politechnika Koszalińska Wydział Elektroniki i Informatyki.
VBA w Excel.
Framework css Prezentacje wykonał: szymon kupper
C# może więcej! Budowanie aplikacji mobilnych na platformy iOS/Android/Windows Phone przy użyciu narzędzi Xamarin Platform
Dynamiczny serwer aplikacyjny w C++ platforma LEFTHAND
Podstawy programowania
JavaBeans by Paweł Wąsala
Platforma LearningApps
Zapis prezentacji:

Grzegorz Fałda grzegorzfalda@gmail.com 602-44-59-81 03.06.2014 Narzędzia Rapid Application Development (RAD) dla bazodanowych aplikacji www czyli: co nam zostało z tamtych RAD? (tych z lat 90-tych) Grzegorz Fałda grzegorzfalda@gmail.com 602-44-59-81 03.06.2014

Pomysł Stworzyć prototyp narzędzia programistycznego do tworzenia aplikacji webowych, które by w znacznym stopniu wykorzystywało podejście RAD (Rapid Application Develpoment) Myślę, że jest tu wiele do zrobienia. Co to jest RAD? Wikipedia: Szybkie tworzenie aplikacji. Jest to ideologia i technologia polegająca na udostępnieniu programiście dużych możliwości prototypowania oraz dużego zestawu gotowych komponentów (np. zapewniających dostęp do bazy danych).

RAD, 4GL Aplikacje desktop: Od lat 80-tych. Przykład: Clarion – od roku 1986. DOS, potem Windows. 1) Struktura bazy danych jest fundamentem dla aplikacji. 2) Używa szblonów (templates). Szablony są pisane w specjalnym, dedykowanym języku (template language), który jest również dostępny dla bardziej zaawansowanych programistów. 3) Typowa funkcjonalność jest specyfikowana przez programistę interakcyjnie (formatki). 4) Dalsza funcjonalność jest pisana w finalnym języku programowania (tu: język 4GL Clarion) w postaci wstawek (embeds) – szablony definiują miejsca, gdzie można dodać kod. 5) Kod szablonu nadzoruje generację finalnego kodu (na podstawie 3) i 4) ), który jest potem kompilowany. 6) Dodatkową pomoc stanowią min:. Wizardy – do tworzenia typowych kontrolek, list przewijalnych, menu, formatek, a nawet całych aplikacji. Adnotacje przy strukturze bazy danych.

Podstawowa cecha Clariona Napisany przez programistę kod nigdy nie ginie, nie jest przykrywany podczas kolejnych iteracji automatycznej generacji kodu. Doświadczenia programisty – praktyka: To naprawdę działa (w określonym obszarze zastosowań – typowe aplikacje biznesowe) Jak to jest możliwe: Szablony są umiejętnie napisane i oferują wiele miejsc w których można wpisać kod ręcznie.

Istnieją inne podejścia do RAD Na przykładzie narzędzia Magic Developer (obecnie uniPaaS) Inna technologia, podobne efekty. Magic posiada silnik uruchamiany na różnych platformach i działający z różnymi bazami danych. Programista określa logikę biznesową parametryzując ten silnik (wypełniając specyficzne tabele). Kodu się nie pisze i „program” w Magicu w ogóle nie ma postaci podobnej do tekstowego kodu. Inne narzędzia RAD: Oracle Forms, Delphi, Power Builder…

Lawina nowych technologii albo: Co nam zostało z tamtych RAD? Od połowy lat 90-tych World Wide Web: HTML, CSS … W nowym tysiącleciu Technologie mobilne Oferują przede wszystkim zupełnie inną filozofię interfejsów użytkownika. Skutek: Kryzys narzędzi RAD. RAD jest dalej potrzebny, ale chyba nie nadąża za nowymi, powstającymi i ewoluującymi technologiami.

Jakie cechy powinno mieć współczesne narzędzie RAD Jakie cechy powinno mieć współczesne narzędzie RAD? Oto niektóre typowe oczekiwania użytkowników końcowych i programistów Programiści Narzędzie powinno być łatwe do nauczenia. Powinno być wydajne. Powinno adresować wiele platform z poziomu tego samego kodu. Chciałbym używać mojego preferowanego języka programowania. A ostatecznie – jakiegoś popularnego języka programowania. Narzędzie powinno być zgodne ze standardami. Zdobywając wiedzę o nowych narzędziach, programiści - Używają przede wszystkim Internetu. Są ciekawi. Są niecierpliwi (przecież jest tyle innych narzędzi…). A więc: Ewaluacja narzędzia powinna być szybka i łatwa. A więc najchętniej: Bez rejestracji. Bez instalacji. Z dobrym samouczkiem. Możliwość stworzenia szybkiego prototypu aplikacji o którą mi chodzi. Użytkownicy Aplikacje powinny powstawać szybko. Powinny być wieloplatformowe, działać na różnych urządzeniach. Powinny mieć intuicyjny interfejs. Powinny być stabilne. Powinny działać szybko. Opóźnienia typowe przy działaniu aplikacji przeglądarkowych są do zaakceptowania. Więcej …

Proponuję, aby przedsięwzięcie koncentrowało się na Aplikacjach bazodanowych dla platformy Web z rozbudowanym ale typowym interfejsem użytkownika (domena RAD). Duża ilość potencjalnych użytkowników końcowych i zainteresowanych programistów. Duży potencjał automatyzacji tworzenia aplikacji: Typowe powtarzające się zadania (CRUD). Typowe powtarzające się elementy: (formularze, listy, drzewa, raporty itd.). Wskazane byłby (w miarę możliwości) Wspomaganie różnych języków programowania. Wspomaganie różnych baz danych. Dlaczego aplikacje webowe? Web ma pewną przyszłość (przeglądarki nie wyginą). Ta sama aplikacja będzie działać (powinna działać) na różnych przeglądarkach, co umożliwia uruchomienie tej samej aplikacji na różnych platformach przy względnie niewielkim wysiłku. Aby przedsięzwzięcie uczynić bardziej realnym proponuję wziąć jakiś popularny framework i dodać do niego cechy RAD (może to się dziać stopniowo!). W dalszej przyszłości można by było wspierać więcej jak jeden framework w zunifikowany sposób.

Proponowane technologie 1/3 Popularne języki programowania: Java, JVM (inne języki?), C#, Visual Basic, PHP, Ruby, Python, inne … Proponuję: Generator kodu (choć to nie jedyne podejście do RAD) Specyfikacja aplikacji jest przechowywana w repozytorium, które zawiera: strukturę bazy danych, specyfikację UI, kod wstawek (code embeds), wszystko inne. Repozytorium jest edytowane przez programistę za pomocą interakcyjnego (prawdopodobnie okienkowego) środowiska. Typowa funkcjonalność (UI, być może więcej) jest tworzona interakcyjne za pomocą szablonów (programista wypełnia formularze). Kod jest generowany automatycznie. Mniej typowa funkcjonalność jest kodowana ręcznie we wstawkach. Są one możliwe w wielu miejscach. OMG wspiera inicjatywę „Code generation”.

Proponowane technologie 2/3 Zalety generatora kodu Wydaje się być dobry do celów edukacyjnych – tworzenie działających prototypów bez kodowania. Debugowanie może odbywać się w sposób jednolity, ponieważ cały kod (ten generowany i ten pisany ręcznie) jest w tym samym języku programowania, nie ma niewidocznych dla debuggera fragmentów kodu Szablony są (do pewnego stopnia) wytestowane. W przypadku braku dalszego rozwoju narzędzia cały kod jest dalej dostępny i może być dalej rozwijany. Podejście to (razem z „podłączeniem się” pod jakiś popularny framework) wydaje się być adekwatne do stworzenia małego, ale już przydatnego w praktyce prototypu. Na początku można by było skoncentrować się tylko na jednej typowej funkcjonalności, a potem dodawać nowe. Narzędzie powstałoby na razie dla jednego języka docelowego, ale miałoby potencjał rozszerzenia do innych języków/frameworków już z użyciem tego samego środowiska programistycznego.

W dalszej perspektywie Nasze narzędzie Java ASP.Net Python Nowa technolo-gia X 2018 Nowa technolo-gia Y 2022

Proponowane technologie 3/3 Inne możliwe rozwiązania – mam wątpliwości: Ukryte biblioteki – niepełny debugging. Generacja bytecode – co z debuggingiem? Generacja finalnego kodu z kodu tekstowego wydaje się być trudniejsza do implementacji – parser, edytor kontekstowy, wydaje się być trudniejsza i mniej intuicyjna w użyciu niż praca z formatkami, wymaga nauczenia się nowego języka (nie tylko nowego środowiska). Stworzyć nowy język programowania? – myślę, że nie Potencjalnie daje największe możliwości, ale: Trudne i czasochłonne do implementacji. Trudności z wypromowaniem nowego języka. Wymaga od użytkowników nauczenia się nowego języka (nie tylko nowego środowiska). Platformy uruchomieniowe (jak np. Microsoft Silverlight) – raczej nie – kłopotliwe dla użytkowników. Rich Internet Apps (RIA) – tak! Scaffolding – tak! To (typowa dla dawnych narzędzi RAD), pochodząca z Ruby on Rails technika automatycznego tworzenia typowej funkcjonalności – głównie CRUD. Odpowiedź: To nam zostało z tamtych RAD.

Na jakim frameworku się oprzeć? Oczywiście open source Jeśli Java, to jest duży wybór: GWT - Google Web Toolkit Vaadin (!) – rozszerzenie GWT Eclipse RAP – Remote Application Platform Spring MVC Grails – język Groovy, podobny do Java, bazuje na Ruby on Rails Dobre porównanie: http://zeroturnaround.com/rebellabs/the-curious-coders-java-web-frameworks-comparison-spring-mvc-grails-vaadin-gwt-wicket-play-struts-and-jsf/ Inne języki (…)

Pomysł na prezentację w sieci Jak najprostszy i jak najszybszy dostęp dla ewaluatora Interfejs Web Nasz serwer Strona Web (używana przez przeglądarkę na dużym ekranie) Interfejs typu „wizard” 1) Samouczek – przykładowa aplikacja 2) Możliwość stworzenia własnego prototypu Repozytorium, narzędzie Programista, oceniający 1. Bez rejestracji Bez instalacji Bez płatności Aplikacje Web o tej samej funkcjonalności, optymalizowane dla różnych urządzeń i wielkości ekranów 2. linki 3. Urządzenia Idea: Można by było niewielkim nakładem pracy stworzyć stronę www, która symuluje powyższą koncepcję – w celu prezentacji dla potencjalnych partnerów, uczestników.

Jak to ma działać? Użytkownik / programista edytuje repozytorium na naszym serwerze. Następnie uruchamia generator na serwerze, który generuje kod Java (?). Następuje automatyczna kompilacja. Następuje generacja powstałych w ten sposób stron www, zostaną utworzone puste bazy danych wg. żądanej struktury itd. Odpowiednie linki są tworzone i wyświetlane użytkownikowi. Łatwo można uzyskać cechy wersji demo: Linki mogą przestać działać po pewnym czasie. Natomiast pełne narzędzie byłoby raczej typu desktop.

Dziękuję za uwagę zapraszam do dyskusji Grzegorz Fałda grzegorzfalda@gmail.com 602-44-59-81