クライアントの1人用に小さなWebアプリケーションを構築するように依頼されましたが、Webアプリケーションを構築するための別のフレームワークを試す良い機会になると思います。作成するアプリケーションのほとんどはasp.net Webフォームに基づいており、MVCアーキテクチャではまだ何もしていませんが、適切なツールを使用してより構造化された方法でWebアプリケーションの作成を開始したいと考えています。
私はasp.net MVCなどの見栄えのいいものを研究していますが、Google AngularJSフレームワークのようなものを使用するために何か言わなければならないことがありますか。
可能であれば、c#を使用してサーバーサイドコードを記述できるようにしたいと思います。Webサービスを使用できると想定していても、AngularJSでこれが可能かどうかを十分に調査していません。
AngularJSを使用してアプリを開発した経験のある人はいますか?もしそうなら、それはどうでしたか?
過去2か月間、AngularJSでSwing fat-clientアプリケーションのポートを開発してきましたが、お勧めする価値があると思います。学習リソースに関する限り、公式プロジェクトサイト(およびチュートリアルを必ずお読みください)とメーリングリスト(著者は非常に役立ちます)をご覧ください。
良いもの:
悪いもの:
いくつかのポインター(AngularJSを学ぶことに決めた場合):
+1 @psychoの回答
AngularJSはクライアント側のフレームワークであるため、サーバーで任意の言語を使用できます。テストに大きな重点を置いて、jQueryとうまく連携するように設計されています...
役に立つと思われるリソースを次に示します。
いくつかのサンプルアプリ:
SenchaTouch用アダプター: https://github.com/tigbro/sencha-touch-angular-adapter
JQ Mobile用アダプター: https://github.com/tigbro/jquery-mobile-angular-adapter
メーリングリスト !で自由に質問してください
Googleはまだベータ版ですが、Googleには AngularJS を使用した内部アプリが既にいくつかあります。
更新(2012年7月26日):
AngularJS v1.0がリリースされました。
一部のパブリックAngularJS搭載アプリについては、 http://builtwith.angularjs.org をご覧ください
私見は、彼らがサポートするのが難しいかもしれないクライアントのために何かを開発することは専門的ではありません。クライアントが経験豊富なAngular=専門家を雇うこと、またはその「急な学習曲線」を登るように自分の人々を訓練することは困難であることを心に留めておく必要があります。すぐに、「光沢のあるAngularアプリをクライアントのデータベースに接続するにはどうすればよいですか?」という質問に簡単に答えることができますか?いくつかの既存のコードを潜在的な将来のニーズに合わせて調整しますか?正直に言ってください。
昔ながらの信頼できるLAMP開発をAngularと比較してください。 「小さなWebアプリケーション」の場合、専門家はクライアントに保守可能でシンプルなものを提供すべきだと本当に信じています。
Angularがクールでセクシーなどではないなどと言っているわけではありません。しかし、最新のフレームワーク流行に加えて、クライアントの将来の保守性について考える必要があります。 Angular=を使用して独自のWebサイトを作成し、信頼できるクライアントにすばらしい新しいスキルを付与する前に、あなたが考えていることを確認してください。
私はこれを読んだことを覚えていますSOスレッドは私の頭の中で同じ質問で数ヶ月前に、私たちはAngularJSを進めることにしました、そして私たちはこのプロジェクトでまだ最善の決定をしました。
AngularJS + ASP.NET MVC4 REST WebAPI。
このようなNiceクライアント側のJavascript MVCフレームワークの後、ほとんどの場合、必要なのはREST API /構造は古い思い出のように感じるでしょう)。
Angular-UIの優れたアドオン(esp ng-grid)が見つかります。
プロジェクトの完了後すぐに、オープンソースの世界向けに作成したディレクティブの一部を追加する可能性があります。
私は長年、AngularJSのメリットを調査して、作成している製品のコアフレームワークとして活用しています。 AJSには学習する価値がある多くの側面があります。はい、少し学習曲線がありますが、特にクライアント側の機能をさらに制御したい場合は、それだけの価値があります。
JQueryは実行時にDOMを操作しますが、AJSはJSレンダリングライフサイクル内に位置します。これにより、HTML要素と属性を作成することにより、DOMに新しいトリックを教えることができます。これは非常に強力です。あなたができることは、あなたの目的や必要に応じて新しいElementの動作を導入することです。 AJSでは、これらのカスタムHTML属性/要素はディレクティブと呼ばれます。独自のディレクティブを作成する機能により、現在のHTMLにはない機能を構築して、現在および将来のすべての最新ブラウザーで実行される機能をプッシュできます。新しい振る舞いを誘発する多くのアプローチの中で、AJSは、それをどのように選択したかにより、最も安全な方向性を示しているようです。
AJSでは、JQueryよりもパフォーマンスが大幅に向上します。
双方向のデータバインディングのシンプルさと、クライアント側のMVCパターンでの懸念の分離が大好きです。これは、上で指摘したように、優れたテスト容易性を提供します。スコープオブジェクトは、ビュー(HTML)、モデル(データ)、およびカスタムコントローラー間の接着剤です。スコープは、親属性へのアクセスを提供し、兄弟レベルで分離することができます。これは、一部の再利用可能なテンプレートにとって重要です。
テンプレートは、アプリケーション全体で作成および再利用できます。テンプレートには、0個以上のカスタムディレクティブを含めることができます。
私はPRISMやMEFなどのフレームワークを使用していましたが、AJSにはこれらの.NETフレームワークに存在する機能のほとんどが29Kのフットプリントにあることがわかりました。彼らは遅延読み込みに取り組んでいるといううわさがあり、それが提供されれば、非常に興味深いLOB型機能を提供します。
AJS用に構築されているUIフレームワークは多数ありますが、少し努力すれば、必要に応じてサードパーティのコントロールライブラリをラップできます。秘Theは、これらのサードパーティのコントロールに変更が加えられたときに、その適用方法を使用してAJSが適切に通知されるようにすることです。
VS 2012内でAJSとMS TypeScriptを組み合わせると、VS内のプロジェクトに慣れている人にとってうまく機能する非常に印象的なプロジェクトを管理および構築することができます。
AJSを見る理由は他にもたくさんありますが、KnockOutなどのフレームワークを検討している場合は、学習曲線に関係なく、AJSを強くお勧めします。 Knockoutはライブラリ、AJSはフレームワークです。
これまでのところ、GoogleのAngularは素晴らしいと思います。特にデータバインディングと依存性注入のようなものです。
他のjsフレームワークについては、knockout.js、backbone.jsなどがあります。ここにいくつかの投稿があります: backbone.jsおよび/またはknockout.jsのangular.jsの例
この投稿は古く、Angularを使用したことがないことは承知していますが、私はあなたに似た背景を持っています。質問をするときはあなたと同じ時点です。
したがって、将来の訪問者の利益のために、「リスク」のいくつかと私が有用であるとわかったリソースへのリンク...
そして最後に、このことを学ぶために見つけた3つの最高のリソース
私はこれに「はい」と答え、それを行う方法として John Papaのhottowel の実装を確認します。