2009-07-01 38 views
2

我正在开发一个传统项目,其中使用ODBC连接通过互联网处理数据库管理。遗留程序最近在C#中被重写。我们目前正在讨论如何改进该程序,并且使用ODBC连接数据库有点不舒服。我已经编写了一些例程,使用套接字和POST,PUT和GET命令与cgi或php脚本相结合来连接服务器,并且广泛阅读了我认为是前进方向的AJAX范例。我的同事坚持使用ODBC。使用ODBC连接与更现代的方法有什么区别?ODBC与通过互联网进行数据库管理的更新方法

回答

4

数据库到应用程序协议从来没有被设计为通过互联网使用。他们太唠叨,难以保护。如果您有机会这样做,那么您应该考虑将数据库封装在适当保护的Web服务之后。

+1

+1为“妥善保护”的网站svc。 @Jay - 最新的WSE是一个开始的好地方 – 2009-07-01 14:45:20

0

如何使用ODBC与现代方法,Web服务。这种方法有很多优点。例如:

  • 多个客户端程序可以使用单个Web服务实例来访问数据。不需要在每个 个别应用程序中编写与数据库相关的代码 。
    • 用户需要安装ODBC驱动程序并在托管Web服务的服务器机器 上配置ODBC数据源 。客户端 程序可以通过网络在其他 机器上运行。
    • 客户端程序不限于.NET或Windows平台。所有他们 必须要做的访问数据库是呼叫 一个Web服务。
    • 数据库连接可以在不同的客户端 程序之间共享。
    • 访问数据库可以从 中央位置(Web服务)进行控制和监视。

当然,也有一些安全问题和限制到您的查询的复杂性。

1

那些谁不知道网络是注定要重塑它在端口80

没有什么“现代”关于HTTP结束了ODBC。只要确保将其包装在SSL和/或VPN中并使用合理的访问控制。

它比HTTP更有效率,它不是为此设计的。至少,HTTP命令会为每个操作增加很多开销。 ODBC将为您带来更好的延迟(这在客户端驱动的数据库设计中至关重要)

+0

我完全同意你的第一句话,但真的不明白你的第二句话。你可能想要重做它。 – 2009-07-01 15:19:35

0

我的办公室里有类似的东西。他们有很多VB.NET应用程序打到本地数据库的机器(经常会遇到太多未使用的连接)以及一些通过SSH/SSL隧道与外部数据库联系的Web服务。

除非隧道出现故障,否则外部数据库并没有太多问题。你也可以建立一个VPN。

如果您有兴趣使用AJAX/JSON/REST技术与数据库进行通信,则可以使用抽象层,如DBSlayer

0

使用TypeIV“直接”数据库驱动程序(如C#的System.Data.SqlClient命名空间或Java的JDBC驱动程序)的效率比通过ODBC层高2-3倍(性能更好)。

我会避免ODBC,因为它的速度较慢,我认为它不是那么容易。