4

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

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

编辑:

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

CREATE BITEMPORAL TABLE

将添加事务和有效时间并针对这些表修改 CRUD 语句的语句。(是的,我知道视图和触发器在某种程度上可以做到这一点。)更难完成的事情是具有特定日志记录或事务特征的存储过程,例如

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

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

4

2 回答 2

6

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

您可以下载我在 RAM-SE 2011 上发表的论文“AO4SQL: Towards an Aspect-Oriented Extension for SQL” : http ://www-users.cs.york.ac.uk/~manuel/Events/RAM- SE11/RAMSE11papers.zip

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

于 2012-10-15T13:04:30.497 回答
0

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

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

于 2012-09-05T02:25:18.820 回答