gpt4 book ai didi

android - MVC网站调用WCF比较好或者MVC直接调用数据库操作比较好

转载 作者:太空宇宙 更新时间:2023-11-03 12:37:16 25 4
gpt4 key购买 nike

我们需要开发一个可以从桌面浏览器浏览的网站。我们还需要为同一个网站开发一个安卓应用程序。我们正在考虑使用 C#、Microsoft SQL Server 和 Windows Communication Foundation、Linq To Entity with Repository Framework 来使用 ASP.NET MVC。

WCF 将使用 Linq to Entity 使用 Repository Framework 访问数据库并返回 JSON。

问题 1 Android 应用程序将调用 WCF 服务。我们的想法正确吗?

问题 2ASP.NET MVC 网站将调用 WCF 服务。让 ASP.NET MVC 应用程序调用 WCF 服务更好,还是让 ASP.NET 应用程序直接与数据库通信而不在中间使用 WCF 更好?

我的想法是仅将 WCF 用于 android 应用程序,并使 ASP.NET MVC 使用 linq to entity 框架直接与数据库交互,使用存储库模式,中间没有 WCF。这是一个好方法吗?

问题 3 如果 ASP.NET MVC 网站将调用 WCF 服务,我需要在哪里实现 DI。我认为它必须介于存储库框架和 WCF 服务之间,而 DI 将与 ASP.NET MVC 和 WCF 无关。对吧?

这可能是一个简单的问题,但我想知道如果其他人有同样的需求,他们是怎么做的。像网站和 android 应用程序。我不熟悉 DI 以及如何使用它。我一直在阅读有关 DI 的内容,但不太了解。所以我想知道 DI 将存在于何处?

最佳答案

  1. 您的 Android 应用无法直接调用您的数据库,因此您需要介于两者之间的服务。这可以是 WCF 或另一个流行的选项是 ASP.NET Web API。
  2. 您不应让您的 MVC 应用通过 WCF 服务间接与数据库通信,除非确实需要这样做(例如出于安全或组织方面的考虑),因为这种额外的间接层会降低性能。与 WCF 通信有很多开销,但似乎并不一定如此。
  3. 如果您决定让您的 MVC 应用程序调用 WCF 服务,则 MVC 和 WCF 应用程序都会获得自己的 Composition Root .这意味着他们每个人都有自己的 DI 配置和注入(inject)依赖项的方式。他们可能会分享很多东西,但这不是必须的。

我想您可能会觉得我的回答令人不安。您可能担心同时具有与数据库通信的 WCF 服务和 MVC 应用程序的开发开销,而不是仅具有与数据库通信的 WCF 服务。

但这不一定是这种情况。事实上,情况不应该如此。当你这样做时,你做错了。 WCF 服务本身应该只是业务层之上的一个非常薄的层。您的 MVC 应用程序使用的相同业务层。事实上,当应用正确的抽象时,您将能够在几分钟内将您的 MVC 应用程序从使用数据库切换到使用 WCF 服务。

您可以通过将您的业务操作置于通用抽象之后并使用基于消息的架构来实现这一点。在这种情况下,您的 WCF 服务(或 Web API)可以简单地排除这些消息并将它们转发到业务层。如果你正确地做到了这一点,你会发现你可以用免维护的方式编写你的 WCF 服务或 Web API 服务,这意味着:你不必在系统增长时更改它们;当新的业务操作添加到系统时。

我建议您阅读以下文章:

如果您在阅读这些文章后对如何实现它有疑问,请查看 Highly Maintainable Web Services project .这是一个引用架构应用程序,展示了如何使用 WCF 和 Web API 应用这些概念。

关于android - MVC网站调用WCF比较好或者MVC直接调用数据库操作比较好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16148026/

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