如何在没有持久性的情况下执行Naked Objects .NET MVC

时间:2012-06-18 14:36:50

标签: .net asp.net-mvc-3 naked-objects

我正在寻找重新编写管理员应用程序,我已经拥有一个非常干净的域类库和Web服务/数据库来处理所有业务逻辑和持久性。也就是说,库已经提供了CreateFoo,GetFoo和UpdateFoo方法,默认情况下使用现有的Web服务。

我以为我可能会使用Naked Objects for .NET MVC来编写新的网络管理工具。看起来Naked Objects假设您希望Naked Objects框架同时处理GUI和持久性,但我只是希望MVC网站来自Naked Objects,而不是持久性。

是否有关于如何执行仅限GUI Naked Objects for .NET的指导? 如何完全“关闭”持久性方面?如果我只是尝试,我会收到异常“App.config文件中没有实体连接字符串” - 的当然,我不想使用任何连接字符串。

更新:将新的NakedObjects.Persistor.Objectstore.Inmemory.InMemoryObjectPersistorInstaller注入RunWeb.cs中的Persistor属性似乎将我转移到内存中持久性。潜水更深一点,似乎我可能需要实现更复杂的界面 - 因此需要一个指南。也许不值得将Naked Objects用于我们必须连接所有持久性逻辑以适应Naked Objects接口的应用程序?

2 个答案:

答案 0 :(得分:3)

正如您所说,您可以将NO MVC与内存中对象存储区一起使用。你需要覆盖

protected override IObjectPersistorInstaller Persistor
RunWeb类中的

属性。

但是对象必须来自某处。对于内存中对象存储,要查找的另一个安装程序是IFixturesInstaller,它定义了一组要在启动时安装到内存中对象库中的fixture(实体)。

总的来说,可能你的用例并不特别符合MVC的设计目的。

答案 1 :(得分:1)

看起来像naked objects使用EF进行持久化。 EF是ORM因此预期db。简而言之,您无法从数据库切换到Web服务以实现持久性,因为NO与EF绑定。