SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
Xpages
Cosa ci sarà in questa nuova tecnologia




                Autore: DanieleGrillo
       Professione: Domino Developer
domino   point day2009




                         Agenda
  •Cosa sono le Xpages
  •Da dove arrivano
  •Componenti fondamentali
  •Linguaggio di sviluppo ( Client Side / Server Side)
  •Esempio Applicazione ( Catalog.nsf)
  •Utilizzo in locale ( novità della 8.5.1)
  •Suggerimenti
  •Cosa ci aspetta per il futuro?


                                                         2
domino   point day2009




               Cosa sono le Xpages
  • Un componente aggiuntivo di Lotus Designer
  • Un framework di sviluppo basato su componenti ( come i più
    comuni linguaggi visuali di programmazione)
  • Tecnologia JSF ( java server faces)
  • Sfruttano il back-end dei dati Lotus Domino (per ora...)
  • Una soluzione Easy per lo sviluppo di applicazioni Web
  • Estensione engine HTTP di Domino
  • Nascono con la R 8.5 ( meglio usarle nella 8.5.1)



                                                                 3
domino   point day2009




                Xpages   +   Dojo




                                    4
domino   point day2009




                       Modello MVC
Le Xpages utilizzano il concetto di Model View Control

• L’MVC è la separazione della base dati, dalla logica applicativa di
  un’applicazione e dall’interfaccia .
• Impone al programmatore ( ed è un bene) a separare
  nettamente la logica applicativa dall’interfaccia e i dati.
• E’ Più facile mantenere nel tempo l’applicazione
• E’ un concetto...



                                                                        5
domino   point day2009



                   MVC a confronto
                                                    Control
                Control                    Lotusscript + @formulas
   Javascrip ( server-side + front side)           +Agenti




               View                                    View
           Sono le Xpages                  Sono le Form, Viste, Navigatori,
                                              Frameset, Pages, Agent



              Model
      Sono le Form di Notes                         Model
            ( per ora)                      Sono le Form di Notes


               XPAGES                        DOMINO CLASSICO

                                                                              6
domino   point day2009




                 Da dove arrivano
  • Progetto IBM Workplace nato nel 2002 ed
    abbandonato nel 2007
  • Xpages sono la Lotus Component Designer
  • Component Designer Runtime diventa XSP
    Runtime




                                              7
domino   point day2009




            Da cosa sono composte
  • Controlli ( Core, Container, Altri)
  • Componenti ( blocchi di codice riutilizzabili,
    concetto simile alle sub.form)
  • Sorgente dati ( per ora Form di domino e
    viste)
  • Altro ( CSS, codice X/HTML aggiuntivo, JS)


                                                     8
domino   point day2009



                    I Controlli
Oggetti già pronti all’uso
 che si inseriscono nella
 Xpages con semplici
 trascinamenti sulla
 pagina ( drag&drop)




                                  9
domino   point day2009



          Controlli personalizzati
Rappresentano
  blocchi applicativi
  riusabili.

Esempio: Footer,
  Header..etc..




                                     10
domino     point day2009



                         Sorgente dati
Rappresenta la
   sorgente dati alla
   quale ci si collega
   per gestire il
   binding dei dati
   dalla Xpages al
   back-end.




                          Il bindig è l’associazione con la sorgente dati....non è
                          più “ovvia” la relazione FORM/CAMPO



                                                                                     11
domino   point day2009




   Codice X/HTML nel sorgente XML




                                    12
domino   point day2009




                         I TEMI
Meta fogli di stile che vengono applicati al
  rendering delle xpages prima che vengano
  applicati i fogli di stile delle stesse.
Prima ancora di essere mandato al browser viene
  applicato il tema che può eseguire codice JSS
  per decidere cosa servire...esempio in base
  Browser utilizzato nell’header di una richiesta

                                                    13
domino   point day2009




                         14
domino    point day2009




                          Variabili Scope
Permettono finalmente di utilizzare variabili d’ambiente senza utilizzare campi,
   documenti profilo o workaround vari (cookies etc..)

• SessionScope: variabili di sessione validi per ogni sessione istanziata da ogni
  utente collegato ( vive all’apertura della sessione e muore alla chiusura)
• ApplicationScope variabile globale fin tanto che è aperta l’applicazione è
  globale a qualunque sessione utente
• ViewScope variabile valida localmente nella componente View corrente
• RequestScope variabile che esiste per la pagina corrente




                                                                                    15
domino   point day2009




                    3 elementi...
  • View Component
  • Repeater Component
  • Core Component




                                    16
domino   point day2009




                 View Component
  • Ha le funzioni 1:1 vista Domino ( checkbox,
    ordinamenti, valori)
  • E’ personalizzabile
  • Ha diverse proprietà per effettuare ricerche,
    filterbyCategory
  • Ha un pager di navigazione personalizzabile
  • Valore colonne programmabili dinamicamente

                                               17
domino   point day2009



             View Component




                              18
domino   point day2009




               Repeater Component
Un componente (fantastico! N.d.r) che può scorrere i seguenti
  oggetti ( come un ciclo FOR)
• Viste
• DocumentCollection
• Array (es. La risultante di una @dbcolumn)
• Vettore (un elemento a dimensione dinamica )

n.b. La variabile del repeater è case sensitive, e dobbiamo stare
   attenti a generare il codice HTML corretto in funzione del repeat


                                                                   19
domino   point day2009



           Repeater Component




                                20
domino      point day2009




                     Core Component
  Nome Componente            Binding Domino
  EditBox                    Text/Number Field
  Date Time Picker           Date Time Field
  Label                      Computed Text
  RichText                   RichText Field
  File Upload                RichText Filed
  File Download              RichText Field
  ListBox                    ListBox Field
  CheckBox                   CheckBox Field
  RadioButton                RadioButton Field
  Button                     Button




                                                 21
domino   point day2009




               Core Component




                                22
domino      point day2009




               Come agire sui controlli...
In tutte le proprietà di un componente programmabili ( se appare un rombo azzurro a
    fianco della proprietà allora è possibile manipolare la stessa) è possibile agire con JSS
    (javascript server side) per manipolare per esempio:
• Visibilità
• Default Value
• URL ( componente link o immagine)
• e tutte le proprietà programmabili




                                                                                            23
domino     point day2009




             JSS ( javascript server side)
Non stravolge il modo di programmare Lotus, in quanto sono state messe a
   disposizione tutte le classi Domino (identiche a quelle LotusScript) e oltre il
   90% delle @formulas con la stessa nomenclatura di metodi e proprietà!
Inoltre JSS da la possibilità di utilizzare estensioni Java

(Esempio: John Mackey ha utilizzato la libreria JDBC per mettere insieme DB
   relazionali insieme ai dati Domino sulla stessa pagina)




                                                                                     24
domino   point day2009




                 Demo – catalog.nsf
Obiettivo: Un catalogo delle applicazioni alimentato dai BP
  accreditati consultabile dagli utenti web

Ruolo BP: Avere un pannello di controllo per inserire nuove
  applicazioni

Ruolo Utente: Accesso anomimo che sfoglia le applicazioni per
  categoria o per data



                                                                25
domino   point day2009




                         26
domino   point day2009




                     Demo Live!


                    Link Applicazione




                                        27
domino   point day2009




             Da cosa è composta
  Lato Domino ( back-End)
  - FormBP
  - Form Applicazione
  - Form Configurazione

  Lato Xpages ( front-End)
  - HomePage
  - ApplicationByCategory
  - BusinessPartner
  - Application

                                  28
domino       point day2009



 BP           type
 CodeBP       [text]
 NameBP       [text]
 AddressBP    [text]                 1:n        Application              type
                                                CodeBP                   [text]
 CapBP        [text]
                                                ApplicationDate          [date/time]
 CityBP       [text]
                                                ApplicationName          [text]
 ReferenceB   [text]
 P                                              ApplicationCategory      [listbox]
 URL Web      [text]                            ApplicationDescription   [richtext]
 Site
                                                ApplicationLogo          [richtext]
 LogoBP       [richtext]
                                                ApplicationScrenShot     [richtext]
 Username     [names]
                                                ApplicationBrochure      [richtext]



 Ogni Bp registrato potrà inserire N applicazioni nel sistema


                                                                                       29
domino         point day2009


             Pagina di partenza + layout
                                   4 Custom Control collegati:
                                   BannerDojo
                                   MenuBar
                                   ViewHomePage
                                   FooterApplication

 <div id="content">
    <div id="header">
    </div> <!--end header -->
    <div id="menu">
    </div> <!--- end menubar -->
    <div id="wrapper">
       <div id="menusx">
           MENU ACTION
       </div> <!--end menusx -->
                                        Template html
       <div id="centerbody">
           BODY OUTPUT
       </div> <!--centerbody -->
    </div> <!--end wrapper -->
    <div id="footer">
         FOOTER
    </div> <!--end footer -->
  </div> <!--end content -->



                                                                 30
domino   point day2009




                         31
domino   point day2009




                         Output
                         Xpages




    Code Source


                                  32
domino   point day2009




    InitApplication ( Homepage.xsp)




                                      33
domino   point day2009




             Login Dojo ( Controllo)




                                       34
domino   point day2009




                         35
domino   point day2009




                         36
domino   point day2009




           Come funziona Ajax login...
Esempio proposto da Jake Howlett blogger di CodeStore e codice
  scritto da Declan Lynch nel suo tutorial delle Xpages.

Utilizza la dijit.Dialog di Dojo per la finestra di inserimento delle
   credenziali

Effettua una chiama xhr.Post di Dojo ( ajax posting) per inviare le
   credenziali



                                                                        37
domino   point day2009




                         38
domino            point day2009


                   Layer nascosto into source code...
<div dojoType="dijit.Dialog" id="loginDialog" title="Effettuare il login"
execute="dominoLogin(arguments[0]);" style="display:none">
 <table>
    <tr>
      <td>
        <label for="username">Username:</label>
      </td>
      <td>
        <input dojoType="dijit.form.TextBox" type="text" name="username"
id="username" />
      </td>
    </tr>
    <tr>
      <td>
        <label for="password">Password:</label>
      </td>
      <td>
        <input dojoType="dijit.form.TextBox" type="password" name="password"
id="password" />
      </td>
    </tr>
    <tr>
      <td colspan="2" align="center">
        <input dojoType="dijit.form.TextBox" type="hidden" name="RedirectTo"
id="RedirectTo" value="/icons/view.gif" />
        <button dojoType="dijit.form.Button" type="submit"> OK</button>
      </td>
    </tr>
  </table>
</div>




                                                                               39
domino   point day2009




                         var a="<a
                         href="javascript:dijit.byId('lo
                         ginDialog').show()">Log in
                         Ajax</a>";
                          return a;




                                                             40
domino   point day2009




    Colonna dinamica in una vista
         Il logo e le informazioni del BP di una particolare
              applicazione viene tirato su dinamicamente
                    eseguendo codice JSS di esempio




                                                               41
domino   point day2009



                Codice colonna




                                 42
domino   point day2009




          Proprietà
         CategoryFilt
             er




                         ViewScope


                                     43
domino   point day2009




                 Validare i campi
  E’ tutto più facile con i componenti




                                         44
domino    point day2009




                 Debug applicazione...
Per avere un debugger verboso e non il classico errore 500 ...




                                                                 45
domino   point day2009




                Novità con la 8.5.1
  • Migliorate le performance!
  • Xpages eseguibili dal client Notes ( Xul Runner
    embeddato basata sull’engine Firefox 1.5)
  • SSO credenziali nel client
  • Editor JSS migliorato
  • Maggior stabilità ( nessun crash nello sviluppo
    applicativo!)
  • Dojo 1.3.2

                                                      46
domino   point day2009




                   Gzipping Html

  Tramite Proprierties dell’applicazione




                                           47
domino   point day2009




                       Vantaggi Xpages
  • Possibilità di “relazionare” in unica pagina dati proveniente da diverse
    sorgenti dati
  • Utilizzare le variabili Scopes
  • Utilizzare @formulas ( Sintassi Javascript)
  • Utilizzare tutte le classi Domino ( JS )
  • Richiamare le classi Java
  • Supporto Cross-browser ( grazie a Dojo)
  • Utilizzare widget dojo non implementati dai componenti esistenti
  • Temi
  • Inserire codice HTML nel Sorgente XML



                                                                               48
domino   point day2009




                  Svantaggi Xpages
  • Il packaging di Dojo (meno request=performance migliori)
  • La libertà di controllare l’output dei controlli ( Output SEO
    compliance)
  • Performance Java vs Agenti LS ( nella 8.5.1 è migliorato molto)
  • Il motore lato client è due generazioni indietro rispetto a
    quello Web ( Firefox 1.5)
  • Widget di Notes usano IE ( se devo fare una Xpages che sia
    usata come Widget devo far fronte a IE)



                                                                 49
domino   point day2009




            Cosa ci sarà nelle Rnext?
  • Binding diretto con Database relazionali
  • Come annunciato a Lotussphere ’09 supporto
    per Mobile Blackberry ( firmware 5.x)
  • Miglioramento di Dojo Package?
  • Miglioramento perfomance



                                             50
domino   point day2009




                  Documentazione...
  http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm
  http://xpagesblog.com/
  http://www-10.lotus.com/ldd/ddwiki.nsf
  http://www.jmackey.net/
  http://www.planetlotus.org ( cercate Xpages)




                                                                   51
domino   point day2009




   Platinum Sponsor




   Gold Sponsor

Contenu connexe

Similaire à Xpages, cosa ci sarà in questa nuova tecnologia

Smau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSmau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSMAU
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store appsDotNetCampus
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTMLEnrico Mainero
 
Corso sharepoint D2
Corso sharepoint D2Corso sharepoint D2
Corso sharepoint D2Decatec
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Andrea Dottor
 
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modelingMarco Parenzan
 
Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Giuseppe Vizzari
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Fabio Armani
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptSinergia Totale
 
5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)Giuseppe Vizzari
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoGiuneco S.r.l
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Andrea Agnoletto
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione webQabiria
 
Novità in Visual Studio 2012
Novità in Visual Studio 2012Novità in Visual Studio 2012
Novità in Visual Studio 2012Sinergia Totale
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 

Similaire à Xpages, cosa ci sarà in questa nuova tecnologia (20)

Smau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del ceroSmau milano 2012 massimiliano del cero
Smau milano 2012 massimiliano del cero
 
Cert04 70-484 - essentials of developing windows store apps
Cert04   70-484 - essentials of developing windows store appsCert04   70-484 - essentials of developing windows store apps
Cert04 70-484 - essentials of developing windows store apps
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTML
 
#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)#dd12 Applicazioni a tre voci (Android e Domino)
#dd12 Applicazioni a tre voci (Android e Domino)
 
Corso sharepoint D2
Corso sharepoint D2Corso sharepoint D2
Corso sharepoint D2
 
cv Armando Maglio
cv Armando Magliocv Armando Maglio
cv Armando Maglio
 
DDive11 - Notes Moon Attack
DDive11 - Notes Moon AttackDDive11 - Notes Moon Attack
DDive11 - Notes Moon Attack
 
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
 
2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling2010.05.21 introducing sql server modeling
2010.05.21 introducing sql server modeling
 
Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19
 
Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)Design Patterns - enterprise patterns (part I)
Design Patterns - enterprise patterns (part I)
 
Kotlin hexagonal-architecture
Kotlin hexagonal-architectureKotlin hexagonal-architecture
Kotlin hexagonal-architecture
 
8 Www2009 Parte2
8 Www2009 Parte28 Www2009 Parte2
8 Www2009 Parte2
 
DotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScriptDotNetToscana - Sessione TypeScript
DotNetToscana - Sessione TypeScript
 
5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)5 - Introduzione al Web (2/2)
5 - Introduzione al Web (2/2)
 
Blazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo GrecoBlazor with .net 5 - di Gerardo Greco
Blazor with .net 5 - di Gerardo Greco
 
Blazor: are we ready for the launch?
Blazor: are we ready for the launch?Blazor: are we ready for the launch?
Blazor: are we ready for the launch?
 
Introduzione alla localizzazione web
Introduzione alla localizzazione webIntroduzione alla localizzazione web
Introduzione alla localizzazione web
 
Novità in Visual Studio 2012
Novità in Visual Studio 2012Novità in Visual Studio 2012
Novità in Visual Studio 2012
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 

Plus de Dominopoint - Italian Lotus User Group

IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...Dominopoint - Italian Lotus User Group
 

Plus de Dominopoint - Italian Lotus User Group (20)

TOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in DominoTOTP - Time-Based One Time password in Domino
TOTP - Time-Based One Time password in Domino
 
Domino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo TaskDomino Backup V12 - Un nuovo Task
Domino Backup V12 - Un nuovo Task
 
Mail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-PremisesMail Client from Traveler to Verse On-Premises
Mail Client from Traveler to Verse On-Premises
 
IBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversationsIBM Worspace: Towards a culture of conversations
IBM Worspace: Towards a culture of conversations
 
Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)Microsoft Outlook for Domino (IMSMO)
Microsoft Outlook for Domino (IMSMO)
 
Riding the Enterprise Integration train
Riding the Enterprise Integration trainRiding the Enterprise Integration train
Riding the Enterprise Integration train
 
Ortocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su BluemixOrtocloud l'applicazione per fare orto su Bluemix
Ortocloud l'applicazione per fare orto su Bluemix
 
Meetit16 KeyNote di Apertura
Meetit16 KeyNote di AperturaMeetit16 KeyNote di Apertura
Meetit16 KeyNote di Apertura
 
IBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with AngularjsIBM Domino Modernizing apps with Angularjs
IBM Domino Modernizing apps with Angularjs
 
IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...IBM Connections How to use existing data to increase adoption success with IB...
IBM Connections How to use existing data to increase adoption success with IB...
 
Cloudant e XPages
Cloudant e XPagesCloudant e XPages
Cloudant e XPages
 
IBM Bluemix
IBM BluemixIBM Bluemix
IBM Bluemix
 
IBM Connections 10 things every user should know
IBM Connections 10 things every user should knowIBM Connections 10 things every user should know
IBM Connections 10 things every user should know
 
IBM Verse New Way To Work
IBM Verse New Way To WorkIBM Verse New Way To Work
IBM Verse New Way To Work
 
Crossware MailSignature
Crossware MailSignatureCrossware MailSignature
Crossware MailSignature
 
Cooperteam soluzioni
Cooperteam soluzioniCooperteam soluzioni
Cooperteam soluzioni
 
Notes and Domino Roadmap
Notes and Domino RoadmapNotes and Domino Roadmap
Notes and Domino Roadmap
 
La Collaborazione Europea
La Collaborazione EuropeaLa Collaborazione Europea
La Collaborazione Europea
 
the future of work
the future of workthe future of work
the future of work
 
Bluemix Cloud Platform - dominopoint
Bluemix Cloud Platform - dominopointBluemix Cloud Platform - dominopoint
Bluemix Cloud Platform - dominopoint
 

Dernier

Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoQuotidiano Piemontese
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 

Dernier (9)

Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Programma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 TorinoProgramma Biennale Tecnologia 2024 Torino
Programma Biennale Tecnologia 2024 Torino
 
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 

Xpages, cosa ci sarà in questa nuova tecnologia

  • 1. Xpages Cosa ci sarà in questa nuova tecnologia Autore: DanieleGrillo Professione: Domino Developer
  • 2. domino point day2009 Agenda •Cosa sono le Xpages •Da dove arrivano •Componenti fondamentali •Linguaggio di sviluppo ( Client Side / Server Side) •Esempio Applicazione ( Catalog.nsf) •Utilizzo in locale ( novità della 8.5.1) •Suggerimenti •Cosa ci aspetta per il futuro? 2
  • 3. domino point day2009 Cosa sono le Xpages • Un componente aggiuntivo di Lotus Designer • Un framework di sviluppo basato su componenti ( come i più comuni linguaggi visuali di programmazione) • Tecnologia JSF ( java server faces) • Sfruttano il back-end dei dati Lotus Domino (per ora...) • Una soluzione Easy per lo sviluppo di applicazioni Web • Estensione engine HTTP di Domino • Nascono con la R 8.5 ( meglio usarle nella 8.5.1) 3
  • 4. domino point day2009 Xpages + Dojo 4
  • 5. domino point day2009 Modello MVC Le Xpages utilizzano il concetto di Model View Control • L’MVC è la separazione della base dati, dalla logica applicativa di un’applicazione e dall’interfaccia . • Impone al programmatore ( ed è un bene) a separare nettamente la logica applicativa dall’interfaccia e i dati. • E’ Più facile mantenere nel tempo l’applicazione • E’ un concetto... 5
  • 6. domino point day2009 MVC a confronto Control Control Lotusscript + @formulas Javascrip ( server-side + front side) +Agenti View View Sono le Xpages Sono le Form, Viste, Navigatori, Frameset, Pages, Agent Model Sono le Form di Notes Model ( per ora) Sono le Form di Notes XPAGES DOMINO CLASSICO 6
  • 7. domino point day2009 Da dove arrivano • Progetto IBM Workplace nato nel 2002 ed abbandonato nel 2007 • Xpages sono la Lotus Component Designer • Component Designer Runtime diventa XSP Runtime 7
  • 8. domino point day2009 Da cosa sono composte • Controlli ( Core, Container, Altri) • Componenti ( blocchi di codice riutilizzabili, concetto simile alle sub.form) • Sorgente dati ( per ora Form di domino e viste) • Altro ( CSS, codice X/HTML aggiuntivo, JS) 8
  • 9. domino point day2009 I Controlli Oggetti già pronti all’uso che si inseriscono nella Xpages con semplici trascinamenti sulla pagina ( drag&drop) 9
  • 10. domino point day2009 Controlli personalizzati Rappresentano blocchi applicativi riusabili. Esempio: Footer, Header..etc.. 10
  • 11. domino point day2009 Sorgente dati Rappresenta la sorgente dati alla quale ci si collega per gestire il binding dei dati dalla Xpages al back-end. Il bindig è l’associazione con la sorgente dati....non è più “ovvia” la relazione FORM/CAMPO 11
  • 12. domino point day2009 Codice X/HTML nel sorgente XML 12
  • 13. domino point day2009 I TEMI Meta fogli di stile che vengono applicati al rendering delle xpages prima che vengano applicati i fogli di stile delle stesse. Prima ancora di essere mandato al browser viene applicato il tema che può eseguire codice JSS per decidere cosa servire...esempio in base Browser utilizzato nell’header di una richiesta 13
  • 14. domino point day2009 14
  • 15. domino point day2009 Variabili Scope Permettono finalmente di utilizzare variabili d’ambiente senza utilizzare campi, documenti profilo o workaround vari (cookies etc..) • SessionScope: variabili di sessione validi per ogni sessione istanziata da ogni utente collegato ( vive all’apertura della sessione e muore alla chiusura) • ApplicationScope variabile globale fin tanto che è aperta l’applicazione è globale a qualunque sessione utente • ViewScope variabile valida localmente nella componente View corrente • RequestScope variabile che esiste per la pagina corrente 15
  • 16. domino point day2009 3 elementi... • View Component • Repeater Component • Core Component 16
  • 17. domino point day2009 View Component • Ha le funzioni 1:1 vista Domino ( checkbox, ordinamenti, valori) • E’ personalizzabile • Ha diverse proprietà per effettuare ricerche, filterbyCategory • Ha un pager di navigazione personalizzabile • Valore colonne programmabili dinamicamente 17
  • 18. domino point day2009 View Component 18
  • 19. domino point day2009 Repeater Component Un componente (fantastico! N.d.r) che può scorrere i seguenti oggetti ( come un ciclo FOR) • Viste • DocumentCollection • Array (es. La risultante di una @dbcolumn) • Vettore (un elemento a dimensione dinamica ) n.b. La variabile del repeater è case sensitive, e dobbiamo stare attenti a generare il codice HTML corretto in funzione del repeat 19
  • 20. domino point day2009 Repeater Component 20
  • 21. domino point day2009 Core Component Nome Componente Binding Domino EditBox Text/Number Field Date Time Picker Date Time Field Label Computed Text RichText RichText Field File Upload RichText Filed File Download RichText Field ListBox ListBox Field CheckBox CheckBox Field RadioButton RadioButton Field Button Button 21
  • 22. domino point day2009 Core Component 22
  • 23. domino point day2009 Come agire sui controlli... In tutte le proprietà di un componente programmabili ( se appare un rombo azzurro a fianco della proprietà allora è possibile manipolare la stessa) è possibile agire con JSS (javascript server side) per manipolare per esempio: • Visibilità • Default Value • URL ( componente link o immagine) • e tutte le proprietà programmabili 23
  • 24. domino point day2009 JSS ( javascript server side) Non stravolge il modo di programmare Lotus, in quanto sono state messe a disposizione tutte le classi Domino (identiche a quelle LotusScript) e oltre il 90% delle @formulas con la stessa nomenclatura di metodi e proprietà! Inoltre JSS da la possibilità di utilizzare estensioni Java (Esempio: John Mackey ha utilizzato la libreria JDBC per mettere insieme DB relazionali insieme ai dati Domino sulla stessa pagina) 24
  • 25. domino point day2009 Demo – catalog.nsf Obiettivo: Un catalogo delle applicazioni alimentato dai BP accreditati consultabile dagli utenti web Ruolo BP: Avere un pannello di controllo per inserire nuove applicazioni Ruolo Utente: Accesso anomimo che sfoglia le applicazioni per categoria o per data 25
  • 26. domino point day2009 26
  • 27. domino point day2009 Demo Live! Link Applicazione 27
  • 28. domino point day2009 Da cosa è composta Lato Domino ( back-End) - FormBP - Form Applicazione - Form Configurazione Lato Xpages ( front-End) - HomePage - ApplicationByCategory - BusinessPartner - Application 28
  • 29. domino point day2009 BP type CodeBP [text] NameBP [text] AddressBP [text] 1:n Application type CodeBP [text] CapBP [text] ApplicationDate [date/time] CityBP [text] ApplicationName [text] ReferenceB [text] P ApplicationCategory [listbox] URL Web [text] ApplicationDescription [richtext] Site ApplicationLogo [richtext] LogoBP [richtext] ApplicationScrenShot [richtext] Username [names] ApplicationBrochure [richtext] Ogni Bp registrato potrà inserire N applicazioni nel sistema 29
  • 30. domino point day2009 Pagina di partenza + layout 4 Custom Control collegati: BannerDojo MenuBar ViewHomePage FooterApplication <div id="content"> <div id="header"> </div> <!--end header --> <div id="menu"> </div> <!--- end menubar --> <div id="wrapper"> <div id="menusx"> MENU ACTION </div> <!--end menusx --> Template html <div id="centerbody"> BODY OUTPUT </div> <!--centerbody --> </div> <!--end wrapper --> <div id="footer"> FOOTER </div> <!--end footer --> </div> <!--end content --> 30
  • 31. domino point day2009 31
  • 32. domino point day2009 Output Xpages Code Source 32
  • 33. domino point day2009 InitApplication ( Homepage.xsp) 33
  • 34. domino point day2009 Login Dojo ( Controllo) 34
  • 35. domino point day2009 35
  • 36. domino point day2009 36
  • 37. domino point day2009 Come funziona Ajax login... Esempio proposto da Jake Howlett blogger di CodeStore e codice scritto da Declan Lynch nel suo tutorial delle Xpages. Utilizza la dijit.Dialog di Dojo per la finestra di inserimento delle credenziali Effettua una chiama xhr.Post di Dojo ( ajax posting) per inviare le credenziali 37
  • 38. domino point day2009 38
  • 39. domino point day2009 Layer nascosto into source code... <div dojoType="dijit.Dialog" id="loginDialog" title="Effettuare il login" execute="dominoLogin(arguments[0]);" style="display:none"> <table> <tr> <td> <label for="username">Username:</label> </td> <td> <input dojoType="dijit.form.TextBox" type="text" name="username" id="username" /> </td> </tr> <tr> <td> <label for="password">Password:</label> </td> <td> <input dojoType="dijit.form.TextBox" type="password" name="password" id="password" /> </td> </tr> <tr> <td colspan="2" align="center"> <input dojoType="dijit.form.TextBox" type="hidden" name="RedirectTo" id="RedirectTo" value="/icons/view.gif" /> <button dojoType="dijit.form.Button" type="submit"> OK</button> </td> </tr> </table> </div> 39
  • 40. domino point day2009 var a="<a href="javascript:dijit.byId('lo ginDialog').show()">Log in Ajax</a>"; return a; 40
  • 41. domino point day2009 Colonna dinamica in una vista Il logo e le informazioni del BP di una particolare applicazione viene tirato su dinamicamente eseguendo codice JSS di esempio 41
  • 42. domino point day2009 Codice colonna 42
  • 43. domino point day2009 Proprietà CategoryFilt er ViewScope 43
  • 44. domino point day2009 Validare i campi E’ tutto più facile con i componenti 44
  • 45. domino point day2009 Debug applicazione... Per avere un debugger verboso e non il classico errore 500 ... 45
  • 46. domino point day2009 Novità con la 8.5.1 • Migliorate le performance! • Xpages eseguibili dal client Notes ( Xul Runner embeddato basata sull’engine Firefox 1.5) • SSO credenziali nel client • Editor JSS migliorato • Maggior stabilità ( nessun crash nello sviluppo applicativo!) • Dojo 1.3.2 46
  • 47. domino point day2009 Gzipping Html Tramite Proprierties dell’applicazione 47
  • 48. domino point day2009 Vantaggi Xpages • Possibilità di “relazionare” in unica pagina dati proveniente da diverse sorgenti dati • Utilizzare le variabili Scopes • Utilizzare @formulas ( Sintassi Javascript) • Utilizzare tutte le classi Domino ( JS ) • Richiamare le classi Java • Supporto Cross-browser ( grazie a Dojo) • Utilizzare widget dojo non implementati dai componenti esistenti • Temi • Inserire codice HTML nel Sorgente XML 48
  • 49. domino point day2009 Svantaggi Xpages • Il packaging di Dojo (meno request=performance migliori) • La libertà di controllare l’output dei controlli ( Output SEO compliance) • Performance Java vs Agenti LS ( nella 8.5.1 è migliorato molto) • Il motore lato client è due generazioni indietro rispetto a quello Web ( Firefox 1.5) • Widget di Notes usano IE ( se devo fare una Xpages che sia usata come Widget devo far fronte a IE) 49
  • 50. domino point day2009 Cosa ci sarà nelle Rnext? • Binding diretto con Database relazionali • Come annunciato a Lotussphere ’09 supporto per Mobile Blackberry ( firmware 5.x) • Miglioramento di Dojo Package? • Miglioramento perfomance 50
  • 51. domino point day2009 Documentazione... http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm http://xpagesblog.com/ http://www-10.lotus.com/ldd/ddwiki.nsf http://www.jmackey.net/ http://www.planetlotus.org ( cercate Xpages) 51
  • 52. domino point day2009 Platinum Sponsor Gold Sponsor