Wäre das Erstellen einer Anwendung mithilfe einer SQL Server-Datenbankdatei (MDF) eine schreckliche Idee?

StackOverflow https://stackoverflow.com/questions/35232

  •  09-06-2019
  •  | 
  •  

Frage

Ich arbeite an einem Nebenprojekt, das eine einfache Webanwendung wäre, um eine Liste von Kursen und deren bevorstehenden Stundenplänen zu verwalten.

Ich würde für dieses Projekt wirklich gerne Linq to SQL verwenden, aber leider ist in der Serverumgebung, für die ich entwickle, nur MySQL verfügbar.Ich habe mich kurz mit Subsonic beschäftigt, aber es funktioniert einfach nicht.

Allerdings sind die Datenbankanforderungen für diese Anwendung nicht so hoch, daher bin ich gespannt, ob die Verwendung einer MDF-Datei in App_Data eine praktikable Lösung wäre.Andernfalls muss ich anscheinend SQL-Abfragen von Hand codieren, was ich unbedingt vermeiden möchte.

War es hilfreich?

Lösung 3

Ich habe das Projekt, das diese Frage aufgeworfen hat, schon vor langer Zeit abgeschlossen, aber kürzlich kam ein anderes Projekt mit sehr geringen Datenanforderungen auf mich zu, also habe ich etwas mehr Zeit damit verbracht, damit zu experimentieren.

Ich hatte angenommen, dass für die Bereitstellung von SQL Server Express Lizenzgebühren anfallen, aber das ist tatsächlich nicht der Fall.Laut der Website von Microsoft steht Ihnen die Nutzung mit bestimmten Einschränkungen frei:

  • Maximale Datenbankgröße:4GB
  • Maximal genutzter Speicher:1 GB
  • Maximal genutzte CPUs:1 (vollständige Prozesse, keine Kerne)

SQL Server Compact ist eine schlechte Idee für Webanwendungen, da es einen Hack erfordert, damit es funktioniert, und nicht für den gleichzeitigen Zugriff konzipiert ist, den Sie für das Web benötigen.Wenn Ihre Anwendung jedoch die bescheidenen Einschränkungen von SQL Server Express einhält, funktioniert sie ziemlich gut.Und da es wie seine größeren Geschwister reguläres T-SQL spricht, können Sie damit Linq to SQL verwenden.

Ich höre das Linq to Sql-Unterstützung ist jetzt im Mono-Trunk verfügbar für die Version 2.6, daher wird die enge Kopplung von L2S an SQL Server in naher Zukunft wahrscheinlich ein strittiger Punkt sein.Am Ende portiere ich entweder meinen Code, um Monos überlegene Linq-zu-SQL-Implementierung auf der Datenbank meiner Wahl zu verwenden, oder gehe eine völlig andere Route (SubSonic hat sich seit meinem letzten Versuch sprunghaft verbessert).Aber vorerst ist SQL Server Express eine gültige Wahl für sehr kleine datenbankgesteuerte Apps.

Andere Tipps

Schauen Sie sich die Microsoft SQL Server Compact Edition an.Ich glaube, dass Sie mit MDF-Dateien arbeiten können, ohne einen Server betreiben zu müssen.Der gesamte Code wird im Prozess ausgeführt.Ich glaube, dass es einige Einschränkungen gibt, aber es könnte für Sie funktionieren und ich denke, es ist kostenlos.

Soweit ich weiß, können Sie nur dann eine direkte Verbindung zum MDF (als „Benutzerinstanz“ bezeichnet) herstellen, anstatt das MDF an eine „Serverinstanz“ anzuhängen, wenn SQL Server Express auf diesem Computer installiert ist.Auf Ihrem Computer, auf dem MySql installiert ist, müsste also auch SQL Server Express ausgeführt werden.

Wahrscheinlicher ist, dass Sie eine Access-Datenbank in App_Data ablegen.Wenn Sie eine MSSQL-MDF-Datei verwenden, benötigen Sie auf jeden Fall weiterhin entweder MSSQL oder MSSQL-Express.

Ihre Frage ist jedoch verwirrend.Sie scheinen den Datenzugriff, ORM und die eigentliche Datenbank auszutauschen.Sie können SubSonic mit MySQL verwenden, aber Sie können LINQ to SQL nicht mit Nicht-MS-Datenbanken oder MS Access verwenden.

Einer der wenigen Unterschiede zwischen SQL Server Express und dem „vollständigen“ SQL Server ist die Möglichkeit, automatisch Dateien an MDF-Dateien anzuhängen – was Microsoft als „xcopy-Bereitstellung".

SQL Server Express ist kostenlos (wie bei Bier). Wenn Sie also keine Administratorrechte für die Installation haben, sollte dies problemlos funktionieren.

+1 für SQL Server Compact.Es ist kostenlos und es gibt keine „Engine“ im Sinne eines Vollzeitdienstes, aber Sie müssen eine Laufzeitumgebung bereitstellen (es sind nur zwei DLL-Dateien).

Ich verstehe nicht...Was meinst du mit „eine MDF-Datei in App_Data haben“?Damit dies funktioniert, benötigen Sie eine ordnungsgemäße SQL Server-Installation.Sie können jederzeit den kostenlosen SQL Server Express zum Entwickeln der Anwendung verwenden und die Datenbank dann auf den richtigen SQL Server verschieben, wenn Sie fertig sind.Überprüfen Hier.

Offenbar habe ich falsch verstanden, wie über .net auf MDF-Dateien zugegriffen wird.Auf dem Server ist kein MS SQL Server verfügbar, es sieht also so aus, als wäre ich am Arsch.

+1 für SQL Server Compact.Es ist kostenlos und es gibt keine „Engine“ im Sinne eines Vollzeitdienstes, aber Sie müssen eine Laufzeitumgebung bereitstellen (es sind nur zwei DLL-Dateien).

Funktioniert Linq to SQL damit?

Sie können SQL Server Compact nicht mit asp.net oder der Webentwicklung verwenden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top