Zváračský kurz na BlazeDS


             BarCamp
              Brno - FI
             26.6. 2010

         Mgr. Juraj Mich...
Upozornenie!



Prezentované riešenia nie sú silver bullet
         ani magický lektvar.

        Časť problémov vyriešia....
Časti kurzu

Ako sa vyvíjú klient-server aplikácie?


     Prínos Google App Enginu.


Zvýšenie účinnosti pomocou BlazeDS....
Máme nápad!



Vytvoríme skvelú aplikáciu!
Klasický model


  Navrhnúť databázu.

Navrhúť dátovú vrstvu.

Navrhúť vrstvu s logikou
    a kontrolérmi.

 ... ešte sme ...
Klasický model - klient


   Navrhnúť rozhranie služby.
     (Web services, REST)

Navrhnúť serializáciu na klientovi.

Na...
Klasický model - UI



Navrhnúť logiku na klientovi.

Navrhnúť GUI na klientovi.

      Máme hotovo?
Klasický model - nasadenie

             Nie, nie je hotovo!

            Nájsť/kúpiť hosting.

           Umiestniť na se...
We're on the highway to hell!
Náklady na klasický model


        Náklady - server.

         Náklady - klient.

 Náklady – komunikácia a hosting.

  Po...
Time to market



                Čo prosím?

     Nerozumiem syntaxi vášho kmeňa!

                  Vývojár:
„Ešte nemám...
Moment! To ešte nie je všetko!

      Zmeníme schému v DB?

         Musíme zmeniť:

              logiku

          serve...
Ako spieva Queens


Too much (love) features
 will kill you in the end.




 Pattern: Feature soup.
Hm?



      Položme si základnú otázku.



Prečo vlastne vôbec niekto vyvíja softvér?
Skúsme to veselšie a radostnejšie




Je vôbec možné zjednodušiť niektoré kroky?

        A tým znížiť cenu vývoja?
Príklad z priemyslu



      Automatizovať.

   Potrebujeme systém.

A hlavne: Potom potrebujeme
      ešte lepší systém.
Google App Engine
Bonusy


       Free hosting (až 10 app).

        Škálováteľnosť (nútená).

         Podpora Python/Java.

Deployment, in...
GAE + Eclipse
GAE admin console
Log report
Ok, vyrišený hosting




Čo môžeme optimalizovať ďalej?

Databáza a mapovanie na objekty.
ORM a Python
ORM a Java
Podpora GAE (*.jar)


                  JDO

                 Spring

         DataNucleus Enhancer

           Maven GAE ...
JDO




Anotácia z enterprise aplikácii.

DB sa vytvára na základe kódu.
http://code.google.com/appengine/docs/java/datast...
Zmena v App




JPA replikuje zmenu
  schémy do DB.

      Milé :-)
Klient / server


       API.

       Au.

  Zmena API?

 Ste sa zbláznili!
Super API na prvý krát?




    Jedine Chuck Norris!
Flash Builder


Pripojenie na web aplikáciu?

     Service discovery.
Zadám adresu a...
Zázrak




Funguje aj drag-n-drop
    do datagridu.
No, ale zmením adresu



A všetky parametre operácie povedia

             pápá :-(

           Evil Wizard?
Remote Discovery Service




Podpora pre PHP, LiveCycle a BlazeDS.

       Zadám URL serveru a...
Discovery




Dokonca funguje aj update API!
Test operácie
Vygenerovanie formuláru
Drag-n-drop výsledkov do tabuľky
Spustíme!



           Jetty server.

Ako to tak chodí u vývojára to ide.

           A v cloude?
Ale veď to poznáte...



          Error!

  Duplicated Session....


           :-O
Drobná úprava


      Patchneme a
     prekompilujeme
       BlazeDS ;-)


         EngineDS
      Maven repository
  Proj...
Kontinuálna integrácia



         SCRUM, Agile
http://www.agilnikonsorcium.cz/


          Hudson CI
            PMD
Plan, Do, Check, Act


         Návrh

         Vývoj

        Kontrola

       Zlepšenie

http://www.goalscape.com
Kontinuálna integrácia




                 Hudson CI
       V spolupráci s Michalom Gronom
http://www.sinusgear.com/hosti...
PMD – don't shoot the messanger
Software Engineering Radio

   Model driven development




     http://www.se-radio.net
Diskusia

      Témy:

Google App Engine
Python, Java, Jetty

 ORM, JPA, JDO
   BlazeDS

      Agile
    Hudson CI
      P...
Školenia, konzultácie


         Adobe technológie
         Flex, AIR, BlazeDS
           Google, Clouds

Implementácia ko...
Ďakujem za pozornosť


            BarCamp
             Brno - FI
            26.6. 2010

        Mgr. Juraj Michálek
    ...
Upcoming SlideShare
Loading in...5
×

BarCamp - Zváračský kurz na Web

1,517

Published on

Základný prehľad o technológii Google App Engine a možnosti napojenia Flash Builderu na BlazeDS, pomocou ktorého je možné priamo generovať kód zo serverového API. Výrazné zjednodušenie práce. Nasleduje diskusia o kontinuálnej integrácii a Hudson CI.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,517
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

BarCamp - Zváračský kurz na Web

  1. 1. Zváračský kurz na BlazeDS BarCamp Brno - FI 26.6. 2010 Mgr. Juraj Michálek SinusGear Twitter: http://twitter.com/georgiksk Blog: http://georgik.sinusgear.com
  2. 2. Upozornenie! Prezentované riešenia nie sú silver bullet ani magický lektvar. Časť problémov vyriešia. Nejaké nové prinesú.
  3. 3. Časti kurzu Ako sa vyvíjú klient-server aplikácie? Prínos Google App Enginu. Zvýšenie účinnosti pomocou BlazeDS. Kontinuálna integrácia a PMD.
  4. 4. Máme nápad! Vytvoríme skvelú aplikáciu!
  5. 5. Klasický model Navrhnúť databázu. Navrhúť dátovú vrstvu. Navrhúť vrstvu s logikou a kontrolérmi. ... ešte sme neskončili
  6. 6. Klasický model - klient Navrhnúť rozhranie služby. (Web services, REST) Navrhnúť serializáciu na klientovi. Navhrnúť volanie serverového API. Ešte stále sme neskončili...
  7. 7. Klasický model - UI Navrhnúť logiku na klientovi. Navrhnúť GUI na klientovi. Máme hotovo?
  8. 8. Klasický model - nasadenie Nie, nie je hotovo! Nájsť/kúpiť hosting. Umiestniť na server. Testovacia a produkčná verzia. Zber logov a chybových hlásení. A aplikácia nám doteraz nezarobila ani groš.
  9. 9. We're on the highway to hell!
  10. 10. Náklady na klasický model Náklady - server. Náklady - klient. Náklady – komunikácia a hosting. Postupný nárast používateľov
  11. 11. Time to market Čo prosím? Nerozumiem syntaxi vášho kmeňa! Vývojár: „Ešte nemáme vyladený komunikačný protokol.“
  12. 12. Moment! To ešte nie je všetko! Zmeníme schému v DB? Musíme zmeniť: logiku serverové API dátovú vrstvu klienta klienta
  13. 13. Ako spieva Queens Too much (love) features will kill you in the end. Pattern: Feature soup.
  14. 14. Hm? Položme si základnú otázku. Prečo vlastne vôbec niekto vyvíja softvér?
  15. 15. Skúsme to veselšie a radostnejšie Je vôbec možné zjednodušiť niektoré kroky? A tým znížiť cenu vývoja?
  16. 16. Príklad z priemyslu Automatizovať. Potrebujeme systém. A hlavne: Potom potrebujeme ešte lepší systém.
  17. 17. Google App Engine
  18. 18. Bonusy Free hosting (až 10 app). Škálováteľnosť (nútená). Podpora Python/Java. Deployment, integrácia s IDE, verzovanie aplikácií, SSL cert, sledovanie app, meranie výkonu.
  19. 19. GAE + Eclipse
  20. 20. GAE admin console
  21. 21. Log report
  22. 22. Ok, vyrišený hosting Čo môžeme optimalizovať ďalej? Databáza a mapovanie na objekty.
  23. 23. ORM a Python
  24. 24. ORM a Java
  25. 25. Podpora GAE (*.jar) JDO Spring DataNucleus Enhancer Maven GAE Plugin http://www.kindleit.net/maven_gae_plugin/
  26. 26. JDO Anotácia z enterprise aplikácii. DB sa vytvára na základe kódu. http://code.google.com/appengine/docs/java/datastore/usingjdo.html
  27. 27. Zmena v App JPA replikuje zmenu schémy do DB. Milé :-)
  28. 28. Klient / server API. Au. Zmena API? Ste sa zbláznili!
  29. 29. Super API na prvý krát? Jedine Chuck Norris!
  30. 30. Flash Builder Pripojenie na web aplikáciu? Service discovery.
  31. 31. Zadám adresu a...
  32. 32. Zázrak Funguje aj drag-n-drop do datagridu.
  33. 33. No, ale zmením adresu A všetky parametre operácie povedia pápá :-( Evil Wizard?
  34. 34. Remote Discovery Service Podpora pre PHP, LiveCycle a BlazeDS. Zadám URL serveru a...
  35. 35. Discovery Dokonca funguje aj update API!
  36. 36. Test operácie
  37. 37. Vygenerovanie formuláru
  38. 38. Drag-n-drop výsledkov do tabuľky
  39. 39. Spustíme! Jetty server. Ako to tak chodí u vývojára to ide. A v cloude?
  40. 40. Ale veď to poznáte... Error! Duplicated Session.... :-O
  41. 41. Drobná úprava Patchneme a prekompilujeme BlazeDS ;-) EngineDS Maven repository Project archetype - JDO http://maven.sinusgear.com
  42. 42. Kontinuálna integrácia SCRUM, Agile http://www.agilnikonsorcium.cz/ Hudson CI PMD
  43. 43. Plan, Do, Check, Act Návrh Vývoj Kontrola Zlepšenie http://www.goalscape.com
  44. 44. Kontinuálna integrácia Hudson CI V spolupráci s Michalom Gronom http://www.sinusgear.com/hosting/hudson-ci
  45. 45. PMD – don't shoot the messanger
  46. 46. Software Engineering Radio Model driven development http://www.se-radio.net
  47. 47. Diskusia Témy: Google App Engine Python, Java, Jetty ORM, JPA, JDO BlazeDS Agile Hudson CI PMD
  48. 48. Školenia, konzultácie Adobe technológie Flex, AIR, BlazeDS Google, Clouds Implementácia kontinuálnej integrácie a automatizácia SW projektov. http://www.sinusgear.com/skolenia
  49. 49. Ďakujem za pozornosť BarCamp Brno - FI 26.6. 2010 Mgr. Juraj Michálek SinusGear Twitter: http://twitter.com/georgiksk Blog: http://georgik.sinusgear.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×