2016-09-24 17 views
0

Webアプリケーションとモバイルアプリケーションを必要とするアプリケーションについて調査しており、Azure App Serviceの使用を検討しています。Azure Appサービスを使用するWebアプリケーションとモバイルクライアントの同じビジネスロジック

現在の実装では、モバイルアプリケーションとウェブアプリケーションに同じロジックを記述する必要があります。私は両方のエンドポイントに同じリポジトリとデータベースを使用したいと思います。しかし、私は2つの異なる場所にビジネスロジックのための同じコードを書いたくありません。

同じリポジトリ、データベース、およびビジネスロジックを使用してWebアプリケーションとモバイルアプリケーションを混在させるにはどうすればよいですか?

Web APIを使用する場合、Web APIとMVC 5アプリケーションの両方で使用できるサービスレイヤーを作成できます。私はそれに似たシステムが欲しい。

+0

作成するアプリケーションの種類について詳しく教えてください:アプリケーションはクライアント上でのみ動作しますかデバイス、またはそこにサーバー側コンポーネントがありますか?派手なグラフィックスやボタンやテキストフィールドが必要ですか?ネットワークは関係していますか?マルチスレッド? –

+0

はい、アプリはクライアントデバイス上で実行されます。アプリケーションは、Webアプリケーションとモバイルアプリの両方から使用できます。 –

+0

アプリの内容は何ですか?それは電卓のような単純なものですか?マイクロソフトの見通しのような複雑なものはありますか?テトリスのようなゲーム? 3Dシューティング?オフィスアプリケーションですか?メモ帳のようなテキストエディタ?私を信じてください - それはあなたが達成しようとするものに完全に依存します。 –

答えて

5

あなたはすでに答えを得ています。 APIを使用する。分離されたアーキテクチャでソリューションを構成すると、同じバックエンドサービスを再利用して、好きなだけ多くのフロントエンドを記述することができます。 Webアプリケーションとモバイルアプリをフロントエンドとみなしてください。UIを制御するための最小限のロジックで、プレゼンテーションレイヤーでなければならず、ビジネスロジックもありません。このように切り離す典型的な解決策は、以下のようになります。インターフェイスを使用してAPIを記述すると、APIを使用するアプリケーションに影響を与えずに、バックエンドサービスを簡単に模擬したり、リファクタリングしたり、再処理したりすることができます。

sketch of decoupled architecture

  • Webアプリケーション
  • モバイルアプリ
  • APIプロジェクト(WebAPIの/ RESTを推奨)
  • インタフェースも
  • ビジネスサービス(再利用可能な、長期的な、堅牢かつサービスへテスト済み/テスト可能)
  • リポジトリ(db接続を抽象化する)
  • あなたの独立したWebアプリケーション/モバイルによって呼び出されの
  • その他の抽象化(Webサービス、その他のサービス/システム)

だからあなたのビジネスロジックが一度書き込まれ、インタフェースおよび/またはREST APIでガラス張りすることができ、アプリ。アプリケーションをサービスに参加させるメカニズムとしてWeb APIを使用する場合は、ビジネスサービスを物理的に1つ展開する必要があります。インターフェイスを使用する場合は、バイナリを各インスタンス(Webアプリケーション、モバイルアプリケーションなど)にデプロイする必要があります

関連する問題