Dieser Artikel wurde maschinell übersetzt.
Windows Workflow Foundation 4.5
Neuerungen in Windows Workflow Foundation 4.5
Das Codebeispiel herunterladen
Auf der BUILD-Konferenz im September (buildwindows.com), Microsoft die nächste Version von Windows Workflow Foundation (WF 4.5) vorgestellt und zur Verfügung gestellt eine öffentliche Vorschau als Teil der Windows 8 Developer Preview (msdn.microsoft.com/windows/apps/br229516).In diesem Artikel werde ich über die wichtigsten neuen Funktionen hinzugefügt in WF 4.5 nötig.Angesichts der allgemeiner Tragweite des Artikels und die Größe des der Feature-Set, wird jede Diskussion kurz sein, aber ich hoffe, dass Sie bekommen werden aufgeregt genug, um die Windows 8 Developer Preview herunterladen und spielen mit WF 4.5.
WF: Gestern, heute und morgen
WF 4 ausgeliefert in 2010 zu einem großen Empfang von der Entwickler-Community.WF 4 enthalten bedeutende Fortschritte gegenüber seinem Vorgänger (WF 3.5): verbesserte Laufzeit, bessere Gesamtleistung, vereinfachte Aktivität erstellen, volle Integration in Windows Communication Foundation (WCF), deklarativen Erstellung und erheblich vereinfachte Designer rehosting.2011 brachte eine voll ausgestattete Version der StateMachine in Microsoft.NET Framework 4-Plattform Update 1, garantiert verfügbar heute mit der gleichen Qualität und Unterstützung als jede andere Komponente des Frameworks.Mit WF 4.5 war unser Ziel, die wichtigsten Fragen zu lösen, erfuhren wir von unseren Kunden über.Wir haben auch gearbeitet, um alle Macht der WF in die Cloud zu nehmen; Es gibt eine große BUILD-Präsentation können Sie sehen, was das Team bis zu gemacht hat (bit.ly/rbJROw).
Wie Sie durch diesen Artikel lesen, bin ich sicher, Sie haben Fragen zur Kompatibilität zwischen WF 4 und WF 4.5.Seien Sie versichert, dass die Versionen auf derselben Codebasis basieren und sind voll kompatibel.Alle Ihre WF 4 Investitionen werden in WF 4.5 ohne Änderungen beibehalten.
Nachdem wir WF 4 ausgeliefert wurde, erhielten wir viele großartige Feedback, das wir verwendet, um die nächste Version zu planen.In WF 4.5 wollten wir Ihr Hauptanliegen und Hinzufügen von Funktionen zu den besten Rahmen zum Erstellen von Workflow-Anwendungen bereitstellen.Abbildung 1 zeigt Kunden Anforderungen und Features in Reaktion auf diese Anforderungen erstellt.
Abbildung 1 Kundenwünsche und neue Features für WF 4.5
Beachten Sie, dass die Tabelle nach Themen organisiert ist; Ich werde dieselben Themen in den kommenden Abschnitten verwenden, um die wichtigsten Funktionen zu präsentieren.
Erstellen von Verbesserungen
C#-Ausdrücke WF 4 können Sie schreiben Ausdrücke mithilfe von Visual Basic und, wenn Sie in Visual Studio verwendet, der Ausdrucks-Editor stellt alle Sprachdienste, die Sie, wie die automatische Vervollständigung, IntelliSense und So weiter erwarten.Aber unsere WF 4 Kunden erzählte uns, dass sie lieber schreiben würde c# als Visual Basic, so dass wir die Unterstützung für c#-Ausdrücke hinzugefügt.Jetzt, wenn Sie eine C#-Projekt erstellen, erhalten Sie c#-Ausdrücke in Ihren Workflow.Mach dir keine Sorgen Sie, aber.Sie erhalten weiterhin Visual Basic-Ausdrücke, wenn Sie ein Visual Basic-Projekt erstellen.C#-Unterstützung kommt auch mit allen Language Services, die Sie erwarten würden, wie in Abbildung 2.Beachten Sie die IntelliSense im Feld Ergebnis zweite C#-Überladung für Zeichenfolge.Format.
Abbildung 2 c#-Ausdrücke in einem Workflow
Wenn Sie c#-Ausdrücke versuchen möchten, erstellen Sie ein C#-Workflow-Projekt.Sie können auch das CSharpExpressions-Projekt im begleitenden Code für diesen Artikel öffnen.
Contract-First-Ansatz Service Authoring WF 4 kommt mit großen WCF-Integration.Können Sie WCF-Dienste, die Nutzung aller Funktionen WF (langlebige Ausführung, dauerhaften Status, deklarativen Erstellung und Einblick in Ausführung) ohne eine einzige Zeile Code schreiben zu müssen (siehe "Visual Design von Workflows mit WCF und WF 4" bei msdn.microsoft.com/magazine/ff646977).Beim Erstellen ein Workflowdiensts in WF 4, werden Service-Verträge von der Workflow-Definition abgeleitet.Wenn der Host startet, es führt durch die Workflowdefinition für messaging Aktivitäten suchen, dann wird der entsprechenden Vertrag verfügbar (z. B. einzelnen empfangen Aktivität an einen Dienstvorgang übersetzt).
Viele Kunden gesagt, sie würde es vorziehen, erstellen ihre Workflowdienste aus einem bestehenden WCF-Dienstvertrag (der Workflow ist nur eine der möglichen Implementierungen dieses Vertrags), so dass WF 4.5 wir Unterstützung für das Erstellen von "Contract-First" Dienst hinzugefügt.Jetzt können Sie einen WCF-Dienstvertragsdefinition in einem Workflowprojekt importieren und einen oder mehrere Workflow-Services implementieren diesen Vertrag.Dieser neue Ansatz zum Erstellen von Workflow-Dienst ist kein Ersatz für den Workflow-First-Ansatz.
Contract-First-Ansatz in WF ist ein zweistufiger Prozess: Sie fügen einen Verweis auf den Vertrag (eine reguläre WCF-Dienstvertrag) in Ihrem Projekt und dann implementieren Sie den Dienstvertrag in Ihren Diensten.
Um den Vertrag zu importieren, mit der rechten Maustaste auf das Projekt, wählen Sie den Menüpunkt "Service-Vertrag importieren" und wählen Sie den Vertragstyp.Sobald der Vertrag importiert wird und das Projekt wird erstellt, eine Reihe von Aktivitäten, die jede Operation wird der Toolbox hinzugefügt, wie in gezeigt Abbildung 3.
Abbildung 3 die erstellten Aktivitäten sind die Toolbox hinzugefügt
Als Abbildung 4 zeigt, können Sie Aktivitäten zwischen dem Receive und SendReply.Diese Aktivitäten stellen die Stelle des Vorgangs dar.
Abbildung 4 einfache Service-Methode, die einen Wert berechnet
Der zweite Schritt ist, um anzugeben, dass ein bestimmter Dienst den Vertrag implementiert.Dazu, Sie den Workflowdienst im Designer zu öffnen und den Vertrag der ImplementedContracts Auflistung von WorkflowService Stamm hinzufügen.
Sobald der Dienst den Vertrag implementiert, läuft der Designer einen neuen Satz von Validierungsregeln um sicherzustellen, dass der Dienst den Vertrag ehrt.Als Folge werde Warnungen und Fehler angezeigt, wenn der Vertrag ist nicht vollständig implementiert.
Wenn Sie sehen Contract-First-Ansatz möchten in Aktion, werfen Sie einen Blick auf das ContractFirst-Projekt im begleitenden Code.Führen Sie für eine praktische Erfahrung die Schritte im vorherigen Abschnitt beschrieben.
Nutzen den WF-Designer die WF visual Designer bietet eine grafische Darstellung Ihrer Workflows, wodurch sie einfacher zu erstellen und freizugeben.Der Designer ist eine Schlüsselfunktion von WF und ist die am häufigsten verwendete Tool.In WF 4.5 fügten wir hoch angeforderten Features, um produktiver Verwendung zu ermöglichen.
Anmerkungen In WF 4, der einzige Ort, können Sie Text im Designer wird die DisplayName-Abschnitt einer Aktivität, die einen einzeiligen Textbereich an der Spitze der Aktivität ist.Es gibt keine andere Möglichkeit Ihren Workflow nicht strukturierte beschreibenden Informationen hinzu.Allerdings wollte Sie Kommentare oder Text in Ihre Aktivitäts-Designer vermitteln mehr als nur die Workflow-Definition (z. B. eine Beschreibung des Verhaltens von einem Prozessschritt hinzufügen) hinzufügen zu können.
In WF 4.5 fügten wir Anmerkungen, die Sie textliche Kommentare und Beschreibungen Aktivitäten im Designer hinzufügen können.Abbildung 5 zeigt einen Workflow mit und ohne Anmerkungen.Beachten Sie, wie Sie jetzt beschreibenden Informationen zu einer Aktivität hinzufügen können.Mit Anmerkungen kann ein Ausdruck des Designers vollständig vermitteln was tut der Workflow.
Abbildung 5 Workflow mit und ohne Anmerkungen selektieren
Sie können Anmerkungen wie immer sichtbar oder als eine klebrige Anmerkung in der DisplayName-Bar einer Aktivität anzeigen.
Anmerkungen sind ein Opt-in-Funktion und keine Ausführungszeit auswirken.Sie sind auf der Workflow-XAML-Datei als angefügte Eigenschaften hinzugefügt, wie im folgenden Codeausschnitt gezeigt:
<Activity mc:Ignorable="sap2010"
x:Class="DesignerImprovements.Annotations"
xmlns="https://schemas.microsoft.com/netfx/2009/xaml/activities"
xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:sap2010="https://schemas.microsoft.com/netfx/2010/xaml/activities/presentation"
xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml">
<Sequence sap2010:Annotation.AnnotationText="This is an example annotation">
<WriteLine Text="Hello Dev11"/>
</Sequence>
</Activity>
Um Anmerkungen in Aktion zu sehen, schauen Sie sich die beigefügten Anmerkungen-Projekt im begleitenden Code. Für eine praktische Erfahrung ein 4.5 WF Workflow-Projekt zu öffnen, eine Aktivität zu Designer hinzufügen und wählen Sie "Annotation hinzufügen" im Kontextmenü der Aktivität.
Verbesserung der Flussdiagramm und StateMachine-Designer hat Sie uns gebeten, Aspekte der Design-Erfahrung zu machen Sie produktiver, insbesondere im Hinblick auf hinzufügen neue Activ verbessernkeiten zu einem Flussdiagramm oder StateMachine (verfügbar durch.NET Framework-Plattform Update 1). Wir hörten.
Wir hinzugefügt automatisch verbinden, wodurch eine vorhandene Aktivität im Designer automatisch eine neue Aktivität herstellen. Und wir automatisch einfügen, können Sie eine Aktivität durch Ablegen der neuen Aktivität auf der Verbindungslinie zwischen zwei vorhandenen Einfügen hinzugefügt. Abbildung 6 zeigt diese Funktionen.
Abbildung 6 Auto-Connect und automatisch einfügen.
Um dies auszuprobieren, nur erstellen Sie ein WF-Projekt und fügen Sie eines Flussdiagramms oder StateMachine hinzu. Wenn Sie eine neue Aktivität hinzufügen, werden Sie feststellen, Ziele für die Auto-connect fallen. Nachdem Sie zwei Aktivitäten verbunden haben, können Sie eine dritte ablegen auf der Verbindungslinie hinzufügen.
Groß-Workflow-Navigation In WF 4, wenn ein Workflow größer als der Bildschirm ist, Sie verschieben, um die vertikalen und horizontalen Bildlaufleisten verwenden. Sie erzählte uns, das Bewegen eines großen Workflows auf diese Weise schmerzhaft und schränkt Ihre Produktivität.
In WF 4.5 hinzufügen wir schwenken, der durch den Designer Canvas mithilfe der Maus verschieben. Sie können Pan Modus aktivieren, indem Sie die Pan-Schaltfläche im Designer. Schwenken steht als allgemeine Designer Feature, sodass Sie es mit einer vorhandenen Aktivität verwenden können.
Um zu versuchen, schwenken, öffnen Sie jeden Workflow im Designer zu, klicken Sie auf die Schaltfläche "Pan" und genießen Sie schwenken um!
WF 4.5 bietet auch eine Strukturansicht, die ermöglicht, die Dokumentgliederung Ihres Workflows zu visualisieren. Dies gibt Ihnen eine sehr kurze und strukturierte Ansicht Ihres Workflows, sodass Sie große Workflows leichter zu navigieren. Wenn Sie eine Aktivität in dieser Ansicht, es ist aktiviert in der Workflow-Definition, wie in gezeigt Abbildung 7.
Abbildung 7 Dokument Gliederungsansicht eines Workflows
Um dieses Feature zu versuchen, öffnen Sie einen Workflow im Designer zu, gehen Sie zum Menü Ansicht, weitere Fenster und wählen Sie Dokumentgliederung.
Suche Integration im Designer In WF 4 können Sie die Visual Studio-Suche wenn den WF-Designer verwenden, aber die Suchergebnisse sind nicht mit dem WF-Designer integriert. Durch Klicken auf eine Suchergebnis braucht Sie nicht an einen bestimmten Speicherort in einem Workflow. Sie machte deutlich, wie dies Ihre Produktivität auswirkt und wie wichtig war es für uns um diese Funktionalität bereitzustellen.
In WF 4.5 integriert wir im WF Designer mit Visual Studio suchen. Jetzt klicken Sie auf ein Suchergebnis gelangen Sie zu einer Aktivität in einem Workflow, auch wenn es mehrere Ebenen von geschachtelten.
Um das auszuprobieren, erstellen Sie eine Workflowprojekt, und starten Sie einen Workflow im Designer bearbeiten. Fügen Sie einige Aktivitäten und konfigurieren Sie ihre Eigenschaften zu. Nun, suchen Sie für ein Schlüsselwort, das mit Visual Studio suchen. Die Ergebnisse der Suche nehmen Sie an die Aktivität, die das Schlüsselwort entspricht.
Auto-Surround mit Sequenz die WF 4 Aktivitätsmodell unterstützt Zusammensetzung im Kern sehr; Aktivitäten können ohne Einschränkungen bestehen. Zum Beispiel die Body-Eigenschaft einer While Aktivität kann eine Sequenz, Parallel, Flussdiagramm, StateMachine, WriteLine, Verzögerung oder andere vorhandene Aktivitäten. Zusammengesetzte Aktivitäten haben oft eine Body-Eigenschaft, die nur eine Aktivität (statt einen Satz), akzeptiert die anderen Blatt oder zusammengesetzte Aktivität sein kann.
Eine der häufigsten Aktivitäten für Körper ist Folge, vor allem mit Steuerelement Fluss Aktivitäten wie While, ForEach und so weiter. Mit diesen wenn Sie ein einzelnes untergeordnetes Element hinzufügen und dann Ihre Meinung zugunsten der eine Sequenz von Elementen ändern, müssen Sie schneiden das Kind im Körper, dann den Körper eine Sequenz hinzufügen, und fügen das Kind. Dies ist mühsam und fehleranfällig.
WF 4.5 haben wir eine "Auto-Surround mit Sequenz"-Funktion. Beispielsweise wenn Sie eine Weile und ihr Körper ein WriteLine, ist wenn Sie eine andere Tätigkeit ablegen, eine Sequenz mit sowohl neuen als auch die vorhandene Aktivität wird automatisch erstellt, wie in dargestellt Abbildung 8.
Abbildung 8-Raumklang mit Sequenz
Um dies zu testen, führen Sie die Schritte in Abbildung 8.
Build Integration In WF 4 können Sie eine neue Aktivität deklarativ im Designer. Wenn Sie dies tun, sind Sie tatsächlich einen neuen Typ definieren, der in der Assembly generiert beim Kompilieren des Projekts platziert werden. Ist jedoch erfolgreich, wenn Sie ein WF 4-Projekt erstellen und in der XAML-Code Fehler vorhanden sind, der Build noch obwohl Ihren Workflow nicht in der resultierenden Assembly enthalten ist.
In WF 4.5 wird dieses Problem behoben. Wenn Sie einen Workflow, der einen Fehler aufweist erstellen, wird das Build brechen, wie man erwarten würde.
Um diese Lösung zu implementieren, haben wir Erweiterbarkeit XamlBuildTask also darauf zugegriffen werden kann, während der Kompilierung des XAML-Aktivitäten, den Build brechen, wenn eine Datei XAML Workflow Fehler aufweist.
Um diese Funktion zu testen, erstellen Sie eine neue WF-Anwendung und Hinzufügen einer falsch konfigurierten Aktivität in einem Workflow. Erhalten Sie einen Buildfehler. Sie können auch das ErrorBreaksTheBuild-Projekt im begleitenden Code versuchen.
Staat Maschine out of the Box StateMachine ist eine sehr wichtige Kontrollaktivität fließen, die nicht bis WF 4 machen. Dass gebracht Tonnen des Feedbacks über die Bedeutung dieser Aktivität, so dass nun StateMachine in WF 4 verfügbar ist, nach der Installation die.NET Framework Produktupdate 1. In WF 4.5, brauchen Sie keines Update StateMachine nutzen zu installieren – es hat direkt aus der Box enthalten.
Um diese Funktion zu testen, erstellen Sie eine Workflowprojekt und fügen Sie eine StateMachine-Aktivität oder öffnen Sie das StateMachine-Beispielprojekt im begleitenden Code für diesen Artikel.
Versionsunterstützung
WF 4 enthalten keine Unterstützung für Versionsverwaltung Workflow. Wenn Sie Versionsverwaltung wollten, mussten Sie schreiben alles auf eigene Faust, schlagen oft Probleme, die schwer zu umgehen sind. WF 4.5 enthält neue Features, die Versionsverwaltung aktivieren.
WorkflowIdentity In WF 4, der Host ist verantwortlich für Zuordnungen zwischen Definitionen und Instanzen. Sobald eine Instanz beibehalten und aus dem Arbeitsspeicher entladen wurde, muss der Host die richtige Definition weiterhin die Ausführung der Instanz bereit. Eine große Herausforderung ist, dass es keine Informationen in der beibehaltenen Instanzzustand, der hilft den Host bestimmt, welche Definition verwendet wurde, um die Instanz zu erstellen. Außerdem, wenn beim Laden von einer Instanz der Host mit der falschen Definition konfiguriert ist, erhält der Benutzer eine schwierige Ausnahme da der Fehler ein Nebeneffekt der nicht in der Lage entsprechend den Instanzstatus mit der Definition, sondern als ein echtes Versionskonflikt ist.
WF 4.5 führt ein WorkflowIdentity, ein neuer Typ, bezieht sich auf eine vollständig konfigurierte Workflow-Definition und ist Teil der Instanz-Laufzeitstatus. Eine WorkflowIdentity enthält ein Name (Zeichenfolge), eine Version (System.Version) und ein Paket (Zeichenfolge). Name und Version sind selbsterklärend; Paket ist ein optionaler String zur Begriffsklärung. Es bezieht sich auf den Container der Workflowdefinition (AssemblyName, Dienst-URI oder eine beliebige Zeichenfolge Ihrer Wahl). WorkflowIdentity ist der Grundstein für alle WF zur Zeilenversionsverwaltung.
Eines der nützlichsten Merkmale des WorkflowIdentity ist, dass es ein Teil der Workflowzustand der Instanz und über den gesamten Lebenszyklus einer Tätigkeit lebt: Es ist während der Persistenz gespeichert, aus dem persistenten Speicher abgefragt werden kann und wird ausgegeben, mit die Überwachungsinformationen für eine Workflowinstanz.
Von WorkflowIdentity ist einfach. Der folgende Codeausschnitt zeigt, wie sie mit WorkflowApplication, unsere Einzelinstanz-, Einzel-Definition, in-Process-Host verwendet (Sie haben nur eine Instanz des WorkflowIdentity an dem Konstruktor der WorkflowApplication übergeben):
WorkflowIdentity identity = new WorkflowIdentity("Sample", new Version(1, 0, 0, 0),
"MyPackage");
WorkflowApplication application = new WorkflowApplication(new MyActivity(), identityV1);
Wir gerade die WorkflowApplication mit einem Workflow konfiguriertIdentität, aber wir haben nicht noch etwas sinnvolles getan. Im nächste Codebeispiel wird veranschaulicht die Identität einen Versionskonflikt erkennen und umsetzbare Fehlermeldung bereitstellen. Bei einem Versionskonflikt beim Versuch, eine Instanz zu laden erhalten Sie ein VersionMismatchException, das heißt die Ursache des Problems und die mitgelieferten und erwarteten Identität enthält. Diese Informationen kann für die Protokollierung oder Wiederherstellung des Fehlers verwendet werden:
try
{
WorkflowIdentity wrongIdentity = new WorkflowIdentity("Sample", new Version(2, 0, 0, 0),
"MyPackage");
WorkflowApplication application = new WorkflowApplication(new WrongActivity(),
identityV2);
application.Load(instanceId);
}
catch (VersionMismatchException ex)
{
Console.WriteLine("Version Mismatch!
{0}", ex.Message);
Console.WriteLine("Expected: {0}; Provided: {1}", ex.ExpectedVersion, ex.ActualVersion);
}
Schließlich können Sie die Identität einer bestimmten Workflowinstanz erfahren, bevor es aus dem persistenten Speicher geladen.Um die Identität abzufragen, müssen Sie erhalten eine WorkflowApplicationInstance, einen neuen Typ WF-4.5, die eine Instanz darstellt, die keine Definition zugeordnet wurde eingeführt.Es wird verwendet, um Metadaten zu der Instanz abzurufen – in diesem Fall die Identität.Finden Sie unter bit.ly/ssAYDn für weitere Informationen.
Beachten Sie, dass WorkflowIdentity nicht nur mit WorkflowApplication, sondern auch mit WorkflowServiceHost arbeitet.
Wenn Sie diese Funktion ausprobieren möchten, öffnen Sie das WorkflowIdentity-Projekt im begleitenden Code.
WorkflowServiceHost WorkflowServiceHost (WFSH) ist der Out-of-Box-Einzel-Definition, Multiple-Instanzen, die Host für Workflows in WF 4 bereitgestellt.Allerdings ist eine unglückliche WF 4-Einschränkung, die dem Workflow Definition Ergebnis einer Ausnahme ändert, wenn Sie versuchen, eine zuvor beibehaltene Instanz in die WFSH laden.Dies ist, weil der Host nicht ausgeführt werden diese Instanzen mithilfe der neuen Definition wird (Dies ist das Problem, das wir im Abschnitt WorkflowIdentity beschrieben).Einige Kunden gearbeitet um die fehlende integrierte Versionsunterstützung in WF 4 mit mehreren WFSHs und einem WCF-Dienst routing als Mittler zwischen der Clientanwendung und der Arbeitsabläufe.Clients senden Nachrichten an den Router, der die Nachrichten an die entsprechenden WFSH konfiguriert mit der richtigen Version der Definition weiterleitet.Der Nachteil ist, dass dies erfordert die Clientanwendung versionsabhängige zum Senden von Nachrichten an eine Dienstinstanz erfolgreich sein.
WF 4.5 geworden WFSH ein multiversion Host; Sie können mehrere Versionen von einem Workflow-Dienst innerhalb der gleichen WFSH bereitstellen und es werden eingehende Nachrichten an die richtige Version liefern.
Die Semantik ist sehr einfach: Neue Instanzen starten mit der neuesten Version des Dienstes, und ausgeführte Instanzen weiter ausgeführt werden, mit der Version verwendet, um sie zu starten.Es gibt einige Beschränkungen, was Sie von einer Version zur nächsten ändern können; Sie können Dienstvorgänge (erhält) nicht entfernen, aber Sie können neue hinzufügen (die Regeln sind ähnlich wie Erstellen einer abgeleiteten Schnittstelle in der CLR).
Die Grundvoraussetzung für dieses Feature ist WorkflowIdentity.Um zu bestimmen, die eine Service-Definition-Version müssen Sie ihre Identität konfigurieren.Alte Versionen des Dienstes müssen in einem "unterstützten Versionen" Ordner ist ein Ordner mit demselben Namen wie der Workflow-Service im App_Code platziert werden (siehe Abbildung 9).Alternativ können alte Versionen auch explizit in der WorkflowServiceHost geladen werden von der SupportedVersions-Auflistung vor dem Öffnen des Hosts hinzufügen.
Abbildung 9 WorkflowServiceHost Side-by-Side Versionsverwaltung
Mit dieser neuen Funktion der Router wird nicht mehr benötigt, und Clientanwendungen müssen nicht versionsabhängige.Sie senden einfach eine Nachricht; der übliche Korrelation Mechanismus löst es auf die richtige Instanz und der Host verwendet die entsprechende Definition (weil der beibehaltenen Instanzstatus die Identität der Definition erforderlich enthält, um es zu laden).XCopy-Bereitstellung Semantik werden beibehalten, so brauchen Sie nicht, eine einzige Zeile Code zu verwenden, es zu schreiben.Dieses Feature ist auch verfügbar in Self-Hosting Szenarien (WFSH in Ihrer eigenen Anwendung hosten).
Um diese Funktion zu testen, öffnen Sie das WFSH_SxS-Projekt im begleitenden Code.
Dynamisches Update In WF 4, nachdem eine Workflowinstanz begonnen hat, gibt es keine Möglichkeit, die Definition des Workflows zu ändern.Dies ist oft ein Problem, wenn Programme aufgrund von Bug-Fixes oder wechselnde Anforderungen aktualisiert werden müssen.
Unsere Unternehmenskunden wurden nachdrücklich über die Bedeutung dieser Funktion, weil sie oft eine bestimmten Workflowinstanz in lang andauernden Workflows ändern müssen.Nehmen wir beispielsweise an ein Workflow, der einen Interview-Prozess modelliert hat vier Interviewer aber angesichts einer neuen Unternehmenspolitik, jetzt muss geändert werden, um eine fünfte Interviewer hinzuzufügen.Sie können das mit WF 4 nicht.
Sie können in WF 4.5.Dynamischer Updates können Sie Änderungen an einer ausgeführten Instanz eines Workflows zu eine neuen Workflow-Definition aufnehmen.Solche Änderungen können durch Auslassungen zur Entwurfszeit Fehler im Workflow oder neuen Anforderungen motiviert werden.Dynamisches Update ist nicht vorgesehen für Situationen, die erfordern Veränderungen, führt einen Workflow, der deutlich von seinem ursprünglichen Design abweicht.In dieser Art der Fall sollten Sie einen neuen Workflow anstelle von Änderungen an einer laufenden Instanz entwerfen.
Dynamische Updates sind in der Regel ein zweistufiger Prozess: Wenn die Workflow-Definition zu ändern, müssen Sie auch eine Update-Map zu erstellen: eine Struktur, die Informationen über die Änderungen enthält.Wenn die neue Version bereitgestellt wird, kann die Karte ausgeführte Instanzen der neuen Definition aktualisieren verwendet werden.Ausführen von Instanzen kann aktualisiert werden, nur wenn sie im Leerlauf und permanente sind.
Dynamische Updates, die in WorkflowApplication und WorkflowServiceHost verfügbar ist, ist eine erweiterte, komplexe Funktion, und es hat viel mehr Funktionen als ich erwähnt habe.Es unterstützt die Aktualisierung Tätigkeiten, benutzerdefinierten Update Semantik, ausgeben von Tracking-Informationen und vieles mehr.Es gibt Ihnen eine umfassende API, die Sie in Ihren Anwendungen verwenden können, um Aktualisierungsfunktionen für Ihre ausgeführten Instanzen bereitzustellen.
Runtime-Erweiterungen
Beschreiben Sie kurz einige Laufzeit-Verbesserungen in WF 4.5.Due Platzgründen möchte, ich wird nicht eintauchen in sie mit die gleichen Details wie die anderen Funktionen; Diese sind mehr beschränkt und erweiterte.
Teilweiser Vertrauenswürdigkeit WF 4 erfordert volle Vertrauenswürdigkeit ausführen.WF 4.5 kann in teilweise vertrauenswürdigen Anwendungsdomänen ausgeführt.
Ausdrücke Erweiterbarkeit wir ExpressionTextBox zum Binden an ein Objekt statt einer Zeichenfolge geändert.Infolgedessen können Sie Ihren eigenen Ausdruck bearbeiten Erfahrung bereitstellen und Sie nicht auf eine textuelle Repräsentation beschränkt.Wir ausgesetzt auch schnell-Datenpfade, die mit Codeaktivitäten verwendet werden können, für die Erstellung von Ausdruck Aktivitäten mit einer besseren Leistung.
Visual Basic-Leistungsverbesserungen wir VisualBasicValue/VisualBasicReference Leistung durch Ändern ihrer internen Implementierung deutlich verbessert.
WF 3 veraltet WF 3 Typen in WF 4.5 Assemblys als veraltet markiert wurden.
Nachbereitung
Wir haben 4 WF und, basierend auf Ihrem Feedback, machte es besser.Wir haben viel gewünschten Funktionen und behoben einige Schlüsselfragen zur Verfügung die besten Workflow-Framework für Ihre.NET-Anwendungen.
WF 4.5 ist ein direkter Ersatz für WF 4 und ist voll kompatibel mit WF 4.Wir haben gründlich getestet, dass WF 4.5 keine WF 4 Szenarien brechen; alle Ihre WF 4 Investitionen werden vollständig in WF 4.5 ohne Notwendigkeit der Änderungen beibehalten.
Wenn Sie 4 WF-Anwendungen schreiben, halten Sie dabei!Wenn Sie auf WF 4.5 verschieben möchten, Ihr Code funktioniert nur, und Sie und Ihre Kunden werden können, zu nutzen und genießen die Verbesserungen, die in diesem Artikel beschrieben.
Leon Welicki ist senior Programmmanager im Schwerpunkt des WF-Programmiermodells und Runtime WF-Team.
Dank der folgenden technischen Experten für die Überprüfung dieses Artikels: Joe Clancy, Dave Cliffe, Dan Glick, Hani Khoshdel Nikkhoo und Isaac Yuen