2010-04-15 11 views
9

Wir haben derzeit eine 10 Jahre alte, versaute, Spaghettikode-artige SQL Server-Datenbank, die wir bald als Teil eines Umschreibens in eine große Webanwendung von Grund auf neu schreiben wollen. (Die bestehende Anwendung wird als funktionale Voraussetzung für die nächste Inkarnation der App dienen.) Die neue Version wird in .Net entwickelt, so dass ein großer Teil des Application Stacks auf Microsoft-Technologien basieren wird (Visual Studio wird IIS werden) der Anwendungsserver sein).Was sind die Gründe, SQL Server anstelle von MySQL mit einem komplexen .NET-Projekt zu verwenden?

Einer der Entwickler des Projekts hat die Möglichkeit der Umstellung auf MySQL anstelle von SQL Server eingeführt, um sowohl die Kosten für die Lizenz des DB-Servers als auch die Werkzeuge zum Entwerfen und Bearbeiten der DB zu sparen (wie die wunderbar freie MySQL Workbench).

Welche Vor- und Nachteile hat die Verwendung von SQL Server vs. MySQL als Datenbank für ein komplexes .NET-Projekt? Der Preis ist ein Faktor, den wir identifiziert haben, sowohl hinsichtlich der DB-Server-Lizenz als auch der Werkzeuge zur Manipulation der Datenbank, aber welche anderen Faktoren spielen eine Rolle?

+0

Ist Ihre Datenbank groß genug, dass Sie die kostenlose Express-Version von Microsoft SQL Server nicht verwenden können? –

+0

In diesem Fall ist es eine mäßig große Web-Anwendung mit einer DB in der Größenordnung von zehn GB (also nicht zu groß), aber es gibt eine gute Menge an Verkehr und ein gutes Stück Wachstum ist wahrscheinlich in den nächsten 6 - 9 Monate. – cdeszaq

Antwort

6

Meine pro/con Liste für MySQL vs. SQL Server für .NET-Projekte wäre:

Pros zu MySQL:

  1. Kosten

Pros zu SQL Server:

  1. Bessere Werkzeugunterstützung, insbesondere für .NET (Entity Framework + andere ORM-Unterstützung ist viel besser)
  2. Bessere Visual Studio Unterstützung
  3. Bessere Integration Unterstützung, vor allem wenn man Dinge wie Silverlight + RIA tun will, usw.
4

Mit SQL Server können Sie eine bessere Werkzeugintegration (z. B. Designer) zwischen Ihrer Entitätsklasse und Ihrem Datenbankschema erzielen.

Sie können einfach eine Datenbank ziehen und in den Designer und Viola fallen lassen! Alle Entitäten, die den Tabellen und ihren Beziehungen zugeordnet sind, werden generiert. alt text http://www.scottgu.com/blogposts/linqtosql/step1.jpg

Wie für MySQL, offensichtlich Lizenzkosten ist ein Vorteil

0

Es klingt wie dies ein großes Projekt ist, dass Sie gerade arbeiten. Offensichtlich werden die Lizenzkosten mit SQL Server im Vergleich zu MySql höher sein, aber es gibt viele versteckte Kosten mit MySql.

Wenn dies ein sehr großes Projekt ist und Ihr Team von Entwicklern bereits in SQL Server geschult wurde, sind die zusätzlichen Lizenzkosten für SQL Server im Vergleich zu den Kosten von Hunderten von Stunden Entwicklungszeit minimal.

+0

Das "Training", das die Entwickler derzeit haben, ist die grundlegende Manipulation mit SQL Management Studio ... also das Schreiben von SQL-Abfragen und das Verwenden des Tabellen-Designers zum Layout von Feldern – cdeszaq

0

Zusammen mit den anderen Antworten auf dieser Seite, ich würde beachten Sie auch die folgenden:

  1. MS SQL bietet Datenbankfunktionen Spiegelung - wenn Sie eine hohe Verfügbarkeit und automatisches Failover müssen, dies wäre etwas zu betrachten.
  2. Lokale Verfügbarkeit von Experten. Sie sollten ein wenig nachforschen, was Ihre Optionen für lokale Expertenhilfe sind. Wenn Ihre Datenbank tot ist, möchten Sie nicht plötzlich herausfinden, dass keine lokale Hilfe verfügbar ist.
0

SQL Server Pro:

  • Transaktionen auf allen Tischen (kein Rupfen zwischen dem schnellen Motor und dem sicheren Motor)
  • In SQL Server, wenn Subqueries die natürlichste Art zu schreiben eine Abfrage, Sie können weitermachen und es tun. Insbesondere bei abgeleiteten Tabellen und Where Exists-Unterabfragen ist eine Leistungseinbuße nicht wahrscheinlich.
  • Alle Samples, die Sie von MS kennen, gehen von SQL Server aus. In meinem jetzigen Job ist es immer ein Ärgernis, alles in Oracle übersetzen zu müssen.
  • Ich habe abgeleitete Spalten in SQL Server als sehr praktisch gefunden, obwohl sie ein ORM verwirren können.
  • Unterstützt MySQL Fremdschlüssel oder Prüfbedingungen?
0

Ich persönlich würde mit MSSQL bei Verwendung von .NET bleiben. Es ist viel mehr Tool-freundlich, wie einige von Menschen vorgeschlagen, bevor

Aber Java hat einige ziemlich freundliche Umgebungen mit MySQL. Wenn es Ihnen nichts ausmacht, Java zu verwenden, versuchen Sie es. NetBeans IDE mit Java Persistance API ist wirklich MySQL freundlich :)

Verwandte Themen