我们正在为我们的新内部应用程序建立一个新的框架和开展业务的方式。我们当前的设计要求所有安全逻辑都应该由我们的数据库处理,所有信息(我的意思是全部)都将通过存储过程进出数据库。
理论上,数据访问层从存储过程请求信息并将身份验证传递给数据库。数据库确定用户的角色/权限并决定是否执行任务(无论是检索数据还是进行更新)。
我想这意味着更少的数据库事务。一次调用数据库。如果安全性在我们的数据访问层,这将需要 1 次数据库调用来确定用户是否具有适当的权限,然后需要 1 次单独的数据库调用来执行操作。
一方面,我发现 SQL 管理工作室完全缺乏 IDE。我主要担心的是,我们最终将不得不在存储过程中维护一些令人讨厌的业务逻辑,以获得一些非常小的性能提升。
现在,我们将 LINQ 用于我们的 ORM。它看起来轻巧快速,但最重要的是,它真的很容易快速开发。
维护成本是否值得性能提升?我们是否自欺欺人地认为甚至会有明显的性能提升?还是我们只是在为自己做噩梦?
我们的环境:
- 内部的非关键业务应用程序
- C#/ASP.NET 3.5
- 视窗 2003
- 微软 SQL 服务器 2005
- 35 个中型 Web 应用程序,大约 500 个用户