web-dev-qa-db-ja.com

Xamarinフォームプロジェクトに適したフォルダー構造

私はXamarinフォームを初めて使用するので、あまり意識していませんXamarinフォームプロジェクトを適切なフォルダー構造に配置する方法

たとえば次のファイルを含むプロジェクトがあります。

  1. ネットワーク通話
  2. データベースの取り扱い
  3. 作品を見る
  4. モデルビューバインディング
  5. ユーティリティなど.

注: Xamarinフォーム自体にはXamarin.iOSおよびXamarin.Androidソリューションフォルダーがあり、上記のファイルはAndroidとiOSの両方に共通です。

11
Vineet Ravi

典型的なアプリケーション層

  • データレイヤー– SQLiteデータベースである可能性が高いが、XMLファイルまたは他の適切なメカニズムで実装できる、不揮発性データの永続性。
  • データアクセスレイヤー–実装の詳細を呼び出し元に公開することなく、データへの作成、読み取り、更新、削除(CRUD)アクセスを提供するデータレイヤーのラッパー。たとえば、DALにはデータをクエリまたは更新するSQLステートメントが含まれている場合がありますが、参照元のコードはこれを知る必要はありません。
  • ビジネスレイヤー–(ビジネスロジックレイヤーまたはBLLと呼ばれることもあります)ビジネスエンティティ定義(モデル)とビジネスロジックが含まれます。ビジネスファサードパターンの候補。
  • Service Access Layer–クラウド内のサービスにアクセスするために使用されます:複雑なWebサービス(REST、JSON、WCF)からリモートからのデータと画像の簡単な取得までサーバー。ネットワークの動作をカプセル化し、アプリケーション層とUI層で使用される単純なAPIを提供します。
  • アプリケーションレイヤー–通常はプラットフォーム固有のコード(通常はプラットフォーム間で共有されません)またはアプリケーション固有のコード(通常は再利用できません)。アプリケーションレイヤーとUIレイヤーのどちらにコードを配置するかをテストするのは、(a)クラスに実際の表示コントロールがあるかどうかを判断するか、(b)複数の画面またはデバイス(iPhoneやiPadなど)で共有できるかどうかです。 )。
  • ユーザーインターフェイス(UI)レイヤー–ユーザー向けのレイヤーには、画面、ウィジェット、およびそれらを管理するコントローラーが含まれます。

enter image description here

これらの各レイヤーは、個々の_Solution Folder_を表します。そして、それぞれのLayerも異なるClassLibrary(Portable)である必要があります( カプセル化 を参照)

このドキュメントを読む価値もあります:

カプセル化責任の分離ポリモーフィズム

Xamarin Developer Guide-Achitecture から取得

さらにいくつかの情報も見つけました こちら

14
Felix D.

どちらのオプションが優れているかについて完全な合意はありません-共有プロジェクトまたはポータブルクラスライブラリを使用しますが、これらはコード共有のオプションです。

個人的に私はミゲルデイカザに同意します。Xamarinは、他のアプリ間でコードを共有しない場合は共有プロジェクトの方が良いと述べていますが、Xamarinの一部の人々は反対の意見を持っています。

1
Ivan Ičin