gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 09:35:49 25 4
gpt4 key购买 nike

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

所以我知道我想做的事当然是可能的和 WCF第一的?或者我应该在使用 Entity Framework 之前完成基于 Web 的组件吗? ?

谢谢,亚历克斯。

最佳答案

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

但是,这种方法基本上是允许桌面应用程序访问您的数据库的快捷方式。在大多数情况下,这完全没问题。如果您确实想为此付出一些努力,您可以为使用 Entity Framework 数据源或 OData 数据源的服务层建模。从这里开始,一切都与设计模式有关。这是有代价的;如果你想把它做好,分层是一件很难的事情。鉴于 .NET 世界已经发生了一些变化,以“完成工作”,将这些部分放在一起并立即获得一个正在运行的应用程序是很好的。

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

我可以为您提供一些特定任务的指导,例如如何解耦 WCF 数据服务和 Entity Framework ,但根据我的经验,“正确执行”的开销是巨大的。如果您在没有服务层的情况下感到舒适,那么您将拥有使用 EF 和 OData 的美妙体验。

关于WPF + WCF + MVC + EF Web/桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com