Neues in Windows Workflow Foundation in .NET 4.5What's New in Windows Workflow Foundation in .NET 4.5

Windows Workflow Foundation (WF) in .NET Framework 4,5 führt viele neue Features ein, z. b. neue Aktivitäten, Designer Funktionen und Workflow Entwicklungsmodelle.Windows Workflow Foundation (WF) in .NET Framework 4.5 introduces many new features, such as new activities, designer capabilities, and workflow development models. Viele, aber nicht alle neuen Workflow Features, die in .NET Framework 4,5 eingeführt wurden, werden im neu gehosteten Workflow-Designer unterstützt.Many, but not all, of the new workflow features introduced in .NET Framework 4.5 are supported in the re-hosted workflow designer. Weitere Informationen zu den neuen Funktionen, die unterstützt werden, finden Sie unter Unterstützung für neue Workflow Foundation 4,5-Features in der neu gehosteten Workflow-Designer.For more information about the new features that are supported, see Support for New Workflow Foundation 4.5 Features in the Rehosted Workflow Designer. Weitere Informationen zum Migrieren von .NET 3,0-und .NET 3,5-Workflow Anwendungen, um die neueste Version zu verwenden, finden Sie in der Migrations Anleitung.For more information about migrating .NET 3.0 and .NET 3.5 workflow applications to use the latest version, see Migration Guidance. Dieses Thema enthält eine Übersicht über die neuen Workflow Features, die in .NET Framework 4,5 eingeführt wurden.This topic provides an overview of the new workflow features introduced in .NET Framework 4.5.

Warnung

Die neuen Windows Workflow Foundation Features, die in .NET Framework 4,5 eingeführt wurden, sind für Projekte, die auf frühere Versionen des Frameworks ausgerichtet sind, nicht verfügbar.The new Windows Workflow Foundation features introduced in .NET Framework 4.5 are not available for projects that target previous versions of the framework. Wenn ein Projekt, das .NET Framework 4,5, auf eine frühere Version des Frameworks ausgerichtet ist, können mehrere Probleme auftreten.If a project that targets .NET Framework 4.5 is re-targeted to a previous version of the framework, several issues can occur.

  • C#Ausdrücke werden im Designer ersetzt, wobei der Nachrichten Wert in XAML festgelegt wurde.C# expressions will be replaced in the designer with the message Value was set in XAML.
  • Viele Erstellungsfehler einschließlich des folgenden Fehlers treten auf.Many build errors will occur, including the following error.

Das Dateiformat ist mit dem aktuellen Ziel Ziel Framework nicht kompatibel. Speichern Sie die Datei explizit, um das Dateiformat zu konvertieren. Diese Fehlermeldung wird entfernt, nachdem Sie die Datei gespeichert und den Designer erneut geöffnet haben.The file format is not compatible with current targeting framework. To convert the file format, please explicitly save the file. This error message will go away after you save the file and reopen the designer.

Workflow VersionsverwaltungWorkflow Versioning

In .NET Framework 4,5 wurden mehrere neue Versions Verwaltungsfunktionen eingeführt, die auf der neuen WorkflowIdentity Klasse basieren..NET Framework 4.5 introduced several new versioning features based around the new WorkflowIdentity class. WorkflowIdentity bietet Anwendern von Workflowanwendungen einen Mechanismus, um ihrer Definition eine persistente Workflowinstanz zuzuordnen.WorkflowIdentity provides workflow application authors a mechanism for mapping a persisted workflow instance with its definition.

AktivitätsActivities

Die integrierte Aktivitätsbibliothek enthält neue Aktivitäten und neue Funktionen für vorhandene Aktivitäten.The built-in activity library contains new activities and new features for existing activities.

Nopersist-BereichNoPersist Scope

NoPersistScope ist eine neue Containeraktivität, die verhindert, dass ein Workflow persistent gespeichert wird, wenn die untergeordneten Aktivitäten von NoPersistScopes ausgeführt werden.NoPersistScope is a new container activity that prevents a workflow from being persisted when the NoPersistScope’s child activities are executing. Dies ist in Szenarien hilfreich, in denen die persistente Speicherung des Workflows nicht angebracht ist, beispielsweise, wenn der Workflow computerspezifische Ressourcen wie Dateihandles verwendet, oder im Verlauf von Datenbanktransaktionen.This is useful in scenarios where it is not appropriate for the workflow to be persisted, such as when the workflow is using machine-specific resources such as file handles, or during database transactions. Um zu vermeiden, dass die Persistenz während der Ausführung einer Aktivität auftritt, war früher eine benutzerdefinierte NativeActivity erforderlich, die einen NoPersistHandle verwendete.Previously, to prevent persistence from occurring during an activity's execution, a custom NativeActivity that used a NoPersistHandle was required.

Neue Flussdiagramm FunktionenNew Flowchart Capabilities

Flussdiagramme werden für .NET Framework 4,5 aktualisiert und haben die folgenden neuen Funktionen:Flowcharts are updated for .NET Framework 4.5 and have the following new capabilities:

  • Die DisplayName-Eigenschaft einer FlowSwitch<T>-Aktivität oder FlowDecision-Aktivität ist bearbeitbar.The DisplayName property of a FlowSwitch<T> or FlowDecision activity is editable. Auf diese Weise kann der Aktivitäts-Designer mehr Informationen über den Zweck der Aktivität anzeigen.This will let the activity designer show more information about the activity's purpose.

  • Flussdiagramme weisen eine neue Eigenschaft auf, die ValidateUnconnectedNodes genannt wird. Der Standardwert für diese Eigenschaft ist False.Flowcharts have a new property called ValidateUnconnectedNodes; the default for this property is False. Wenn diese Eigenschaft auf True festgelegt ist, führen nicht verbundene Flussdiagrammknoten zu Validierungsfehlern.If this property is set to True, then unconnected flowchart nodes will produce validation errors.

Unterstützung für teilweise VertrauenswürdigkeitSupport for Partial Trust

Workflows in .NET Framework 4 erfordern eine voll vertrauenswürdige Anwendungsdomäne.Workflows in .NET Framework 4 required a fully trusted application domain. In .NET Framework 4,5 können Workflows in einer teilweise vertrauenswürdigen Umgebung ausgeführt werden.In .NET Framework 4.5, workflows can operate in a partial trust environment. In einer teilweise vertrauenswürdigen Umgebung können Komponenten von Drittanbietern eingesetzt werden, ohne ihnen vollen Zugriff auf die Ressourcen des Hosts zu gewähren.In a partial trust environment, third-party components can be used without granting them full access to the resources of the host. Mögliche Bedenken zum Ausführen von Workflows unter teilweiser Vertrauenswürdigkeit:Some concerns about running workflows in partial trust are as follows:

  1. Das Verwenden älterer, in der Interop-Aktivität enthaltener Komponenten (einschließlich Regeln) wird unter teilweiser Vertrauenswürdigkeit nicht unterstützt.Using legacy components (including Rules) contained in the Interop activity is not supported under partial trust.

  2. Das Ausführen von Workflows unter teilweiser Vertrauenswürdigkeit in WorkflowServiceHost wird nicht unterstützt.Running workflows in partial trust in WorkflowServiceHost is not supported.

  3. Persistente Ausnahmen in einem teilweise vertrauenswürdigen Szenario stellen ein Sicherheitsrisiko dar.Persisting exceptions in a partial-trust scenario is a potential security threat. Um die Persistenz von Ausnahmen zu deaktivieren, muss dem Projekt eine Erweiterung des Typs ExceptionPersistenceExtension hinzugefügt werden.To disable persisting of exceptions, an extension of type ExceptionPersistenceExtension must be added to the project in order to opt out of persisting exceptions. Im folgenden Codebeispiel wird die Implementierung dieses Typs veranschaulicht.The following code example demonstrates how to implement this type.

    public class ExceptionPersistenceExtension
    {
        public ExceptionPersistenceExtension()
        {
            this.PersistExceptions = false;
        }
        public bool PersistExceptions { get; set; }
    }
    

    Wenn Ausnahmen nicht serialisiert werden müssen, stellen Sie sicher, dass Ausnahmen in NoPersistScope verwendet werden.If exceptions are not to be serialized, ensure that exceptions are used within a NoPersistScope.

  4. Aktivitätsautoren sollten CacheMetadata überschreiben, damit während der Workflowlaufzeit nicht automatisch eine Reflektion für den Typ ausgeführt wird.Activity authors should override CacheMetadata to avoid having the workflow runtime automatically execute reflection against the type. Argumente und untergeordnete Aktivitäten dürfen nicht NULL sein, und Bind muss explizit aufgerufen werden.Arguments and child activities must be non-null, and Bind must be called explicitly. Weitere Informationen zum Überschreiben von CacheMetadatafinden Sie unter verfügbar machen von Daten mit CacheMetadata.For more information on overriding CacheMetadata, see Exposing data with CacheMetadata. Außerdem müssen Instanzen von Argumenten, die von einem Typ sind, der internal oder Privat ist, explizit in CacheMetadata erstellt werden, um zu vermeiden, dass Sie durch Reflektion erstellt werden.Also, instances of arguments that are of a type that is internal or private must be explicitly created in CacheMetadata to avoid being created by reflection.

  5. Die Typen verwenden nicht ISerializable oder SerializableAttribute für die Serialisierung. Die zu serialisierenden Typen müssen DataContractSerializer unterstützen.Types will not use ISerializable or SerializableAttribute for serialization; types that are to be serialized must support DataContractSerializer.

  6. Ausdrücke, die LambdaValue<TResult> verwenden, setzen RestrictedMemberAccess voraus und funktionieren deshalb nicht unter teilweiser Vertrauenswürdigkeit.Expressions that use LambdaValue<TResult> require RestrictedMemberAccess, and thus will not work under partial trust. Bei Workflows, die LambdaValue<TResult> verwenden, sollten diese Ausdrücke durch Aktivitäten ersetzt werden, die von CodeActivity<TResult> abgeleitet sind.Workflows that use LambdaValue<TResult> should replace those expressions with activities that derive from CodeActivity<TResult>. ..

  7. Ausdrücke können nicht mit TextExpressionCompiler oder dem von Visual Basic gehosteten Compiler für teilweise Vertrauenswürdigkeit kompiliert werden, zuvor kompilierte Ausdrücke können jedoch ausgeführt werden.Expressions cannot be compiled using TextExpressionCompiler or the Visual Basic hosted compiler in partial trust, but previously compiled expressions can be run.

  8. Eine einzelne Assembly, die Transparenz der Ebene 2 verwendet, kann in .NET Framework 4, .NET Framework 4.6.1.NET Framework 4.6.1 mit vollständiger Vertrauenswürdigkeit und .NET Framework 4.6.1.NET Framework 4.6.1 bei teilweiser Vertrauenswürdigkeit nicht verwendet werden.A single assembly that uses Level 2 Transparency cannot be used in .NET Framework 4, .NET Framework 4.6.1.NET Framework 4.6.1 in full trust, and .NET Framework 4.6.1.NET Framework 4.6.1 in partial trust.

Neue Designer-FunktionenNew Designer Capabilities

Designer SucheDesigner Search

Um größere Workflows überschaubarer zu halten, können sie jetzt nach Schlüsselwort durchsucht werden.To make larger workflows more manageable, workflows can now be searched by keyword. Diese Funktion ist nur in Visual Studio verfügbar. Diese Funktion ist in einem neu gehosteten Designer nicht verfügbar.This feature is only available in Visual Studio; this feature is not available in a rehosted designer. Es gibt zwei Arten von Suchen:There are two kinds of searches available:

  • Schnellsuche, initiiert mit STRG + F oder Bearbeiten, Suchen und ersetzen, Schnellsuche.Quick Find, initiated with either Ctrl+F or Edit, Find and Replace, Quick Find.

  • In Dateien suchen, initiiert mit STRG + UMSCHALT + F oder Bearbeiten, Suchen und ersetzen, in Dateien suchen.Find in Files, initiated with either Ctrl+Shift+F or Edit, Find and Replace, Find in Files.

Beachten Sie, dass der Ersetzungsvorgang nicht unterstützt wird.Note that Replace is not supported.

SchnellsucheQuick Find

Schlüsselwörter, die in den Workflows gesucht werden, entsprechen den folgenden Designerelementen:Keywords searched in workflows will match the following designer items:

  • Eigenschaften von Activity-Objekten, FlowNode-Objekten, State-Objekten, Transition-Objekten und anderen benutzerdefinierten Flusssteuerungselementen.Properties of Activity objects, FlowNode objects, State objects, Transition objects, and other custom flow-control items.

  • VariablenVariables

  • ArgumenteArguments

  • AusdrückeExpressions

Die Schnellsuche wird in der ModelItem-Struktur des Designers ausgeführt.Quick Find is performed on the designer's ModelItem tree. Die Schnellsuche findet keine Namespaces, die in die Workflowdefinition importiert wurden.Quick Find will not locate namespaces imported in the workflow definition.

In Dateien suchenFind in Files

Schlüsselwörter, die in den Workflows gesucht werden, stimmen mit dem tatsächlichen Inhalt der Workflowdateien überein.Keywords searched in workflows will match the actual content of the workflow files. Die Suchergebnisse werden im Visual Studio-Ansichtsbereich Suchergebnisse angezeigt.The search results will be shown in Visual Studio Find Results view pane. Durch Doppelklicken auf das Ergebniselement navigieren Sie im Workflow-Designer zur Aktivität, in der die Übereinstimmung enthalten ist.Double-clicking the result item will navigate to the activity which contains the match in workflow designer.

Kontextmenü Element im Variablen-und Argument-Designer löschenDelete context menu item in variable and argument designer

In .NET Framework 4 konnten Variablen und Argumente nur im Designer mit der Tastatur gelöscht werden.In .NET Framework 4, variables and arguments could only be deleted in the designer using the keyboard. Ab .NET Framework 4,5 können Variablen und Argumente über das Kontextmenü gelöscht werden.Starting with .NET Framework 4.5, variables and arguments can be deleted using the context menu.

Das folgende Bildschirmfoto zeigt das Kontextmenü des Variablen- und Argument-Designers.The following screenshot shows the variable and argument designer context menu.

Kontextmenü des Variablen- und Argument-Designers

Automatisches umschließen mit SequenzAuto-surround with Sequence

Da ein Workflow oder bestimmte Containeraktivitäten (z. B. NoPersistScope) nur eine einzelne Textkörperaktivität enthalten können, musste der Entwickler zum Hinzufügen einer zweiten Aktivität die erste Aktivität löschen, eine Sequence-Aktivität hinzufügen und der Sequenzaktivität dann beide Aktivitäten hinzufügen.Since a workflow or certain container activities (such as NoPersistScope) can only contain a single body activity, adding a second activity required the developer to delete the first activity, add a Sequence activity, and then add both activities to the sequence activity. Ab .NET Framework 4,5 wird automatisch eine Sequence Aktivität erstellt, um beide Aktivitäten zu umschließen, wenn der Designer Oberfläche eine zweite Aktivität hinzugefügt wird.Starting with .NET Framework 4.5, when adding a second activity to the designer surface, a Sequence activity will be automatically created to wrap both activities.

Die folgende Bildschirmaufnahme zeigt eine WriteLine-Aktivität in Body von NoPersistScope.The following screenshot shows a WriteLine activity in the Body of a NoPersistScope.

Eine "Write teline"-Aktivität im Text einer nopersistscope-Aktivität.

Die folgende Bildschirmaufnahme zeigt die automatisch erstellte Sequence-Aktivität in Body, wenn eine zweite WriteLine-Komponente unterhalb der ersten abgelegt wird.The following screenshot shows the automatically created Sequence activity in the Body when a second WriteLine is dropped below the first.

Eine automatisch erstellte Sequenz im Text eines nopersistscope.

Schwenk ModusPan Mode

Um in einem umfangreichen Workflow einfacher im Designer zu navigieren, kann der Schwenkmodus aktiviert werden, der es dem Entwickler ermöglicht, den sichtbaren Teil des Workflows durch Klicken und Ziehen zu verschieben, anstatt die Bildlaufleisten zu verwenden.To more easily navigate a large workflow in the designer, pan mode can be enabled, allowing the developer to click and drag to move the visible portion of the workflow, rather than needing to use the scroll bars. Die Schaltfläche zum Aktivieren des Schwenkmodus befindet sich in der rechten unteren Ecke des Designers.The button to activate pan mode is in the lower right corner of the designer.

Das folgende Bildschirmfoto zeigt die Schaltfläche zum Schwenken, die sich in der unteren rechten Ecke des Workflow-Designers befindet.The following screenshot shows the pan button which is located at the bottom right corner of the workflow designer.

Die Schaltfläche schwenken, die im Workflow-Designer hervorgehoben ist.

Die mittlere Maustaste oder die LEERTASTE kann ebenfalls verwendet werden, um den Workflow-Designer zu schwenken.The middle mouse button or space bar can also be used to pan the workflow designer.

MehrfachauswahlMulti-select

Mehrere Aktivitäten können gleichzeitig ausgewählt werden, indem Sie entweder ein Rechteck darum ziehen (wenn der Schwenkmodus nicht aktiviert ist), oder indem Sie die STRG-TASTE gedrückt halten und nacheinander auf die gewünschten Aktivitäten klicken.Multiple activities can be selected at one time, either by dragging a rectangle around them (when pan mode is not enabled), or by holding down Ctrl and click the desired activities one by one.

Mehrere ausgewählte Aktivitäten können auch im Designer gezogen und abgelegt und über das Kontextmenü bearbeitet werden.Multiple activity selections can also be dragged and dropped within the designer, and can also be interacted with using the context menu.

Gliederungsansicht von Workflow ElementenOutline view of workflow items

Um das Navigieren in hierarchischen Workflows zu erleichtern, werden die Komponenten eines Workflows in einer strukturähnlichen Gliederungsansicht angezeigt.In order to make hierarchical workflows easier to navigate, components of a workflow are shown in a tree-style outline view. Die Gliederungs Ansicht wird in der Ansicht Dokument Gliederung angezeigt.The outline view is displayed in the Document Outline view. Um diese Ansicht zu öffnen, wählen Sie im oberen Menü Ansicht, Weitere Fenster, DokumentGliederung aus, oder drücken Sie STRG W, U.To open this view, from the top menu, select View, Other Windows, Document Outline, or press Ctrl W,U. Wenn Sie auf einen Knoten in der Gliederungsansicht klicken, wechseln Sie automatisch zur entsprechenden Aktivität im Workflow-Designer, und die Gliederungsansicht wird aktualisiert, um die im Designer ausgewählten Aktivitäten anzuzeigen.Clicking on a node in outline view will navigate to the corresponding activity in the workflow designer, and the outline view will be updated to show activities that are selected in the designer.

Der folgende Screenshot des abgeschlossenen Workflows aus dem Tutorial "Getting Started " zeigt die Gliederungs Ansicht mit einem sequenziellen Workflow.The following screenshot of the completed workflow from the Getting Started Tutorial shows the outline view with a sequential workflow.

Screenshot der Gliederungs Ansicht mit einem sequenziellen Workflow in Visual Studio.

C# AusdrückeC# Expressions

Vor .NET Framework 4,5 konnten alle Ausdrücke in Workflows nur in Visual Basic geschrieben werden.Prior to .NET Framework 4.5, all expressions in workflows could only be written in Visual Basic. In .NET Framework 4,5 werden Visual Basic Ausdrücke nur für Projekte verwendet, die mit Visual Basic erstellt werden.In .NET Framework 4.5, Visual Basic expressions are only used for projects created using Visual Basic. Visual C#-Projekte verwenden jetzt die Programmiersprache C# für Ausdrücke.Visual C# projects now use C# for expressions. Ein voll funktionaler C#-Ausdrucks-Editor wird mit Funktionen wie IntelliSense und der Hervorhebung grammatikalischer Fehler bereitgestellt.A fully functional C# expression editor is provided which capabilities such as grammar highlighting and intellisense. Die in früheren Versionen erstellten C#-Workflowprojekte, die Visual Basic-Ausdrücke verwenden, sind weiterhin funktionsfähig.C# workflow projects created in previous versions that use Visual Basic expressions will continue to work.

C#-Ausdrücke werden zur Entwurfszeit validiert.C# expressions are validated at design-time. Fehler in C#-Ausdrücken werden mit einer roten wellenförmigen Unterstreichung gekennzeichnet.Errors in C# expressions will be marked with a red wavy underline.

Weitere Informationen zu C# Ausdrücken finden C# Sie unter Ausdrücke.For more information about C# expressions, see C# Expressions.

Mehr Kontrolle über die Sichtbarkeit der shellleiste und der Header ElementeMore control of visibility of shell bar and header items

In einem neu gehosteten Designer sind einige standardmäßigen Benutzeroberflächen-Steuerelemente für einen bestimmten Workflow möglicherweise bedeutungslos und deaktiviert.In a rehosted designer, some of the standard UI controls may not have meaning for a given workflow, and may be turned off. In .NET Framework 4 wird diese Anpassung nur von der shellleiste am unteren Rand des Designers unterstützt.In .NET Framework 4, this customization is only supported by the shell bar at the bottom of the designer. In .NET Framework 4,5 kann die Sichtbarkeit von shellheadern am oberen Rand des Designers angepasst werden, indem WorkflowShellHeaderItemsVisibility mit dem entsprechenden ShellHeaderItemsVisibility Wert festgelegt wird.In .NET Framework 4.5, the visibility of shell header items at the top of the designer can be adjusted by setting WorkflowShellHeaderItemsVisibility with the appropriate ShellHeaderItemsVisibility value.

Automatisches Verbinden und automatisches Einfügen in Flussdiagramm-und ZustandsautomatworkflowsAuto-connect and auto-insert in Flowchart and State Machine workflows

In .NET Framework 4 mussten Verbindungen zwischen Knoten in einem Flussdiagramm-Workflow manuell hinzugefügt werden.In .NET Framework 4, connections between nodes in a Flowchart workflow had to be added manually. In .NET Framework 4,5 verfügen Flussdiagramm-und Zustands Automaten Knoten über automatische Verbindungspunkte, die sichtbar werden, wenn eine Aktivität aus der Toolbox auf die Designer Oberfläche gezogen wird.In .NET Framework 4.5, Flowchart and State Machine nodes have auto-connect points that become visible when an activity is dragged from the toolbox onto the designer surface. Durch Ablegen einer Aktivität auf einem dieser Punkte wird die Aktivität automatisch zusammen mit der erforderlichen Verbindung hinzugefügt.Dropping an activity on one of these points automatically adds the activity along with the necessary connection.

Das folgende Bildschirmfoto zeigt die Anfügepunkte, die sichtbar werden, wenn eine Aktivität aus der Toolbox gezogen wird.The following screenshot shows the attachment points that become visible when an activity is dragged from the toolbox.

Flussdiagramm-Startknoten mit automatischen Verbindungs Punkten

Aktivitäten können auch auf Verbindungen zwischen Flussdiagrammknoten und -zuständen gezogen werden, um den Knoten automatisch zwischen zwei anderen Knoten einzufügen.Activities can also be dragged onto connections between flowchart nodes and states to auto-insert the node between two other nodes. Das folgende Bildschirmfoto zeigt die hervorgehobene Verbindungslinie, auf die Aktivitäten aus der Toolbox gezogen und abgelegt werden können.The following screenshot shows the highlighted connecting line where activities can be dragged from the toolbox and dropped.

AutoEinfügen-Handle zum Ablegen von Aktivitäten

Designer-AnmerkungenDesigner Annotations

Zur einfacheren Entwicklung größerer Workflows unterstützt der Designer jetzt das Hinzufügen von Anmerkungen, um den Entwurfsprozess nachzuverfolgen.To facilitate developing larger workflows, the designer now supports adding annotations to help keep track of the design process. Aktivitäten, Zustände, Flussdiagrammknoten, Variablen und Argumente können mit Anmerkungen versehen werden.Annotation can be added to activities, states, flowchart nodes, variables and arguments. Das folgende Bildschirmfoto zeigt das Kontextmenü, das verwendet wird, um dem Designer Anmerkungen hinzuzufügen.The following screenshot shows the context menu used to add annotations to the designer.

Screenshot, der ein Menü zum Hinzufügen von Anmerkungen anzeigt.

DebugzuständeDebugging states

In .NET Framework 4 konnten nicht aktivitätenelemente debugbreakpunkte nicht unterstützen, da Sie keine Ausführungs Einheiten sind.In .NET Framework 4, non-activity elements could not support debug breakpoints since they were not units of execution. Dieses Release stellt einen Mechanismus bereit, um State-Objekten Haltepunkte hinzuzufügen.This release provides a mechanism for adding breakpoints to State objects. Wenn ein Haltepunkt für State festgelegt wird, wird die Ausführung unterbrochen, wenn vor der Planung der Eintragsaktivitäten oder Trigger ein Zustandsübergang stattfindet.When a breakpoint is set on a State, execution will break when the state is transitioned to, before its entry activities or triggers are scheduled.

Definieren und Verarbeiten von activitydelegatobjekten im DesignerDefine and consume ActivityDelegate objects in the designer

Die Aktivitäten in .NET Framework 4 wurden ActivityDelegate Objekten verwendet, um Ausführungs Punkte verfügbar zu machen, an denen andere Teile des Workflows mit der Ausführung eines Workflows interagieren konnten, aber die Verwendung dieser Ausführungs Punkte erforderte normalerweise eine ziemlich große Menge an Code.Activities in .NET Framework 4 used ActivityDelegate objects to expose execution points where other parts of the workflow could interact with a workflow's execution, but using these execution points usually required a fair amount of code. In diesem Release können Entwickler die Aktivitätsdelegaten mit dem Workflow-Designer definieren und nutzen.In this release, developers can define and consume activity delegates using the workflow designer. Weitere Informationen finden Sie unter Gewusst wie: definieren undverarbeiten von Aktivitäts Delegaten im Workflow-Designer.For more information, see How to: Define and consume activity delegates in the Workflow Designer.

Überprüfung der Build-ZeitBuild-time validation

In .NET Framework 4 wurden Workflow Validierungs Fehler während der Erstellung eines Workflow Projekts nicht als Buildfehler gezählt.In .NET Framework 4, workflow validation errors weren’t counted as build errors during the build of a workflow project. Das bedeutete, dass das Erstellen eines Workflowprojekts erfolgreich gewesen sein konnte, obwohl Workflowvalidierungsfehler auftraten.This meant that building a workflow project could succeed even when there were workflow validation errors. In .NET Framework 4,5 bewirken Workflow Validierungs Fehler, dass der Build fehlschlägt.In .NET Framework 4.5, workflow validation errors cause the build to fail.

Hintergrund Validierung zur EntwurfszeitDesign-time background validation

In .NET Framework 4 wurden Workflows als Vordergrund Prozess überprüft, der die Benutzeroberfläche bei komplexen oder zeitaufwändigen Validierungs Prozessen potenziell blockieren kann.In .NET Framework 4, workflows were validated as a foreground process, which could potentially block the UI during complex or time-consuming validation processes. Da die Workflowvalidierung nun in einem Hintergrundthread stattfindet, wird die Benutzeroberfläche nicht blockiert.Workflow validation now takes place on a background thread, so that the UI is not blocked.

Ansichts Zustand an einem anderen Speicherort in XAML-DateienView state located in a separate location in XAML files

In .NET Framework 4 werden die Ansichts Zustandsinformationen für einen Workflow in der XAML-Datei an vielen verschiedenen Speicherorten gespeichert.In .NET Framework 4, the view state information for a workflow is stored across the XAML file in many different locations. Dies ist für Entwickler, die XAML direkt lesen oder Code zum Entfernen von Ansichtszustandsinformationen schreiben möchten, ungünstig.This is inconvenient for developers who want to read XAML directly, or write code to remove the view state information. In .NET Framework 4,5 werden die Ansichts Zustandsinformationen in der XAML-Datei als separates Element in der XAML-Datei serialisiert.In .NET Framework 4.5, the view state information in the XAML file is serialized as a separate element in the XAML file. Entwickler können die Ansichts Zustandsinformationen einer Aktivität leicht finden und bearbeiten oder den Ansichts Zustand vollständig entfernen.Developers can easily locate and edit the view state information of an activity, or remove the view state altogether.

Ausdrucks ErweiterbarkeitExpression extensibility

In .NET Framework 4,5 bieten wir Entwicklern die Möglichkeit, eigene Ausdrucks-und Ausdrucks Erstellungs Funktionen zu erstellen, die an den Workflow-Designer angeschlossen werden können.In .NET Framework 4.5, we provide a way for developers to create their own expression and expression authoring experience that can be plugged into the workflow designer.

Aktivieren von Workflow 4,5-Funktionen im neu gehosteten DesignerOpt-in for Workflow 4.5 features in rehosted designer

Um die Abwärtskompatibilität aufrechtzuerhalten, sind einige neue Features, die in .NET Framework 4,5 enthalten sind, im neu gehosteten Designer standardmäßig nicht aktiviert.To preserve backward compatibility, some new features included in .NET Framework 4.5 are not enabled by default in the rehosted designer. Dadurch wird sichergestellt, dass vorhandene Anwendungen, die den neu gehosteten Designer verwenden, nicht beeinträchtigt werden, indem ein Update auf die neueste Version ausgeführt wird.This is to ensure that existing applications that use the rehosted designer are not broken by updating to the latest version. Um neue Funktionen im neu gehosteten Designer zu aktivieren, legen Sie entweder TargetFrameworkName auf „.NET Framework 4.5“ oder einzelne Member von DesignerConfigurationService fest, um einzelne Funktionen zu aktivieren.To enable new features in the rehosted designer, either set TargetFrameworkName to ".NET Framework 4.5", or set individual members of DesignerConfigurationService to enable individual features.

Neue Workflow EntwicklungsmodelleNew Workflow Development Models

Zusätzlich zu den Entwicklungsmodellen für sequenzielle oder Flussdiagramm-Workflows umfasst dieses Release Zustandsautomatworkflows und Vertrag zuerst-Workflowdienste.In addition to flowchart and sequential workflow development models, this release includes State Machine workflows, and contract-first workflow services.

ZustandsautomatworkflowsState machine workflows

Zustandsautomatworkflows wurden als Teil der .NET Framework 4, Version 4.0.1, im Microsoft .NET Framework 4 Platform Update 1eingeführt.State machine workflows were introduced as part of the .NET Framework 4, version 4.0.1 in the Microsoft .NET Framework 4 Platform Update 1. Dieses Update umfasste verschiedene neue Klassen und Aktivitäten, die es den Entwicklern ermöglichten, Zustandsautomatworkflows zu erstellen.This update included several new classes and activities which allowed developers to create state machine workflows. Diese Klassen und Aktivitäten wurden für .NET Framework 4,5 aktualisiert.These classes and activities have been updated for .NET Framework 4.5. Updates umfassen:Updates include:

  1. Festlegen von Haltepunkten für ZuständeThe ability to set breakpoints on states

  2. Kopieren und Einfügen von Übergängen im Workflow-DesignerThe ability to copy and paste transitions in the workflow designer

  3. Designerunterstützung für das Erstellen von freigegebenen TriggerübergängenDesigner support for shared trigger transition creation

  4. Aktivitäten, die zum Erstellen von Zustandsautomatworkflows verwendet werden, darunter: StateMachine, State und TransitionActivities used to create State Machine workflows, including: StateMachine, State, and Transition

Der folgende Screenshot zeigt den abgeschlossenen Zustandsautomatworkflow aus dem Schritt " Getting Started Tutorial " Gewusst wie: Erstellen eines Zustands Automaten Workflows.The following screenshot shows the completed state machine workflow from the Getting Started Tutorial step How to: Create a State Machine Workflow.

Die Abbildung zeigt den abgeschlossenen Zustandsautomatworkflow.

Weitere Informationen zum Erstellen von Zustandsautomatworkflows finden Sie unter Zustandsautomatworkflows.For more information on creating state machine workflows, see State Machine Workflows.

Vertrag zuerst-Workflow EntwicklungContract-first workflow development

Mit dem Contract-First-Workflow-Entwicklungs Tool können Entwickler zunächst einen Vertrag im Code entwerfen und dann mit wenigen Klicks in Visual Studio automatisch eine Aktivitäts Vorlage in der Toolbox generieren, die die einzelnen Vorgänge darstellt.The contract-first workflow development tool allows the developer to design a contract in code first, then, with a few clicks in Visual Studio, automatically generate an activity template in the toolbox representing each operation. Diese Aktivitäten werden dann verwendet, um einen Workflow zu erstellen, der die vom Vertrag definierten Vorgänge implementiert.These activities are then used to create a workflow that implements the operations defined by the contract. Der Workflow-Designer überprüft den Workflowdienst, um sicherzustellen, dass diese Vorgänge implementiert wurden und dass die Signatur des Workflows mit der Vertragssignatur übereinstimmt.The workflow designer will validate the workflow service to ensure that these operations are implemented and the signature of the workflow matches the contract signature. Der Entwickler kann einen Workflowdienst auch einer Auflistung implementierter Verträge zuordnen.The developer can also associate a workflow service with a collection of implemented contracts. Weitere Informationen zur Entwicklung von Vertrag zuerst-Workflow Diensten finden Sie unter Gewusst wie: Erstellen eines Workflow Dienstanbieter, der einen vorhandenen Dienstvertragverwendet.For more information on contract-first workflow service development, see How to: Create a workflow service that consumes an existing service contract.