2009-10-13 33 views
14

Ngăn xếp phát triển hiện tại của tôi là MySQL + iBatis + Spring + Spring BlazeDS tích hợp 1,01 + BlazeDS 3.2 và Flex 3 với khung công tác Mate 0.8.9. Bây giờ Flash Builder 4 beta 2 đã hết. Có những tính năng thú vị như Data Centric Development (DCD), tạo mẫu vv… Bạn có biết Spring Blazeds Integration hoạt động như thế nào với BlazeDS 4 không? Thế còn Mate? Có vấn đề gì với Flex 4 không? Làm thế nào DCD phù hợp với các sự kiện giao phối. Tôi biết nó là tốt hơn để thử nó ra bản thân mình nhưng tôi chỉ muốn kiểm tra xem ai đó đã bao giờ cố gắng để di chuyển Flex 4. Nếu vậy các vấn đề là gì? Bạn có nhận thấy tốc độ tăng năng suất không? Cảm ơn.Bất kỳ trải nghiệm di chuyển Flex 4 nào?

Trả lời

25

Tôi không thể cho bạn biết bất cứ điều gì về việc di chuyển các thành phần của bên thứ ba của bạn. Tôi không sử dụng những cái bạn đã đề cập.

Tuy nhiên, tôi có thể cho bạn biết rằng bạn sẽ không thể tải dự án hiện có của mình lên Flash Builder 4, thay đổi SDK thành 4.0 và mong đợi nó sẽ biên dịch lại. Một số lượng lớn những thứ đã thay đổi trong Flex 4, thường không tương thích.

Dưới đây là những cái tôi đã chạy vào cho đến nay:

  • Bây giờ bạn có hai thư viện thành phần song song, Spark và MX. MX là thư viện thành phần Flex 3 cũ, đôi khi được gọi là Halo, mặc dù đó chỉ là tên của skin mặc định. Spark là thư viện thành phần Flex 4 mới, chỉ thay thế một phần MX.

    Chúng hoạt động tương thích. Bạn được phép sử dụng cả hai trong một ứng dụng và bạn có thể thực hiện những việc như đặt các thành phần Spark trong vùng chứa MX như ViewStack. Ngoài ra còn có các bộ phận tự nhiên trong một ứng dụng có thể có một mặt sử dụng Spark, một MX khác, không lo lắng về sự cố vì chúng không tương thích ở mức GUI. Ví dụ như các hộp thoại giống như vậy.

    Lý do họ làm tất cả điều này là để hỗ trợ nội dung mới về da này mà bạn đã nghe về: Flash Catalyst, FXG và tất cả điều đó. Nếu bạn sử dụng cổ phiếu Halo skin, tôi không thấy Spark đó quan trọng với bạn, ngoài thực tế là nó là Tương lai.

    :

    Joan Lafferty (Flex SDK Chất lượng chì) có một bài viết có giá trị, Differences between Flex 3 and Flex 4 (Ngoài? Cú pháp Markdown để có được Wizard-of-Oz boomy echo có hiệu lực là gì). Trên page 4, cô có một bảng liệt kê các thành phần Flex 3 MX chưa được thay thế bởi các thành phần Spark trong Flex 4. Hầu hết chúng không có hình dạng riêng của chúng, như Accordion, vì vậy bạn không cần phải da chúng, hoặc những thứ như hộp thoại, như Alert. (Bạn nên đọc qua phần còn lại của bài viết đó. Nó bao gồm những thứ tôi không làm, bởi vì tôi chưa từng gặp tất cả những khác biệt.)

  • Nói về da, chỉ có hai da MX từ Flex 3 vẫn được hỗ trợ trong Flex 4. Các giao diện MX nhiều màu sắc đã biến mất, mặc dù có một bộ giao diện mới dựa trên Spark đầy màu sắc thể hiện một số điều bạn có thể làm với FXG và những thứ như vậy. Nếu bạn thực sự thích một trong những người mà họ đã xóa, bạn có thể nghi ngờ tạo lại chúng trên đỉnh Spark, nhưng nó không có sẵn trong hộp.

  • Nhiều thứ đã là renamed và một số thay thế Spark cho các thành phần MX có các giao diện khác nhau và do đó có different names. Ví dụ: để chuyển hoàn toàn sang Spark, bạn sẽ phải thay đổi số VBox es thành VGroup s. Có rất nhiều sự khác biệt nhỏ phiền toái như thế.

  • Vì toàn bộ thư viện GUI kép, Adobe tự tìm thấy một loạt các thẻ MXML như <Script><Style> không thực sự là một phần của MX, hoạt động tốt cho Spark. Thay vì có một bộ thẻ trùng lặp, họ đã chuyển các thẻ này sang một không gian tên XML mới. Đây là vấn đề đối với những người thực hiện di chuyển theo từng bước của các ứng dụng dựa trên MX hiện tại, bởi vì điều đó có nghĩa là bạn vẫn đang sử dụng bí danh mx cho thư viện thành phần MX, vì vậy các thẻ phổ biến cho cả hai thư viện đều phải được đổi tên. Mặc định không gian tên XML mới cho các thẻ này là fx, vì vậy, mỗi <mx:Script> phải được đổi tên thành <fx:Script>, v.v. IDE không làm điều này cho bạn khi nhập dự án. Bạn chỉ tìm thấy chúng từng người một khi bạn cố gắng để có được dự án nhập khẩu của bạn để xây dựng.

    Nếu bạn dự định chuyển hoàn toàn sang Spark, bạn có thể tránh một số cơn đau ở đây. Thay vì chấp nhận bí danh không gian tên mặc định fx trên thẻ không phải MX, bạn có thể để nó tiếp tục sử dụng mx, vì bạn sẽ không cần điều đó cho MX và Spark sử dụng s làm mặc định.

    Nhiệm vụ đầu tiên của bạn sau khi cài đặt Flash Builder 4 sẽ là tạo một dự án mới để bạn có thể nghiên cứu và sao chép những thứ như các khai báo không gian tên này từ nó.

  • Một phần khác của toàn bộ MX so với Spark và không gian tên là CSS của bạn có thể cần chỉnh sửa. Flex có một phần mở rộng phi tiêu chuẩn CSS cho điều này, mà trông như thế này:

    @namespace mx "library://ns.adobe.com/flex/mx"; 
    mx|Application { 
        .... 
    
  • Tất cả các URL namespace đã thay đổi cả giữa Flex 3 và Flex 4, và trong ít nhất một ví dụ thay đổi một lần nữa trong quá trình Flex 4 beta.

    http://www.adobe.com/2006/mxml tại là http://ns.adobe.com/mxml/2009 library://ns.adobe.com/flex/halo tại library://ns.adobe.com/flex/mx

  • là Dạng local() để xác định tên phông chữ nhúng bằng tên gọi chung của họ trong CSS không hoạt động nữa. Bạn phải sử dụng biểu mẫu url() và cung cấp đường dẫn đến tệp phông chữ. Một điều cần lưu ý ở đây là điều này có nghĩa là nếu bạn đang nhúng nhiều biến thể của một phông chữ đơn lẻ (ví dụ: chữ thường và chữ đậm), mã trước đó của bạn được gọi cùng tên phông chữ, nhưng mã mới của bạn sẽ trỏ tới hai các tệp khác nhau vì hai trọng số không có cùng tệp .ttf hoặc .otf. Ví dụ, điều này:

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

    phải được thay đổi như sau:

    @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; 
    } 
    

    Trong Flex 3, trình biên dịch đoán những file nào hai chữ .ttf đoạn mã trên là đề cập đến dựa trên thuộc tính fontWeight. Trong Flex 4, trình biên dịch làm cho bạn nói rõ ràng.

  • Nếu bạn nhúng phông chữ trong ứng dụng và tiếp tục sử dụng điều khiển MX, văn bản có khả năng biến mất hoặc hoàn nguyên về phông chữ mặc định. Điều này là do, theo mặc định, Flex 4 sử dụng cơ chế nhúng phông chữ khác nhau để hỗ trợ công cụ hiển thị phông chữ được cải thiện trong Flash Player 10. Để nhúng phông chữ theo cách cũ hơn để các điều khiển MX cũ vẫn có thể sử dụng, bạn phải đặt thuộc tính CSS embedAsCFF thành false.

  • Cơ chế của tiểu bang hoàn toàn khác. Đây mã Flex 3:

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

    trở này trong Flex 4:

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

    Cách mới có ý nghĩa hơn đối với tôi, vì nó đặt tất cả các bang thành phần cá nhân trong thẻ thành phần bản thân, thay vì hướng lên trên cùng của tệp MXML trong khối <mx:State> tiết, nhưng việc chuyển sang cơ chế mới là một chút xay. Việc chuyển đổi không phải là tự động bởi IDE, mặc dù nó thực sự có thể được.

  • Có một số thẻ không còn được phép là con trực tiếp của thẻ <Application>. Những rơi vào một số chuyên mục: xác nhận, hiệu ứng vv Bây giờ bạn có để đóng gói những thành một <fx:Declarations> thẻ mới, như vậy:

    <fx:Declarations> 
        <mx:Dissolve id="myTransition" duration="100" target="{this}"/> 
    </fx:Declarations> 
    
  • Có một lựa chọn dự án mới trong Flash Builder cho phép bạn tiếp tục sử dụng Chỉ riêng Flex 3.5 SDK, không có Spark, để di chuyển dễ dàng hơn. Đó là tốt cho các bài kiểm tra ban đầu, nhưng tại một số điểm bạn muốn di chuyển về phía trước, tại thời điểm đó bạn phải tranh luận với tất cả các bên trên.

Trình biên dịch mới dường như cũng không nhanh hơn nhiều so với tôi. Tôi đã không đánh giá nó, chỉ cần đi vào cảm giác, đó là những gì thực sự quan trọng với tôi, vì nó vẫn làm cho tôi cảm thấy như đập đầu của tôi trên bàn của tôi. :) Nó chắc chắn không sử dụng 7 lõi ​​khác trong hộp phát triển của tôi. Grrr.

+0

Tia lửa có xứng đáng với tất cả những khó khăn này để chuyển đến nó không? – Amarghosh

+0

Tôi đã chỉnh sửa ở trên để thêm nhiều chi tiết hơn và trả lời câu hỏi "tại sao Spark" tốt hơn. Về cơ bản, nó đi xuống để skinning. Các chỉnh sửa khác trên đường đi, khi tôi tìm hiểu các khác biệt cho ứng dụng của mình ... –

+0

Một trong những bản trích xuất tốt nhất mà tôi đã đọc trên Flex. Cảm ơn – Thalaivar

4

Dưới đây là một vài điều mà có thể giúp đỡ:

  1. Phiên bản mới nhất của BlazeDS là 3.2.0.3978. Tôi chưa nghe thông báo về bản phát hành mới.
  2. Vì bạn sẽ giữ phiên bản tương tự của BlazeDS, việc chuyển mã hiện tại của bạn sang Flex 4 sẽ không ảnh hưởng đến phần cuối của bạn (tích hợp Spring BlazeDS, iBATIS, MySQL, v.v.).
  3. Bạn chưa chính thức hỗ trợ Flex 4. Tôi đã gặp lỗi khi biên dịch. Đây là liên kết tới cuộc thảo luận trên workarounds và liên kết đến số Flex 4 port.

Chúc may mắn!

Các vấn đề liên quan