0

我以前是 Winforms 程序员;我总是将我编写的程序分为两部分,前端(Winforms)和中间层(由 Remoting/WCF 促进)

在这种方法中,前端代码无法访问 Linq 或 System.Data.SqlClient。但这还有一个额外的优势,即中间层是即时 SOA 公民(面向服务的架构),可用于 B2B 场景,与数据库无关,并且支持互联网,即使它只是一个 Winforms 应用程序。

现在我正在学习网络技能。使用 Pro ASP.NET MVC 一书中的 SportsStore 项目,我不可避免地会比较我的旧(?)方法(中间层)和那本书上的存储库方法。存储库方法直接在前端(SportsStore.WubUI)上公开数据访问机制(Linq to SQL)。使用存储库方法,SportsStore.WebUI 仍然可以直接连接到数据库。

问题是,在 Web 程序上,我是否应该希望前端只与中间层接口(因此前端可以与数据库无关,而中间层是即时 SOA 公民),还是我应该在前端直接使用数据库(通过存储库方法、ORM 或类似方法)?

4

1 回答 1

0

为了简洁起见,我确信这本书违反了一些最佳实践。作者必须平衡“我如何表达我的观点”与“什么是正确的做法”;他们通常选择前者(他们应该这样做——这是一本关于 Web 开发的书,而不是关于架构的书,对吧?)。

您绝对应该继续使用 n 层架构。n 层架构的全部意义在于允许您(更)轻松地交换层——切换数据库、切换用户界面(例如,用 ASP.NET 替换 Winforms)。

于 2010-11-26T14:21:31.573 回答