Alternativen zur Verwendung von Transaktions NTFS
- Zusammenfassung
- Introduction (Einführung)
- Alternativen zu TxF nach Szenario
- Anwendungen, die eine einzelne Datei mit "dokumentähnlichen" Daten aktualisieren
- Anwendungen, die Updates für mehrere Dateien und/oder die Registrierungsstruktur ausführen
- Anwendungen, die eine Gruppe strukturierter Daten verwalten
- Anwendungen mit Transaktionen mit Dateien auf einem lokalen NTFS-Volume und Tabellen in einer externen SQL Datenbank
- Empfohlene Aktion schließen &
Zusammenfassung
Microsoft empfiehlt Entwicklern dringend, die verwendung der diskutierten Alternativen (oder in einigen Fällen, andere Alternativen zu untersuchen), anstatt eine API-Plattform zu übernehmen, die in zukünftigen Versionen von Windows möglicherweise nicht verfügbar ist.
Einführung
TxF wurde mit Windows Vista als Mittel eingeführt, um Atomdateitransaktionen in Windows einzuführen. Es Windows ermöglicht es Entwicklern, transaktionsale Atomität für Dateivorgänge in Transaktionen mit einer einzelnen Datei, bei Transaktionen mit mehreren Dateien und in Transaktionen, die mehrere Quellen umfassen – z. B. die Registrierung (über TxR) und Datenbanken (z. B. SQL). Während TxF eine leistungsstarke Reihe von APIs ist, gibt es sehr begrenzte Entwicklerinteressen an dieser API-Plattform seit Windows Vista hauptsächlich aufgrund seiner Komplexität und verschiedener Nuancen, die Entwickler als Teil der Anwendungsentwicklung berücksichtigen müssen. Daher betrachtet Microsoft die Veraltetkeit von TxF-APIs in einer zukünftigen Version von Windows, um die Entwicklung und Wartung auf andere Features und APIs zu konzentrieren, die für eine größere Mehrheit der Kunden mehr Wert haben. Im nächsten Abschnitt werden Beispielalternativen beschrieben, um ähnliche Ergebnisse wie TxF für mehrere Anwendungsszenarien zu erzielen.
Alternativen zu TxF nach Szenario
Mit den oben beschriebenen Einschränkungen sollten Entwickler Alternativen zu TxF untersuchen, um Anwendungsszenarien abzudecken, die nicht von TxF erfüllt werden. Hier werden einige vorgeschlagene Alternativen zur allgemeinen Verwendung von TxF für Entwickler erläutert. Beachten Sie, dass diese Liste weder vollständig noch vollständig ist.
Anwendungen, die eine einzelne Datei mit "dokumentähnlichen" Daten aktualisieren
Viele Anwendungen, die sich mit "dokumentähnlichen" Daten befassen, neigen dazu, das gesamte Dokument in den Arbeitsspeicher zu laden, zu arbeiten, und schreiben Sie es dann zurück, um die Änderungen zu speichern. Die erforderliche Atomität hier besteht darin, dass die Änderungen entweder vollständig angewendet oder gar nicht angewendet werden, da ein inkonsistenter Zustand die Datei beschädigt rendern würde. Ein allgemeiner Ansatz besteht darin, das Dokument in eine neue Datei zu schreiben und dann die ursprüngliche Datei durch die neue zu ersetzen. Eine Methode hierfür ist die ReplaceFile-API .
Anwendungen, die Updates für mehrere Dateien und/oder die Registrierungsstruktur ausführen
Es gibt viele Anwendungen, die ein Update für eine Reihe von Dateien und für die Registrierung atomisch ausführen müssen. Dieses Szenario wird am häufigsten über eine Installationsprogrammanwendung wie Windows Installer erreicht. Weitere Informationen zu Windows Installer finden Sie unter Windows Installer.
Anwendungen, die eine Gruppe strukturierter Daten verwalten
Viele Anwendungen verwalten eine Reihe von proprietären Datenstrukturen unterschiedlicher Typen als Mittel zum Speichern von Daten. Eine erhebliche Herausforderung für diese Anwendungen ist der Prozess der Beibehaltung der Integrität interner Zeiger/Verweise, wenn während eines Aktualisierungsvorgangs ein Fehler auftritt. Das Erstellen des Mechanismus dafür ist in der Tat ein "hartes Problem", und daher werden die meisten Anwendungen auf einen echten Datenbankserver angewiesen, um ihr Dataset zu verwalten.
Zwei Vorschläge zur Verwaltung strukturierter Daten sind:
- Microsoft stellt den Erweiterbaren Storage Engine (ESE)-Posteingang in Windows bereit, um Anwendungen die Ausführung von Transaktionsdatenaktualisierungs- und Abrufvorgängen zu ermöglichen. Weitere Informationen zum Extensible Storage Engine (ESE) finden Sie unter https://msdn.microsoft.com/library/gg269259.aspx.
- Für Anwendungen, die einen leistungsfähigeren, robusteren und skalierbareren Datenbankanbieter erfordern, empfiehlt es sich, dass Kunden die Verwendung der Mit Microsoft SQL Server verfügbaren Filestream-Funktion in Erwägung ziehen. Weitere Informationen zu SQL Filestreams finden Sie unter https://technet.microsoft.com/library/bb933993.aspx.
Anwendungen mit Transaktionen mit Dateien auf einem lokalen NTFS-Volume und Tabellen in einer externen SQL Datenbank
Es gibt Klassen von Anwendungen, die entweder über große Datasetanforderungen verfügen oder transaktionsale Atomität in einem Vorgang mit einer externen Datenbank und einem lokalen Speicher haben müssen. Für dieses Szenario wird dringend empfohlen, dass Entwickler SQL Filestreams verwenden, um Transaktionsdateivorgänge auszuführen. Weitere Informationen zu SQL Filestreams finden Sie unter https://technet.microsoft.com/library/bb933993.aspx.
Empfohlene Aktion schließen &
TxF ist ein komplexer und differenzierter Satz von APIs, die nicht häufig von Drittanbieteranwendungen verwendet werden. Mit der Möglichkeit, dass diese APIs in zukünftigen Versionen von Windows nicht verfügbar sein können, und dass es einfachere Alternative mittel gibt, um viele der Szenarien zu erreichen, für die TxF entwickelt wurde, empfiehlt Microsoft dringend Entwickler, diese alternativen Mittel zu untersuchen, anstatt eine Abhängigkeit von TxF in ihren Anwendungen zu erstellen.