Domanda

Il mio stack di sviluppo attuale è MySQL + iBatis + molla + Primavera BlazeDS Integrazione 1.01 + BlazeDS 3.2 e Flex 3 con Mate 0.8.9 quadro. Ora Flash Builder 4 beta 2 è fuori. Ci sono funzioni interessanti come Data Centric Development (DCD), generazione di form ecc ... Sai come funziona primavera BlazeDS Integrazione con BlazeDS 4? Che dire di Mate? C'è qualche problema con Flex 4? Come DCD adatta con eventmaps compagno. So che è meglio provare fuori io stesso, ma voglio solo per controllare se qualcuno mai provato a migrare Flex 4. Se sì, quali sono i problemi? Avete notato alcun produttività accelerare? Grazie.

È stato utile?

Soluzione

Non posso dire nulla circa la migrazione dei componenti di terze parti. Non faccio uso di quelli che hai citato.

Vi posso dire, però, che non sarà in grado di caricare semplicemente il vostro progetto esistente fino in Flash Builder 4, modificare l'SDK per 4,0, e si aspettano di ricompilare. Un numero enorme di cose sono cambiate in Flex 4, spesso incompatili.

Qui ci sono quelli che ho incontrato finora:

  • Si dispone ora di due librerie di componenti parallele, Spark e MX. MX è la vecchia libreria di componenti Flex 3, a volte chiamato Halo, anche se questo è tecnicamente solo il nome della skin di default. Spark è la nuova libreria di componenti Flex 4, che sostituisce parzialmente MX.

    Lo fanno interoperare. Si è permesso di utilizzare sia in una singola applicazione, e si possono fare cose come componenti Spark messo in MX contenitori di layout come ViewStack. Ci sono anche le divisioni naturali in un'applicazione in cui è possibile avere un lato usando Spark, l'altra MX, senza preoccuparsi di problemi perché non interoperare a livello GUI. Le finestre di dialogo sono così, per esempio.

    Il motivo che hanno fatto tutto questo è a sostegno di questa roba nuova skin che avete sentito parlare: Flash Catalyst , FXG , e tutto il resto. Se si utilizza il magazzino pelle Halo, non vedo che le questioni di Spark a te, a parte il fatto che si tratta di Il futuro .

    (A parte:? Qual è la sintassi Markdown per ottenere l'effetto di eco rimbombante Wizard-of-Oz)

    Joan Lafferty (Flex SDK Quality Lead) ha un articolo di valore, Differenze tra Flex 3 e Flex 4 . Su pagina 4 , ha una tabella che elenca i componenti Flex 3 MX che non sono stati sostituiti da componenti Spark in Flex 4. la maggior parte di questi non hanno l'aspetto di loro, come Accordion, quindi non è necessario per la pelle loro, o sono cose come le finestre di dialogo, come Alert. (Si consiglia di leggere il resto di questo articolo. Esso copre le cose non lo faccio, perché non ho incontrato tutte le differenze ancora.)

  • A proposito di pelli, solo due delle pelli MX da Flex 3 sono ancora supportati in Flex 4. I più colorata pelli MX sono andati, anche se v'è una nuova serie di coloratissimi pelli Spark-based che mostrare alcune delle cose che si possono fare con FXG e così via. Se davvero piaciuto uno di quelli che rimossi, si può senza dubbio ricrearli in cima a Spark, ma non è disponibile out of the box.

  • Molte cose sono state rinominato , e qualche scintilla sostituzioni per i componenti MX hanno interfacce diverse e così hanno nomi diversi . Ad esempio, per spostare interamente a Spark, dovrete cambiare i vostri VBoxes a VGroups. Ci sono un sacco di differenze fastidiosi piccoli del genere.

  • A causa di tutta la doppia cosa libreria GUI, Adobe si sono trovati con un gruppo di tag MXML come <Script> e <Style> che non sono in realtà parte di MX, che funzionano altrettanto bene per Spark. Piuttosto che avere un duplicato dei tag, si trasferirono questi ad un nuovo spazio dei nomi XML. Questo è un problema per chi fa la migrazione a tratti di applicazioni basate su MX esistenti, perché significa che si sta ancora utilizzando l'alias mx per la libreria di componenti MX, in modo da questi tag che sono comuni a entrambe le librerie tutti devono essere rinominato. La nuova impostazione predefinita namespace XML per questi tag è fx, quindi ogni <mx:Script> deve essere rinominatoa <fx:Script>, e così via. L'IDE non lo fa per voi su come importare il progetto. Basta trovare uno per uno, come si tenta di ottenere il vostro progetto importato per costruire.

    Se avete in programma di passare interamente a Spark, si può evitare qualche dolore qui. Invece di accettare l'alias namespace fx di default sui non-MX tag, è possibile lasciarlo continuare ad utilizzare mx, dal momento che non sarà necessario che per MX, e Spark usa s come il suo predefinito.

    Il vostro primo compito dopo l'installazione di Flash Builder 4 dovrebbe essere quello di generare un nuovo progetto fresca in modo da poter studiare e copiare e incollare le cose come queste dichiarazioni di namespace da esso.

  • Un'altra ricaduta di tutta la MX vs. Spark e namespace pasticcio è che il vostro CSS potrebbe essere necessario tweaking. Flex ha un'estensione non standard CSS per questo, che assomiglia a questo:

    @namespace mx "library://ns.adobe.com/flex/mx";
    mx|Application {
        ....
    
  • Tutte le URL dello spazio dei nomi sono cambiati sia tra Flex 3 e Flex 4, e in almeno un caso cambiato di nuovo durante il processo di beta Flex 4.

    http://www.adobe.com/2006/mxml è ora http://ns.adobe.com/mxml/2009 library://ns.adobe.com/flex/halo è ora library://ns.adobe.com/flex/mx

  • Il modulo local() per specificare i nomi dei font incorporati con il loro nome comune in CSS non funziona più. Devi usare modulo url() e dare il percorso del file di font.

    Una trappola di stare attenti è che questo significa che se si sta incorporando molteplici varianti di un unico tipo di carattere (ad esempio normale e pesi in grassetto) il codice precedente di cui lo stesso nome del font, ma quello nuovo punterà a due diversi file, in quanto i due pesi non sono nella stessa .ttf o il file .otf. Per esempio, questo:

    @font-face {
        src: local("Verdana");
        fontFamily: VerdanaEmbedded;
        fontWeight: normal;
    }
    @font-face {
        src: local("Verdana");
        fontFamily: VerdanaEmbedded;
        fontWeight: bold;
    }
    

    deve essere modificato in questo modo:

    @font-face {
        src: url("/Library/Fonts/Verdana.ttf");
        fontFamily: VerdanaEmbedded;
        fontWeight: normal;
    }
    @font-face {
        src: url("/Library/Fonts/Verdana Bold.ttf");
        fontFamily: VerdanaEmbedded;
        fontWeight: bold;
    }
    

    In Flex 3, il compilatore indovinato quali file due caratteri .ttf il codice precedente si riferisce base all'attributo fontWeight. In Flex 4, il compilatore rende gli si dice in modo esplicito.

  • Se si incorpora tipi di carattere nell'applicazione e continuare a utilizzare i controlli MX, il testo è probabile che sia scomparire o ripristinare il carattere predefinito. Questo perché, per impostazione predefinita, Flex 4 utilizza un tipo di carattere diverso embedding meccanismo sotto il cofano per sostenere il miglioramento dei caratteri motore di rendering in Flash Player 10. Per incorporare un carattere nel modo più vecchio in modo che i vecchi controlli MX possono ancora usare, è necessario impostare l'attributo embedAsCFF CSS per false.

  • Il meccanismo di Stati è completamente diverso. Questo codice di Flex 3:

    <mx:State name="alternate">
        <mx:SetProperty target="{myField}" name="editable" value="false"/>
    </mx:State>
    ....
    <mx:Form ...>
        <mx:TextInput id="myField"/>
        ....
    </mx:Form>
    

    diventa presente in Flex 4:

    <mx:State name="alternate"/>
    ....
    <mx:Form ...>
        <mx:TextInput id="myField" editable.alternate="false"/>
        ....
    </mx:Form>
    

    Il nuovo modo ha più senso per me, dal momento che mette tutti i singoli stati componenti nel tag componente stesso, invece di strada fino alla parte superiore del file MXML in un blocco <mx:State> prolisso, ma il porting per il nuovo meccanismo è un po 'di grind. La conversione non è automatizzato dal IDE, anche se potrebbe essere veramente.

  • Ci sono alcuni tag non sono più ammessi come figli diretti del tag <Application>. Questi rientrano in diverse categorie: validatori, effetti, ecc Si hanno ora di confezionare questi su in un nuovo tag <fx:Declarations>, in questo modo:

    <fx:Declarations>
        <mx:Dissolve id="myTransition" duration="100" target="{this}"/>
    </fx:Declarations>
    
  • C'è una nuova opzione di progetto in Flash Builder che permette di continuare a utilizzare l'SDK di Flex 3.5 da solo, senza Spark a tutti, per la migrazione più facile. Questo è un bene per i test iniziali, ma ad un certo punto si desidera spostare in avanti, a questo punto si deve fare i conti con tutto quanto sopra.

Il nuovo compilatore non sembra poi così molto più veloce per me, neanche. Non ho benchmark, basta andare sul tatto, che è ciò che conta davvero per me, dal momento che ancora mi fa sentire come battere la testa sulla mia scrivania. :) Certamente non sta usando gli altri 7 nuclei nella mia casella di sviluppo. Grrr.

Altri suggerimenti

Ecco un paio di cose che potrebbero aiutare:

  1. La versione più recente di BlazeDS è 3.2.0.3978. Non ho sentito gli annunci di una nuova release.
  2. Dal momento che sarete mantenendo la stessa versione di BlazeDS, il porting del codice esistente per Flex 4 dovrebbe avere alcun effetto sul back-end (integrazione BlazeDS primavera, iBATIS, MySQL, ecc.).
  3. Mate non ancora ufficialmente sostenere Flex 4. Ho avuto errori di compilazione quando ho cercato di cambiare. Ecco un link ad una discussione sulle soluzioni alternative , e un collegamento a un Flex 4 porte .

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top