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, wie neue Aktivitäten, Designer-Funktionen und Modelle für die Workflowentwicklung.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 Funktionen in .NET Framework 4.5 werden von den neuen Workflow 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 Features, die unterstützt werden, finden Sie unter Unterstützung für neue Workflow Foundation 4.5-Features im Workflow-Designer neu gehostet.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-workflowanwendungen, die neueste Version verwenden, finden Sie unter Migrationsanleitung.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 Workflowfunktionen, die in .NET Framework 4.5 eingeführt.This topic provides an overview of the new workflow features introduced in .NET Framework 4.5.

Warnung

Die neuen Windows Workflow Foundation-Funktionen in .NET Framework 4.5 sind nicht verfügbar, für Projekte, die frühere Versionen des Frameworks ausgerichtet.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, dass Ziele ist für .NET Framework 4.5-Ziel eine frühere Version von Framework neu sind, 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 ersetzt werden im Designer mit der Meldung Wert wurde in XAML festgelegt.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 nicht mit aktuellen Zielframework kompatibel. Zum Konvertieren des Dateiformats müssen Sie die Datei explizit speichern. Diese Fehlermeldung wird verschwinden, nachdem Sie die Datei speichern und erneut im Designer öffnen.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.

WorkflowversionsverwaltungWorkflow Versioning

.NET Framework 4.5 eingeführt wurden neue versionsverwaltungsfunktionen basierend auf der neuen WorkflowIdentity Klasse..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ätenActivities

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 FlussdiagrammfunktionenNew 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 Version 4.NET Framework version 4 benötigen eine voll vertrauenswürdige Anwendungsdomäne.Workflows in .NET Framework Version 4.NET Framework version 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 CacheMetadata, finden Sie unter Verfügbarmachen 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, die internal oder private muss explizit erstellt werden, CacheMetadata um zu vermeiden, die durch Reflektion erstellt wird.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>. sein..

  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 verwendet Transparenz der Ebene 2 kann nicht verwendet werden, .NET Framework 4.NET Framework 4, .NET Framework 4.6.1.NET Framework 4.6.1 mit voller Vertrauenswürdigkeit und .NET Framework 4.6.1.NET Framework 4.6.1 bei teilweiser Vertrauenswürdigkeit.A single assembly that uses Level 2 Transparency cannot be used in .NET Framework 4.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. Dieses Feature ist nur in Visual Studio verfügbar. Dieses Feature ist nicht in einem neu gehosteten Designer 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: entweder mit initiiert STRG + F oder bearbeiten, suchen und Ersetzen, Schnellsuche.Quick Find, initiated with either Ctrl+F or Edit, Find and Replace, Quick Find.

  • Suche in Dateien, entweder mit initiiert 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.

Löschen Sie die Option im Kontextmenü im Variablen- und Argument-designerDelete context menu item in variable and argument designer

In .NET Framework 4.NET Framework 4 konnten Variablen und Argumente nur im Designer und mithilfe der Tastatur gelöscht werden.In .NET Framework 4.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 gelöscht werden mithilfe des Kontextmenüs.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

Automatische Einfassung 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, beim Hinzufügen einer zweiten Aktivität auf die Designeroberfläche, eine Sequence Aktivität wird automatisch erstellt werden, um beide Aktivitäten zu umschließen.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 WriteLine-Aktivität im Text der 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 Hauptteil einer NoPersistScope.

SchwenkmodusPan 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" im Workflow-Designer hervorgehoben.

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 der WorkflowelementeOutline 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 Gliederungsansicht wird angezeigt, der Dokumentgliederung anzeigen.The outline view is displayed in the Document Outline view. Wählen Sie zum Öffnen dieser Ansicht in der oberen Menüleiste Ansicht, Other Windows, Dokumentgliederung, 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.

Das folgende Bildschirmfoto des abgeschlossenen Workflows aus der Getting Started Tutorial zeigt die Gliederungsansicht 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 Gliederungsansicht 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 erstellt wurden, mithilfe von Visual Basic verwendet.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 Sie unter c#-Ausdrücke.For more information about C# expressions, see C# Expressions.

Mehr Kontrolle über die Sichtbarkeit der shellleiste und Headerelemente 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.NET Framework 4 wird diese Anpassung nur von der Shellleiste im unteren Bereich des Designers unterstützt.In .NET Framework 4.NET Framework 4, this customization is only supported by the shell bar at the bottom of the designer. In .NET Framework 4.5, die die Sichtbarkeit der shellheaderelemente am oberen Rand des Designers angepasst werden, durch Festlegen von WorkflowShellHeaderItemsVisibility mit dem entsprechenden ShellHeaderItemsVisibility Wert.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.

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

In .NET Framework 4.NET Framework 4 mussten Verbindungen zwischen Knoten in einem Flussdiagramm-Workflow manuell hinzugefügt werden.In .NET Framework 4.NET Framework 4, connections between nodes in a Flowchart workflow had to be added manually. In .NET Framework 4.5 Flussdiagramm- und Knoten haben AutoVerbinden Punkte, die sichtbar werden, wenn eine Aktivität aus der Toolbox auf die Designeroberflä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 für Start-Knoten zum automatischen verbinden Punkte

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ü für das Hinzufügen von Anmerkungen anzeigt.

DebugzuständeDebugging states

In .NET Framework 4.NET Framework 4 konnten Nicht-Aktivitätselemente keine Debughaltepunkte unterstützen, da sie keine Ausführungseinheiten bildeten.In .NET Framework 4.NET Framework 4, non-activity elements could not support debug breakpoints since they were not units of execution. Diese Version 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 ActivityDelegate-Objekten im designerDefine and consume ActivityDelegate objects in the designer

Aktivitäten in .NET Framework 4.NET Framework 4 verwendeten ActivityDelegate-Objekte, um Ausführungspunkte verfügbar zu machen, in denen andere Teile des Workflows mit der Ausführung eines Workflows interagieren konnten. Zur Verwendung dieser Ausführungspunkte war normalerweise jedoch beträchtlicher Code erforderlich.Activities in .NET Framework 4.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 Vorgehensweise: Definieren und Verarbeiten von aktivitätsdelegaten im Workflow-Designer.For more information, see How to: Define and consume activity delegates in the Workflow Designer.

Überprüfung der ErstellungszeitBuild-time validation

In .NET Framework 4.NET Framework 4 galten Workflowvalidierungsfehler während der Erstellung eines Workflowprojekts nicht als Erstellungsfehler.In .NET Framework 4.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 führen workflowvalidierungsfehler zum Fehlschlagen des Buildvorgangs.In .NET Framework 4.5, workflow validation errors cause the build to fail.

Hintergrundvalidierung zur EntwurfszeitDesign-time background validation

In .NET Framework 4.NET Framework 4, wurde die workflowvalidierung als Vordergrundprozess ausgeführt, die möglicherweise die Benutzeroberfläche bei komplexen oder zeitaufwändigen blockiert werden kann.In .NET Framework 4.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.

Ansichtszustand befindet sich in einem separaten Ort in XAML-DateienView state located in a separate location in XAML files

In .NET Framework 4.NET Framework 4 werden die Ansichtszustandsinformationen für einen Workflow an vielen verschiedenen Orten in der XAML-Datei gespeichert.In .NET Framework 4.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 ist die Ansichtszustandsinformationen 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 leicht finden und bearbeiten die Ansichtszustandsinformationen einer Aktivität oder den Ansichtszustand vollständig entfernen.Developers can easily locate and edit the view state information of an activity, or remove the view state altogether.

Erweiterbarkeit von AusdrückenExpression extensibility

In .NET Framework 4.5 bieten wir eine Möglichkeit für Entwickler zum Erstellen eigener Ausdruck und der Ausdruck, die intuitive Benutzeroberfläche, die Workflow-Designer integriert werden kann.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.

Opt-in für Workflow 4.5-Funktionen im neu gehosteten designerOpt-in for Workflow 4.5 features in rehosted designer

Um Abwärtskompatibilität zu gewährleisten, sind einige neue Features in .NET Framework 4.5 enthaltenen in 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 Modelle für die WorkflowentwicklungNew 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.

Statusmechanismus-workflowsState machine workflows

Zustandsautomatworkflows wurden als Teil von .NET Framework 4, Version 4.0.1, im eingeführt, die die Microsoft .NET Framework 4 Plattformupdate 1.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 der Getting Started Tutorial Schritt Vorgehensweise: Erstellen ein Zustandsautomatenworkflows.The following screenshot shows the completed state machine workflow from the Getting Started Tutorial step How to: Create a State Machine Workflow.

Abbildung der abgeschlossenen Zustandsautomatworkflow.

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

Vertrag zuerst-WorkflowentwicklungContract-first workflow development

Das Tool zur Webentwicklung Vertrag zuerst-Workflowentwicklung ermöglicht den Entwickler, die zuerst Entwerfen eines Vertrags in Code generieren Sie dann, mit ein paar Mausklicks in Visual Studio automatisch eine Aktivitätsvorlage in der Toolbox, die jeden Vorgang 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 zum Entwickeln von Vertrag zuerst-Workflowdiensten, finden Sie unter Vorgehensweise: Erstellen eines Workflowdiensts, das Verarbeiten eines vorhandenen Dienstvertrags.For more information on contract-first workflow service development, see How to: Create a workflow service that consumes an existing service contract.