説明/参照:
テストレット1
バックグラウンド
注文の処理に使用されるASP.NET MVCアプリケーションをVisual Studio 2012で開発しています。
ビジネス要件
申請書は以下の3ページで構成されています。
処理の準備ができている注文について外部データベースに照会するページ。その後、ユーザーは

注文を処理します。
処理済み注文を表示するページ。

ベンダー情報を表示するページ

アプリケーションは、外部データを取得するために3つのWCFサービスを消費します。
技術要件
Visual Studioソリューション:
このソリューションには、次の4つのプロジェクトが含まれています。
ExternalQueue:外部注文データベースと通信するために使用されるWCFサービスプロジェクト。

OrderProcessor:注文処理および注文メタデータのログ記録に使用されるASP.NET MVCプロジェクト。

OrderUpload:注文データを外部データソースに送信するために使用されるWCFサービスプロジェクト。

出荷:出荷情報を取得するために使用されるWCFサービスプロジェクト。

ExternalQueueプロジェクト:
Entity Frameworkはデータアクセスに使用されます。次の図に示すように、エンティティはExternalOrders.edmxファイルで定義されています。

プロジェクトには、次のファイルに定義されている2つのサービスが含まれています。
IExternalQueueService.es

ExternalQueueService.svc

ExternalQueue.Helpers名前空間には、OrderNotFound Exceptionという名前のクラスの定義が含まれています。
OrderProcessorプロジェクト:
Entity Frameworkはデータアクセスに使用されます。次の図に示すように、エンティティはProcessedOrders.edmxファイルで定義されています。

クラスはOrderProcessor.Entities名前空間に含まれています。プロジェクトには、次の2つのコントローラーが含まれています。
InboundQueueController.es

ProcessedOrderController.es

ExternalQueue、ShippingおよびOrderUploadサービスへのWCFサービスプロキシは、コマンドプロンプトを使用して生成されています。 ExternalQueueService.svcファイルのExecuteCommandProcedure()メソッドは非同期に実行する必要があります。
ProcessedOrderControllerコントローラーには、以下の要件があります。
GetVendorPolicy()メソッドは、10分の絶対キャッシュ有効期限ポリシーを適用する必要があります。

GetProcessedOrders()メソッドは、最近処理された10件の注文のビューを返す必要があります。

OrderUploadプロジェクト:
プロジェクトには、次のファイルに定義されている2つのサービスが含まれています。
IUploadCallbackService.es

UploadCallbackService.svc

データアクセスはUploadOrder.esという名前のファイルで管理されます。
配送プロジェクト:
Entity Frameworkはデータアクセスに使用されます。次の図に示すように、エンティティはExternalOrders.edmxファイルで定義されています。

ExternalOrders.edmxのカスタムツールプロパティは削除されました。
エンティティモデルのPOCOクラスは、ShippingAddress.esファイルにあります。 POCOエンティティは、遅延ロードを使用してロードする必要があります。
プロジェクトには、次のファイルに定義されている2つのサービスが含まれています。
IShippingService.es

ShippingService.svc

IShippingServiceコントラクトには、注文番号をパラメーターとして受け取る操作が含まれている必要があります。
操作は、Stateという名前のクラスから継承したShippingInfoという名前のクラスを返す必要があります。
アプリケーション構造






