Планирование использования PostgreSQL с ASP.NET: плохая идея?

В настоящее время я планирую инфраструктуру для своего будущего веб-проекта. Я хочу пойти туда, где Джоэл пошел с одним БД на клиента и теперь думал, какой двигатель БД будет полезен для меня. Лучшим был бы, конечно, SQL Server, но я не могу позволить себе полномасштабную версию на данный момент, и я не думаю, что SQL Server Express будет хорошим выбором для загруженного сервиса. Теперь я думаю об использовании PostgreSQL. Учитывая, что моей средой разработки будет ASP.NET 3.5 с указанием NHibernate или LINQ to SQL, насколько я буду иметь проблемы, если я использую PostgreSQL вместо SQL Server?

Спасибо!

Ответ 1

Почему бы не начать с SQL Server Express и мигрировать, когда у вас есть деньги? Таким образом, вы можете перейти к тому, что считаете идеальным, и снизить затраты на конверсию.

Ответ 2

NHibernate работает нормально с PostgreSQL (независимо от того, находится ли db в ОС или UNIX-подобных операционных системах), и .NET хорошо работает с ним, используя поставщик Npgsql db.

Единственная "проблема", которую вы получите, конечно, PostgreSQL не делает T-SQL. На самом деле его PLM файл PL/pgSQL находится ближе к Oracle PL/SQL, чем к SQL-серверу SQL SQL. Таким образом, вам придется перекодировать ваши сохраненные procs, и будут некоторые исправления, если вы будете делать ADO.NET. Если вы используете NHibernate, вам, вероятно, не придется беспокоиться об этом. Нет LINQ to SQL, хотя вам так тяжело.

PostgreSQL является масштабируемым и работает нормально сейчас с Windows (более ранние версии не поддерживали Windows формально), а pgAdmin - хороший инструмент управления для него, вы сможете делать большую часть материала, который вы можете делать с SQL Server Инструменты GUI с ним за короткое время.

Ответ 3

Я не думаю, что это плохая идея, но отличный опыт.

Кстати, NHibernate - это способ пойти Linq в Nhibernate, который находится в тяжелом развитии и доступен в багажнике, поэтому, если вы заботитесь "о том, что мне не все равно" о Linq, не пугайтесь его использовать.

Ответ 4

Если вы перейдете с PostgreSQL, вы не сможете использовать LINQ to SQL. В настоящее время LINQ работает только с SQL Server (возможно, с Oracle). Я не уверен в NHibernate. Кроме того, если вы используете PostgreSQL, в прошлый раз, когда я проверял, они отказались от поддержки Windows. Таким образом, вы будете изучать возможность использования второго блока Linux для базы данных.

[EDIT]

Оказывается, PostgreSQL поддерживается в Windows. Я не могу вспомнить, где я видел отмену поддержки. Во всяком случае, я слышал, что он все равно работает на Linux, так что вам может понадобиться сделать это независимо.

Ответ 5

В эти дни postgres работает очень быстро с .net, и это так же хорошо или даже лучше, чем проприетарный mssql