Richtlinien für das Erstellen von parallelen Assemblys

In den folgenden Richtlinien wird erläutert, wie Sie ihre eigenen com- oder Win32-Parallelassemblys erstellen. Möglicherweise müssen Sie keine eigenen parallelen Assemblys erstellen, wenn die erforderliche Funktionalität von einer der unterstützten Parallelassemblys von Microsoft bereitgestellt wird. Verwenden Sie in diesem Fall die von Microsoft bereitgestellten Assemblys, und befolgen Sie die Verfahren für die parallele Verwendung von Assemblys unter Verwenden isolierter Anwendungen und paralleler Assemblys.

Überlegen Sie zunächst, ob Ihre Komponente einen geeigneten Kandidaten für eine parallele Assembly darstellt. Weitere Informationen finden Sie unter Sollten Sie eine freigegebene Komponente als parallele Assembly bereitstellen?

Befolgen Sie die folgenden Richtlinien, um eine parallele Assembly zu erstellen:

  • Entscheiden Sie, welche Ressourcen in die Assembly eingeschlossen werden sollen. Beachten Sie, dass eine Assembly aus einer oder mehreren Dateien besteht, die anwendungen und Kunden immer gemeinsam zur Verfügung gestellt werden. Die Assembly dient als grundlegende Einheit, die für Benennung, Bindung, Versionsverwaltung, Bereitstellung und Standardkonfiguration verwendet wird. Wenn Sie sich nicht sicher sind, ob zwei Ressourcen in die gleiche Assembly gehören, wird im Allgemeinen empfohlen, dass sie erstellt werden, um in separate Assemblys zu wechseln. In der Regel besteht eine parallele Assembly aus einer einzelnen DLL.
  • Erstellen Sie ein Assemblymanifest für die Assembly. Das Manifest sollte die COM-Objekt- oder Typbibliotheken in der Assembly beschreiben. Weitere Informationen dazu, was in einem Assemblymanifest erstellt werden soll, finden Sie unter Assemblymanifeste.
  • Bewerten Sie die Verwendung von Objekten, wenn mehr als eine Version Ihrer Assembly auf dem System ausgeführt wird. Ermitteln Sie, ob verschiedene Versionen der Assembly separate Datenstrukturen erfordern, z. B. speicherseitig zugeordnete Dateien, Named Pipes, registrierte Windows-Nachrichten und -Klassen, freigegebenen Arbeitsspeicher, Semaphore, Mutexes und Hardwaretreiber. Alle Datenstrukturen, die über Assemblyversionen hinweg verwendet werden, müssen abwärtskompatibel sein. Entscheiden Sie, welche Datenstrukturen versionsübergreifend verwendet werden können und welche Datenstrukturen für eine Version privat sein müssen. Ermitteln Sie, ob freigegebene Datenstrukturen separate Synchronisierungsobjekte wie Semaphore und Mutexe erfordern.
  • Erstellen Sie Ihre DLL so, dass sie gut als parallele Assembly funktioniert, indem Sie die Richtlinien unter Erstellen einer DLL für eine parallele Assembly einhalten.
  • Erstellen Sie eine Reihe von Headerdateien und Hilfsfunktionen, um eine einfache Möglichkeit zur Versionsverwaltung von Registrierungsschlüsseln mit dem Assemblystatus bereitzustellen. Assemblys speichern ihre Zustandseinstellungen häufig in Registrierungsschlüsseln. Registrierungseinstellungen müssen auf Basis einer einzelnen Version geschrieben werden, um mehrere Assemblyversionen zu isolieren, die gleichzeitig ausgeführt werden können. Entwerfen Sie Ihre parallele Assembly und DLL so, dass der Zustand der Assembly während paralleler Freigabeszenarien ordnungsgemäß gespeichert und verarbeitet wird. Befolgen Sie die Richtlinien unter Erstellen des Zustandsspeichers für parallele Assemblys.
  • Entwickler von Anwendungen, die private Assemblys verwenden, sollten das Anwendungsverzeichnis schützen. Wenn die Anwendung mithilfe von Windows Installer installiert wird, kann das Anwendungsverzeichnis mithilfe der LockPermissions-Tabelle gesichert werden. In der Regel erhält das System Lese-, Schreib- und Ausführungszugriff auf private Assemblys. allen anderen Prozessen wird nur Ausführungs- und Lesezugriff gewährt.
  • Testen Sie die Assembly mithilfe von Szenarien mit paralleler Freigabe, um sicherzustellen, dass es sich um eine gültige parallele Assembly handelt. Eine erfolgreiche Installation der Assembly reicht nicht aus, um sicherzustellen, dass sie wie erwartet funktioniert.
  • Verwenden Sie eine Methode zum Nummerieren von Updates für Ihre Assembly. Jede Assembly ist einer vierteiligen Versionsnummer zugeordnet. Von links nach rechts werden die Haupt-, Neben-, Build- und Revisionsteile durch Punkte getrennt. Ändern Sie die Haupt- oder Nebennummer einer Assembly für eine Version, die mit früheren Versionen nicht kompatibel ist. Ändern Sie nur die Build- und Revisionsteile für abwärtskompatible Änderungen an der Assembly. Beispielsweise kann ein Entwickler eine Nummerierungsmethode verwenden, bei der sich alle Versionsnummer 1.0.0.* auf Updateversionen auf Assemblyversion 1.0.0.0 beziehen.