面向方面的SQL Server

时间:2012-09-04 21:27:31

标签: sql-server aop

是否有可以安装到可以强制执行A​​OP标准的SQL Server实例(2008或更高版本)中的库,开源或其他?我真的希望避免在我们的开发人员中强制执行模板的跨领域问题。如果AOP可用,AOP似乎是最好的选择。

如果它不存在,我会尝试自己动手。

编辑:

某些示例可能是子类化Table以生成特定类型的表,例如mixin特性。我在一个有很多审计要求的数据仓库环境中,所以我们创建了很多双时态表。

会很棒
CREATE BITEMPORAL TABLE

语句,它将添加事务和有效时间并根据这些表修改CRUD语句。 (是的,我知道视图和触发器可以做到这一点。)更难实现的是具有特定日志记录或事务特征的存储过程,例如

CREATE PROC FOO /* VERBOSE, ATOMIC, SERIALIZABLE */

并让身体自动用适当的T-SQL包装来做这些事情。是的,可以添加存储过程来获取这些参数并执行SQL生成并编译这些工件。但缺点是没有强制执行 - 开发人员可能会绕过该过程并直接使用CREATE PROC - 并且syscomments中的内容是生成的代码,而不是AOP注释版本,这会破坏抽象。

2 个答案:

答案 0 :(得分:6)

也许你有兴趣看看AO4SQL--一种将AO概念引入SQL的编程语言。从概念上讲,该工具适用于任何SQL服务器。

您可以在RAM-SE 2011上发布我的论文“AO4SQL:面向面向方面的SQL扩展”http://www-users.cs.york.ac.uk/~manuel/Events/RAM-SE11/RAMSE11papers.zip

请记住,AO4SQL是一个原型工具,但如果您想加入一个开源项目......请与我联系。

答案 1 :(得分:0)

有趣。我从未想过将AOP技术应用于SQL Server。

使用SQL Server 2008,我相信您可以调用.NET代码,因此您可以使用PostSharp或Castle DynamicProxy这样的标准AOP工具。