用于构建解耦事物的接口库

时间:2009-09-07 12:19:36

标签: .net interface project

我希望开源组件具有接口(但没有实现)常见的东西,例如日志记录,IoC / DI等。如果存在这种情况,则可以更容易地混合和匹配各种各样的东西,而不必编写过多的胶水代码。

示例:如果存在,我将能够创建一个asp.net mvc应用程序并添加任何ORM,日志记录和IoC框架。然后我可以放弃对控制器和模型的第三方程序集的引用,它们可以很好地协同工作。如果我编写自己的接口,我将不得不修改其中的每一个。我不想修改,我想1.下载,2。配置和3.使用!这很简单,不应该更难。

您是否听说过/使用/写过类似的内容?

3 个答案:

答案 0 :(得分:1)

有一个名为Common Infrastructure Libraries for .NET的项目看起来类似于你的要求。但是,此时只有一个日志记录抽象可用。

正如Mark建议的那样,定义自己的界面并不是一件坏事 - 那么你的界面对你的应用程序和用例都有意义。如果稍后您发现某个概念/组件的开源,通用抽象,则可以重构代码以使用它,或者只是将其调整到现有界面。

虽然理论上一个共同的抽象是一个好主意 - 现在,对于许多“共同的事物”,没有一个被接受的“共同方法”。

答案 1 :(得分:0)

我不认为这样的集会存在。如果幸运的话,您决定使用的库定义了他们随后实现的接口 - 例如实现IWindsorContainer接口的Windsor容器。

但是,如果您要使用不同的DI容器,则无法重用该接口,因为,例如,StructureMap不实现IWindsorContainer。

无论如何,我看不出这样一个图书馆的重点。您可以在几分钟内编写一个界面。这不是占用开发时间的接口 - 而是实现。

在您自己的应用程序中定义您需要的任何接口 - 在这种情况下,它们也将更具针对性并且带来更少的冗余,因为您只需要准确定义该应用程序所需的属性和方法。

答案 2 :(得分:0)

IoC框架可以使用CommonServiceLocator解耦:http://www.codeplex.com/CommonServiceLocator