c# - 架构/设计模式问题

标签 c# asp.net architecture linq-to-entities

昨天我和我的伙伴讨论了我正在开发的这个电子购物网站的架构。请注意,我为此使用 ASP.NET。他非常惊讶地发现我没有将添加到购物车的项目保留在 ArrayList 或其他通用列表中,而是使用 LINQ To Entities 将它们直接插入到数据库中。我可以只通过这个网络应用程序而不使用 n-tire 还是我应该按照我 friend 的建议去做,即有执行更新、删除等的方法。我非常感谢您的反馈,因为这对我来说是一个非常重要的困境。谢谢!

最佳答案

我认为这里有两件事需要考虑:

你能做的最糟糕的事情之一就是过度设计,并在不需要的时候创建一个 N 层系统。如果不需要数据访问层,就不要在其中添加一个。

找出您的系统的需求,如果您需要能够横向扩展,那么您将必须分层设计您的系统,并使用更具可扩展性的数据访问方法以及服务获取/更新您的数据。

第二,当用户将东西添加到购物车时,是否应该将这些东西放入数据库中。我认为这不一定是一个问题。访问数据库的成本很高,尤其是当您可以将它们存储在客户端/ session 端直到..

<小时/> 话虽这么说,我个人喜欢使用数据访问层,我发现它使代码更清晰,并且使您可以标准化访问和更改数据的方式。不是每个类/方法都能够临时更改数据,而是必须通过 DAO 层中一组定义良好的接口(interface)来完成此操作,您可以控制、审计等。通过使用 DAO 层,它还有助于简化模拟,这在测试方面是无价的。

N-Teir 开发引用:

  1. First just understand what you are trying to accomplish!
  2. What is N-Teir Architecture
  3. Asp.net Tutorial
  4. MSDN on Application Design (From N-Tier to .NET)

关于c# - 架构/设计模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127153/

相关文章:

c# - 行为未触发 OnPropertyChanged

javascript - 无法使 javascript "show hide"div 代码正常工作

c# - 在 Web 应用程序中传递用户信息的最佳方式是什么?

postgresql - 建议的 Golang 架构,用于频繁轮询用户帐户

c# - 从sql中解析对象

c# - java脚本到C#的回调,c#和java脚本之间的异步编程

c# - EF Code First DbContext 仅为集合的第一个元素返回封装的实体

javascript - 具有客户端 + 服务器端自定义验证的用户控制;选择了错误的客户端验证

ruby-on-rails - 如何组织大型 Rails 应用程序?

java - 应用程序设计问题: scroll and amount problems