标签: vendor-neutrality

IdbConnection与SqlConnection

当我编写应用程序时,我使用System.Data接口(IDbConnection,IDbCommand,IDataReader,IDbDataParameter等...).我这样做是为了减少供应商的依赖性.除非,我正在做一个简单的测试应用程序,在咨询时看起来似乎是道德的事情.

但是,我看到的所有代码似乎都使用System.Data.SqlClient命名空间类或其他特定于供应商的类.在杂志和书籍中,很容易将其归结为微软的影响力以及他们的营销转向仅针对SQLServer进行编程.但它看起来像我看到的几乎所有.NET代码都使用SQLServer特定的类.

我意识到供应商特定的类具有更多功能,例如向SqlCommand对象添加参数是一种方法,其中将其添加到IDbCommand是令人恼火的4+行代码.但话又说回来; 为这些限制编写一个小助手类非常简单.

我还想知道当SQLServer是当前目标客户端时是否对接口进行编程是过度工程的,因为它不是立即需要的.但我不认为这是因为针对接口的编程成本太低,因为减少供应商依赖性提供了如此巨大的好处.

您是否使用供应商特定的数据类或接口?

编辑:总结下面的一些答案,并在阅读时提出一些想法.

使用接口实现供应商中立的可能陷阱:

  • 嵌入在SELECT语句中的供应商特定关键字(我的所有ins,upd和del都在procs中,所以这不是问题)
  • 直接绑定数据库可能会导致问题.
  • 除非您的连接实例化是集中的,否则无论如何都需要调用特定于供应商的类.

使用接口的正面理由:

  • 根据我的经验,移动到不同供应商的能力(即使没有行使)一直受到客户的赞赏.
  • 在可重用代码库中使用接口

.net vendor-neutrality design-decisions

9
推荐指数
2
解决办法
1万
查看次数

用于CSS3跨浏览器兼容性的SASS插件?

是否有一个SASS扩展,它将采用SASS样式表,找到中性属性(例如border-radius)并自动输出所有特定于供应商的属性(例如-webkit-border-radius等)?

我真的不想手动创建所有mixins,也不想手动编写代码.我敢肯定必须有这样的扩展,但我找不到它.救命?

ruby sass cross-browser css3 vendor-neutrality

6
推荐指数
1
解决办法
3835
查看次数