venerdì 18 gennaio 2008

Echo2, possibile "soluzione"

Parlando con Francesco Echo2 potrebbe essere il framework a cui ci dedicheremo. Dopo qualche minuto di panico sulla licenza (sul sito non si capiva bene che licenza avesse), abbiamo scoperto che è sotto la Mozilla Public Licenze (MPL) e quindi si possono sviluppare con questo framework anche applicazioni "propietarie".

Ora il discorso principale è capire se Echo2 ha il "difetto" di GWT: non essere bloccante.

E' una cosa che ho fatto un po' fatica a capire anche io, non tanto capire la cosa in se, ma capire i problemi ad esso correlati. In pratica noi avremmo l'esigenza che l'applicazione creata possa essere "bloccata" nel momento in cui si richiede l'interazione con l'utente.

Tipicamente con le applicazioni AJAX, questo non si può fare (non per nulla la A di Ajax sta per asincrono).

Quale è il problema:
Se siamo in una maschera e l'utete clicca un pulsante per un "cerca", noi vorremmo che tutto nell'applicazione si blocchi in attesa della risposta... ma co al logica dell'essere asincrono no è così... il resto dell'applicazione se ne va avanti indipendentemente da cosa fa l'utente con la nuova finestra.
Anche con GWT esiste la possibilità di inserimento di una finestra modale, come quelle di avviso (classico segnale di errore con il tasto ok) e un'altra alert modale (con tasti ok e cancel) e queste bloccano di fatto l'applicazione, ma non si può fare nulla di più di una finestrella con due tasti.

Con Echo si potrà avere una logica bloccante? Nella documentazione letta al volo si parla di finestre modali, e questo "modale" può significare bloccante

Staremo a vedere


Aggiornameno alle ore 11:33
Dal sito di Echo2 (http://echo.nextapp.com/site/) non capisco bene come procedere per capire le basi dello sviluppo con questa applicazione.
Fortunatamente nel wiki trovo un link che pare interessante: www.pathf.com/echo2/Echo2-Part1.pdf
Pare che spieghi come integrare echo e eclipse, cosa installare, come iniziare
Quello che fa per me


Aggiornamento alle ore 15:35
Mannaggia, più di 3 ore su ste cavolo di tutorial, semplicissimo, ma non andava
dopo un po' di incavolatura (prima c'era un altro server sulla porta 8080, trovato come chiuderlo, dava ancora problemi, un errore 505) ho trovato con google (potere google) la soluzione
in pratica nel tutorial c'era un piccolo errore, nel file web.xml la riga
AjaxSample.servlet.AjaxSampleServlet
è errata e va sotituta con
ajaxsample.servlet.AjaxSampleServlet

argh... problemi di case sensitive..
cmq ora va

ma ovviamente non era abbastanza, troppo breve come tutorial
trovo il blog dell'autore... che non hai mai fatto la parte numero 2 di quel tutorial, comunque eccola: http://blogs.pathf.com/agileajax/echo2/index.html
e anche queste due pagine sembrano interessanti: http://ensode.net/echo2_review.html
http://ensode.net/echo2_closer_look.html


Aggiornamento delle 17:02
Ancora un ora persa per cercare di far partire uno dei tutorial "ufficiali", in number guess
non mi andava... continuavano ad esserci errori
metto qui i passaggi così se in futuro devo usare altri source simili so cosa fare
  • in eclipse creo un nuovo progetto, New (dall'icona, non dal menu), Web, Dinamic web project. Scelto tomcat come server
  • in base alla logica dei package che trovo nei file "java" del source che voglio usare, creo in eclipse i relativi package e ci sbatto dentro i file source java... ovviamente rispettando la logica dei package
  • in eclipse, cerco la cartella webcontent->Web-Inf->Lib; clicco con il destro e poi "import". Scelto File System. Cerco in "browse" la cartella di installazione di echo due, poi la sottocartella binary libraries. Nel mio caso "C:\Programmi\NextApp_Echo2\BinaryLibraries". Scelgo quindi questi jar: Echo2_App.jar, Echo2_WebContainer.jar, Echo2_WebRenderer.jar e
    EchopointNG.jar
  • nella cartella "WebContent" creo un file "index.html" così composto

    <!DOCTYPE
    HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html;
    charset=UTF-8">
    <meta http-equiv="Refresh" Content="0; URL=app">
    </head>
    <body>Redirecting to application.</body>
    </html>

  • nella cartella Web-Inf dentro WebContent modifico il file "Web.xml" fino a renderlo simile a questo

    <?xml
    version="1.0" encoding="UTF-8"?>

    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID"
    version="2.5">

     
    <display-name>provaecho2</display-name>
      <servlet>
       
    <servlet-name>NumberGuessServlet</servlet-name>
       
    <servlet-class>echo2tutorial.numberguess.NumberGuessServlet</servlet-class>
        </servlet>
        <servlet-mapping>
       
    <servlet-name>NumberGuessServlet</servlet-name>
       
    <url-pattern>/app</url-pattern>
        </servlet-mapping>
      <welcome-file-list>
       
    <welcome-file>index.html</welcome-file>
       
    <welcome-file>index.htm</welcome-file>
       
    <welcome-file>index.jsp</welcome-file>
       
    <welcome-file>default.html</welcome-file>
       
    <welcome-file>default.htm</welcome-file>
       
    <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

    importanti queste due righe
    NumberGuessServlet
    echo2tutorial.numberguess.NumberGuessServlet
    Che devono avere il nome e la struttura dei package del servlet creati (cioè il file source java che si chiama "nomeapplicazione.Servlet.java")
  • Fatto tutto questo dovrebbe essere pronta per "partire"
    Seleziono con il destro il progetto in eclipse, seleziono "RunAs" e "Ron On Server", seleziono il server tomcat e tutto dovrebbe partire

Nessun commento: