Mój obecny program to MySQL + iBatis + Spring + Spring BlazeDS Integration 1.01 + BlazeDS 3.2 i Flex 3 z Mate 0.8.9. Teraz Flash Builder 4 beta 2 jest już dostępny. Istnieją fajne funkcje, takie jak Data Centric Development (DCD), generowanie formularzy itp. Czy wiesz, jak Spring Blazeds Integration współpracuje z BlazeDS 4? A co z Mate? Czy są jakieś problemy z Flex 4? Jak DCD odpowiada z mapami mate. Wiem, że lepiej jest wypróbować to sam, ale chcę tylko sprawdzić, czy ktoś próbował migrować Flex 4. Jeśli tak, to jakie są problemy? Czy zauważyłeś wzrost wydajności? Dzięki.Jakieś doświadczenie związane z migracją Flex 4?
Odpowiedz
Nie mogę nic powiedzieć o migracji komponentów innych firm. Nie używam tych, o których wspomniałeś.
Mogę wam jednak powiedzieć, że nie będziecie w stanie po prostu załadować istniejącego projektu do Flash Builder 4, zmienić zestawu SDK na 4.0 i oczekiwać, że przekompiluje. Ogromna liczba rzeczy zmieniła się w programie Flex 4, często w sposób niekompletny.
Oto te Zabrakło mi do tej pory:
Masz teraz dwie równoległe bibliotek komponentów, iskra i MX. MX jest starą biblioteką komponentów Flex 3, czasami nazywaną Halo, choć to technicznie tylko nazwa domyślnej skóry. Spark to nowa biblioteka komponentów Flex 4, która tylko częściowo zastępuje MX.
Działają one we współdziałaniu. Możesz używać obu w jednej aplikacji i możesz np. Umieszczać komponenty Sparka w kontenerach MX, takich jak
ViewStack
. Istnieją również naturalne podziały w aplikacji, w których możliwe jest posiadanie jednej strony przy użyciu Sparka, drugiego MX, bez martwienia się o kłopoty, ponieważ nie współdziałają na poziomie GUI. Na przykład takie okna dialogowe.Powodem, dla którego zrobili to wszystko, było wspieranie nowych rzeczy, o których słyszeliście: Flash Catalyst, FXG i tak dalej. Jeśli używasz zapasowej skórki Halo, nie widzę, aby Spark był dla ciebie ważny, poza tym, że jest to Przyszłość.
(Na marginesie: Jaka jest składnia Markdown uzyskać Kreator-of-Oz dudniącym efekt echa?)
Joan Lafferty (Flex SDK Jakość Lead) posiada cenny artykuł, Differences between Flex 3 and Flex 4. Na page 4 ma tabelę zawierającą składniki Flex 3 MX, które nie zostały zastąpione przez komponenty Spark w środowisku Flex 4. Większość z nich nie ma własnego wyglądu, na przykład
Accordion
, więc nie trzeba ich karać, lub takie rzeczy jak okna dialogowe, takie jakAlert
. (Powinieneś przeczytać całą resztę tego artykułu, która obejmuje rzeczy, których ja nie mam, ponieważ nie spotkałem się jeszcze z żadnymi różnicami.)Mówiąc o skórkach, tylko dwie ze skórek MX od Flex 3 są nadal obsługiwane w wersji Flex 4. Bardziej kolorowe skórki MX zniknęły, chociaż istnieje nowy zestaw kolorowych skórek opartych na Spark, które pokazują niektóre z rzeczy, które możesz zrobić z FXG i innymi. Jeśli naprawdę podobał Ci się jeden z usuniętych, możesz bez wątpienia odtworzyć je na Sparku, ale nie jest on dostępny po wyjęciu z pudełka.
Wiele rzeczy zostało renamed, a niektóre zamienniki Iskara dla komponentów MX mają różne interfejsy, a więc mają different names. Na przykład, aby przenieść się całkowicie do Sparka, musisz zmienić swoje
VBox
es naVGroup
s. Jest wiele irytujących drobnych różnic.Ponieważ całego podwójnego librarything GUI, Adobe znalazły się z grupą znaczników MXML jak
<Script>
i<Style>
które nie są właściwie częścią MX, które działają równie dobrze dla Spark. Zamiast zduplikowanego zestawu tagów przenieśli je do nowej przestrzeni nazw XML. Jest to problem dla osób wykonujących częściową migrację istniejących aplikacji opartych na MX, ponieważ oznacza to, że nadal używasz aliasumx
dla biblioteki komponentów MX, więc tagi wspólne dla obu bibliotek muszą zostać zmienione. Nowa domyślna przestrzeń nazw XML dla tych znaczników tofx
, dlatego każda nazwa<mx:Script>
musi zostać zmieniona na<fx:Script>
itd. IDE nie robi tego za ciebie przy imporcie projektu. Po prostu znajdujesz je jeden po drugim, próbując stworzyć zaimportowany projekt.Jeśli planujesz przenieść się całkowicie do Sparka, możesz uniknąć bólu tutaj. Zamiast akceptować domyślny alias obszaru nazw w tagach innych niż MX, możesz pozwolić mu dalej używać
mx
, ponieważ nie będziesz tego potrzebować dla MX, a Spark domyślnie używas
.Twoim pierwszym zadaniem po zainstalowaniu Flash Builder 4 powinno być wygenerowanie świeżego nowego projektu, abyś mógł go studiować i kopiować i wklejać takie rzeczy jak te deklaracje przestrzeni nazw z niego.
Innym opadem całego MX vs. Spark i bałaganu w przestrzeni nazw jest to, że twój CSS może wymagać ulepszenia. Flex ma niestandardowe rozszerzenie CSS dla tego, który wygląda tak:
@namespace mx "library://ns.adobe.com/flex/mx"; mx|Application { ....
wszystkie adresy URL przestrzeni nazw zmieniły zarówno między Flex 3 i Flex 4, oraz w co najmniej jednym przypadku zmienił ponownie podczas procesu beta Flex 4.
http://www.adobe.com/2006/mxml
jest terazhttp://ns.adobe.com/mxml/2009
library://ns.adobe.com/flex/halo
jest terazlibrary://ns.adobe.com/flex/mx
local()
forma określania osadzonych nazwy czcionek przez ich wspólną nazwą w CSS nie działa dłużej. Musisz użyć formularzaurl()
i podać ścieżkę do pliku czcionki.Pułapką, na którą należy zwrócić uwagę, jest to, że oznacza to, że jeśli osadzasz wiele wariantów pojedynczej czcionki (np. Normalne i pogrubione), twój poprzedni kod odnosi się do tej samej nazwy czcionki, ale twój nowy wskaże dwa różne pliki, ponieważ te dwa wagi nie znajdują się w tym samym pliku .ttf lub .otf. Na przykład w ten sposób:
@font-face { src: local("Verdana"); fontFamily: VerdanaEmbedded; fontWeight: normal; } @font-face { src: local("Verdana"); fontFamily: VerdanaEmbedded; fontWeight: bold; }
musi być zmieniony na to:
@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; }
W Flex 3, kompilator domyślić, które pliki dwie czcionki .ttf powyższy kod odnosi się na podstawie atrybutu
fontWeight
. W wersji Flex 4 kompilator sprawia, że wyraźnie to przekazujesz.Jeśli osadzasz czcionki w aplikacji i nadal używasz kontrolek MX, tekst prawdopodobnie zniknie lub przywróci domyślną czcionkę. Dzieje się tak dlatego, że domyślnie Flex 4 wykorzystuje inny mechanizm osadzania czcionek pod maską, aby wesprzeć ulepszony mechanizm renderowania czcionek w programie Flash Player 10. Aby osadzić czcionkę w starszym trybie, tak aby stare kontrolki MX nadal mogły z niej korzystać, ustawić atrybut CSS
embedAsCFF
nafalse
.Mechanizm państw jest zupełnie inny. Ten kod Flex 3:
<mx:State name="alternate"> <mx:SetProperty target="{myField}" name="editable" value="false"/> </mx:State> .... <mx:Form ...> <mx:TextInput id="myField"/> .... </mx:Form>
staje się to w Flex 4:
<mx:State name="alternate"/> .... <mx:Form ...> <mx:TextInput id="myField" editable.alternate="false"/> .... </mx:Form>
Nowa droga ma większy sens dla mnie, ponieważ umieszcza wszystkie poszczególne stany elementów w samej zmiennej składowej, zamiast na górze pliku MXML w pełnym rozmiarze bloku
<mx:State>
, ale przeniesienie do nowego mechanizmu jest nieco męczące. Konwersja nie jest zautomatyzowana przez IDE, choć tak naprawdę może być.Istnieje kilka tagów, które nie są już dozwolone jako bezpośrednie elementy podrzędne tagu
<Application>
. Dzielą się one na kilka kategorii: walidatorami, efektów itp Teraz trzeba zapakować je w górę do nowego<fx:Declarations>
znacznika tak:<fx:Declarations> <mx:Dissolve id="myTransition" duration="100" target="{this}"/> </fx:Declarations>
Jest nowa opcja projekt w programie Flash Builder, który pozwala kontynuować używając Zestaw SDK Flex 3.5 sam, bez Spark, dla łatwiejszej migracji. To jest dobre dla początkowych testów, ale w pewnym momencie chcesz iść do przodu, w którym momencie musisz walczyć ze wszystkimi powyższymi.
Nowy kompilator również nie wydaje mi się o wiele szybszy. Nie porównałem tego, po prostu czuję, co jest dla mnie ważne, ponieważ nadal sprawia mi wrażenie, że uderzam głową o biurko. :) Na pewno nie używa pozostałych 7 rdzeni w moim boxie rozwojowym. Grrr.
Oto kilka rzeczy, które mogą pomóc:
- Najnowszą wersję BlazeDS jest 3.2.0.3978. Nie słyszałem ogłoszeń o nowej wersji.
- Ponieważ zachowasz tę samą wersję BlazeDS, przeniesienie istniejącego kodu do Flex 4 nie powinno mieć żadnego wpływu na twój back end (Spring BlazeDS integration, iBATIS, MySQL, itp.).
- Mate nie oficjalnie jeszcze obsługuje Flex 4. Miałem błędy podczas kompilacji, gdy próbowałem się przełączyć. Oto link do dyskusji na temat workarounds i link do Flex 4 port.
Powodzenia!
- 1. Czy ktokolwiek ma jakieś doświadczenie z Hobo?
- 2. Jakieś doświadczenie łączące JS/CSS w MVC?
- 3. Jakieś rzeczywiste, korporacyjne doświadczenie z transakcyjnym NTFS (TxF)?
- 4. Jakieś dobre pytanie związane z pracą z wywiadem?
- 5. Flex 4: Zbuduj grupę z tłem
- 6. Flex 4 Suwak z dwoma kciukami
- 7. flex 4: niestandardowa wartość css
- 8. Twoje doświadczenie Przeniesienie PHP 4 na PHP 5
- 9. Doświadczenie z systemów billingowych
- 10. Doświadczenie w korzystaniu z extjs z grails?
- 11. Flex 4 wykrywa, jeśli użytkownik wpisze klawisz
- 12. Generic Swift 4 enum z Pustki związane typ
- 13. Ktoś ma doświadczenie z AppScale?
- 14. Czy są jakieś cms dla Rails 4?
- 15. Doświadczenie z PHP QuickHash dla dużych tablic
- 16. Flex i crossdomain.xml
- 17. Podcasty związane z rozwojem iPhone'a?
- 18. Ustaw domyślnie na NULL z migracją laravel
- 19. Jak działa flex-flex flex CSS3?
- 20. Jakiekolwiek ryzyko związane z Macports?
- 21. Zainicjowanie Flywaya Mavena przed migracją
- 22. jakiekolwiek doświadczenie z ramą programistyczną java "Play"?
- 23. Migracja z SVN do Perforce - porady? Doświadczenie?
- 24. Każde doświadczenie z dobrym komponentem rysunku/biblioteką
- 25. Implikacje związane z używaniem GADT
- 26. Sitecore Doświadczenie Analytics Wykresy Issue
- 27. Przewiń do wybranej pozycji w elemencie Flex 4 Spark List
- 28. Czy są jakieś korzyści związane z wydajnością, używając parametru ReadOnly w trybie hibernacji?
- 29. Czy masz jakieś obawy związane z bezpieczeństwem, jeśli chodzi o wtyczki JQuery?
- 30. Czy są jakieś pułapki związane z używaniem typu IEnumerable <T> dla danych SQL?
Czy iskra warta wszystkich tych problemów, aby się do niej zbliżyć? – Amarghosh
Edytowałem powyższe, aby dodać dużo więcej szczegółów i lepiej odpowiedzieć na pytanie "dlaczego Spark". Zasadniczo sprowadza się do skórowania. Więcej zmian po drodze, jak przeglądam różnice dla mojej aplikacji ... –
Jedna z najlepszych ripost, które czytałem na Flex. Dzięki – Thalaivar