Windows客户端和Web客户端 - 相同的业务层和数据层

时间:2014-02-05 16:53:24

标签: .net wcf architecture multi-tenant business-logic-layer

我需要在.NET中为我的公司编写一个产品,其前端或UI将是不同的 - 赢取表单,Web和移动,但业务逻辑和数据库将是相同的。

在您的情况下,任何人都可以分享或建议您用于实现此目的的架构吗?我也在考虑以下内容。

  1. 编写业务层和WCF并将其作为服务公开。
  2. 我可以使用WCF数据服务吗?
  3. 我应该使用WCF中的JSON来返回大量数据吗?
  4. 实体框架在这里也有帮助吗?
  5. 由于

1 个答案:

答案 0 :(得分:0)

您建议的架构与我一直使用的架构非常相似。您可以替换任意数量的Web服务/ RESTful / WCF类型的通信层。混合搭配,全部使用,找到你最喜欢的。所有这些都很好。

Web服务已经存在时间最长。他们将拥有更多长时间运行系统的实例。 Web服务还有一个称为SOAP的传输层。如果您的客户端没有内置的SOAP支持,它可能会增加客户端与服务通信的复杂性。

WCF是Web服务的更新版本。我对他们做的并不多。我知道一些客户端框架很难与WCF服务进行通信。那是我的经历。您的里程可能会有所不同。

我通过MVC中包含的Web API使用RESTful。到目前为止,这是我用来与客户端应用程序交换数据的简单方法。对于我的应用程序,我使用JSON作为数据传输层。我可以像使用XML一样容易。 MVC都内置了。

浏览器框架领域几乎每个主要参与者都支持使用RESTful服务。我目前的应用程序使用AngularJS(谷歌框架)和.NET中的MVC的组合。我也可以替换KnockOut,或者任何另外十几个客户端框架。或者自己写。

我也在使用实体框架(EF)来促进SQL Server中数据存储的CRUD方面。我可以很容易地指出Oracle或其他一些数据库。 EF适用于任何具有ADO.NET或ODBC驱动程序的东西。当EF不足以满足我的需求时,我可以使用EF DbContext通过LINQ与数据库进行通信。如果LINQ无法删除(通常不会发生),我还可以通过DbContext执行SQL查询,存储过程等。