2012-09-04 49 views
4

是否有任何可以安装到SQL Server实例(2008或更高版本)中的强制实施AOP标准的开源或其他库?我真的想避免在我们的开发人员中对模板执行横切关注。 AOP似乎是最好的选择,如果它可用的话。面向方面的SQL Server

如果它不存在,我会尝试推出自己的。

编辑:

一些例子可能会继承表,使特定类型的表格,如混入特点。我处于一个数据仓库环境,它有很多审计需求,所以我们创建了很多双时段表。

CREATE BITEMPORAL TABLE 

语句将会添加事务和有效时间并修改针对这些表的CRUD语句。 (是的,我知道,视图和触发器可以做到这一点,一些。)来完成更硬的东西将被存储与特定的记录或交易特性的程序,像

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

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

+3

你能举一个你想强制执行的例子吗? – usr

+0

我认为知道预期用途会非常有趣。它基本上是在查询之前和/或之后挂钩的东西,或者甚至更多涉及? – carlpett

回答

0

有趣。我从来没有想过将AOP技术应用到SQL Server。

对于SQL Server 2008,我相信你可以调用.NET代码,所以你可以使用像PostSharp或Castle DynamicProxy这样的标准AOP工具。

6

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

您可以下载我的论文“AO4SQL:迈向面向方面的扩展了SQL”这是在RAM-SE公布2011年:http://www-users.cs.york.ac.uk/~manuel/Events/RAM-SE11/RAMSE11papers.zip

记住AO4SQL为原型的工具,但如果你会想加入一个开源项目......与我联系。