C# 基于web服务的.net应用程序体系结构
我只是需要一点帮助来组织我的代码。这不是哲学,而是真正的问题。我正在寻找一个有效的解决方案。例如,在php和symfony框架中,如何组织代码是非常清楚的。在c#net中,我感到迷茫。C# 基于web服务的.net应用程序体系结构,c#,.net,architecture,C#,.net,Architecture,我只是需要一点帮助来组织我的代码。这不是哲学,而是真正的问题。我正在寻找一个有效的解决方案。例如,在php和symfony框架中,如何组织代码是非常清楚的。在c#net中,我感到迷茫。 我只是想重新编写我的项目,重用一些部分 说明 首先,由于我的目标是许多平台windows mobile、windows desktop、android和web,我似乎应该将功能公开为web服务,而不是直接与数据库通信。这是正确的吗? 然后我需要一些客户端应用程序。wpf one、android和windows m
我只是想重新编写我的项目,重用一些部分 说明
首先,由于我的目标是许多平台windows mobile、windows desktop、android和web,我似乎应该将功能公开为web服务,而不是直接与数据库通信。这是正确的吗?
然后我需要一些客户端应用程序。wpf one、android和windows mobile 在wpf中,我想我可以使用MVVM模式 问题
我将postgresql与ADO.NET结合使用,与其他类似的应用程序相比,其性能是惊人的。我发现这会有很大帮助,这是我一直在寻找的东西。但是,我在将sql代码放在哪里时遇到了问题。好的,我有模型课。。像顾客、订单等。。。那么我应该把sql代码放在哪里呢?我应该把CRUD代码放在单独的类中吗?目前,我在控制器类中有一些代码,但当我想做一些事情时,我总是构造一个新的控制器类。这看起来并不太好。
有什么模式可以组织数据库代码吗?您可能需要考虑使用业务逻辑层、数据访问层和用户界面的N层应用程序。更多详情: 我会这样做,并通过DAL(数据访问层)访问所有存储过程或SQL代码(或LINQ To/EF) 但是,如果您使用的是web服务(我想您只有UI和BL层),那么这可能不是必需的——只需调用web服务并对结果执行您需要执行的操作即可 因此,您的应用程序将仅限于UI和BL。BL调用webservice(与您拥有DAL时调用DAL的方式相同),检索数据并执行它需要执行的操作
只有当BL处理请求/响应并与DAL通信以将数据传递回应用程序时,您的Web服务才是BL和DAL。您可能需要考虑使用业务逻辑层、数据访问层和用户界面的N层应用程序。更多详情: 我会这样做,并通过DAL(数据访问层)访问所有存储过程或SQL代码(或LINQ To/EF) 但是,如果您使用的是web服务(我想您只有UI和BL层),那么这可能不是必需的——只需调用web服务并对结果执行您需要执行的操作即可 因此,您的应用程序将仅限于UI和BL。BL调用webservice(与您拥有DAL时调用DAL的方式相同),检索数据并执行它需要执行的操作 只有当BL处理请求/响应并与DAL通信以将数据传递回应用程序时,您的Web服务才是BL和DAL 我应该把sql代码放在哪里,我应该把CRUD代码放在 单独上课 是的,请查看-您的数据代码应该是单独的,并返回对象,例如
Customer
。或者可以提供合适的功能,并且是行业标准
你也可以在上面放一个,从你的多个前端调用
确保在层之间使用,以减少紧密耦合,我现在很喜欢,但有很多好的框架
顺便说一下,您也可以在MVC中使用MVVM模式
我应该把sql代码放在哪里,我应该把CRUD代码放在
单独上课
是的,请查看-您的数据代码应该是单独的,并返回对象,例如Customer
。或者可以提供合适的功能,并且是行业标准
你也可以在上面放一个,从你的多个前端调用
确保在层之间使用,以减少紧密耦合,我现在很喜欢,但有很多好的框架
顺便说一句,您也可以在MVC中使用MVVM模式。后端部件需要提供以下功能:
服务的WCF体系结构
——它是通过一组协议访问的契约及其实现。由于WCF使用实体序列化和反序列化,所以对我来说,将任何业务逻辑放在实体中都不是一个好主意。将它放在单独的类(存储库
)中,并从您的服务调用存储库。它被称为贫血域模型
-域实体不包含任何业务逻辑-与富域模型相反
-实体包含业务逻辑