一位客户最近向我抱怨微软以及产品成本等一些问题。他们应该制定一个策略来向开源过渡以节省资金。 现在,我不是第一个开始争论消费者 vs. 开源的价值的人。而是,我趁这个机会指出开源路线也适用于 .NET 用户。
应用程序
出于篇幅的考虑,我将集中讨论客户机/服务器类型的应用程序。这些应用程序通常由以下几部分组成:
· 数据库服务器:对于基于 .NET 的应用程序来说,SQL Server 是一个非常受欢迎的选择,但是针对像 Oracle 和 DB/2 等其它系统的连接器也有。
· 应用服务器:所谓应用服务器是指由承载由客户使用的应用程序的服务器。IIS(Internet 信息服务)是 ASP.NET 应用程序的一般选择。此外,.NET Framework 也是必须的。
· 客户端:用来和应用服务器通信的接口。对于 ASP.NET 应用程序来说,客户端是一个浏览器。
大部分情况下,客户部分是不受开发人员控制的(intranet 应用程序是个例外)。另一方面,数据库以及带有后台数据库的应用服务器也是可以选择使用不同产品。
使用开源数据库
在 ASP.NET 应用程序中使用开源数据库后台是一个闪光点,有两个数据库引擎可供选择使用:
· MySQL:MySQL 已经成为了业界最流行的、成长最快的开源数据库。它提供跨平台支持,并且简单易用。此外,那些担心支持问题的组织还有商业许可证可用。
· PostgreSQL:PostgreSQL 是 POSTGRES 数据库管理系统的一个增强版本(并且现在依然有时候被简单地称作“Postgres”),它是下一代 DBMS 研究原型。虽然 PostgreSQL 保留了 POSTGRES 的强大数据模型和丰富的数据类型,但是它使用 SQL 的一个扩展子集替换了 PostQuel 语言。PostgreSQL 是免费的,并且提供完全的源代码。
在 Linux 服务器上安装这些开源数据库系统可以大大节省开支,但是熟悉这些系统(以及 Linux)的人必须保证每件事情都能顺利进行。
将数据库连接到 .NET
选择了数据库平台之后,必须正确地与 .NET 应用程序连接。连接数据库可以使用通用的 ODBC 连接器,也可以使用为某个数据库平台专门设计的连接器。
PostgreSQL 系统不提供原生的连接器,所以你必须使用 vanilla ODBC 连接器。默认情况下,.NET Framework 中提供了这一连接器,所以这不会是一个问题。MySQL 数据库系统提供有自己的连接器。这样你就可以直接地连接到 mySQL。对这些连接进行编程需要 .NET Framework,或者是其开源替代版本,比如 Mono。