首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WPF + WCF + MVC + EF Web/桌面应用程序

WPF + WCF + MVC + EF Web/桌面应用程序
EN

Stack Overflow用户
提问于 2011-11-22 17:50:31
回答 2查看 1.6K关注 0票数 3

我正在规划一个应用程序,这将有一个基于web的组件和桌面客户端组件。基本上,我计划创建一个基于web的组件使用ASP.NET MVC3Entity Framework作为一个正常的数据驱动的网站,但我也计划创建一个桌面客户端,将扩展网站的功能,这对我来说是新的领域,我有点困惑。我知道创建需要访问中央数据库的应用程序的最好方法是使用WCF,但我以前没有使用过它,但听说它很容易与Entity Framework集成。

所以我知道我想要做的事情肯定是可能的,我只是在寻找一些指导,关于这个应用程序的独立组件应该如何粘合在一起,等等,我应该首先使用WCFEntity Framework吗?或者我应该在使用WCF之前完成基于web的组件网

谢谢,亚历克斯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-22 18:45:20

有很多方法可以做到这一点,所有这些方法都有不同程度的复杂性。例如,您可以使用实体框架来构建您的web应用程序,在同一个web应用程序中,您可以公开一个OData服务(WCF Data Service),它提供了一个RESTful服务,您的WPF应用程序可以使用该服务来访问数据库。这相当简单,因为WCF数据服务与实体框架配合得非常好。这基本上是两分钟的工作(如果你没有做任何花哨的事情)。然后,您的WPF应用程序基本上具有与您的web应用程序相同的数据库访问类型。在其默认配置中,WCF Data Service仅公开EF ObjectContext,并允许对其执行相同类型的操作。我建议您尝试一下,看看它是否符合您的要求。

但是,这种方法基本上是允许桌面应用程序访问数据库的捷径。在大多数情况下,这是非常好的。如果您确实想在其中投入一些精力,您可以对使用实体框架数据源或OData数据源的服务层进行建模。从现在开始,一切都是关于设计模式的。这是有代价的;层分离是一件很难做的事情,如果你想做好它的话。鉴于.NET的世界在某种程度上已经改变为“完成工作”,把这些部分放在一起,很快就能得到一个运行中的应用程序是很好的。

您还应该考虑到WPF中的MVVM和web应用程序中的MVC有根本的区别;在MVC应用程序只是从数据库中提取“快照”的情况下,WPF应用程序可能需要更多的工作和异步编程才能感觉自然。

我可以为您提供一些特定任务的指导,比如如何解耦WCF数据服务和实体框架,但从我的经验来看,“正确地做好它”的开销是巨大的。如果您在没有服务层的情况下感到舒适,那么使用EF和OData将会有一个愉快的体验。

票数 6
EN

Stack Overflow用户

发布于 2011-11-22 18:13:14

最好从web组件开始,首先与wcf集成,你可以使用实体框架,但如果你有一个数据密集型数据库,我建议你使用T-Sql本身,它为你提供了很多性能选项。我建议你使用MVP模式构建应用程序模型,因为它使得从桌面应用程序切换到web应用程序变得很容易,而且还符合您扩展它的需求。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8224837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档