3層のWinFormアプリケーションを作成しようとしています。これは3層設計の最初の試みであるため、行き詰まり、いくつか質問があります。
アプリケーションは、複数のsqlitedbファイルの添付をサポートします。
だから私はこのようなクラスを作成しました
public class Database
{
public string Name { get; set; }
public string FilePath { get; set; }
public bool isAttached { get; private set; }
}
今、私はそれらのオブジェクトのコレクションが欲しいです。
以下のDatabaseListのような別のクラスを作成する必要がありますか、それともリストを作成するだけで十分ですか?
public class DatabaseList : List<Database>
{
...
vs
List<Database> myDatabases;
Form1.csで何を作成する必要がありますか?
たとえば、上記のコレクションはForm1.csではなくBusinessLayerで作成する必要があり、Form1.csではBusinessLayerクラスのみが作成されると想定しています。これは正しいです?
アタッチメソッドはどこに配置しますか?
メソッドは次のようになります。
public void AttachDB(Database db)
{
MySqliteHelper.Attach(db.Name, db.FilePath);
this.Add(db);
}
メソッドをDatabaseListクラスに配置しますか(これがコレクションを作成する方法である場合)、それともBusinessLayerに配置する必要がありますか?
Attachメソッドを作成して、単一のファイルに存在するMS SQLCompactEditionなどの追加のリレーショナルデータベースをサポートする方法
MySqliteHelperと同じメソッドを使用して別の一般的なデータベースヘルパークラスを作成することを考えていましたが、AttachDBメソッドが代わりにそれを呼び出します。何かのようなもの
MyDBHelper.Attach(db.Name, db.FilePath);
それとも、これはDependency Injections
likeNinject
が役立つ場合がありますか?私は以前にそれを使用したことがなく、Ninjectから思い出しているのは、さまざまな武器を持っている侍だけなので、特定のデータベースクラスが異なるという私の問題に少し似ているようです。