【问题标题】:WCF or simple library class for my ASP.NET MVC application and performance issues用于我的 ASP.NET MVC 应用程序和性能问题的 WCF 或简单库类
【发布时间】:2012-06-06 18:30:06
【问题描述】:

我在我的应用程序架构中工作,我想知道是否应该使用 WCF。 UI 将是一个用 ASP.NET MVC 3 编写的公共网站,但将来可能是 Iphone/Android 应用程序...... 所以现在我有一个数据层(实体框架+存储库),业务层(类库) 和 UI (ASP.NET MVC) 通过 ViewModel 进行通信。

我知道在一个好的 SOA 应用程序中,业务层应该作为 web 服务公开,但我想知道性能问题,因为我的网站流量会很高,并且在同一台机器上托管 WCF 和 IIS 中的网站是浪费时间和性能,因为要进行通信,他们必须序列化/反序列化对象。

将我的业务层保存在 dll(类库)中并将其部署在 ASP.NET 应用程序中比在 wcf 服务中加热它更好吗?

感谢您的帮助。

【问题讨论】:

    标签: asp.net-mvc-3 wcf iis n-tier-architecture


    【解决方案1】:

    http://geekswithblogs.net/BlackRabbitCoder/archive/2010/06/13/premature-optimization-and-performance-anxiety.aspx

    我认为,在您确定对 iphone/android 解决方案的要求之前,现在将其保留为 dll 将是最简单的解决方案。我们在我工作的地方广泛使用 WCF,而且速度非常快。

    也就是说,创建 WCF 服务以防万一您以后需要它似乎为时过早,而且以后添加 Web 引用并删除 dll 总是很容易。您无法轻易收回花在 WCF 服务上的时间(以及在您的应用程序及其数据之间不必要地添加另一层的风险)。

    【讨论】:

    • 感谢您的回答。关于在 asp.net 中使用 dll 的解决方案与在同一服务器中调用 wcf 的 asp.net 解决方案之间的性能差异有什么想法吗?
    • 好吧,如果你问我,如果你在这两种情况下都访问数据库,那可能是整个交易中最慢的部分。如果您将 Net.Pipes 之类的东西用于共享服务器的项目,则在同一台服务器上发送消息会非常快。然后,将来,您可以将其他端点暴露给需要远程通信(例如,通过 http)的系统。
    • 我同意 Killnine。除非您确认有必要实现第二个 GUI,否则您应该继续使用 DLL。还要考虑 WCF 实施和维护的工作。移动设备很可能只实现有限的功能,因此您花在移动设备中未公开的功能的服务上的时间将被浪费。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 2018-11-20
    相关资源
    最近更新 更多