手始めに、まず 1 つのことについて合意する必要があります。
Breeze を使用してサーバーからデータを取得するのは、JavaScript の経験がない場合、初めて設定するのが難しい場合があります。
いくつかの理由とその課題を克服する方法の例を見るか、不要な読み物を飛ばして、Breeze.js またはクライアント側アプリケーションを使用する場合のセキュリティについて話しましょう。
<!--
If you think this next section is 'Too Long' : 'Don't Read'
and are just interested in security, skip down until
you see 'Why is Breeze.js secure?'
-->
<section role="TL:DR">
Breeze.js のドキュメントは常に更新および改善されていますが、コミュニティとして、 breeze.js の活用方法についてさらに学ぶために改善することができます。ここでは、クライアント側アプリケーションでbreeze.jsをセットアップする方法のヒントといくつかの基本的なシナリオを紹介します -
基本的なシナリオ
Web API コントローラー アクションからデータを取得する -
Web API ルートを使用するときに独自のメタデータを使用するように Breeze.js を設定できます。
http://www.breezejs.com/documentation/web-api-routing
http://pluralsight.com/training/Courses/TableOfContents/building-single-page-applications-breeze
EF / Breeze.WebApi を使用して Web API コントローラー アクションからデータを取得する
VS2012/13 で ASP.NET MVC 5 / Web API 2 プロジェクトを使用するように Breeze.js を設定できます。サーバー側の Breeze.WebApi をヘルパーとして利用する方法を確認したい場合は、このリスト内のリンクまたは PluralSite.com などのオンライン教育サイトのリンクを確認してください -
http://www.breezejs.com/samples
http://www.pluralsite.com
サンプルでは、現在使用されている Web テクノロジの 85% を使用する方法を見つけることができます。これには、Angular、Durandal、MongoDb、Node、Entity Framework、Require、Knockout、Ruby、Twitter Bootstrap、Backbone などが含まれます。
Breeze の仕組みを学ぶ -
http://learn.breezejs.com/
完全に切り離された SPA からサーバーにアクセスする -
独自のクライアント側データ ライブラリの設定、オブジェクト グラフの作成、または高速ではないマッピング ライブラリの使用に常に時間を費やすのはなぜでしょうか? JavaScript ORM は急速に大流行しています。なぜなら、車輪を再構築し続ける必要があるからです。ブリーズはどうやってそれを行うことができますか?
http://www.breezejs.com/samples/edmunds
http://www.breezejs.com/samples/espn
クライアント側のものをサーバー側の特定のスタックに結び付けることなく、完全に分離された API をクライアント側のテクノロジで使用できる 2 つの優れた例です。
Breeze.js はなぜ安全なのですか?
データの内容や生成方法に関係なく、データを外部に公開しないでください。クライアント側またはサーバー側に、データを返す前にユーザーを適切に認証していないアプリケーションがある場合、クライアント側のテクノロジを見る前に、適切に認証されていることをどのように確認できますか?
saveChanges() でデータを送り返すときはどうですか?
データベースを投稿/更新するためのブラウザーの自由なローミングを提供するアプリを設計する状況はほとんどありません。1つは、変更されたコンテンツが、データの取得と投稿をテストしていた非常に初期の開発サイクルであり、ビジネスレイヤーとそれが許可するもの(おそらく単体テストで検証されたもの)が、データの無制限の読み取り/書き込みを許可するように設定されていた場合です。 .
しかし、ブラウザベースのアプリケーションを本番環境に移行する場合はどうでしょうか?
私は、読み返さず、その文書に署名する準備ができていることを 100% 確信している文書に署名することは決してありません。また、使用しているテクノロジー スタックを考慮して要件が満たされていることを確認せずに、コードを開発環境または QA 環境から本番環境に渡すことは決してありません。ASP.NET MVC とセッションを使用してユーザー情報を保存することがアプリケーションの方向性である場合は、コントローラー アクションを [Authorize] 属性で装飾します。別の形式のセキュリティを使用している場合は、公開するデータの適切なセキュリティ レベルを常に維持する必要があります。
たとえ 99.99% の確率で悪意のないコンテンツを提供するブラウザー ベースのアプリケーションを信頼してはなりません。