Pubblicato il 6 febbraio 2014 da Alessio Stalla

È uscita una nuova anteprima!

Quando abbiamo rilasciato Portofino 4.1.beta4, un'anteprima del prossimo Portofino 4.1, eravamo ancora nell'estate del 2013. Sono passati alcuni mesi, è arrivato il nuovo anno... molti hanno scaricato la beta4, alcuni di questi hanno lasciato dei commenti sulla nostra lista o direttamente a noi, e possiamo dire con gioia che la direzione che abbiamo preso è stata generalmente accolta molto positivamente. Nel mentre, abbiamo continuato a migliorare Portofino, e siamo ormai pronti per condividere un'anteprima aggiornata, Portofino 4.1.beta6. La si può scaricare e provare subito, è sufficientemente stabile.

I nostri obiettivi per la beta6 erano di costruire sulle fondamenta poste con la beta4 (moduli, Bootstrap, ecc.), validare le nostre scelte progettuali e revisionarle quando necessario, semplificare le cose ove possibile. Abbiamo anche riscritto la nostra applicazione demo-tt per creare un ticket tracker moderno che possa servire da buon esempio di ciò che si può fare con l'ultimo Portofino, sia con le pagine standard che con le personalizzazioni, e che non sia un giocattolo, ma un'applicazione reale che vogliamo usare noi stessi. Rimanete sintonizzati per ulteriori informazioni!

Cambiamenti nella 4.1.beta6

Ecco un riassunto dei cambiamenti più importanti dalla beta4 alla beta6.

Cambiamenti per gli utenti finali

Gli utenti delle applicazioni realizzate con Portofino apprezzeranno diversi miglioramenti all'interfaccia utente:

  • Form più sicure: una finestra di dialogo compare per confermare l'abbandono della pagina se ci sono dati non salvati. Lato client, invii multipli della stessa form vengono impediti.
  • Nuovi template di pagina che sfruttano i componenti tab e "well" di Bootstrap
  • La nuova pagina a flusso di attività, un componente usato molto spesso nei social network ma applicabile in un ampio ventaglio di casi, che mostra una lista di elementi (ad es. post, commenti, eventi di log, ...) in modo gradevole.
  • Nelle pagine CRUD, si possono cercare i valori nulli, gli utenti hanno quindi la possibilità di fare query più elaborate (possono richiedere tutti i record per cui un certa proprietà non è valorizzata).
  • Sicurezza più amichevole con la funzionalità "ricordati di me". Gli utenti possono scegliere di essere ricordati dal sistema (usando un cookie). Le operazioni sensibili richiedono comunque di autenticarsi con la password.
  • Gli export Pdf e Excel non sono più presenti di default nelle pagine CRUD. Abbiamo visto che tipicamente nelle nostre applicazioni li disabilitiamo o, talvolta, li reimplementiamo. Abbiamo mantenuto il codice di esportazione sotto forma di utility generiche in Elements per esportare un qualsiasi Form o TableForm in pdf e excel.
  • Abbiamo corretto un paio di bug nei selection provider e nei campi autocomplete per un'esperienza utente ancora più valida.

Organizzazione più semplice e coerente

Per questa release abbiamo lavorato molto "sotto il cofano". Le modifiche seguenti non sono direttamente visibili agli utenti finali e agli sviluppatori meno esperti, ma sono miglioramenti importanti per chi lavora con Portofino in modo più approfondito (inclusi noi di ManyDesigns!).

  • La directory apps non esiste più. Un'applicazione è ora un file .war standard con qualche directory specifica di Portofino in WEB-INF.
  • Abbiamo definito precisamente la suddivisione in moduli.
  • Abbiamo adottato delle convenzioni (per i file nei moduli, le stringhe di internazionalizzazione, ecc.) per organizzare le risorse in modo coerente e predicibile, in modo che sia più facile trovare ciò che si cerca.
  • La configurazione ora è unificata nel file portofino.properties (senza mail.properties e app.properties separati). Opzionalmente, si può usare un file portofino-local.properties per sovrascrivere le chiavi di configurazione specifiche per il proprio ambiente; tale file dovrebbe rimanere non gestito dal software di versionamento.

Maven

Abbiamo continuato a investire su Maven come strumento per lavorare con Portofino. Come sempre, non è obbligatorio usare Maven - si può sempre adottare l'approccio "stile PHP" di modificare direttamente una webapp installata. Tuttavia, per gli utenti Maven, ci sono alcune notizie importanti:

  • Portofino è su Maven Central! Estratto da un pom.xml di un progetto reale basato su Portofino:
    <dependency>
      <groupId>com.manydesigns</groupId>
      <artifactId>portofino-database</artifactId>
    </dependency>
    <dependency>
      <groupId>com.manydesigns</groupId>
      <artifactId>portofino-mysql</artifactId>
    </dependency>
    <dependency>
      <groupId>com.manydesigns</groupId>
      <artifactId>portofino-crud</artifactId>
    </dependency>
    
  • Da questa versione forniamo un archetype di Maven per creare velocemente nuovi progetti con Portofino. Assicuratevi di guardare il pom.xml generato per avere una lista di moduli che possono essere abilitati o disabilitati nella vostra applicazione. Ogni modulo presenta un breve commento che lo descrive.

Vale anche la pena notare (ed eventualmente espandere in un articolo dedicato, se c'è interesse) che si può avere il meglio dei due mondi - build automatizzate e ripetibili con Maven e uno sviluppo "live" stile PHP - combinando Maven & l'IDE di vostra scelta con uno strumento come Unison per tenere sincronizzati la webapp installata e il codice sorgente senza rifare il deploy tutte le volte (almeno fintanto che non si scrivono classi Java o si modificano le dipendenze).

Temi e template

Il tema dell'interfaccia utente ora è un modulo .jar (era un .war). Per gli utenti Maven, questo significa che non è più necessario usare gli overlay - una webapp di Portofino è un normale artefatto war con dipendenze jar. Per chi non usa Maven, non cambia nulla, a parte il fatto che i file jsp del tema ora sono nascosti dentro portofino-theme.jar invece che espansi nella directory della webapp.

Il fatto che il tema è un jar implica che si può usare la gestione delle risorse standard della Servlet API 3.0 per sovrascrivere qualsiasi file del tema (come pagine jsp, script js, file css). Questo è un meccanismo flessibile che rimpiazza il sistema di menu che avevamo introdotto nella beta4: i menu si possono configurare a piacere (con logica personalizzata, se necessario) modificando /theme/header.jsp.

I template delle pagine sono più semplici, consistono di soli due file. La struttura dei template è stata semplificata e razionalizzata. I moduli possono registrare i propri template, per cui se avete un bel set di template e volete utilizzarli su più applicazioni o condividerli con altre persone potete facilmente pacchettizzarli e distribuirli come modulo.

Scaricalo!

Ti invitiamo a provare questa anteprima di Portofino 4.1; puoi scaricarla da SourceForge. Se hai problemi o suggerimenti, vieni sui nostri community forum.

 

comments powered by Disqus