Windows Workflow Foundation

Wielkość: px
Rozpocząć pokaz od strony:

Download "Windows Workflow Foundation"

Transkrypt

1 Windows Workflow Foundation

2 Podstawowe pojęcia Proces biznesowy jest kolekcją wzajemnie powiązanych zadań, inicjowaną w odpowiedzi na konkretne zdarzenie, prowadzącą do powstania określonego produktu/usługi dla klienta procesu. Definicja procesu obejmuje całościowe i wyczerpujące opisanie przebiegu procesu w postaci powiązanego zbioru czynności, relacji między tymi czynnościami, warunku rozpoczęcia i zakończenia procesu, szczegółowego opisu czynności składowych, uczestników procesu, wymienianych bądź modyfikowanych danych za pomocą wybranego języka i/lub przyjętej konwencji reprezentacji graficznej Workflow - automatyzacja procesu biznesowego w całości lub w części podczas której dokumenty, informacje lub zadania są przesyłane od jednego uczestnika do następnego celem ich realizacji zgodnie z określonymi zasadami postępowania

3 Standard WfMC 1 5 Usługa powołująca instancje procesów, wykonująca je i zarządzająca nimi 4 2i3 Workflow Management Coalition to organizacja zrzeszająca producentów oprogramowania wspomagającego zarządzanie procesów pracy, użytkowników, analityków i uniwersyteckie grupy badawcze

4 Workflow (def. /instancja) Workflow - grupa czynności WorkflowChanges -Twórca workflow może określić czy i w jakim zakresie może on zostać zmodyfikowany w takcie jego wykonywania (np. dodanie, usunięcie kroku) Niektóre procesy mogą być długotrwałe, więc musi być możliwość zapisania stanów instancji workflow i wznowienia go do działania

5 Activity (definicja / instancja) Czynność prosta Czynność złożona System.Workflow.Activities.dll

6 Typy workflow sekwencyjny wykonuje czynności zgodnie ze zdefiniowaną kolejnością (może zawierać rozwidlenia, pętle itp.); maszyna stanów o wykonaniu czynności w określonym czasie decyduje bieżąca kombinacja stanów i odebrane zdarzenie;

7 Konfiguracja środowiska Windows.NET Framework 3.0 i Visual Studio 2005 Extensions for Windows Workflow Foundation lub Visual studio 2008

8 Komponenty WF Workflow runtime Wymaga aplikacji hosta Jest uzależniony od dodatkowych usług

9 Komponenty WF... WorkflowRuntime runtime = new WorkflowRuntime(); runtime.addservice(...) WorkflowInstance instance = runtime.createworkflow(...); instance.start(); Guid id = instance.instanceid;...

10 Workflow Designer aa aspx

11 Markup Only Markup + Code Code only XAML XAML C#/VB C#/VB Workflow Compiler Markup Only XAML C#/VB Compiler NET Assembly Workflow Instance Workflow Runtime Workflow Designers (À la ASP.NET Designer) tworzy nowe workflow y Activity Designer (À la UserControl Designer) tworzy nowe czynności

12 Workflow w XAML (*.xoml) <SequentialWorkflowActivity x:class="doorsworkflow.workflow1" x:name="workflow1" xmlns:x=" xmlns=" <IfElseActivity x:name="ifelseactivity1"> <IfElseBranchActivity x:name="ifelsebranchactivity1"> <IfElseBranchActivity.Condition> <CodeCondition Condition="Test" /> </IfElseBranchActivity.Condition> <CodeActivity x:name="codeactivity1" ExecuteCode="DoSomething" /> </IfElseBranchActivity> <IfElseBranchActivity x:name="ifelsebranchactivity2"> <CodeActivity x:name="codeactivity2" ExecuteCode="DoSomethingElse" /> </IfElseBranchActivity> </IfElseActivity> </SequentialWorkflowActivity>

13 Przykład Witaj Projekt typu Sequential Workflow Console Application Dla CodeActivity właściwość obowiązkowa to ExecuteProperty private void codeactivity1_executecode(object sender, EventArgs e) { Console.WriteLine("Hello World"); Console.ReadKey(); }

14 Biblioteka podstawowych czynności IfElse: wykonanie czynności zawarte w 2 lub więcej ścieżkach zależnie od spełnienia warunku; While: wykonanie w pętli 1 lub więcej czynności dopóki warunek=true; Sequence: wykonuje grupę czynności jeden raz według zdefiniowanej kolejności; Parallel: wykonanie 2 lub więcej grup czynności równolegle;

15 Podstawowe czynności (2) Code: wykonuje zdefiniowany kawałek kodu; ExecuteCode dowiązać metodę do wykonania; Listen: oczekiwanie na określone zdarzenie, wiele gałęzi, wykonanie 1 lub wielu czynności gdy zdarzenie zaistniało (implementujących IEventActivity np.. DelayActivity, HandleExternalEventActivity, WebServiceInputActivity); InvokeWebService: wywołanie usługi sieciowej z wykorzystaniem ASP.NET Web Services.

16 Podstawowe czynności (3) State: reprezentuje stan w workflow owej maszynie stanów; EventDriven: definiuje przejście zawierające 1 lub więcej czynności które powinny być wykonane gdy określone zdarzenie zaistnieje podczas trwania w określonym stanie; Policy: pozwala na wykonanie reguł biznesowych utrzymywanych w silniku reguł Wykorzystywanie tych czynności jest opcjonalne, każdy może zbudować sobie zestaw własnych

17 Model wykonywania czynności kolejne stany public class CreateTask : Activity { public string Assignee {... } public DateTime DueDate {... } } protected override ActivityExecutionStatus Execute( ActivityExecutionContext context) { ActivityExecutionStatus używane // tu wywołuje metodę _ExecuteCode return ActivityExecutionStatus.Closed; przez runtime do określenia np. } kiedy czynność się zakończyła pomyślnie, ciągle trwa,.

18 Czynności - cechy opcjonalne Companion Classes Designer [Designer(typeof(MyDesigner))] Validator [Validator(typeof(MyValidator))] Serializer [Serializer(typeof(MySerializer))] [CodeGenerator(typeof(MyCodeGen))] [ToolboxItem(typeof(MyToolboxItem))] Code Generator ToolboxItem Behaviors [SupportsTransaction] [SupportsExceptionHandlers] public class MyActivity: Activity {... } Transactions

19 Custom Activities (composite) DaysOfWeekActivity SequenceActivty: Monday, Tuesday, Wednesday, Thursday, Friday <other activites as appropriate> SequenceActivity: Saturday, Sunday <other activites as appropriate> [Flags] [Editor(typeof(FlagsEnumEditor), typeof(uitypeeditor))] public enum WeekdayEnum : byte { None = 0x00, Sunday = 0x01, Monday = 0x02, Tuesday = 0x04, Wednesday = 0x08, Thursday = 0x10, Friday = 0x20, Saturday = 0x40 }

20 Custom Activities def.(2) public class DaysOfWeekActivity : CompositeActivity { /// <summary> /// Get/Set the day of week property /// </summary> [Browsable(true)] [Category("Behavior")] [Description("Bind to a DateTime property, set a specific date time, or leave blank for DateTime.Now")] [DefaultValue(typeof(DateTime),"")] public DateTime Date { get { return (DateTime)base.GetValue(DaysOfWeekActivity.DateProperty); } set { base.setvalue(daysofweekactivity.dateproperty, value); } } /// <summary> /// Register the DayOfWeek property /// </summary> public static DependencyProperty DateProperty = DependencyProperty.Register("Date", typeof(datetime), typeof(daysofweekactivity)); }

21 Custom Activities Designer (3) public class DaysOfWeekDesigner : ParallelActivityDesigner { public override bool CanInsertActivities (HitTestInfo insertlocation, ReadOnlyCollection<Activity> activities) { foreach (Activity act in activities) { if (!(act is SequenceActivity)) return false; } return base.caninsertactivities(insertlocation, activitiestoinsert); } protected override CompositeActivity OnCreateNewBranch() { return new SequenceActivity(); } } [Designer(typeof(DaysOfWeekDesigner))] public class DaysOfWeekActivity : CompositeActivity {... }

22 Custom Activities- Toolbox(4) [Serializable] public class DaysOfWeekToolboxItem : ActivityToolboxItem { public DaysOfWeekToolboxItem(Type t) : base(t) { this.displayname = "DaysOfWeek"; } private DaysOfWeekToolboxItem(SerializationInfo info, StreamingContext context) { this.deserialize(info, context); } protected override IComponent[] CreateComponentsCore(IDesignerHost host) { CompositeActivity parent = new DaysOfWeekActivity(); parent.activities.add(new SequenceActivity()); parent.activities.add(new SequenceActivity()); return new IComponent[] { parent }; } } [Designer(typeof(DaysOfWeekDesigner))] [ToolboxItem(typeof(DaysOfWeekToolboxItem))] public class DaysOfWeekActivity : CompositeActivity { }

23 Attached Properties (5) To właściwość zdefiniowana w jednej klasie a wyświetlana / ustawiana w innej Definicja w klasie DaysofWeekActivity: public static DependencyProperty WeekdayProperty = DependencyProperty.RegisterAttached("Weekday", typeof(weekdayenum), typeof(daysofweekactivity), new PropertyMetadata(DependencyPropertyOptions.Metadata)); Wyświetlana i ustawiana w podgałęzi SequenceActivity: Jeżeli w designerze ustawimy Weekday na Saturday, Sunday to odpowiada to kodowi: this.sequenceactivity1.setvalue (DaysOfWeekActivity.WeekdayProperty, ((WeekdayEnum)((WeekdayEnum.Sunday WeekdayEnum.Saturday))));

24 Attached Properties set/get(6) public static void SetWeekday(Activity activity, object value) { if (null == activity) throw new ArgumentNullException("activity"); if (null == value) throw new ArgumentNullException("value"); activity.setvalue(daysofweekactivity.weekdayproperty, value); } public static object GetWeekday(Activity activity) { if (null == activity) throw new ArgumentNullException("activity"); return activity.getvalue(daysofweekactivity.weekdayproperty); }

25 Attached Properties (7) udostępnienie w projektancie public class DaysOfWeekDesigner : ParallelActivityDesigner {... protected override void Initialize(Activity activity) { base.initialize(activity); IExtenderListService iels = base.getservice(typeof(iextenderlistservice)) as IExtenderListService; if (null!= iels) { bool extenderexists = false; foreach (IExtenderProvider provider in iels.getextenderproviders()) { if (provider.gettype() == typeof(weekdayextenderprovider)) { extenderexists = true; break; } // jest ExtenderProvider naszego typu } if (!extenderexists) { IExtenderProviderService ieps = base.getservice(typeof(iextenderproviderservice)) as IExtenderProviderService; //utwórz usługę IExtenderProvider a if (null!= ieps) ieps.addextenderprovider(new WeekdayExtenderProvider()); } //dodaj do niego exteder naszego typu } }... }

26 Kod naszego Extender Provider a (8) [ProviderProperty("Weekday", typeof(sequenceactivity))] public class WeekdayExtenderProvider : IExtenderProvider { bool IExtenderProvider.CanExtend(object extendee) { bool canextend = false; if ((this!= extendee) && (extendee is SequenceActivity)) { Activity parent = ((Activity)extendee).Parent; if (null!= parent) canextend = parent is DaysOfWeekActivity; } return canextend; } public WeekdayEnum GetWeekday(Activity activity) { WeekdayEnum weekday = WeekdayEnum.None; Activity parent = activity.parent; if ((null!= parent) && (parent is DaysOfWeekActivity)) weekday = (WeekdayEnum)DaysOfWeekActivity.GetWeekday(activity); return weekday; } public void SetWeekday(Activity activity, WeekdayEnum weekday) { Activity parent = activity.parent; if ((null!= parent) && (parent is DaysOfWeekActivity)) DaysOfWeekActivity.SetWeekday(activity, weekday); } }

27 Przekazywanie parametrów do instancji workflow public class OrderProcessingWorkflow: SequentialWorkflowActivity { public int OrderID { get { return _orderid; } set { _orderid = value; } } private int _orderid; } WorkflowRuntime runtime = new WorkflowRuntime (); Dictionary<string,object> parms = new Dictionary<string,object>(); parms.add("orderid", 12345) ; WorkflowInstance instance = runtime.createworkflow (typeof(orderprocessingworkflow), parms); instance.start(); Na bazie par klucz wyszukiwane są właściwości publiczne jeżeli przypasowanie odnaleziono wołany jest set przypisujący wartość jeżeli nie to przy próbie utworzenia instancji generowany wyjątek

28 Pobieranie wyników z instancji using(workflowruntime workflowruntime = new WorkflowRuntime()) { AutoResetEvent waithandle = new AutoResetEvent(false); workflowruntime.workflowcompleted += delegate(object sender, WorkflowCompletedEventArgs e) { waithandle.set(); foreach (KeyValuePair<string, object> parm in e.outputparameters) {Console.WriteLine("{0} = {1}", parm.key, parm.value); } }; WorkflowInstance instance =workflowruntime.createworkflow (typeof(workflow1)); instance.start(); waithandle.waitone(); //oczekiwanie na zakończenie wykonywania instancji }

29 Wiązanie parametrów public TimeSpan oczekiwanie { get { return ocz_value; } set { ocz_value = value; } } private TimeSpan ocz_value; public TimeSpan TimeoutDuration { get { return (TimeSpan)base.GetValue(DelayActivity.TimeoutDurationProperty); } set { base.setvalue(delayactivity.timeoutdurationproperty, value); } }

30 Hosting Windows Workflow Foundation Środowisko uruchomieniowe - WorkflowRuntime instancje tworzy się raz w aplikacji, CreateWorkflow() - tworzy instancję workflow GetLoadedWorkflows() daje kolekcję załadowanych instancji workflow dostarcza usługi potrzebne do wykonywania instancji AddService() dodanie usługi do runtime GetAllServices(Type servicetype) zwraca kolekcje usług o określonym typie) zbiór zdefiniowanych zdarzeń występujących w trakcie wykonywania instancji workflow

31 Workflow-enabled services Usługa jest klasą potrzebną przy wykonywaniu instancji workflow (poszczególnych czynności) protected override ActivityExecutionStatus Execute (ActivityExecutionContext executioncontext) { ICustomService myservice = executioncontext.getservice<icustomservice>();... Do something with the service }

32 Standardowe usługi związane (2) using(workflowruntime workflowruntime = new WorkflowRuntime()) { workflowruntime.startruntime(); bool s = workflowruntime.isstarted; ReadOnlyCollection<Object> x = workflowruntime.getallservices(typeof(object)); foreach (Object a in x) { Console.WriteLine( a.tostring()); } }

33 Workflow Execution (3) bezczynny! Workflow Runtime Workflow Instance Runtime Services Loader XAML Persistence Host Application Po ponownym uruchomieniu Workflow Runtime mogą zostać przywrócone instancje workflow (z bazy persistance), które wykonywały się przy ostatnim jego działaniu ale nie zostały zakończone; Workflow Instance

34 Dodawanie usług do runtime (4) Jeszcze przed wystartowaniem runtime w przeciwnym wypadku wyjątek using(workflowruntime workflowruntime = new WorkflowRuntime()) { workflowruntime.addservice( new SqlWorkflowPersistenceService(conn, true, new TimeSpan(1,0,0), new TimeSpan(0,10,0))); workflowruntime.addservice(new SqlTrackingService(conn));... workflowruntime.startruntime(); }

35 Dodawanie usług do runtime(5) <?xml version="1.0" encoding="utf-8"?> <configuration> <configsections> <section name="wf" type="system.workflow.runtime.configuration.workflowruntimesection, System.Workflow.Runtime, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </configsections> using(workflowruntime workflowruntime = new <WF Name="Hosting"> WorkflowRuntime("WF")) {... } <CommonParameters/> <Services> <add type="system.workflow.runtime.hosting.sqlworkflowpersistenceservice, System.Workflow.Runtime, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionstring="initial Catalog=WF;Data Source=.; Integrated Security=SSPI;" UnloadOnIdle="true" LoadIntervalSeconds="2"/> <add type="system.workflow.runtime.tracking.sqltrackingservice, System.Workflow.Runtime, Version= , Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionstring="initial Catalog=WF;Data Source=.; Integrated Security=SSPI;" UseDefaultProfile="true"/> </Services> </WF> </configuration>

36 Runtime Services- persistence (6) dziedziczy z WorkflowPersistenceService przechwytuje instancje workflow, serializuje, zrzuca i zachowuje jej stan do bazy SQL Servera lub do pliku na dysku SqlWorkflowPersistenceService() z System.Workflow.Runtime.Hosting; using(workflowruntime workflowruntime = new WorkflowRuntime()) { workflowruntime.addservice( new SqlWorkflowPersistenceService(conn, true, new TimeSpan(1,0,0), new TimeSpan(0,10,0))); // Execute a workflow here... } Wymaga uruchomienia skryptów do: utworzenia schematu bazy utworzenia procedur składowanych (C:\Windows\Microsoft.NET\Framework\v3.0\Windows Workflow Foundation\SQL\EN ) Może być wykorzystywany przez wiele środowisk wykonawczych równocześnie dany workflow dostępny jedynie przez jeden WRuntime

37 Tracking Services (7) Może rejestrować, które czynności się już wykonały, które gałęzie zostały wybrane, maksimum danych z wykonania konkretnej instancji Dane te służą do późniejszej weryfikacji Ułatwiają wyszukanie błędów Ich analiza może przyczynić się do podjęcia decyzji o przebudowie szablonu workflow w celu zwiększenia wydajności przy wykonywaniu instancji Implementowany jako klasa abstrakcyjna TrackingService dostępna implementacja SqlTrackingService() TrackingProfile definiuje co śledzić (zdarzenia na workflow, wykonywanie poszczególnych czynności,..)

38 Tracking Services (8) Odczytanie danych z bazy bezpośrednie pytania przez SqlTrackingQuery Przykład jakie instancje był śledzone w zadanym okresie czasu: public IList<SqlTrackingWorkflowInstance> GetWorkflows (DateTime startdate, DateTime enddate, string connectionstring) { SqlTrackingQuery query = new SqlTrackingQuery (connectionstring); SqlTrackingQueryOptions queryoptions = new SqlTrackingQueryOptions(); queryoptions.statusmindatetime = startdate; queryoptions.statusmaxdatetime = enddate; return (query.getworkflows (queryoptions)); }

39 Własne usługi (9) Def.interfejsu: [ExternalDataExchange] public interface IDoorService { void LockDoor(); void UnlockDoor(); event EventHandler<ExternalDataEventArgs> RequestEntry; event EventHandler<ExternalDataEventArgs> OpenDoor; event EventHandler<ExternalDataEventArgs> CloseDoor; event EventHandler<ExternalDataEventArgs> FireAlarm; void OnRequestEntry(Guid id); void OnOpenDoor(Guid id); void OnCloseDoor(Guid id); void OnFireAlarm(); }

40 Własne usługi (10) ExternalDataExchangeService - proxy dla zdarzeń od usługi do workflow, przywraca jak trzeba instancję z bazy persistence WorkflowRuntime runtime = new WorkflowRuntime(); ExternalDataExchangeService edes = new ExternalDataExchangeService(); runtime.addservice(edes); DoorService service = new DoorService(); edes.addservice(service); runtime.startruntime(); Zadrzenia wykorzystują klasę ExternalDataEventsArgs do przekazania parametrów zwrotnych do workflow (standardowo jest tam id_instancji, inne powinny być dodane do niej jako właściwości)

41 Zmiana definicji workflow w trakcie działania Utwórz obiekt WorkflowChanges zawierający wszystkie nowe czynności dodane do workflow (z System.Workflow.ComponentModel) WorkflowChanges a = new WorkflowChanges(rootActivity); Wywołaj metodę ApplyWorkflowChanges() na konkretnej instancji instance.applyworkflowchanges(a);

42 Windows WF a WCF Z jednej strony Workflow wywołuje usługi jako czynności z drugiej Usługę można zaimplementować jako workflow W.NET Framework 3.0 nie można było mieszać technologii WF i WCF W.NET Framework 3.5 można obie mieszać dzięki nowym czynnościom: Send wysłanie żądania za pomocą WCF i oczekiwanie na odpowiedź. (developer określa operacje jaka ma być wywołana i punkt z którego jest ona dostępna) Receive otrzymanie prośby nadchodzącej od WCF i wysłanie odpowiedzi (developer określa nazwę operacji odpowiadającej żądaniu)

43 BPEL for Windows Workflow Foundation March CTP Microsoft provides BPEL 2.0 in WF - BPEL for Windows Workflow Foundation March CTP ft.com/downloads/ details.aspx? FamilyID=6d0daf0 0-f689-4e61-88e6cbe6f668e6a3&dis

44 WS-BPEL 2.0 a WF WS-BPEL is very much a subset of what can be represented using WF. Think of WF as a "graph of activities" that can be transformed to virtually any workflow standard.

45 Literatura Professional C# 2005 with.net 3.0 Christian Nagel, Bill Evjen, Jay Glynn, Morgan SkinnerandKarli Watson Wrox Press 2007 (1798 pages) ISBN: Providing you with the ultimate guide to the C# language, this authoritative book will help you quickly write your own programs while also getting you up to speed on how the.net architecture works.

46 WF- sekwencyjny / WF* - maszyna stanów

47

48

49 Summary Windows WF What is Workflow? Workflow is the software implementation of business process or business logic What s the value of Workflow? Transparency Flexibility Extensibility Releasing in November 2006 as a part of Microsoft Windows Vista Visual Studio Designer A Workflow Activity Activity Library Workflow Runtime Engine Runtime Services Host Process

Lab Windows Workflow Foundation (VS2008)

Lab Windows Workflow Foundation (VS2008) Lab Windows Workflow Foundation (VS2008) Zadanie 1- utworzenie prostej własnej czynności (custom activity). Otworzyć nowy projekt typu Workflow -> Workflow Activity Library W Properties ach zmień w polu

Bardziej szczegółowo

Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow):

Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow): Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow): 1. Utworzenie projektu - Sequential Workflow. File - New Project - Visual C# -Workflow- Sequential Workflow Console Application

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {

namespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server { Pobranie i instalacja: - http://www.nservicebus.com/ - download v3.0 now - rozpakować - MSMQ powinno być zainstalowane (Panel Sterowania -> Dodaj/Usuń programy -> Składniki systemu Windows -> Kolejkowanie

Bardziej szczegółowo

Programowanie Komputerów

Programowanie Komputerów Programowanie Komputerów Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Wykład 30 godzin, Laboratoria 30 godzin 2012/ Strona 1 z 28 1. Tablice w C# Indeksowane od zera

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Robert Szmurło. Projektowanie Graficznych Interfejsów Użytkownika

Robert Szmurło. Projektowanie Graficznych Interfejsów Użytkownika Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło 1 Nota autorska. Znaczna część ilustracji w tej prezentacji została zaczerpnięta z wielu źródeł ogólnie dostępnych w internecie. Oto główne

Bardziej szczegółowo

1. CZYM JEST SERIALIZACJA

1. CZYM JEST SERIALIZACJA SERIALIZACJA O CZYM POWIEMY? 1. Czym jest serializacja? 2. Jak przeprowadzić proces serializacji? 3. Jak przeprowadzić proces deserializacji? 4. Serializacja własnych klas. 5. Dobre praktyki. 6. SoapFormatter.

Bardziej szczegółowo

Metody dostępu do danych

Metody dostępu do danych Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia

Bardziej szczegółowo

Klasy cd. Struktury Interfejsy Wyjątki

Klasy cd. Struktury Interfejsy Wyjątki Klasy cd. Struktury Interfejsy Wyjątki Struktury Struktura pozwala na zdefiniowanie typu danych, który nie charakteryzuje się zbyt złożoną funkcjonalnością (np. punkt, kolor, etc). Do definiowania struktury

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Instrukcja laboratoryjna cz.3

Instrukcja laboratoryjna cz.3 Języki programowania na platformie.net cz.2 2015/16 Instrukcja laboratoryjna cz.3 Język C++/CLI Prowadzący: Tomasz Goluch Wersja: 2.0 I. Utworzenie projektu C++/CLI z interfejsem graficznym WPF 1 Cel:

Bardziej szczegółowo

akademia androida Service, BroadcastReceiver, ContentProvider część IV

akademia androida Service, BroadcastReceiver, ContentProvider część IV akademia androida Service, BroadcastReceiver, ContentProvider część IV agenda 1. BroadcastReceiver 2. Service 3. ContentProvider 4. Zadanie 1. 5. Zadanie 2 (domowe). 1. BroadcastReceiver BroadcastReceiver

Bardziej szczegółowo

Walidacja danych w ASP.NET MVC

Walidacja danych w ASP.NET MVC Walidacja danych w ASP.NET MVC 1. Prosta walidacja 2. Walidacja z Data Annotation public ActionResult Edit(Person person) bool blad = false; if(person.name.trim().length == 0) ViewData["Blad1"] = "Nazwisko

Bardziej szczegółowo

Programowanie w środowiskach graficznych. Wykład 3 Język C#

Programowanie w środowiskach graficznych. Wykład 3 Język C# Programowanie w środowiskach graficznych Wykład 3 Język C# 1 Zagadnienia 1. Wprowadzenie 2. Przestrzenie nazw 3. Typy, parametry, konwersje 4. Klasy 5. Instrukcje sterujące 6. Właściwości 7. Interfejsy,

Bardziej szczegółowo

Microsoft Visual C++.NET Edycja polska: Wydawnictwo RM

Microsoft Visual C++.NET Edycja polska: Wydawnictwo RM Tomasz Zieliński t.zielinski@aster.pl 8 grudnia 2004 wersja 1.0 Microsoft Visual C++.NET Edycja polska: Wydawnictwo RM Str. 7...lub biblioteka Microsoft Foundation Class (MFC)....lub biblioteka Microsoft

Bardziej szczegółowo

PHP 5 język obiektowy

PHP 5 język obiektowy PHP 5 język obiektowy Wprowadzenie Klasa w PHP jest traktowana jak zbiór, rodzaj różnych typów danych. Stanowi przepis jak stworzyć konkretne obiekty (instancje klasy), jest definicją obiektów. Klasa reprezentuje

Bardziej szczegółowo

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz Aplikacja internetowa zbudowana w oparciu o środowisko Visual Web Java Server Faces. Zarządzanie obiektami typu SesionBeans, RequestBeen i ApplicationBeans, Laboratorium 1 Wzorce oprogramowania lab1, Okres

Bardziej szczegółowo

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzia Windows Form Windows Form jest narzędziem do tworzenia aplikacji dla

Bardziej szczegółowo

Comarch e-sklep Sync. wersja

Comarch e-sklep Sync. wersja Sync wersja Data produkcji wersji: 15 października 2018 Spis treści Sync wstęp... 3 1 Wymagania instalacji... 3 2 Proces instalacji krok po kroku... 3 3 Dostęp anonimowy... 6 4 Podstawowy przykład użycia...

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4

Oprogramowanie i wykorzystanie stacji roboczych. Wykład 4 Wykład 4 p. 1/1 Oprogramowanie i wykorzystanie stacji roboczych Wykład 4 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Obsługa sieci Wykład

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Instrukcja laboratoryjna cz.2

Instrukcja laboratoryjna cz.2 Synteza aplikacji biznesowych 2013/2014 Instrukcja laboratoryjna cz.2 Administracja serwisów Microsoft SharePoint Prowadzący: Tomasz Goluch Wersja: 4.1 I. Diagnostyka przy użyciu mechanizmu Developer Dashboard.

Bardziej szczegółowo

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi. Ekspert radzi mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8 Spis treści 1. Zarys rozwiązania...3 1.2 Case study...3 1.3 Wymagania...3 2. Projekt...3

Bardziej szczegółowo

Laboratorium 10 - Web Services

Laboratorium 10 - Web Services Laboratorium 10 - Web Services W ramach laboratorium zapoznamy się z koncepcją Web Service ów (odmiana point-to-point Web Service). W kolejnych krokach utworzony zostanie projekt, w którym wykorzystana

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

W powyższym kodzie utworzono wyliczenie dni tygodnia.

W powyższym kodzie utworzono wyliczenie dni tygodnia. Typ wyliczeniowy (zwane również enumeration lub enum) jest to typ danych składający się z zestawu nazwanych wartości. Do zmiennej, która została zadeklarowana jako typ wyliczeniowy może być przypisane

Bardziej szczegółowo

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop. 2016 Spis treści Spis rysunków 11 Spis tabel 13 Przedmowa 15 Wprowadzenie 17 Podziękowania 27 O autorach 29 1 Wprowadzenie

Bardziej szczegółowo

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 4 Marcin Młotkowski 15 marca 2018 Plan wykładu 1 2 3 Klasa podstawowa Własne kolekcje Obiekty i wartości Marcin Młotkowski Programowanie obiektowe 141 / 224 Z czego składa

Bardziej szczegółowo

RECREATION ZONE Fall-Winter

RECREATION ZONE Fall-Winter www.centremeredith.ca RECREATION ZONE Fall-Winter 2017-2018 Program Sports program Cultural program Day camp $10 /person 6 New! Semi Private Learn to Skate Lessons: Adults Interested in learning how

Bardziej szczegółowo

Specyfikacja API Runtime BAS 3.0

Specyfikacja API Runtime BAS 3.0 Specyfikacja API Runtime BAS 3.0 Spis treści Wstęp... 4 Informacja o dokumencie... 4 Opis usługi... 4 Typowy sposób wywołania usługi... 5 Udostępniane funkcje... 6 Funkcje liczące... 6 Execute... 6 SafeExecute...

Bardziej szczegółowo

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone Plan wykładu CORBA Wprowadzenie Architektura CORBA IDL język definicji interfejsów ORB Object Request Broker Usługi i POA Aplikacje CORBA tworzenie serwera tworzenie klienta Aplikacje rozproszone Cechy

Bardziej szczegółowo

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:

Bardziej szczegółowo

Przewodnik krok po kroku:

Przewodnik krok po kroku: Przewodnik krok po kroku: Aplikacja jest rozbudowywana. Jej podstawą jest: https://msdn.microsoft.com/enus/library/ff921174(v=pandp.40).aspx Do aplikacji dodajemy nowy moduł, który posłuży nam do dodawania

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Metodyka programowania. Podstawy C#

Metodyka programowania. Podstawy C# Metodyka programowania Podstawy C# Platforma.NET Platforma.NET (.NET Framework) Platforma programistyczna Microsoft, Obejmuje - środowisko uruchomieniowe CLR (Common Language Runtime) - biblioteki klas

Bardziej szczegółowo

Metody Metody, parametry, zwracanie wartości

Metody Metody, parametry, zwracanie wartości Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca

Bardziej szczegółowo

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017 Wykład 13 14 czerwiec 2017 Java vs cpp - podobieństwa Podobny sposób definiowania klas. Występowanie typów podstawowych: boolean, char, byte, short, int, long, float, double. Podobna zasada definiowania

Bardziej szczegółowo

NHibernate. Narzędzie mapowania obiektowo - relacyjnego

NHibernate. Narzędzie mapowania obiektowo - relacyjnego NHibernate Narzędzie mapowania obiektowo - relacyjnego Autor : Maciej Białorucki Mapowanie obiektowo-relacyjne Mapowanie obiektowo - relacyjne Object Relation Mapping Dwa światy Dlaczego nie stosować baz

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG Java JMX Monitorowanie i zarządzanie usługami sieciowymi w Javie Marcin Werla mwerla@man.poznan.pl PCSS/Poznań JUG Plan prezentacji Wprowadzenie Specyfikacja Dodatkowe narzędzia i biblioteki Studium przypadku

Bardziej szczegółowo

Fragmenty są wspierane od Androida 1.6

Fragmenty są wspierane od Androida 1.6 W androidzie można tworzyć dynamiczne interfejsy poprzez łączenie w moduły komponentów UI z aktywnościami. Moduły takie tworzy się za pomocą klasy Fragment, która zachowuje się jak zagnieżdżone aktywności

Bardziej szczegółowo

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5

5 AS SP.NET MVC. Walidacja danych. Zaawansowane programowanie internetowe Instrukcja nr 5 5 AS SP.NET MVC Walidacja danych 1 1. Cel zajęć Celem zajęć jest zapoznanie się z metodami walidacji danych wprowadzanych przez użytkownika oraz z tworzeniem własnych walidatorów. 2. Zadanie Proszę przebudować

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska

BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,

Bardziej szczegółowo

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie

Bardziej szczegółowo

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.wroc.pl http://www.tjeleniewski.wstt.edu.pl Treści kształcenia: Paradygmaty

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton

Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu

Bardziej szczegółowo

Instrukcja laboratoryjna cz.6

Instrukcja laboratoryjna cz.6 Programowanie aplikacji internetowych 2013/2014 Instrukcja laboratoryjna cz.6 Technologia Silverlight cz.2 Prowadzący: Tomasz Goluch Wersja: 3.0 I. Model danych (tworzenie bazy na podstawie modelu). Cel:

Bardziej szczegółowo

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g Opis szkolenia: Termin SOA, czyli Service Oriented Architecture, oznacza architekturę systemów informatycznych opartą o usługi. Za

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Budowa aplikacji wielowarstwowych zastosowanie szablonów Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz Przykład 1 Zastosowanie szablonów Tworzenie kopii projektu typu Web Application o nazwie

Bardziej szczegółowo

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch

Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch INFORMATOR TECHNICZNY WONDERWARE Informator Techniczny nr 60 04-12-2002 Podstawy wykorzystania bibliotek DLL w skryptach oprogramowania InTouch Wstęp PoniŜsza dokumentacja oparta na przykładach stworzonych

Bardziej szczegółowo

Laboratorium 8 Diagramy aktywności

Laboratorium 8 Diagramy aktywności Laboratorium 8 Diagramy aktywności Zofia Kruczkiewicz Zofia Kruczkiewicz Lab_INP002017_8 1 Modelowanie zachowania obiektów za pomocą diagramów aktywności. Modelowanie zachowania obiektów za pomocą diagramów

Bardziej szczegółowo

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

Bardziej szczegółowo

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Budowa aplikacji sieciowych. Usługi WWW dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Usługi WWW W3C Working Group, Web Services Architecture,

Bardziej szczegółowo

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do

Bardziej szczegółowo

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6 Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji

Bardziej szczegółowo

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Szkoła Techniczno Ekonomiczna w Świdnicy. Języki i paradygmaty programowania - 8

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Szkoła Techniczno Ekonomiczna w Świdnicy. Języki i paradygmaty programowania - 8 Wyższa Szkoła Techniczno Ekonomiczna w Świdnicy Języki i paradygmaty programowania - 8 - Narzędzie Windows Forms - Przykładowe aplikacje 1 Narzędzie Windows Forms Windows Form jest narzędziem do tworzenia

Bardziej szczegółowo

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net

Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net Aby móc uzyskaćdostęp do bazy danych z zewnętrznych aplikacji, w tym wypadku aplikacji.net, niezbędne jest wykonanie

Bardziej szczegółowo

Współbieżność w środowisku Java

Współbieżność w środowisku Java Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych

Bardziej szczegółowo

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku Prosta książka telefoniczna z wykorzystaniem zapisu do pliku Celem zajęć będzie napisanie prostego programu okienkowego, którego zadaniem będzie zapisywanie imienia, nazwiska, adresu-email oraz numeru

Bardziej szczegółowo

Język C++ wykład VIII

Język C++ wykład VIII Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

Tworzenie i wykorzystanie usług sieciowych

Tworzenie i wykorzystanie usług sieciowych Ćwiczenie 14 Temat: Tworzenie i wykorzystanie usług sieciowych Cel ćwiczenia: W trakcie ćwiczenia student zapozna się z procedurą tworzenia usługi sieciowej w technologii ASP.NET oraz nauczy się tworzyć

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER

SPECYFIKACJA FUNKCJONALNA OPROGRAMOWANIA 11 marca 2014 XLZEBRAPRINTER XLZEBRAPRINTER Oprogramowanie XLZebraPrinter służy do wykonywania dowolnych wydruków etykiet (łącznie z możliwością wydruku kodów kreskowych 1D oraz 2D) na podstawie danych pochodzących bezpośrednio z

Bardziej szczegółowo

Michał Jankowski. Remoting w.net 2.0

Michał Jankowski. Remoting w.net 2.0 Michał Jankowski Remoting w.net 2.0 Co to jest? Remoting jest zbiorem funkcji pozwalającym na komunikacje miedzy aplikacjami zarówno w obrębie jednego komputera jak i poprzez sieć Pozwala na komunikację

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1 P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw

Bardziej szczegółowo

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Algorytmy i Struktury Danych. Anna Paszyńska

Algorytmy i Struktury Danych. Anna Paszyńska Algorytmy i Struktury Danych Anna Paszyńska Tablica dynamiczna szablon Array Zbiory Zbiory template class Container {public: virtual ~Container() { }; virtual int Count() const = 0;

Bardziej szczegółowo

Klasy i obiekty cz II

Klasy i obiekty cz II Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Klasy i obiekty cz II Hermetyzacja, mutatory, akcesory, ArrayList Rozwijamy aplikację Chcemy, aby obiekty klasy

Bardziej szczegółowo

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI Instrukcja użytkownika Narzędzie do modelowania procesów BPEL Warszawa, lipiec 2009 r. UNIA EUROPEJSKA EUROPEJSKI FUNDUSZ

Bardziej szczegółowo