

.Net Core 3.1 + Prismを用いて開発を行う場合、  
Module毎に処理を分ける場合があると思います。

その際、PrismTemplatePackで初期生成されるModuleは「View」「ViewModel」フォルダとその中に1つのクラス +
フォルダ外に「Moduleクラス」の3つが存在する状態になっています。

これはModuleに分ける場合、モデルクラスをModuleに含まないのがベストプラクティスであることを示していますか？

そうではない場合、例えば新たに「Module1」プロジェクトを追加したとして「View」「ViewModel」フォルダがあるところに「Models」「Interfaces」フォルダを追加したとします。  
さらに、Interfacesにロジックのインターフェース、Modelsにインターフェースの実装を追加します。  
この状態で、別のモジュールからインターフェースを経由してロジックにアクセスするとしたら、場合によっては相互参照を必要とする状況が発生します。  
その為、Models, Interfacesは別プロジェクトに切り出してModule1はViewとViewModelのみを持ったモジュールとしたとします。

これを複数のロジック、例えばユーザー管理プログラムとした場合、「ログイン機能」「ユーザー情報編集機能」など多数のModuleに分割しようとした場合、LoginViewModule,
LoginLogicModuleなど、機能毎に2つのモジュールを必要とします。おそらくこの設計は間違っているのだと思います。

相互参照を回避した、モジュール分けのベストプラクティスはどういった構成ですか？


CC BY-SA 4.0
2020-09-30T07:16:32.417
70833
2023-06-15T11:07:40.913
38100
question
c# wpf prism
Prism Module分割のベストプラクティス


ベストプラクティスは分かりません。  
ただ一点だけの指摘です。

LoginLogicがModule(機能)によらず必要ならLoginLogicはModuleじゃなくて  
Service(LoginLogicService or LoginService) として実装するのが順当かと思われます。  
Serviceなら置くところあるし、わざわざインタフェイス置き場まで作って  
くれてるのに使わない手はないのでは？


CC BY-SA 4.0
2020-10-12T06:38:03.030
71127
2020-10-12T06:38:03.030
18616
70833
answer