开放数据访问

时间:2011-12-17 13:52:53

标签: c# odbc data-access-layer

我正在为C#中的应用程序编写一个插件。该插件允许我完全访问应用程序的内部信息模型。

我想创建一种机制,允许外部应用程序能够连接到信息,以便他们可以报告等。

过去几天,这通过ODBC链接实现 - 这仍然是可行的方法。

我认为为此创建一个ODBC驱动程序是一项重要任务,是否有更简单的建议或示例C#代码用于创建驱动程序。

由于

回想起我在原始问题中并不是很清楚。要求是允许同一台PC上的两个应用程序共享数据。 “主机”应用程序使用专有存储格式,因此,如果不使用“主机”应用程序,则无法访问数据。 “主机”应用程序允许开发插件(使用C#),插件可以访问应用程序中的所有数据。在此基础上,我正在探索插件是否可以将接口暴露给其他外部应用程序,因此可以充当“数据访问层”

我对ODBC的引用可能是一个“红鲱鱼” - 只是说明了我在这个领域的脱节程度。

1 个答案:

答案 0 :(得分:1)

可能你正在寻找像Remoting和\或Web Services和\或更现代的WCF(Windows通信基础)这样的东西。

您可以使用您想要的每种语言编写自己的服务并访问该服务。 对WCF和Remoting以及WebServices的C#支持非常好,允许您以非常干净,面向对象和简单的方式编写服务器 - 客户端基础结构。

使用HTTP:每个服务都在通过HTTP服务器(例如IIS)以XML格式发送的序列化对象中处理。 客户端可以用你想要的各种语言编写,从PHP到C#到C ++再到JAVA到wathever,他们只需要通过HTTP连接并解析\ deserialize \ serialize XML。

您可以选择您的架构。如果客户端和服务器都是用C#编写的,那么对您来说一切都是透明的,XML的序列化和反序列化,远程过程调用和IIS集成都可供您使用。您只需要编写应用程序。

您可以导出服务而不是像关系DBMS那样的表,这样您就可以将系统的逻辑从数据层和表示层分开。 通过这种方式,您可以获得可伸缩性,多平台和多系统支持。

要阅读的一些链接:

http://en.wikipedia.org/wiki/Windows_Communication_Foundation

http://www.codeproject.com/KB/webservices/myservice.aspx

http://msdn.microsoft.com/en-us/library/aa730857(v=vs.80).aspx

http://msdn.microsoft.com/en-us/library/kwdt6w2k(v=vs.71).aspx

http://blogs.microsoft.co.il/blogs/bursteg/archive/2008/02/10/how-to-build-an-n-tier-application-with-wcf-and-datasets-in-visual-studio-2008.aspx

http://msmvps.com/blogs/williamryan/archive/2008/05/16/doing-tiers-with-wcf.aspx

相反,如果您在Intranet中,或者只是一台计算机而只想共享数据库服务,则可以使用SQLServer或MySql或PostgreSql并通过TCP / IP连接到它。 然而,安全\安全无法在Internet或内部网上公开数据库服务,而安全性可能会成为问题。

另请注意,SQLServer Express是免费的,如果您没有多少用户\连接或数据库不超过4GB,则可能适合您。 MySql和PostgreSql是免费和开源的。