我对我的项目设置并不满意,所以我希望你能给我一些提示来改进它。
我现在在Blank Solution中有以下项目:
* Model (Portable Class Library)
* ViewModel (Portable Class Library)
* DataAccess (Class Library) because of using Entity Framework 6
* App.WPF (WPF-Application for Desktop)
在我的DataAcces项目中,我有一个界面' IRepository'和实施' EFRepo'它实现了' IRepository'。 ViewModel项目中的PersonViewModel' -class通过构造函数依赖注入获取DataAccess:
public PersonViewModel(IRepository dal){...}
如果我想在我的' App.WPF'中实例化DataContext。项目:
public MainWindow()
{
InitializeComponent();
DataContext = new PersonViewModel();
}
我的MainWindow在' App.WPF'需要参考这些项目:
* Model
* ViewModel
* DataAccess
我认为这很重要。 View(App.WPF)应该只知道ViewModel,对吗?我怎样才能做到这一点?
我试图创建一个共享项目'称为接口和另一个名为' Implementation'在哪里我放了EFRepo
IRepository
的实现。但是我必须从DataContext
项目公开和类库'实施'也必须参考DataAccess
......
总而言之,我很困惑如何以可接受的方式处理它。我想将ViewModel用作桌面(WPF),Silverlight和Windows Phone应用程序用于教育目的,这就是我试图保持一切独立的原因。
我使用Visual Studio 2015社区版