12 Stimmen

Was sind die Vorteile von VistaDB?

Ich habe im Laufe der Jahre viele Verweise auf VistaDB gesehen, und mit Tools wie SQLite, Firebird, MS SQL usw. hatte ich nie einen Grund, es in Betracht zu ziehen.

Welche Vorteile hat die Bezahlung von VistaDB gegenüber der Verwendung einer anderen Technologie? Dinge, an die ich gedacht habe:
1. Unterstützung des Compact Framework. SQLite+MSSQL unterstützen das CF.
2. Ich brauche einen Migrationspfad zu einem "robusteren" System. Firebird+MSSQL.
3. Benötigen Sie mehr fortgeschrittene Funktionen wie Trigger. Firebird+MSSQL

0 Stimmen

Übrigens, SQLite unterstützt Trigger.

0 Stimmen

Und was sind die Nachteile?

0 Stimmen

Es kostet Geld. Sie ist nicht so ausgereift. Es wird nicht von vielen (so vielen?) Augen gesehen.

26voto

Jason Short Punkte 5105

Die VistaDB-Client-Laufzeitumgebung ist kostenlos. Die Laufzeit wird niemals "um 3 Uhr morgens ablaufen", wie Sie es ausdrücken. Nur die Entwickler-Tools sind auf diese Weise lizenziert. Sie benötigen 1 Lizenz pro Entwickler, ganz einfach. Wir bieten sogar eine sehr preiswerte Lite-Version ohne Visual Studio Tools an.

Einige weitere Vorteile

100% verwalteter Code - es gibt keine Interop-Aufrufe oder andere nicht verwaltete Aufrufe in der Engine. Für manche ist das eine große Sache, anderen ist es völlig egal.

Kein Zugriff auf die Registry erforderlich - Die meisten anderen In-Proc-Datenbanken erfordern Zugriff auf die Registrierung, um nach übergeordneten Steuerelementen oder Berechtigungen zu suchen. VistaDB tut nur das, was Sie ihr sagen, und läuft sogar unter Medium Trust.

XCopy-Bereitstellung für die Laufzeit und Ihre Datenbank (einzelne Datei). Sie können Ihre Anwendung, die Runtime und Ihre Datenbank kopieren und ausführen. Es muss nichts auf dem Rechner installiert oder konfiguriert werden, es sind keine besonderen Berechtigungen erforderlich (wir können mit mittlerem Vertrauen oder höher laufen).

Isolierte Lagerung - Sie können Ihre gesamte Datenbank in Isolated Storage ablegen und sie direkt von dort aus ausführen. Dies macht es sehr einfach, sichere "Click Once"-Anwendungen zu erstellen, die Datenbanken auf eine domänenfreundliche Weise für Unternehmensumgebungen schreiben. Sie müssen die Benutzerdaten nicht auf einem freigegebenen Laufwerk speichern oder sich um die Zuordnung von Berechtigungen kümmern.

CLR-Auslöser / CLR-Prozesse - Sie können CLR-Code schreiben und ihn als Trigger oder Stored Procs verwenden. Wir haben vor kurzem Änderungen eingeführt, die es noch einfacher machen, eine einzige CLR-Assembly zu verwalten, die sowohl in VistaDB als auch in SQL Server 2005/2008 ausgeführt werden kann.

T-SQL-Prozesse - VistaDB T-SQL Procs sind kompatibel mit SQL Server 2005/2008. Jede Prozedur, die in unserer Engine funktioniert, läuft auch in SQL Server. Das bedeutet nicht, dass alles, was dort läuft, zu uns portiert werden kann. Wir sind eine Teilmenge der Funktionalität von SQL Server. Aber wir sind auch die einzige Möglichkeit, T-SQL Procs ohne SQL Server auszuführen (SQL CE kann das nicht).

Ich persönlich denke, dass eine der wichtigsten Funktionen die Möglichkeit ist, später auf SQL Server aufzustocken. Alle VistaDB-Typen, Syntax und CLR-Procs, T-SQL-Procs, etc. laufen alle auf SQL Server. (Sie können jedoch nicht alles von SQL Server auf VistaDB übertragen, es ist eine Teilmenge)

32/64-Bit-Bereitstellung - VistaDB ist eine einzelne Baugruppe, die ohne Änderungen sowohl in 32 als auch in 64 Bit ausgeführt werden kann. SQL CE erfordert je nach Betriebssystem zwei verschiedene Laufzeiten und kann unter IIS überhaupt nicht ausgeführt werden. Access hat keine 64-Bit-Laufzeitumgebung, und die neueste 32-Bit-Laufzeitumgebung kann nur über MSI bereitgestellt werden. Die 32-Bit-Version von Windows hat die Laufzeitumgebung, die 64-Bit-Version nicht.

Integrität der Beziehungen - VistaDB erzwingt auch Ihre Beschränkungen und Fremdschlüssel. Sie können bestimmte Aktualisierungs- und Löschvorgänge kaskadieren. Die Person, die gesagt hat, dass wir wie SQLITE sind, liegt in dieser Hinsicht falsch. Sie analysieren Constraints, setzen sie aber nicht durch.

EDIT: Es gibt jetzt Unterstützung für FKs in SQLite. Aber sie sind nicht standardmäßig einkompiliert und verwenden nicht die gleiche Syntax wie SQL Server.

Mittleres Vertrauen - Die Fähigkeit, auf einem Medium-Trust-Webserver zu laufen, ist ein weiteres Merkmal, das viele nicht interessieren wird, aber es ist eine große Sache. Viele Steuerungen von Drittanbietern können nicht einmal in Medium Trust ausgeführt werden. Wir können die komplette Engine innerhalb von Medium Trust ausführen, da wir uns zu 100 % verwaltetem Code und den geringsten erforderlichen Berechtigungen verpflichtet haben.

- Vollständige Offenlegung - Ich bin der Besitzer von VistaDB, also bin ich vielleicht voreingenommen :)

0 Stimmen

Die neueste SQLite-Version 3.6.19 unterstützt die Durchsetzung von Fremdschlüsseln.

0 Stimmen

Die SQLite FK-Erzwingung ist standardmäßig deaktiviert. Von ihrer Website "die Bibliothek muss kompiliert werden", das heißt, es hängt von der BUILD selbst, und dann müssen Sie es auch zu aktivieren. Wenn ich den Code pflegen und kompilieren wollte, hätte ich meine eigene Engine gebaut (oh, warte, das habe ich... VistaDB - vergiss es)

0 Stimmen

Ich habe keine Preise für die VistaDB "Lite"-Version gefunden, ist sie noch verfügbar?

5voto

Jason Bunting Punkte 56534

Das Wichtigste ist, dass es sich um reinen verwalteten Code handelt. Er funktioniert nicht nur auf den typischen Windows-Rechnern mit .NET, sondern überall dort, wo das Compact Framework läuft, und sogar auf Mono . Hier sind einige bemerkenswerte Punkte von ihrer Homepage:

  • Kleiner < 1 MB Fußabdruck wirklich eingebettet ZeroClick
  • Microsoft SQL Server 2005 kompatible Datentypen und T-SQL-Syntax
  • Keine der SQL CE-Grenzen
  • Einzelbenutzer, mehrere Benutzer lokal oder über ein gemeinsames Netzwerk.
  • Teilweise vertrauenswürdiges Shared Hosting ist kein Problem.
  • Lizenzfreie Verteilung - die Bereitstellung von SQL Server für eine einzelne CPU kostet mehr als eine Site-Lizenz von VistaDB!

Erwähnenswert ist, dass das Unternehmen von Rob Howard, telligent verwendet sie als Standarddatenbank für ihre neue CMS-Software, " Graffiti ."

Ich habe hier und da damit gespielt, aber ich habe noch nichts dagegen gebaut.

5voto

Konstantin Tarkus Punkte 36184

Für mich ist die interessanteste Eigenschaft von VistaDB, dass es in einer Medium Trust-Umgebung ausgeführt werden kann. Das macht es zur perfekten Lösung für die Erstellung kleiner bis mittlerer .NET-Websites, die durch Kopieren und Einfügen auf dem Server bereitgestellt werden können (x-copy deployment).

Und fast alle Anbieter von gemeinsam genutztem Windows-Hosting (wie GoDaddy) lassen Sie Ihre Websites nicht im Modus "Volles Vertrauen" ausführen. Sie installieren auch keine Binärdateien von Drittanbietern im GAC wie System.Data.SQLite.dll, wenn Sie beispielsweise SQLite verwenden möchten.

0voto

Orion Edwards Punkte 117361

Ich hatte VistaDB vorher noch nicht gesehen, es sieht wirklich ziemlich cool aus.

Aktualisierung: Ich habe einen Kommentar von jemandem von VistaDB erhalten - ihr Aktualisierungsmodell dient nur dazu, neue Versionen zu erhalten. Ihre alten Versionen werden nicht aufhören zu funktionieren, wenn Ihre Lizenz abläuft, was gut zu wissen ist.

Ich behalte den ursprünglichen Beitrag hier, da IMHO die Warnung vor auslaufenden Softwarelizenzen immer noch eine Überlegung wert ist, auch wenn VistaDB selbst in Ordnung ist.


Es scheint definitiv "funktionsreicher" zu sein als SQLite, aber ich sehe nichts, was die Kosten rechtfertigen würde. Die Website scheint darauf hinzuweisen, dass man eine Lizenz für 279 $ kaufen kann, aber sie impliziert, dass dies nur ein 1-Jahres-Abonnement ist. Müssten Sie dann im nächsten Jahr weitere 279 $ zahlen, damit Ihre Website nicht umkippt?

Wenn ja, denken Sie daran, in die "Kosten" die Unannehmlichkeiten einzurechnen, die Ihnen entstehen, wenn Sie um 3 Uhr morgens (Murphy's law, it's always 3am) einen Anruf von Ihren panischen Kunden erhalten, weil ihre VistaDB-Lizenz abgelaufen ist :-(

Ich habe diese Erfahrung persönlich mit einer auslaufenden Software gemacht, und das ist nie gut. Sie können Ihren Kunden E-Mails und Nachrichten schicken und ihren gesamten Bildschirm rot blinken lassen mit der Aufschrift "SIE MÜSSEN VOR DER NÄCHSTEN WOCHE EINE NEUE LIZENZ ERWERBEN", und sie werden es trotzdem nicht tun, und Sie werden trotzdem um 3 Uhr morgens den Schmerz spüren, wenn die Lizenz abläuft.

0 Stimmen

Nein, die Lizenz läuft nicht ab - Sie erhalten nach Ablauf des Abonnements lediglich keine Updates mehr.

0 Stimmen

Die Laufzeitlizenz läuft nie ab. Das Abonnement ist für Support und Updates gedacht. Nach Ablauf Ihres Abonnements können Sie keine neuen Builds mehr von uns erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X