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.
mysql
asp.net-mvc
Pankaj Upadhyay
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle