Blog | On the Web | About me
Daniele Vistalli @ BleedYellow

Search 

Getting social ?

Three Domino Views (Web 2.0) in a single page

Dopo il ritorno dall'ILUG e le chiacchiere fatte con un pò di colleghi che utilizzano Domino in ambiente web mi sono lanciato nella sperimentazione di Ajax con Dojo Toolkit.

Uno degli usi più "banali" di Ajax con domino è ovviamente quello di mostrare le nostre care viste in un modo nuovo più dinamico, permettendoci magari di navigare una vista senza dover ricaricare tutta la pagina.

Cosa abbiamo visto finora


Molte delle implementazioni attuali si basano sull'uso dei nuovi metodi XML introdotti nelle versioni 7 e 8 di Domino per:
  • Leggere la struttura della vista in formato XML (o JSON a partire da Domino 7.0.2)
  • Leggere le entries/righe della vista in formato XML (o JSON a partire da Domino 7.0.2)
  • Generare l'html necessario a visualizzare i dati scaricati (ivi inclusa la formattazione e gli stili)

Questo approccio non mi fa impazzire per i seguenti motivi:
1.        La generazione dell'XML per le viste è pesante quanto la generazione della vista stessa da parte del motore HTTP
2.        L'analisi del XML/JSON sia per la struttura che per i dati viene demandata al client (web browser) che si trova a consumare ulteriore memoria per costruire le strutture dati necessarie alla gestione, navigazione e visualizzazione dei dati
3.        La formattazione della vista non è più controllata da quello che faccio in Domino Designer ma va più o meno definita a mano all'interno della propria pagina tra script e html.
4.        La categorizzazione e la gestione dei documenti response è qualcosa a cui nessuno ha ancora dato una soluzione "generalizzata".

Volendo dare un riepilogo negativo dell'approccio che va per la maggiore potrei quindi dire che:
1.        Non ottengo vantaggi per quanto riguarda il carico di lavoro dei server ... (anzi per ogni vista viene richiesto l'xml della descrizione e quello dei dati)
2.        Appesantisco il client (browser) con un sacco di operazioni javascript / xml solo per visualizzare gli stessi dati che il server domino ha per anni elaborato al meglio
3.        Devo fare doppio lavoro, disegnare una vista e poi incorporarla nella mia applicazione web definendo stili e formattazione, non tutti gli sviluppatori domino hanno tutta l'esperienza necessaria, per non parlare della manutenzione delle applicazioni.
4.        Nonostante tutta questa tecnologia la categorizzazione resta argomento "complicato" e con soluzioni non all'altezza.

Cosa vi propongo


Partendo da questo presupposto ho provato a cambiare il punto di vista...

Mi sono detto.. e se prendessi a pezzi l'html delle viste che domino genera da anni senza fare una piega ?

Ho iniziato a lavorare sull'idea e ho creato un Widget per Dojo Toolkit che fa esattamente questo. Trasforma una normale (e quando dico normale intendo normale) vista Web Domino in un widget dinamico, riutilizzabile e configurabile che mantiene tutte le funzionalità di una vista notes classica.

In particolare il widget consente di:
  • Navigare la vista: Pagina avanti, pagina indietro, vai alla riga che inizia per (&StartKey=)
  • Ricercare la vista: effettuando una ricerca full text
  • Riordinare le colonne come, definito nel designer, cliccando sull'header della colonna
  • Espandere e comprimere categorie e relazioni document / response
  • Rispettare tutte le formattazioni definite creando la vista con designer.

Oggi non entrerò nel dettaglio della logica utilizzata nel widget ma mi limiterò a farvi provare il risultato in quattro esempi che ho preparato. Prossimamente e dopo aver ripulito il codice vi spiegherò cosa ci sta dietro (sempre che non vogliate leggervi direttamente i sorgenti).

Test Drive


E' giunto il momento di vedere l'effetto che fa, il mio consiglio è questo:

1° Cliccate su un esempio
2° Usatelo, navigate la vista, fate quello che fareste su una vista normale
3° Guardate il sorgente della pagina
4° Passate all'esempio successivo.

Quando avete finito gli esempi lasciatemi un commento :)






Nota: Per ora non vi metto online un pacchetto da scaricare perchè voglio prepararlo bene. Se non potete aspettare scrivetemi a daniele@vistalli.it



Comments (0)
Daniele Vistalli July 5th, 2007 16:52:44

 Comments
1) Complimenti
Misko 07/23/2007 12:38:30

Molto bello, complimenti.

Ciao

2) re: Molto bello
Daniele Vistalli 07/18/2007 13:31:41

Grazie.

Per le categorie multiple dipendo da domino ovvero da ciò che domino genera per il parametro expand della query string.

Ho notato anch'io che nelle versioni più recenti non viene più supportata l'espansione di categorie multiple. Non so se ci sia qualcosa per risolvere il problema a livello di domino.

Nel frattempo stò ragionando su una nuova versione basata su XML e JSON in cui sarò io ad avere il controllo selle categorizzazioni, in quel caso non ci dovrebbero essere problemi.

Vedremo.

3) Molto bello
Lorenzo 07/18/2007 7:17:29

Complimenti

è tanto che sto cercando esempi di questo tipo e questo sembra il più elegante e pulito.

Solo una richiesta. E' possibile poter aprire più sottocategorie contemporaneamente (difetto ormai classico delle viste web domino) senza che la precedente venga chiusa?

Ciao

4) re: Bellissimo
Daniele Vistalli 07/06/2007 8:19:22

I bug ci sono da qualche parte ben nascosti, la cosa che voglio sistemare è la "pulizia" del codice per eliminare tutte le parti ripetute. Per il resto non dovrei impiegare molto a finirlo.

Diciamo che per lunedì ci sarà il db scaricabile con qualche sample esteso di viste "evolute".

Prima però devo finire la traduzione del post in inglese... Devono sapere che in italia ....

Ciao

5) Bellissimo
Iarin Fabbri 07/06/2007 6:03:35

Stupendo, leggero, risponde velocemente ed esente da bug (almeno non ne ho trovati).

Aspetto con impazienza il pacchetto con i sorgenti per studiarmelo :-)

6) Re: Show & Tell Thursday - Dojo ViewContentPane v. 0.1 - Demo
Cristian D’Aloisio 07/05/2007 23:16:36

Complimenti,

proprio un bel post, non vedo l'ora di studiarmi il codice.

Ti consiglio di tradurre la tua introduzione in inglese, sicuramente interesserà a molti il tuo lavoro.

7) Show & Tell Thursday - Dojo ViewContentPane v. 0.1 - Demo
Giuseppe 07/05/2007 19:05:27

ho fatto un po' di più che lasciarti un commento: { Link }

 Add a Comment
Subject:
   
Name:
E-mail:
Web Site:
 
Comment:  (No HTML - Links will be converted if prefixed http://)
 
Remember Me?