piątek, lutego 09, 2007

Kurs - "Tworzenie bogatych aplikacji internetowych w oparciu o technologię AJAX"

Zagadnienia:
  1. Przegląd technologii internetowych
  2. Przykłady rozwiązań przed AJAXem (Form Submit) i rozwiązań alternatywnych (iFrame)
  3. Definicja AJAX, podstawowe elementy i komponenty, diagram interakcji, przykłady aplikacji Web 2
Razem 1.5 godz.
  1. Narzędzia do tworzenia rozwiązań opartych o AJAX - przegląd wzorców, bibliotek i frameworków (Yahoo, Atlas, advAjax)
Razem 1.5 godz.
  1. Podstawy AJAX w oparciu o JavaScript:
    1. Wprowadzenie do elementów potrzebnych do uruchomienia AJAX w JS
    2. Oprogramowanie po stronie klienta (PHP, .NET)
Razem 2 godz.
  1. Warsztat - tworzenie aplikacji korzystającej z techologii AJAX
    1. Aplikacja minimalistyczna - korzystająca z podstawowych składników (XMLHttpRequest, DHTML, JS, CSS) -1 godz.
    2. Aplikacja pełna - korzystająca z biblioteki "prototype" - 1 godz.
    3. Aplikacja pełna niezależna od przeglądarki internetowej (porównanie modelu DOM i BOM w MS IE i FireFox) - 1 godz.
  2. Narzędzia wspomagające testowanie aplikacji internetowych - JavaScript Shell, FireBug, Fiddler - 0.5 godz.
  3. Tworzenie aplikacji uwzględniających różnorodne standardu kodowania polskich liter (iso-8859, utf-8, windows-1250) - 1 godz.
  4. Wykorzystanie technologii Ajax w aplikacjach desktopowych (widgets - wichajstry w Yahoo/Opera/Google, Visual FoxPro 9.0) - 1 godz.
  5. Nowe kierunki - oprogramowanie usług webowych firmy Google (docs, spreadsheets, calendar) poprzez Google API - 0.5 godz.
Wszystko razem - 12 godz + czas na wykonanie samodzielne ćwiczeń, konsultacji, pytania i odpowiedzi

Uzasadnienie:

  1. Nowe aplikacje (w architekturze klient serwer z bogatym interfejsem tzw. Rich Client Interface - RCI) wymagają uruchamiania w środowisku graficznym (w przeciwieństwie do obecnych aplikacji znakowych w środowisku emulatora terminala).
  2. Jedyną alternatywą (ze względu na przyzwyczajania, ergonomiczność i wsparcie użytkownika końcowego) do starych rozwiązań jest środowisko MS Windows Client (MS Windows XP i wyżej, ale już nie Windows 98).
  3. W środowisku MS Windows Client działają pakiety biurowe z najbardziej popularnym MS Office.
  4. Firma MS oprócz środowiska uruchomieniowego dla aplikacji graficznych dostarcza również narzędzi do tworzenia aplikacji.
  5. MS Windows Client cechuje doskonałe wsparcie dla ogromnej gamy urządzeń peryferyjnych (wbudowane sterowniki, bije o głowę pod tym względem inne systemy operacyjne np. Linux) oraz posiada standardowe narzędzia do tworzenia nowych sterowników obsługi tych urządzeń (drukarki fiskalne, czytniki kart kryptograficznych).
  6. Firmy dostarczające urządzenia peryferyjne np. czytniki kart, drukarki fiskalne, wagi, kamery itd. dostarczają również gotowe sterowniki dla tego środowiska w postaci uniwersalnych bibliotek dll do wykorzystania przez wszystkie aplikacje Windows.
  7. Biznesowe rozwiązanie informatyczne np. obsługa PKI ze strony klienta wymagają wręcz instalacji u niego środowiska MS Windows (korzystają w dostępie do Internetu MS IE 6.x i wyżej) , dostarczając w zamian oprogramowanie klienckie do konfigurowania, testowania i korzystania z PKI (patrz narzędzia do podpisu elektronicznego firmy Sigillum i Certum).
  8. Nowoczesne rozwiązanie Internetowe oparte o usługi webowe (Web Services) są wbudowane w narzędzia deweloperskie firmy MS (jest to MS Visual Studio 2005 Professional) oraz mają wsparcie w infrastukurze serwerów MS (jest to serwer Internetowy MS IIS oraz akcelerator MS IAS). Firma MS wraz z IBM są jedynymi dostawcami kompleksowych rozwiązań usług webowych (poza tym są one założycielami organizacji WSI i głównym motorem rozwoju standardów w tym zakresie).
  9. Dodatkowo MS jest jedyną firmą, która dostarcza kompleksowe rozwiązanie do tworzenia i uruchamiania własnego autorstwa aplikacji w środowisku MS Windows (począwszy od aplikacji konsolowych, poprzez klasyczne Windows Form i Web Forms aż po serwisy systemowe i serwisy Internetowe) w środowisku Windows) w oparciu o jednolite narzędzia do zarządzanie innymi serwerami (Internetowymi – MS IIS, bazodanowymi – MS SQL Server, zarządzanie infrastrukturą – Active Directory, usługi portalowe – SharePoint) i które doskonale integrują się ze stosowanymi przez użytkownika pakietami biurowymi MS Office.

Rozwoj Mozilli
Oparta na motorze Gecko jest świetną przeglądarką. To czego jej brakuje to niemożność wbudowania jej w inne aplikacje. Rozwiązaniem tego problemu jest projekt http://www.iol.ie/~locka/mozilla/control.htm zwierający motor przeglądarki FF w technologii ActiveX. Z punktu widzenia dewelopera ma to samo API co kapitalnie ułatwia przenoszenie aplikacji z IE na FF. Technicznie, jest to wrapper w styli IE (IWebBrowser) do Gecko (która jest interfejsem API do XPCOM (COM-like), historia i opis - http://developer.mozilla.org/en/docs/Gecko_FAQ). Co zostało imlementowane:
  • IWebBrowser (basic web browsing functions for navigation and son on)
  • IWebBrowserApp (some extended functions for IE, the application)
  • IWebBrowser2 (some more functions for IE, the application)
  • DWebBrowserEvents (basic navigation events)
  • DWebBrowserEvents2 (more events, mainly for the IE app)
Artykuł z MSDN dużo wyjaśnia jak tworzyć takie aplikacje - http://msdn.microsoft.com/workshop/browser/WebBrowser/WebBrowser.asp
Jest tam kompletna instrukcja jak włączyć taką kontrolkę (mozctlx.dll, po rejestracji) do aplikacji w Delphi (zasoby i trochę historii o Netscape - http://www.paranoia.clara.net/articles/taming_the_lizard_with_delphi.html), VB , VB .NET.
Nawet jest PATCHER do aktualizacji kodu binarnego istniejących rozwiązań korzystających z IE!

wtorek, lutego 06, 2007

Wiara
W pracy każdy programista na każdym kroku musi okazywać wiarę. Wiarę, że wierzy w realność i poprawne działanie elementów środowiska w którym pracuje. Musi wierzyć, że:
  1. Komputer działa dobrze
  2. System operacyjny i narzędzi w którym pracuje (RAD) działa dobrze
  3. Gotowe biblioteki działają dobrze
  4. Procedury wbudowane przygotowane przez projektanta działają dobrze
  5. Protokołu transmisji działają dobrze
Bez tego i wielu innych elementów nie sposób cakolwiek zdziałać, bez przerwy trzeba by sprawdzać poprawność różnych rzeczy i interfejsów.