2011-11-25 11 views
11

Sono nuovo di Scala e di Play, e sto considerando di utilizzarle per un nuovo progetto. Vedo che lo sviluppo di Play 2 sta procedendo bene, sebbene la versione stabile sia ancora 1.x. E ci sono substantial differences tra i due.Le opzioni di oggi per un percorso di migrazione più semplice per giocare 2

Quello che mi chiedo è, se avvio subito un progetto Play 1.x, quali opzioni posso prendere per facilitare la migrazione a Play 2 in futuro?

Vale a dire:

  • Play 2 utilizza Ebean come ORM predefinito, vuoi consigliarmi di usarlo al posto del ORM Play 1.x (Hibernate)?
  • E il sistema di template; tutto ciò che posso fare ora per rendere più facile la migrazione in seguito?
  • Di che altro dovrò preoccuparmi quando deciderò di trasferire la mia app su Play 2 in futuro?

risposta

5

Sulla migrazione stessa:

  • Ci sono piani per migrare i modelli Groovy di giocare 2 (credo sia lavori in corso). Puoi mitigare questo è iniziare a utilizzare Play 1.x con Scala, poiché il sistema di template sarà quello di Scala.
  • Cambiare da Hibernate a Ebean dovrebbe essere facile a meno che non si utilizzino estensioni specifiche di Hibernate.
  • La configurazione e alcuni lavori (come @OnApplicationStart) possono cambiare, ma questo dovrebbe essere abbastanza facile da portare (spostarli semplicemente).
  • Ci saranno cambiamenti nel modo in cui si accede a rotte e risorse, il che potrebbe fornire un ulteriore lavoro per adattare codice/modelli.

In generale non dovrebbe essere troppo complesso, ma come dice @lacy, dipende dalle scadenze e dal progetto stesso. Se si tratta di un progetto critico, da terminare prima del prossimo marzo 2012, andrei con Play 1.x. Se si tratta di un progetto meno importante, che potrebbe essere ritardato, e che in ogni caso non verrà rilasciato prima di marzo 2012, prova Play 2.0.

+0

Quindi, quello che stai dicendo è che, se uso la versione scala di Play 1.x, i miei modelli saranno compatibili con Play 2 pronto all'uso? –

+0

E, per quanto riguarda l'ORM, lo stesso vale finché rimango lontano dalle estensioni di ibernazione? –

+0

@Filipe Correia se usi Scala, sì, i modelli sembrano essere compatibili (è beta, questo può cambiare, ma niente di sicuro). Su ORM, EBean è compatibile con JFA AFAIK, quindi non dovresti avere problemi. –

0

Questo è tutto sulle scadenze del progetto. Play2 arriverà presto e alcuni componenti sembrano già abbastanza stabili. Quindi, se il tempo lo consente, ti consiglierei di usare Play2. Di recente ha cambiato lo stato in Beta. Diversi giorni fa Guillaume ha creato un utile wiki su Github. Puoi anche prestare attenzione agli esempi nelle fonti di Play2. E, come ho capito, non ci saranno linee guida per la migrazione da Play1X a Play2.

+0

Mentre saltare direttamente a Play 2 eviterebbe certamente qualsiasi problema di migrazione, tutti i membri del team saranno nuovi a Scala e a PLay, e preferisco evitare qualsiasi attrito aggiuntivo. Quindi, sono abbastanza sicuro di voler ancora usare Play 1.x. per questo progetto, ma voglio minimizzare qualsiasi sforzo di migrazione che avremo quando Play 2 è pronto per la produzione.Da qui la mia domanda, quali opzioni/linee guida/convenzioni dovrei usare per facilitare questa transizione? –

1

Non mi preoccuperei nemmeno di usare Play2 sul progetto per il momento. Manca ancora alcune funzionalità e anche se lo sviluppo sta andando avanti, vorrei rimanere con Play 1.2.x. Anche se devo ammettere che è tentato di provare 2.0.

Ma non sceglierei mai la soluzione intermedia. Avvio in Play 1.2.x e tentativo di migrare verso 2.0.0. Si chiama Semantic Versionning. Quando il numero maggiore aumenta, non c'è compatibilità con le versioni precedenti. Vale a dire, si usa play 1.2.x o Play 2.0. Provare a migrare ti causerà più stress, problemi che vorresti.

+1

Beh, immagino dipenda, giusto? Spero che ci sia un momento in cui i vantaggi di Play 2 supereranno il costo del porting da 1.x. Il mio problema è, cosa posso fare ora per assicurarmi che il costo sia il più basso possibile, anche se non è trascurabile. –

Problemi correlati