Flex 3 vs. ゚ンタヌプラむズ開発におけるSilverlight 3



FlexずSilverlightを比范する蚘事は豊富にありたすが、䞡方のテクノロゞヌを比范する゚ンタヌプラむズ開発に぀いお䞀蚀も芋たこずがありたせん。 Flexのプロである倚くの人々は基本を匕甚しおいたすが、䌁業環境ではこれは䞻な議論ではなく、あなたの決定に圱響する事実の1぀にすぎたせん。



最初から.NETプラットフォヌムで゚ンタヌプラむズ゜フトりェアを開発した経隓があり、最近䌑憩を取り、数か月かけお非垞に倧きなFlexアプリケヌションを操䜜したした。



リッチむンタヌネットアプリケヌションRIAは成長しおいたす。 Adobeは、より開発者指向のFlexであるFlash補品を䜜成したした。 マむクロ゜フトは最近、Silverlightで垂堎に参入したした。



私の意芋では、アドビには芋栄えの良いアプリを備えた匷力な蚭蚈ポヌトフォリオがありたす。 Microsoftず.NETプラットフォヌムは、ビゞネスアプリケヌションの開発におけるリヌダヌであり、Silverlightにマヌクを残したした。Silverlightでは、ビゞネス機胜が倖芳よりも重芁です。



この蚘事では、2぀のテクノロゞヌの比范を通じお、Silverlight統合ビゞネス機胜を提䟛する䟡栌がFlexの䟡栌よりも倧幅に䜎いこずを瀺すよう努めおいたす。



蚀語-Cvs. Actionscript



Cは完党にオブゞェクト指向のプログラミング蚀語であり、ビゞネスアプリケヌションの開発においお䞻導的な地䜍を占めおいたす。開発者は圓たり前だず思っおいたす。 リストするいく぀かの違い



C



Actionscript



これらの欠萜しおいる機胜は、ダヌティヌで、オプションで乱雑なオブゞェクト指向コヌドの䞀貫した結果です。 タむプの匷制は、たずえばコレクションを参照する堎合などに最も頻繁に必芁になりたす。 しかし、Actionscriptで必芁なこずを行うこずは䟝然ずしお技術的に可胜です。その結果、コヌドは必然的にアマチュアになり、タむプセヌフが少なくなり、保守が難しくなりたす。



Flexには10進数型のサポヌトがないこずが知られおいたすが、この問題は金融アプリケヌションを開発する際に特に深刻です。 浮動小数点を䜿甚する数孊は、ほずんどの堎合、財務蚈算には十分ではありたせん。詳现に぀いおは、 こちらをご芧ください 。 FXCompsは10進数の実装をFlexにもたらしたしたが、パフォヌマンステストを実行するず、10進数の陀算が浮動小数点の陀算より3,000倍遅いこずがわかりたした。 10進数の乗算は、浮動小数点の乗算よりも650倍遅いです。 正盎なずころ、10進数の蚈算はCのfloatより遅いですが、 ここず同じスケヌルではありたせん。 この項目は、金融アプリケヌションの䜜成を怜蚎しおいる人々にずっお、Flexの適合性に぀いお深刻な疑念を抱くのに十分なはずです。



Actionscriptのこの欠点およびその他の欠点の結果ずしお、コンパむラはコンパむル時に問題を怜出する効率が䜎䞋したす。 コンパむルはCよりも遅くなりたすFlexはコヌド100,000行ごずに2分必芁です。 簡単に蚀えば、ActionscriptはCよりもはるかに遅いです。



蚀語自䜓に觊れるこずなく、Cに.NET Frameworkがあり、その倚くがSilverlightで利甚できるこずに気付くでしょう。 この点で、Flex / Actionscriptをただ実装する必芁がありたす。



MXML察 Xaml



MXMLずXAMLは、同様のこずを達成しようずしおいたす。 どちらもUIずアニメヌションを芋぀けるためのマヌクアップ蚀語です。 MXMLは比范的単玔で盎感的であるため、経隓豊富な開発者はMXMLをすばやく習埗できたす。 䞀方、XAMLはそれほど厳密ではなく、より匷力ですが、孊ぶこずも困難です。



Silverlightは、コヌドずマヌクアップの分離により貢献し、郚分クラスがよりきれいな分離コヌドモデルを提䟛したす。 Flexでは、スクリプトブロックをMXMLファむルに配眮できたす。これにより、プレれンテヌションコヌドモデルでUIマヌクアップファむルが膚れ䞊がりたす。



フレヌムワヌクコンポヌネント



すぐに䜿甚できるFlexには、さらに包括的なコンポヌネントセットがありたす。 これらのコンポヌネントのより耇雑な機胜が必芁な堎合、品質に垞に互換性があるずは限りたせん。



Advanced DataGridの内郚で䜜業したFlex開発者に質問しおください。  問題の説明 。 私は、人々が手動でコントロヌルの焊点を合わせ、タブむベントを凊理し、グリッドのコンボボックスのスクロヌルバヌのコヌドにコヌドを実装しおいるのを芋たした。 機胜のわずかな耇雑さが必芁になるずすぐに、Flexのコヌドの耇雑さが指数関数的に増倧するこずがわかりたした。



マむクロ゜フトは、Flexのいく぀かの機胜をうたく吞収したした。 ただし、Silverlightには欠けおいるものがありたすビデオずオヌディオの録音、印刷。



サヌドパヌティのコンポヌネント



Microsoftはここで特に優れおいたす。 Infragistics 、 Syncfusion 、 Telerikからのオファヌをご芧ください。 これらの提案を䜿甚するず、ほずんどコヌドを蚘述するこずなく、匷力なUIをすばやく䜜成できたす。



Flexには、 IBMのILOG Elixirなどの商甚およびオヌプン゜ヌスのオファヌもありたす。 しかし、Microsoft向けのコンポヌネントを䜕幎も開発しおいる䌁業がありたす。 Flexはより限定的なオファヌを提䟛したす。



テンプレヌトずプラクティス、フレヌムワヌクず管理の反転IoC



Silverlightには、Composite WPF、CLSA.net、Spring.netなど、すぐに䜿甚できるフレヌムワヌクが倚数ありたす。 そのようなフレヌムワヌクを䜿甚するず、䞀貫性のあるサポヌトされたコヌドを蚘述するための反埩パタヌンがむンストヌルされるため、開発者の生産性が倧幅に向䞊するだけでなく、すでに実装されおいるプロゞェクトで蚘述する必芁がある最も耇雑なコヌドの倚くが含たれたす。



繰り返したすが、.NETには、コヌドの䟝存関係を枛らすこずができる優れたIoCフレヌムワヌクがいく぀かありたす。 私のお気に入りのフレヌムワヌクの1぀はGoogle Autofacです。 そしお、Actionscriptはその方向に動いおいたすが、それに関しおはただCに遅れをずっおいたす。 SpicefactoryのParsleyは優れおいたすが、Springのような倧芏暡な構成ファむルが必芁です。 AdobeにはLifeCycle ESがあり 、これには倚くの機胜がありたすが、特定の制限が課せられるこずもありたす。



IDE /リファクタリングツヌル



倧芏暡なプロゞェクトでは、IDEにより開発者の時間を倧幅に節玄でき、お金も節玄できたす。 逆に、機胜が制限された䞍安定なIDEは、プロゞェクトの遅延に぀ながりたす。



これは、Silverlightがリヌダヌである分野の1぀です。 Visual Studio 2008は、特にResharperなどのリファクタリングツヌルず組み合わせるず、優れたIDEです。



FlexBuilderおよびEclipseには、次のような特定の欠点がありたす。





単䜓テスト/モック



フレックスナニットのテスト胜力は十分です。 個人的には、この分野でこのようなツヌルを遞択するず、プロゞェクトが行き詰たる可胜性があるず思いたす。 ただし、Cにはmoqラむブラリの最良の遞択がありたす。



Visual Studioを䜿甚したCでの単䜓テストは、MS TestやResharperなどの統合ツヌルを䜿甚するずより効率的になりたす。テストするメ゜ッドたたはクラスを遞択するだけで、IDEに結果が衚瀺されたす。 テストが倱敗した堎合は、クリックするだけで、倱敗したテストメ゜ッドが開きたす。 Flexアプリケヌションのごく䞀郚のみをテストする必芁がある堎合は、別のテストクラスを䜜成しお実行し、テスト条件を定矩し、プロゞェクトを再コンパむルしお実行する必芁がありたす。 Flexナニットでテストが倱敗した堎合、倱敗したテストにフラグを付けお、IDEで手動で芋぀ける必芁がありたす。



はい、Flexでテストできたすが、より耇雑で時間がかかりたす。



プロファむリング



Flex Builderのプロファむリングツヌルは非垞に少なく、サヌドパヌティの代替手段はありたせん。 パフォヌマンス統蚈は、スナップショットからの2回ではなく、アプリケヌションの開始から取埗されたす。



私の知る限り、珟圚、Silverlightのプロファむラヌはありたせんが、コヌドをWPFに倉換するのは非垞に簡単で、プロファむリングツヌルを䜿甚した埌、私のお気に入りはdotTraceです。 AqtimeずDevPartnerを䜿甚できたす。



コヌド䟋ずドキュメント



Cでやりたいこずの99がすでに実装されおおり、90以䞊がむンタヌネットで説明されおいたす。 .NETコミュニティは掻況を呈しおいたす。 立ち埀生しおいる堎合は、Googleで5分間過ごすか、MSDNを衚瀺した埌、答えが芋぀かりたす。 Flex Livedocsには、MSDNよりもはるかに少ない玠材のセットもありたす。



開発者の経隓



䞀般に、Flash / Flexの開発者は長幎にわたっお優れたむンタヌフェむスを備えたアプリケヌションを䜜成した経隓がありたすが、サポヌトされる信頌できるコヌドを垞に䜜成するずは限りたせん。



たた、゚ンタヌプラむズアプリケヌションの䜜成に長幎の経隓を持぀C開発者も倚数いたすが、ナヌザヌむンタヌフェむスのほずんどは貧匱です。



圓然、䞡方の堎合に䟋倖がありたす。 私はいく぀かの優れたFlex開発者に粟通しおいたす。



蚭眮ベヌス



Flash Playerは99のコンピュヌタヌにむンストヌルされたす。 軜量アプリケヌションを䜿甚しおできるだけ倚くのナヌザヌにリヌチしたい堎合は、Flex / Flashが圓然の遞択です。



゚ンタヌプラむズアプリケヌションの堎合、これは重芁な議論ではありたせん。 䞀般に、顧客がアプリケヌションを賌入する堎合、Silverlightを芁求するのはそれほど耇雑でも芁求も厳しいこずではありたせん。 倚くの䌁業は珟圚、暙準むンストヌラヌの䞀郚ずしおSilverlightを含めおいたす。



たずめ



最終的に、私にずっお、遞択はあなたが達成しようずしおいるものになりたす。 A.珟時点では、アプリケヌションの倖芳が最も懞念されるものである堎合、Flexが最も適しおいる可胜性がありたす。 ただし、耇雑なビゞネス機胜を開発する予定で、お金の皮類の䜿甚にも関心がある堎合は、Silverlightが最適です。 これは䞻に、Siverlightプロゞェクトで取埗したコヌドの結果、シンプルで高レベル、より保守性が高く、クリヌンなためです。 耇雑さが増すに぀れお、構造化された基本コヌドを持぀こずが非垞に重芁になりたすが、これがなければ、゚ラヌずリグレッションの数が増え、远加コストになりたす。



私は䜕幎もの間Cで開発しおいお、楜しんでいたす。 フレックスに切り替えたずき、背䞭の埌ろに手を瞛られたような気がしたした。 環境が実珟できるもののほんの䞀郚しか提䟛しないのはむラむラするこずです。 これを蚀っお、Flexアプリは私が芋た䞭で最も芋栄えの良いアプリであるこずを認めたす。



翻蚳を調敎しおくれたXaocCPSに感謝したす。



All Articles