10

我目前正在为我未来的 Web 项目规划基础设施。我想像 Joel 那样为每个客户拥有一个数据库,现在想着哪个数据库引擎对我有好处。最好的当然是 SQL Server,但我现在买不起完整的版本,我不认为 SQL Server Express 将是加载服务的好选择。现在我正在考虑改用 PostgreSQL。鉴于我的开发环境将是 ASP.NET 3.5,比如 NHibernate 或 LINQ to SQL,如果我使用 PostgreSQL 而不是 SQL Server,我会有多少麻烦?

谢谢!

4

5 回答 5

11

NHibernate 可以在 PostgreSQL 上正常工作(无论数据库是在 Windows 还是类似 UNIX 的操作系统上),而 .NET 使用 Npgsql db 提供程序可以很好地工作。

您将遇到的唯一“麻烦”当然是 PostgreSQL 不执行 T-SQL。事实上,它的 PL/pgSQL 存储过程语言更接近于 Oracle 的 PL/SQL,而不是 MS SQL Server 的 T-SQL。因此,您必须重新编码您的存储过程,并且如果您使用 ADO.NET,将会有一些需要注意的问题。如果您使用 NHibernate,您可能不必为此担心太多。虽然没有 LINQ to SQL,但你运气不好。

PostgreSQL 是可扩展的,现在可以在 Windows 上正常工作(早期版本不正式支持 Windows),而 pgAdmin 是一个很好的管理工具,你可以用 SQL Server 的 GUI 工具完成大部分工作它在很短的时间内。

于 2008-09-25T02:02:50.703 回答
4

我不认为这是一个坏主意,而是一次很棒的经历。

顺便说一句,NHibernate 是去 Linq 到 Nhibernate 的方式,它正在大量开发中,并且可以在主干中使用,所以如果你关心 Linq 的“我不关心”,不要害怕使用它。

于 2008-09-25T01:57:22.977 回答
3

为什么不从 SQL Server Express 开始并在有钱时进行迁移?这样,您就可以朝着您认为理想的方向前进并降低转换成本。

于 2008-09-25T01:29:02.623 回答
1

如果您使用 PostgreSQL,您将无法使用 LINQ to SQL。目前 LINQ 仅适用于 SQL Server(可能是 Oracle)。我不确定NHibernate。另外,如果您使用 PostgreSQL,上次我检查时,他们已经放弃了对 Windows 的支持。因此,您将考虑拥有第二个为 DB 运行 Linux 的机器。

[编辑]

事实证明 Windows 支持 PostgreSQL。我不记得我在哪里看到支持被取消了。无论如何,我听说它在 Linux 上运行得更好,所以你可能想考虑这样做。

于 2008-09-25T01:29:18.880 回答
1

如今,postgres 与 .net 一起工作得非常快,它与专有的 mssql 一样好甚至更好

于 2015-07-25T03:11:09.353 回答