我想知道是否有一种智能方式来设计一个C#DLL,以便以后可以重新构建它并使用新版本作为“保险箱中的插入替换” “的态度。安全主要是指签名不会改变。设计一个数据库层DLL来支持插入替换
我正在考虑主要通过LINQ使用数据库与主要使用存储过程使用数据库之间的差异。存储过程的优点是,您可以更改任何单独的存储过程,而无需重新编译/重新发布应用程序。所以,我正在考虑如何通过创建一个解决方案来获得类似的能力,在这个解决方案中,所有面向数据库的代码都是在一个单独的项目中使用有趣的东西,比如dbml文件和什么。很明显,如果你在一个替换的LINQ函数的内部填充垃圾,替换会导致问题,但是这个缺点存在。
规则的主要排序,我想出了只是:
- 如果数据库模式的转变,是时候做一个重新编译。
- 防止任何签名更改。不应该删除现有的公共方法。
我的直觉是,这样做的很大一部分将涉及使用由单独项目引用并由主项目使用的接口来完成所有调用。
那么,这个想法是否有意义?是否有任何策略可以用来使这种安全(即不会重新编译存储过程而不重新编译应用程序)增加新的风险?