-1

ASP.NETMVCを使用したWebアプリケーション構築のさまざまなオプションについてチームと話し合っています。オプションの1つは、レンダリングされたビュー(つまり、knockoutjs)のあらゆる場所でMVVMを利用することです。アプローチは非常に強力に見えますが、開発努力を検討する必要があります。

他の人に、彼らの経験に基づいて(またはいくつかのリソースを指摘して)、大まかな「業界標準」の開発時間の比較についてアドバイスしてもらいたいと思います。たとえば、「MVVMを使用するには、平均的なASP.NETWebアプリで平均N倍の労力が必要です」。

4

2 に答える 2

2

私はknockoutjsを使って開発するのが非常に速いと思います。しかし、私が見つけたいくつかのことが、それをはるかに速くします。

まず、javascriptではなくcoffeescriptを使用することです。(Webワークベンチを使用します。これを使用することになった場合は、cssにSASSを使用するように切り替えます)。ただし、そのためのインテリセンスなどはありません。個人的には問題にはなりませんが。ただし、coffeescriptはjavascriptよりもはるかに簡潔であり、ノックアウトと非常にうまく調和します。

次は、C#からjson、ノックアウトへのデータの移行です。

通常、ここでは、コントローラーで、データベースからデータを取得し(fav ORMを使用)、それをC#ビューモデルに投影し、ビュー(Razor)に渡します。ビュー(Razor)は、それを使用してjsonに変換します。ノックアウトビューモデル。

これらすべてをRazorビューに移動すると(基本的に、コントローラーはパラメーターをビューに渡します)。次に、データベースにクエリを実行し、RazorビューでC#ビューモデルを作成します。これにより、基本的にビューの編集、Webページの更新、編集、更新(コンパイル手順なし)ができるため、開発が大幅に高速化されます。

これは少し紛らわしい書き留めに聞こえますが、実際にこれを行うことの現実は非常に単純であり、少量のコードで、かなり機能豊富なページを非常に迅速に作成できます。

何をしているかにもよりますが、ノックアウトベースのソリューションは1〜>10倍高速になる傾向があります。ただし、asp.netの特定のコントロールによって特定の操作が少し簡単になる場合もありますが、ノックアウトでその動作を再現するのはそれほど手間がかからないことが多く、さらに重要なことに、自分に合ったものにカスタマイズする方がはるかに簡単です。欲しいです。

于 2012-06-05T21:08:25.157 に答える
1

knockout.js私たちのグループは、この時点で最終的に破棄することを決定しました。

問題はknockout.js、コードを書くときに優れたインテリセンスがないことです。これにより、MVCのViewModelと比較して、開発エラーが発生しやすく、時間がかかります。

特にオンラインフォームの送信が必要な場合でもDataAnnotation、ビューモデルに設定できる属性を利用したいと考えています。この方法により、サーバー側とクライアント側の検証にかかる時間を大幅に節約できます。

しかし、knockout.jsクライアント側のプログラミングが増えるとユーザーエクスペリエンスが向上するため、メリットがあると思います。ポストバックが少ないことが大きな意味を持つ場合は、検討してくださいknockout。特に、1ページにクライアント側で変更することがたくさんある場合。それ以外の場合は、ajax呼び出しを使用jQueryし、success:句でを使用してページコンテンツを更新します。

私が広範囲にわたってアプローチしたい少なくとも1つの将来のプロジェクトがありknockoutます。やっぱり必要な知識になります。そして、それはそれほど難しいことではありません。ウェブサイトの良い例に従ってください。

于 2012-06-05T20:15:55.843 に答える