Können wir eine ASP.NET MVC-Anwendung mit MySQL als Datenbank entwickeln?

8

Ich habe meistens ASP.NET-Websites gesehen, die MSSQL als Datenbank verwenden. Sogar ich habe mich vor einiger Zeit entwickelt. Warum nur MSSQL, wenn MySQL, eine kostenlose Alternative zur Verfügung steht. Die Frage ist also, ob es möglich ist, eine MySQL-Datenbank so einfach wie MSSQL in eine ASP.NET-Anwendung zu integrieren, oder ob wir dafür eine API verwenden müssen.

Pankaj Upadhyay
quelle
8
SqlServer Express - das sehr häufig von MS-Stack-Entwicklern verwendet wird - ist ebenfalls kostenlos.
Adam Crossland
Warum wählen die Leute dann MSSQL gegenüber MySQL, wenn die Integration einfach genug ist? Die Kosten sind kein großer Faktor, aber dennoch ein Faktor. Beide sind gleich gut, aber MySQL ist kostenlos
Pankaj Upadhyay
2
Die sofort einsatzbereite Integration in SQL Server ist ein großes Verkaufsargument. Visual Studio wird mit allen Arten von ausgefallenen Tools geliefert, mit denen sich Modelle und Entitäten einfach generieren lassen. Aus demselben Grund wurde die PHP-MySQL-Kombination so beliebt: schnell und einfach.
Jarrod Nettles
3
Nachdem Sie die Zeit des Entwicklers berechnet haben, ist die Bereitstellung eines MS SQL Servers möglicherweise auch günstiger als die von MySQL.
Boris Yankov
3
Wie gut funktionieren die MS-Tools mit MySQL? Wie einfach ist es für Entwickler, die MS-SQL und seine Tools kennen, die Dinge auf MySQL umzustellen? Das sind Kosten, die Sie hier nicht berücksichtigen, denke ich.
JB King

Antworten:

7

Ich habe eine ASP.NET/C#/MySQL Web-App, die seit ungefähr 3 Jahren in Produktion ist. Es läuft gut. Ich benutze es auch für alle meine Nebenjobs. Der ADO.NET-Connector wird an Visual Studio angeschlossen und funktioniert genauso gut wie der SQLSERVER-Connector. Es gibt jedoch ein paar Fallstricke. Erstens gibt es meines Erachtens kein kostenloses Äquivalent zu SQLSERVERs Management Studio. Ich benutze Aqua Data Studio, aber es kostet ein bisschen. Es gibt einige kostenlose RDMS für MySQL, die jedoch keineswegs mit Management Studio vergleichbar sind. Ich habe gehört, dass Eclipse ein Plugin für MySQL hat, das ziemlich gut und kostenlos ist, und das habe ich noch nicht ausprobiert. Außerdem können Sie in MySQL eine gespeicherte Prozedur nicht ÄNDERN, sondern nur löschen und erstellen. Dies verursacht einige Schmerzen im A im Visual Studio.

Der ADO.NET MySQL-Connector ist vollständig polymorph mit den Namespaces System.Data und System.Data.SqlClient, sodass es einfach ist, mehrere Versionen einer Datenbank für SQLSERVER und MySQL gleichzeitig zu haben. Dies ist nützlich, wenn Sie einen Kunden haben, der ein MS-Freund ist und Mist sagt wie: "Wir sind nur ein Microsoft-Shop!" als ob er tatsächlich weiß, wovon er spricht. Dies passiert mehr als Sie vielleicht denken. Dann können Sie stattdessen einfach Ihren alten SQLSERVER-Code verwenden, ohne zusätzliche Codierung vornehmen zu müssen - wenn Sie zunächst ein gutes Design haben.

Meine letzte Kritik ist, dass MySQL dafür berüchtigt ist, die Abwärtskompatibilität zwischen dem .NET-Connector und verschiedenen Versionen seiner DB-Engine nicht aufrechtzuerhalten. Dies ist in Ordnung, solange Sie den Server mit MySQL bereitstellen. Wenn Sie die Site jedoch bei einem Hosting-Anbieter bereitstellen, seien Sie vorsichtig!

Meiner Meinung nach ist es den zusätzlichen Aufwand wert, obwohl es einige der inhärenten Mängel aufweist, die viele Open-Source-Projekte aufweisen. Es ist meiner Erfahrung nach genauso skalierbar und schneller als ms sqlserver. Wenn Sie T-SQL kennen, werden Sie die MySQL-Syntax relativ schnell erlernen.

Jonathan Henson
quelle
danke Kumpel, das war wirklich hilfreich und tolle Antwort auf meine Frage
Pankaj Upadhyay
1
Sie können MySql Workbench verwenden , die kostenlos ist und MSSQL Server Management Studio ähnelt
Jetti
@Jetti In der Tat können Sie, und die neueste Version ist ganz nett. Management Studio hat immer noch keine Kerze. Ich liebe Aqua Data Studio jedoch absolut. Ich benutze es für alle meine DB-Projekte - SQLSERVER, MySQL, Oracle und so weiter ...
Jonathan Henson
15

ASP.NET als Webtechnologie und ist nicht an eine bestimmte Datenbank gebunden. Daher können Sie NHibernate oder Standarddatenzugriffsmethoden verwenden, um eine Verbindung zu MySQL im Backend herzustellen.

Ryan Hayes
quelle
2

Ihre Anwendung kann genauso einfach eine Verbindung zur Datenbank herstellen, es fehlen jedoch möglicherweise einige der Visual Studio-Integrationen für SQL Server (SQL Server-Projekte). Wenn Sie sich nicht darum kümmern oder nicht zu sehr an sie gebunden sind, spielt es keine Rolle.

JeffO
quelle
2

Wenn Sie im Verlauf eines Projekts von einer Datenbank zu einer anderen wechseln, müssen Sie möglicherweise einige rein datenbankbezogene Aufgaben (Datenmigration) ausführen, wenn Sie SQL Server-spezifische Typen verwendet haben. Wenn Sie gespeicherte Prozeduren geschrieben haben, müssen Sie sie alle neu schreiben.

Ansonsten und für neue Projekte überhaupt kein Problem. Verwenden Sie einfach den ADO.NET-Connector: http://dev.mysql.com/downloads/connector/net/

Und wie Ryan schrieb, können Sie mit ADO.NET eine Verbindung zu jeder gewünschten Datenbank herstellen, solange jemand den Connector dafür geschrieben hat. Und es gibt ... viele.

Jalayn
quelle
0

Sie können MySQL mit ASP.NET MVC verwenden, wie alle anderen bereits gesagt haben. Das einzige, was Sie verlieren werden, ist die CLR-Integration mit SQL Server . Es ist schön, gespeicherte Prozeduren in C # schreiben zu können, wenn Sie komplexe Berechnungen haben und dies mit MySQL nicht duplizieren können.

Jetti
quelle