Laden...

Reibungslose VS Integration und LINQ: MySQL oder MS SQL Server?

Erstellt von sugar76 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.926 Views
S
sugar76 Themenstarter:in
69 Beiträge seit 2017
vor 6 Jahren
Reibungslose VS Integration und LINQ: MySQL oder MS SQL Server?

Hallo allerseits,

ich plane gerade ein Softwareprojekt, eine klassische Desktopanwendung mit WPF.

Die Anwendung ist auf den Client-Rechnern installiert, die Datenbank läuft auf einem eigenen Server. Geplant ist eine Instanz mit Windows Server, auf dem MS SQL Server läuft.

Hauptgrund für MS SQL Server: ich erwarte eine reibungslose Integration in Visual Studio und anderen Technologien wie EntityFramework oder Linq.

Die Lizenz für MS SQL Server kostet ein paar Tausend Euro. MS SQL Server Express ziehe ich wg. der RAM-Limitierung nicht in Betracht. MySQL hat im Gegenzug den Vorteil, dass es kostenlos zu haben ist.

Ich habe MySQL bisher in PHP- und Java-Projekten eingesetzt. Wie sind eure Erfahrungen beim Zusammenspiel von MySQL und Microsoft Technologien? Ist ein reibungsloses Zusammenspiel mit Visual Studio sowie EntityFramework bzw. Linq zu erwarten? Oder würdet Ihr abraten?

Grüße,

Abid

T
2.224 Beiträge seit 2008
vor 6 Jahren

Was die DB angeht, musst du oder derjenige der über die Kostenfrage entscheidet, planen was am besten wäre.
MS SQL Server würde ich auch priorisieren.
MySQL hat in den letzten Jahren m.M. nach enorm unter Oracles Übernahme gelieten.
Hier würdei ch eher zu PostgreSQL raten, was mit der neuen Version 10 einen enormen Sprung gemacht hat.
Wir nutzen für ein neues Projekt auch PostgreSQL.
Privat habe ich damit auch gute Erfahrungen gemacht.
Gibt es auch kostenlos, ist Open Source und steht dem MS SQL Server für die meisten Fälle in nichts nach.

Bei deinem Vorhaben, wäre die Frage was für Daten die Client Anwendung vom Server zieht?
Hier solltest du bei deinem Client nie mit der DB direkt sondern über eine WebAPI/Webservice kommunizieren.
DBs sollte man generell vom Client abschotten, hat nicht nur Sicherheitsgründe.
Wenn sich die DB Struktur ändert, müssen auch alle Clients mit geupdatet werden, was je nach Anzahl der Clients ein riesen Aufwand sein kann.

Wenn die Clients Daten lokal puffern können, dann solltest du dies auch machen.
Also z.B. Daten lokal in Sqlite vorhalten.

Nachtrag:
MySQL lässt sich mit C# ohne Proleme koppeln, je nachdem wie du damit arbeitest.
Für ADO. NET gibt es einen entsprechenden Provider und auch EF Core hat einen Provider für MySQL.

Gleiches gilt auch für PostgreSQL, falls dies eine Option wäre.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

H
523 Beiträge seit 2008
vor 6 Jahren

MySQL hat im Gegenzug den Vorteil, dass es kostenlos zu haben ist.

Sofern Du mit der Software Geld verdienen willst, darfst Du die Community Edition von MySQL nur einsetzen wenn Du nicht den von MySQL-Connector von Oracle verwendest. Diese Info habe ich direkt von Oracle.

Es gibt von DevArt einen alternativen Connector für MySQL der problemlos funktioniert und sehr kostengünstig ist.

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

speziell in Hinsicht auf MySql / WebApi und damit u.U. auch NetStandard/NetCore habe ich mit MySQL nun auch erste eigene negative Erfahrungen gemacht. Funktioniert quasi nur mit deaktiviertem ConnectionPooling (zugegeben - der Connector ist'n PreRelease - aber Zeit genug hatten die)

Würde persönlich MSSQL und PostgreSQL verwenden.

Vorteil MSSQL? Für mich im Wesentlichen deutlich bessere Verwaltung mit SSME

Vorteil PgSQL? Wirklich kostenlos

Bei MySQL stößt mir mittlerweile auch auf, dass es in der selben DB keine Möglichkeit für mehrere Schemata gibt.

LG

S
sugar76 Themenstarter:in
69 Beiträge seit 2017
vor 6 Jahren

Besten Dank für die Antworten.

Zusammenfassend kann man wohl sagen, dass MS SQL Server am besten mit Visual Studio, Linq, etc. harmoniert (logisch) und als kostengünstige Alternative PostgreSQL dem Einsatz von MySQL vorzuziehen ist.

Gruß, Abid

16.842 Beiträge seit 2008
vor 6 Jahren

Mit Visual Studio hat das herzlich wenig zutun; Visual Studio ist nur eine IDE.

Worum es Dir geht ist ADO.NET und dessen Provider; also die Ebene von .NET.
Linq wiederum nutzt nur die ADO.NET Schnittstelle, aber es kommt drauf an, ob der Provider sauber implementiert ist.

Da hilft Dir die beste Datenbank nichts, wenn der Provider einen Fehler hat - und umgekehrt.

David Fowler von Microsoft hat neulich auf Twitter angekündigt, dass es wohl ein neues Team gibt, das sich um eine neue/die Schnittstelle für Datenbankverbindungen kümmern wird.
Was das genau ist kam aber bisher nicht raus.