Windows Workflow Foundation. WF został wydany wraz z NET Framework 3.0 w 2006 r., a następnie zaktualizowany w NET Framework 3.5. Te dwie pierwsze wersje.

Slides:



Advertisements
Podobne prezentacje
Funkcje w PHP ABK.
Advertisements

C++ wykład 2 ( ) Klasy i obiekty.
C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Programowanie obiektowe
Programowanie obiektowe
Wzorce.
Prowadzący: mgr inż. Elżbieta Majka
PROGRAMOWANIE STRUKTURALNE
formatowanie kodu źródłowego
Język SQL ma ciekawe możliwości tworzenia zapytań
SIECI KOMPUTEROWE (SieKom) PIOTR MAJCHER WYŻSZA SZKOŁA ZARZĄDZANIA I MARKETINGU W SOCHACZEWIE Zarządzanie.
20/09/ Języki programowania 1 Piotr Górczyński Kreator form.
Serwery Aplikacji ASP .NET Web Objects Arkadiusz Popa.
.NET - możliwości Jarosław Balcer & Jan Góralski.
Platforma .Net i Vs.Net.
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Projektowanie - wprowadzenie
Podstawy C# Grupa .NET PO.
Podstawy programowania
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania
Instrukcja USOSweb Wersja: Opracował: Sebastian Sieńko Moduł sprawdzianów.
ANNA BANIEWSKA SYLWIA FILUŚ
Lokalizacja i Globalizacja na witrynie w Visual Web Developer 2008 (ASP.Net) Daniel Literski.
Programowanie strukturalne i obiektowe
Programowanie obiektowe – zastosowanie języka Java SE
JAVA c.d.. Instrukcji wyboru SWITCH używamy, jeśli chcemy w zależności od wartości pewnego wyrażenia wykonać jeden z kilku fragmentów kodu. Jest to w.
Andrzej Repak Nr albumu
Java – coś na temat Klas Piotr Rosik
Dziedziczenie Maciek Mięczakowski
Inicjalizacja i sprzątanie
Wykonał: Michał Nikołajuk
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Farseer Physics Engine. Farseer Physics Engine jest silnikiem fizycznym napisanym dla platformy.NET. Został on zainspirowany przez silnik Box2D znany.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Aplikacje internetowe
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
Znaki specjalne Co i jak + brak przykładów.  Aby wstawić symbol lub znak specjalny należy na karcie Wstawianie w grupie Symbole kliknąć na przycisk Symbol.
PULPIT WINDOWS.
PHP Formularze Damian Urbańczyk. Do czego służą? Formularze to bardzo ważne elementy stron internetowych, dzięki nim dochodzi do wymiany danych pomiędzy.
Paweł Starzyk Obiektowe metody projektowania systemów
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Programowanie Zaawansowane
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Usługa e-Załączniki Automatyzacja usługi - nowy kanał komunikacyjny Izba Celna w Białej Podlaskiej Prezentuje Leszek Krasa Biała Podlaska, dn r.
Microsoft® Office Word
T ESTY JEDNOSTKOWE W C# Alicja Majka, A GENDA Wprowadzenie do środowiska Czym są testy jednostkowe i po co je stosować? XUnit, NUnit Pokrycie.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
 Podstawowy składnik.NET Framework  Technologia tworzenia w pełni dynamicznych stron internetowych działających po stronie serwera  Zorientowanie na.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Testy jednostkowe. „Test jednostkowy (unit test) to fragment kodu, który sprawdza inny fragment kodu”
Inżynieria oprogramowania Wzorce konstrukcyjne WWW: Jacek Matulewski Instytut Fizyki, UMK.
Programowanie Obiektowe – Wykład 6
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
Typy wyliczeniowe, kolekcje
Klasy, pola, obiekty, metody. Modyfikatory dostępu, hermetyzacja
Delegaty Delegat to obiekt „wiedzący”, jak wywołać metodę.
Programowanie Obiektowe – Wykład 2
Wskaźniki Elżbieta Labocha.
Programowanie obiektowe – zastosowanie języka Java SE
Windows Workflow Foundation
Aplikacje i usługi internetowe
Haskell Składnia funkcji.
PGO Przeciążanie metod i konstruktorów
Zapis prezentacji:

Windows Workflow Foundation

WF został wydany wraz z NET Framework 3.0 w 2006 r., a następnie zaktualizowany w NET Framework 3.5. Te dwie pierwsze wersje były przydatne, zwłaszcza dla niezależnych dostawców oprogramowania (ISV), ale nie stały się głównym nurtem technologii dla programistów korporacyjnych. Według twórców WF, wraz z wyjściem.NET 4.0 ma się to zmienić. Głównym celem tej najnowszej wersji jest to, aby WF stało się standardowym elementem zestawu narzędzi programowania dla wszystkich użytkowników.NET. (informacje przetłumaczone ze strony MS).NET 2.0.NET 3.0.NET 3.5.NET 4.0 VS 2005 VS 2008 VS 2010 WF 3.0 WF 3.5 WF 4.0

Czym jest WF? Aplikacje stworzone przy pomocy WF robią zazwyczaj to samo, co zwykłe aplikacje. Wszystko jednak robi się tu przy użyciu aktywności. Poniższy obrazek przedstawia kod programu oraz to samo wykonane za pomocą WF.

Ponieważ w WF wszystko jest aktywnością, widoczna poniżej aktywność Sequence zawiera cały nasz program, i jak zwykły program, może mieć zmienne i ma jakiś stan.

WF jest aktywnością  może być napisany w postaci kodu lub zdefiniowany w XAML – lub dowolnym innym formacie (np w jęz. dynamicznym)  Aktywność może zawierać inne aktywności  Aktywność może mieć argumenty we i wy (jak również zmienne)  Aktywności zwracajace warość mają oddzielne klasy bazowe n.p. CodeActivity, NativeActivity WF jest definicją, wg której można utworzyć wiele instancji  Każda instancja ma indywidualne środowisko (zmienne, argumenty) InArgument

Rodzaje aktywności Calculate Pi InArgument DecimalPlaces OutArgument PiAsString Execute Completed Atomic execution Najprostszy przykład – wywołujemy aktywność, która robi to co ma do zrobienia i zwraca jakiś rezultat.

Rodzaje aktywności Prompt InArgument Question OutArgument Response Execute Completed Bookmark Resume Continuation, Long Running, or Reactive Execution yield Drugi rodzaj – modeluje długoterminowe procesy (np. biznesowe)

Rodzaje aktywności Continuation, Long Running, or Reactive Execution Zakładka: -Punkt wznowienia w WF -Wznowienie wskazuje metodę zwrotną aktywności -WF runtime zarządza wznowieniem – instancja nie musi być w pamięci W przypadku, gdy aktywność oczekuje na informacje z zewnątrz, mamy do czynienia z persystencją. Persystencja pozwala wstrzymywać instancję WF, zapisać ją „gdzieś” i wznowić później.

Rodzaje aktywności Trzeci rodzaj – jest to aktywność mająca w sobie inne aktywności, zajmująca się ich wykonaniem, przykładem jest sekwencja bądź parallel.

WF Runtime WF runtime „widzi” aktywności, aktywności, aktywności (nie Sequence, Parallel, Recurrence). WF runtime jest „sędzią” pilnuje reguł. Podczas wykonywania wielu procesów persystuje te, które się nudzą. Tracking – Runtime podczas wykonywania aplikacji „loguje” pewne informacje, przez co wiemy, w którym miejscu jest nasz proces. WF Runtime Extensions Persistence Tracking PersistenceProvider TrackingParticipant

Jak to wygląda w praktyce?

Tutaj tworzymy przepływ pracy przeciągając aktywności z Toolboxa

W tym momencie mamy do wyboru dwa rodzaje przepływu pracy: Za pomocą flowchart możemy tworzyć aplikacje budując schemat blokowy, w którym możemy nie tylko wykonywać aktywności jedna po drugiej, ale też wracać do poprzednich. W Sequence aktywności wykonują się jedna po drugiej od góry do dołu. Przepływy pracy można dowolnie w sobie zagnieżdżać, kopiując np. Sequence z jednego przepływu do flowchart z innego.

Zmienne i argumenty: Niektórym aktywnościom można zmieniać nazwy. Umożliwia to łatwiejszą identyfikacje. Do WF można dodawać zmienne i argumenty. Zmienne (Variables) należy przypisać do aktywności złożonej (sequence). Podczas tworzenia zmiennej wybiera się aktywność, do której ma być przypisana. Dzięki temu zmienna jest widoczna w aktywnościach podrzędnych. W przeciwieństwie do zmiennych, argumenty (Arguments) są widoczne w całym przepływie. Przy tworzeniu wybiera się ich „kierunek” (direction: In, Out, Property). Dzięki temu można przypisać im wartość z zewnątrz przy wywoływaniu WF, bądź też zwrócić je na zewnątrz wraz z końcem pracy WF. Oczywiście zarówno argumentom jak i zmiennym należy przy tworzeniu wybrać odpowiedni typ.

W folderze Sequence i Flowchart załączona jest aplikacja wykorzystująca WF do liczenia wyniku wyrażenia 5! W pliku Program.cs mamy następujący kod: namespace WorkflowConsoleApplication1 { class Program { static void Main(string[] args) { WorkflowInvoker.Invoke(new Activity1()); } WorkflowInvoker.Invoke(new NazwaPrzeplywu()); - najprostrzy sposób uruchomienia WF Przykładowe aplikacje WorkflowInvoker.Invoke Method

W folderze WindowsFormApplication z WF załączona jest aplikacja, w której pokazanych jest kilka sposobów odpalenia WF w Windows Form Application, jak również jak odebrać output i sprawdzić stan WF. WF można wywołać w aplikacji na kilka sposobów

Własne aktywności można tworzyć na dwa sposoby. Pierwszy z nich to dodanie do projektu nowej aktywności i zbudowanie jej za pomocą innych. Drugi sposób to napisanie własnej aktywności (Code Activity) za pomocą języka obsługiwanego przez WF (np. C#, VB). Tworzenie własnych aktywności

… namespace ActivityLibrary1 { public sealed class CodeActivity1 : CodeActivity { // Define an activity input argument of type string public InArgument Text { get; set; } // If your activity returns a value, derive from CodeActivity // and return the value from the Execute method. protected override void Execute(CodeActivityContext context) { // Obtain the runtime value of the Text input argument string text = context.GetValue(this.Text); } Tworzenie własnych aktywności Tak wygląda „świerza” Code Activity. InArgument to argument wejściowy, domyślnie jest definiowany jeden o nazwie Text. Wartość Text można zmieniać po dodaniu naszej aktywności do przepływu (flowchart lub sequence), kliknięciu na nią i wpisaniu tego, co chcemy w odpowiednie pole w zakładce Properities.

Tworzenie własnych aktywności W folderze Własne Aktywności dołączona jest aplikacja konsolowa, w której utworzone są aktywności – jedna za pomocą Sequence, druga to Code Activity, trzecia podobna do Code Activity to NativeActivity – umożliwia zagnieżdżanie w sobie aktywności w kodzie.

Kolejny typ aplikacji, którą można utworzyć to WCF Workflow Service Applicaton Domyślnie usługa ta ma za zadanie przyjmować żądania i wysyłać odpowiedzi, dlatego też po utworzeniu projektu widzimy taki oto przepływ pracy.

WCF Workflow Service Applicaton W folderze WCF Workflow Service Applicaton znajduje się prosta aplikacja uruchamiająca usługę przyjmującą dwie liczby i zwracającą ich sumę oraz klienta umożliwiającego korzystanie z usługi.