我有一个架构,它像这样子
存储库 -> BO -> WCF -> Web
反之亦然
存储库 <- BO <- WCF <- 网页
我的问题是,如果我只是进行简单的 CRUD 操作,比如仅根据 ID 删除一个记录,是否可以跳过 BO 直接进入仓库?
存储库 <- WCF <- 网络
我有一个架构,它像这样子
存储库 -> BO -> WCF -> Web
反之亦然
存储库 <- BO <- WCF <- 网页
我的问题是,如果我只是进行简单的 CRUD 操作,比如仅根据 ID 删除一个记录,是否可以跳过 BO 直接进入仓库?
存储库 <- WCF <- 网络
不可以,必须走同一条路 :)
教皇基本上说——要么是罚款;但你必须选择一种方法并坚持这种做法;这是前后一致的。 如果你把这两人混在一起,就几乎得到保证。
至于该选择哪个 - 如果它满足您的需求,任何一个都可以,但前提是要知道可能会出现的相关风险,可能会对您产生长期影响。我几乎总是采取“BO”方法,因为开销并不是很大,而且如果系统的需求发生变化,很可能会避免很多重复工作;拥有BO肯定是长期更安全的。
答案就像在建筑中一样,它取决于情况。只要你清楚你允许什么,你就可以有或没有允许绕过的建筑层。
在您的情况下,您简化了基本的CRUD用例,这是好的:传递CRUD的BO代码本身就是一种无意义的成本。但是,您还介绍了一些关于何时使用业务对象层的不确定性:在极端情况下,系统可能倾向于将所有内容视为CRUD,从而消除BO层的任何价值。在稍微不那么极端的情况下,您可能会得到一些实现复杂逻辑、彼此分离且与业务域的任何面向对象表示方式解耦的BO函数。
只需明确(并写下几句说明)何时使用哪种模式的原则,严格遵守这些原则。
我的建议是坚持你的架构,通过BO进行特定操作,如更新或删除,这可能需要业务规则验证和其他级联类型操作。您可能现在没有为实体定义任何业务规则,但您应该为可扩展性进行设计。
在某些情况下,可能可以绕过您的BO进行读取/检索类型的操作,例如检索某些内容的列表或符合严格表示、搜索或验证目的的DTO对象,以在复杂环境中实现更好的简易性或性能改进。
Suppose I would like to depict data flow between two servers in Visio. I have boxes to represent servers and arrows to represent communication / data flow. In this situation: Server A always ...
I m setting up an application, and I m looking into purchasing a license for SQL Server. My question is pretty simple (though may have a complicated answer...) How many users accounts do I really ...
I m currently working with an online application that requires multiple screens/steps in order to complete. The application domain is modeled using an object graph. Persistence to and from a database ...
我有一个网络应用程序,由数据、业务和数据分析项目安排。 随着该系统的发展,所有三个项目都进行了部署,并将其部署在一个一揽子计划中。 ......
Why does the high part of the stack (in Exception.StackTrace) gets truncated? Let s see a simple example: public void ExternalMethod() { InternalMethod(); } public void InternalMethod() { try ...
I would like to know how do i incorporate a feature like wcf within and MVC application. My current idea of the architecture is as follows: EntityFramework -> ASP.NET MVC (Views) ...
I ve moved to a new project team and while going over the codebase, found that the team have created a number of local web services which then get called by server code in other web pages within the ...
I am starting a project to create an "object versioning" feature for our software (.NET 3.5 / SQL Server 2008), basically it needs to do this: a user is looking at a customer: last name is "Smith-...