昨天我和我的伙伴讨论了我正在开发的这个电子购物网站的架构。请注意,我为此使用 ASP.NET。他非常惊讶地发现我没有将添加到购物车的项目保留在 ArrayList 或其他通用列表中,而是使用 LINQ To Entities 将它们直接插入到数据库中。我可以只通过这个网络应用程序而不使用 n-tire 还是我应该按照我 friend 的建议去做,即有执行更新、删除等的方法。我非常感谢您的反馈,因为这对我来说是一个非常重要的困境。谢谢!
最佳答案
我认为这里有两件事需要考虑:
你能做的最糟糕的事情之一就是过度设计,并在不需要的时候创建一个 N 层系统。如果不需要数据访问层,就不要在其中添加一个。
找出您的系统的需求,如果您需要能够横向扩展,那么您将必须分层设计您的系统,并使用更具可扩展性的数据访问方法以及服务获取/更新您的数据。
第二,当用户将东西添加到购物车时,是否应该将这些东西放入数据库中。我认为这不一定是一个问题。访问数据库的成本很高,尤其是当您可以将它们存储在客户端/ session 端直到..
<小时/> 话虽这么说,我个人喜欢使用数据访问层,我发现它使代码更清晰,并且使您可以标准化访问和更改数据的方式。不是每个类/方法都能够临时更改数据,而是必须通过 DAO 层中一组定义良好的接口(interface)来完成此操作,您可以控制、审计等。通过使用 DAO 层,它还有助于简化模拟,这在测试方面是无价的。N-Teir 开发引用:
关于c# - 架构/设计模式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127153/