Lab Windows Workflow Foundation (VS2008)

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

Download "Lab Windows Workflow Foundation (VS2008)"

Transkrypt

1 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 Name nazwę Activity1 na np. WritelineActivity Wybrać z menu kontekstowego View Code Utworzymy nową własną czynność WritelineActivity wypisującą na konsolę treść przekazaną do niej w polu właściwości komunikat. Należy więc nadpisać metodę Execute: ///<summary> /// wykonuje aktywnosc - wyswietla komunikat na ekranie ///</summary> ///<param name="executioncontext"></param> ///<returns></returns> protected override ActivityExecutionStatus Execute(ActivityExecutionContext executioncontext) Console.WriteLine(komunikat); Console.WriteLine("wciśnij klawisz aby kontynuować wykonanie workflow..."); Console.ReadLine(); return ActivityExecutionStatus.Closed; /// <summary> /// get/set tresc komunikatu do wyswietlenia /// </summary> [Description("komunikat do wyswietlenia")] [Category("Parameters")] public string komunikat get return _mes; set _mes = value; private string _mes; Teraz dodamy w tym samym namespace nową klasę WritelineValidator sprawdzającą czy pole komunikat naszej czynności jest wypełnione jeżeli nie to ma się na ikonce naszej czynności zapalić czerwony wykrzyknik i pojawić błąd przy kompilacji. public class WritelineValidator : ActivityValidator public override ValidationErrorCollection Validate(ValidationManager manager, object obj) if (null == manager) throw new ArgumentNullException("manager"); if (null == obj) throw new ArgumentNullException("obj"); ValidationErrorCollection errors = base.validate(manager, obj); WritelineActivity act = obj as WritelineActivity; if (null!= act) if (null!= act.parent) if (string.isnullorempty(act.komunikat)) errors.add(validationerror.getnotsetvalidationerror("komunikat")); return errors;

2 Tak zdefiniowany validator należy załączyć do naszej klasy czynności: [ActivityValidator(typeof(WritelineValidator))] public partial class WritelineActivity : SequenceActivity public WritelineActivity() InitializeComponent();... Skompilować i usunąć ewentualne błędy. Aby sprawdzić jak wygląda i działa nasza czynność utworzymy w istniejącym solution nowy projekt typu Workflow->Sequential Workflow Console Application (jest to projekt z założoną aplikacją konsolowa hosta i pustym szablonem workflow). Na Toolbox ie prawym przyciskiem myszy aktywujemy menu kontekstowe i wybieramy AddTab tworząc nowa zakładkę kontrolek o nazwie np. moje kontrolki. Następnie w ramach tej zakładki podobnie wybieramy Choose Items - > zakładka Activities. Za pomocą Browse wskazujemy położenie pliku dll zawierającego naszą czynność ->OK. Nacza kontrolka czynności została dodana do listy kontrolek w toolbox ie pod nazwą WritelineActivity. Po przeciągnięciu jej do pustego workflow otrzymujemy postać: Teraz zajmiemy się sposobem w jaki nasza czynność ma być prezentowana graficznie wracamy do projektu kontrolki WritelineActivity: Ponieważ korzystamy z gradientu liniowego należy dodać w jej kodzie namespace System.Drawing.Drawing2D; oraz klasę definiującą jej postać graficzną w oknie szablonu workflow. public class WritelineTheme : ActivityDesignerTheme ///<summary> /// tworzy temat i ustawia mu pewne wartości ///</summery> ///<param name="theme"></param> public WritelineTheme(WorkflowTheme theme) : base(theme) this.bordercolor = Color.Green; this.backcolorstart = Color.Yellow; this.backcolorend = Color.Orange; this.backgroundstyle = LinearGradientMode.ForwardDiagonal;

3 [ActivityDesignerTheme(typeof(WritelineTheme))] public class WritelineDesigner : ActivityDesigner Należy jeszcze związać klasę WritelineDesigner z nasza klasą czynności : [ActivityValidator(typeof(WritelineValidator))] [Designer(typeof(WritelineDesigner))] public partial class WritelineActivity: SequenceActivity Skompilować dll kę, przejść do projektu workflow konsole application i zobaczyć jak teraz prezentuje się nasza kontrolka w oknie projektanta workflow. Powinna wyglądać tak: Zadanie 2 utworzenie workflow akceptacji kredytów Opis procesu biznesowego akceptacji kredytów: Klient podaje następujące dane: kwote kredytu (w PLN) jaką chciałby otrzymać swój wiek symbol waluty w jakiej ma być udzielony kredyt (np. USD, EUR, PLN) na ile lat chciałby wziąść kredyt Kredytodawca ma przykładowo 2 minuty aby rozpatrzyć wniosek albo zdąży go rozpatrzyć albo informuje kredytobiorcę, że czas założony na rozpatrzenie wniosku minął.rozpatrzenie wniosku polega na analizie danych wejściowych i ocenie stopnia ryzyka związanego z udzieleniem kredytu w następujący sposób. Osoby ponizej (<=) 20 roku życia mogą uzyskać kredyt wyskości max PLN. Następuje sprawdzenie jakiej kwoty żąda kredytobiorca. Jeżeli kwota żądana > PLN to ustawiany jest komunikat o odrzucieniu kredytu nie spełnienie wymogów kredytowania i wypisywana jest na konsolę informacja Jestś za młody na tak dużą kwotę. Jeżeli kwota żądana <= PLN to sprawdzamy czy przypadkiem kilient nie chce aby kredyt został udzielony w obcej walucie. Jeżeli w obcej walucie to należy uzyskać wartość przelicznika dla danej waluty (z WebService) i wyliczyć kwotę żądanego kredytu w danej walucie. Na bazie kwoty żadanego kredytu (odpowiednio w PLN lub obcej walucie) i zakładanego okresu spłaty (w latach) wyliczana jest rata miesięczna do spłacania. Generowany jest komunikat do kredytobiorcy o pomyślnym rozpatrzeniu wniosku kredytowego. Osoby starsze (wiek>20 lat) otrzymują komunikat o odrzucieniu kredytu nie spełnienie wymogów kredytowania i wypisywana jest na konsolę informacja jesteś powyżel limitu wiekowego Klient otrzymuje następujące informacje zwrotne: Komentarz czy przydzielono czy nie kredyt; Kwota_kredytu_w_walucie Symbol waluty Żadana_kwota kredytu w PLN wiek Okeres_na ile lat wziął kredyt

4 Wysokość wyliczonej raty kredytu (w pln lub w zadanej walucie na wejściu) Status przydzielenia kredytu Kroki do wykonania: W projekcie typu Workflow->Sequential Workflow Console Application usuwamy naszą testowo wstawioną kontrolkę WritelineActivity i modyfikujmy program hosta (plik program.cs) o: wczytanie od kredytobiorcy wartości wejściowych przekazanie ich jako kolekcje parametrów do instancji workflow zwrócenie i wypisanie na konsole parametrów wyjściowych instancji workflow Powinien przyjąć postać: static void Main(string[] args) try //zdefiniowanie i wczytanie wartości startowych dla instancji workflow double kwota_kr = 0; int wiek = 0; int okres = 0; Console.WriteLine("podaj parametry dla wykonania workflow przydziału kredytu "); Console.Write("kwota kredytu w PLN:"); double.tryparse(console.readline(), out kwota_kr); Console.Write("wiek:"); int.tryparse(console.readline(), out wiek); Console.Write("symbol waluty w jakiej ma być udzielony kredyt:"); string waluta = Console.ReadLine(); Console.Write("na ile lat brany kredyt: "); int.tryparse(console.readline(), out okres); //utoworzenie kolekcji parametrów Dictionary<string, object> parametry = new Dictionary<string, object>(); parametry.add("kwota_kredytu", kwota_kr); parametry.add("wiek", wiek); parametry.add("okres", okres); parametry.add("symbol_waluty", waluta); //powołanie do życia runtime u i podpięcie funkcji obsługi zdarzeń utworzono, zakończono pomyślnie i zakończono z błędem wykonanie workflow using (WorkflowRuntime workflowruntime = new WorkflowRuntime()) Console.WriteLine("Runtime Started."); AutoResetEvent waithandle = new AutoResetEvent(false); workflowruntime.workflowcompleted += delegate(object sender, WorkflowCompletedEventArgs e) waithandle.set(); Console.WriteLine("parametry wyjściowe z workflow daj kredyt"); //kolekcja ta zawiera wszystkie publiczne właściwości zdefiniowane w workflow foreach (KeyValuePair<string, object> par in e.outputparameters) Console.WriteLine("0 =1", par.key, par.value); Console.ReadLine(); ; workflowruntime.workflowterminated += delegate(object sender, WorkflowTerminatedEventArgs e) Console.WriteLine(e.Exception.Message); Console.ReadLine(); waithandle.set(); ; //powołanie do życia instancji workflow i przekazanie kolekcji parametrów

5 //typeof(namespace.nazwa_klasy z pliku workflow1.cs definiującego szablon naszego workflow) WorkflowInstance instance = workflowruntime.createworkflow(typeof(workflowconsoleapplication1.workflow1), parametry); //uruchomienie wykonywania instancji instance.start(); // Wait for the event to be signaled waithandle.waitone(); workflowruntime.stopruntime(); Console.WriteLine("Program Complete."); Console.ReadLine(); catch (Exception exception) Console.WriteLine("Exception occured: " + exception.message); Console.ReadLine(); Teraz kolej na zdefiniowanie naszego workflow przez kolejne umieszczanie elementów z toolboxa i definiowanie ich właściwości: 1. Ponieważ nasz workflow ma się zakończyć gdy minie określony czas lub też dokonamy rozpatrzenia wniosku w czasie krótszym więc dodajemy czynność ListenActivity (każda z gałęzi musi zawierać czynność sterowaną zdarzeniem). W lewej gałęzi zdefiniujemy: oczekiwanie na upłynięcie czasu maksymalnego (2 minuty) delayactivity TimeoutDuration = 00:02:00, w którym to powinien być rozpatrzony wniosek czynność Code, dla której ustawimy pole name = powiadomienie, ExecuteCode= minal_czas (jest to przypisanie funkcji jaka ma się wykonać na wołanie metody ExecuteCode dla tej czynności)- zostanie utworzony w kodzie szablon tej metody tworzymy zawartość metody minal_czas ustawiającej zawartość informacji w polu komunikat private void minal_czas(object sender, EventArgs e) komentarz = "Minął czas przewidziany na udzielenie odpowiedzi - przepraszamy - zapraszamy ponownie "+ Status.ToString(); Ustawmy w kodzie naszego szablonu workflow (plik Workflow1.cs) wszystkie pola publiczne potrzebne do przechowywania przekazywanych parametrów wejściowych i umieszczenia parametrów wyjściowych public sealed partial class Workflow1: SequentialWorkflowActivity private int _wiek; private double _kwota_kredytu; private int _okres; private double _rata; private string _symbol_waluty; private string _komentarz; private double _kwota_kredytu_wal; [CategoryAttribute("Parameters")] public double kwota_kredytu_wal get return this._kwota_kredytu_wal; set this._kwota_kredytu_wal = value;

6 public string komentarz get return this._komentarz; set this._komentarz = value; public string symbol_waluty get return this._symbol_waluty; set this._symbol_waluty = value; public double kwota_kredytu get return this._kwota_kredytu; set this._kwota_kredytu = value; public int wiek get return this._wiek; set this._wiek = value; public int okres get return this._okres; set this._okres = value; public double rata get return this._rata; set this._rata = value; private StatusType statusvalue; public enum StatusType None, Approved, Rejected public StatusType Status get return this.statusvalue; set this.statusvalue = value; public double przelicznik_waluty; public Workflow1() InitializeComponent(); Status = StatusType.None; 2. W prawej gałęzi umieścimy również czynność delay z minimalnym czasem opoźnienienia = 1 sek oraz naszą własną kontrolkę WritelineActivity z komunikatem tu będzie akceptacja kredytu Powinniśmy otrzymać postać :

7 sprawdźmy jej wykonanie: 3. Teraz zajmiemy się analizą danych wejściowych podanych przez kredytobiorcę. Na początek w czynności IfElse sprawdzimy wiek kredytobiorcy. Umieszczamy czynność IfElse zamiennie za naszą WritelineActivity1. Zmieniamy jej nazwę w polu Name na wiek1. Dla ifelsebranchactivity1 modyfikujemy nazwe na mniej_niż20 pole Condition na CodeCondition i po rozwinięciu +Condition ustawiamy w polu Condition nazwę metody na sprawdz_wiek, która będzie definiować i sprawdzać warunek wejścia do lewej gałęzi. Szablon metody zostanie wygenerowany uzupełniamy go do postaci: private void sprawdz_wiek(object sender, ConditionalEventArgs e) e.result = (wiek <= 20); Warunku dla drugiej gałęzi IfElse nie ustawiamy działa domyślnie jak ELSE 4. W gałęzi ELSE czyli warunek wiek>20 umieścimy dwie czynności: Code nazwę zmieniamy na odmowa2 a pole ExecuteCode= odrzuc_kredyt

8 private void odrzuc_kredyt(object sender, EventArgs e) Status = StatusType.Rejected; komentarz = "Bardzo nam przykro ale nie spełnia Pan/Pani warunków kredytowania \n" + Status.ToString(); WritelineActivity z komunikatem jesteś powyżej limitu wiekowego Bieżąca postać workflow akceptacji wniosku kredytowego: 5. Uzupełnimy teraz lewą gałąź IfElse dla warunku wiek<=20. Należy umieścić kolejną czynność IfElse dla sprawdzenia czy zadana kwota kredytu <= Ustawiamy dla niej Name = kwota_kred, i w lewej gałęzi dla ifelsebranchactivity1 name = mniej10tys oraz Condition=Code Condition, +Condition= spr_zadana_kwote private void spr_zadana_kwote(object sender, ConditionalEventArgs e) e.result = (kwota_kredytu <= 10000); W prawej gałęzi czynności (tj. kwota kredytu >10000) umieszczamy czynność code odmowa1 (wykonuje metodę odrzuc_kredyt) i WritelineActivity2 z komunikatem jesteś młody i chcesz zbyt dużą kwotę. Bieżąca postać to:

9 6. Teraz zajmiemy się lewą gałęzią - kwota kredytu <= Z punktu biznesowego nie ma tu przeciwwskazań do udzielenia kredytu mimo, iż wiek jest młody to kwota jest niska i kredytodawca jest w stanie ponieść takie ryzyko. Zanim jednak obliczymy ratę kredytu i przyznamy go należy sprawdzić, czy czasem klient nie chce go uzyskać w walucie obcej a jeżeli tak to należy pozyskać przelicznik tej waluty. Umieszczamy kolejnego IfElse o nazwie w_walucie - z warunkiem spr_walute i nazwą warunku obca: private void spr_walute(object sender, ConditionalEventArgs e) e.result = (symbol_waluty.toupper()!= "PLN"); 7. Jeżeli mamy do czynienia z walutą obcą to wykorzystamy usługę sieciową do pozyskania przelicznika. Usługa dostępna pod adresem: Umieścimy w tym celu czynność InvokeWebService, wskazać powyższy adres w polu URL, kliknąć GO, dodać referencje webową o proponowanej nazwie. We właściwościach ustawić MethodName= ConversionRate. Dla pola FromCurrency double-click na żółtej ikonce właściwości wiązanej ->zakładka Bind to a new member -> Create Field utworzymy sobie nowe pole związane z tą właściwością o nazwie invokewebserviceactivity1_fromcurrency1 i potem podstawimy do niego odpowiednią wartość. W kodzie zostanie wygenerowany zapis: public WorkflowConsoleApplication3_usun.net.webservicex.www.Currency invokewebserviceactivity1_fromcurrency1 = new WorkflowConsoleApplication3_usun.net.webservicex.www.Currency(); Powtarzamy te czynności również dla pola ToCurrency tworząc pole związane invokewebserviceactivity1_tocurrency1 oraz dla (ReturnValue) wybieramy z okna bind to existing member pole przelicznik_waluty.

10 W kodzie odpowiednio: public WorkflowConsoleApplication3_usun.net.webservicex.www.Currency invokewebserviceactivity1_tocurrency1 = new WorkflowConsoleApplication3_usun.net.webservicex.www.Currency(); Teraz ustawimy dla pola Invoking nazwę metody, która ma być wykonana przed wywołaniem usługi. U nas Invoking = przypisz_wartosci zostanie utworzony szablon dla niej, który uzupełniamy do postaci: private void przypisz_wartosci(object sender, InvokeWebServiceEventArgs e) invokewebserviceactivity1_fromcurrency1 = WorkflowConsoleApplication1.net.webservicex.www.Currency.PLN; switch (symbol_waluty.toupper()) case "USD": invokewebserviceactivity1_tocurrency1 = WorkflowConsoleApplication1.net.webservicex.www.Currency.USD; break; case "EUR": invokewebserviceactivity1_tocurrency1 = WorkflowConsoleApplication1.net.webservicex.www.Currency.EUR; break; default: break; Gdzie WorkflowConsoleApplication1 jest namespacem, w którym jest szablon workflow i referencja (o nazwie net.webservicex.www) do definicji typu wyliczeniowego waluty -Currency 8. Teraz należałoby wyliczyć wartość kredytu w żądanej przez klienta walucie umieszczamy pod wołaniem usługi sieciowej kolejną czynność typu Code o nazwie kredyt_w_walucie2 i przypisujemy jej wykonanie metody kredyt_w_walucie o postaci: private void kredyt_w_walucie(object sender, EventArgs e) this.kwota_kredytu_wal = this._kwota_kredytu * przelicznik_waluty; 9. Na koniec należy wyliczyć ratę kredytu i poinformować o przyznaniu kredytu. jest to kontynuacja lewej gałęzi od czynności warunkowej o nazwie kwota_kredytu2 ale już poza warunkiem sprawdzającym walutę. Dodajemy czynność Code o nazwie wylicz_rate1 i przypisujemy jej wykonanie metody wylicz_rate o postaci: private void wylicz_rate(object sender, EventArgs e) if (symbol_waluty.toupper() == "PLN") rata = kwota_kredytu / (okres * 12); else rata = kwota_kredytu_wal / (okres * 12); Dodajemy czynność Code o nazwie przyznanie i przypisujemy jej wykonanie metody przyznaj_kredyt o postaci: private void przyznaj_kredyt(object sender, EventArgs e) Status = StatusType.Approved; komentarz = "Gratulujemy kredyt został przyznany " + Status.ToString(); 10. Otrzymana postać szablonu workflow dla rozpatrywania kredytu według przyjętego opisu procesu biznesowego ma postać:

11 Przeanalizować działanie spróbować zmodyfikować aplikacje hosta i uruchomić wiele instancji tego workflow. Rozwinięcie procesu biznesowego zadanie indywidualne (Poniższy opis modyfikuje proces w zakresie wiek>20 lat) Osoby powyżej (>) 20 roku życia mające miesięczny zarobek <=3500 PLN mogą uzuskać kredyt w kwocie max PLN, a o zarobku >3500 PLN max PLN. W pozostałych przypadkach wołany jest ekspert indywidualnie oceniającego stopień ryzyka i podejmującego decyzję o przyznaniu lub odrzuceniu kredytu. Ekspert ma max 1 dzień na dokonanie ekspertyzy. Osobom powyżej 80 roku życia kredyt nie przysługuje (otrzymują komunikat o odrzucieniu kredytu nie spełnienie wymogów kredytowania i wypisywana jest na konsolę informacja jesteś powyżel limitu wiekowego )

12 Przykład zaimplementowania experta bankowego jako własnego Runtime Service komunikującego się z daną instancja workflow. Do definicji pól w Workflow1.cs dodać; private double miesieczny_zarobek; public double Miesieczny_zarobek get return miesieczny_zarobek; set miesieczny_zarobek = value; oraz definicję interfejsu experta bankowego (poza klasą Workflow1 ale w tym samym namespace) [ExternalDataExchange] public interface IExpertBankowy void ocenexperciewniosek(double kwota,double mies_zar); event EventHandler<ExternalDataEventArgs> opiniaexperta; Dodaj do projektu nowy plik klasy ExpertBankowy.cs oraz definicje klas przekazywanych argumentów między instancja, a hostem public class ExpertBankowy : IExpertBankowy public event EventHandler<ExternalDataEventArgs> opiniaexperta; public void ocenexperciewniosek(double kwota, double mies_zar) ThreadPool.QueueUserWorkItem(GetResponse, new ocenwniosekeventargs(workflowenvironment.workflowinstanceid, kwota, mies_zar)); private void GetResponse(object o) ocenwniosekeventargs args = o as ocenwniosekeventargs; double podzial = args.kwota/ args.mies_zar; Console.WriteLine("kwota przez zarobek wynosi" + podzial +"czy chcesz zatwierdzić pozyczkę? " ); // read the user's response from the command line char response = Console.ReadKey().KeyChar; Console.WriteLine(); // check the user's response // and raise the appropriate event if (response == 'y') opiniaexperta(null, new opiniaeventargs(args.instanceid,true)); else opiniaexperta(null, new opiniaeventargs(args.instanceid, false)); //def parametrów przekazywanych do metody usługi związanej wołanej z wewnątrz workflow [Serializable] public class ocenwniosekeventargs : ExternalDataEventArgs private double _kwota; public double Kwota

13 get return _kwota; set _kwota = value; private double _mies_zar; public double Mies_zar get return _mies_zar; set _mies_zar = value; public ocenwniosekeventargs(guid instanceid, double _mies_zar, double kwota) :base(instanceid) this._kwota = kwota; this._mies_zar = _mies_zar; //def parametrów przekazywanych z serwisu do wewnątrz workflow za pomocą generowanego zdarzenia (na które nasłuchujemy w workflow) [Serializable] public class opiniaeventargs : ExternalDataEventArgs private bool _przyznano; public bool Przyznano get return this._przyznano; public opiniaeventargs(guid instanceid, bool _przyznano) : base(instanceid) this._przyznano = _przyznano; W pliku program.cs należy dopisać pobranie z klawiatury kwoty miesięcznego zarobku kredytobiorcy: double zarobek = 0; Console.Write("twoj miesieczny zarobek:"); double.tryparse(console.readline(), out zarobek);... parametry.add("miesieczny_zarobek", zarobek); W tym samym pliku zanim powołamy do życia instancję naszego workflow należy dodać do usług naszą usługę experta bankowego ale jako usługę typu ExternalDataExchangeService //dodamy usługę do wymiany komunikacji do/z instancją workflow ExternalDataExchangeService edes = new ExternalDataExchangeService(); workflowruntime.addservice(edes); ExpertBankowy expertb = new ExpertBankowy(); edes.addservice(expertb); Teraz należy zmodyfikować nasz szablon workflow dodając w gałęzi warunku wieku między 20 a 80 CallExternalMethodActivity w celu wywołania metody ocenexperciewniosek z naszego serwisu ExpertBankowy. Należy dla niej wybrać InterfaceType -> IExpertBankowy, methodname= ocenexperciewniosek, oraz związać właściwość mies_zar z polem Miesięczny_zarobek (z naszego Workflw1) i kwota z kwota_kredytu (z naszego Workflow1). (patrz rys. poniżej)

14 Przekazaliśmy wniosek kredytowy do oceny eksperta bankowego teraz należy oczekiwać na jego odpowiedź. Dajemy mu 1 dzień na dokonanie ekspertyzy. Należy więc wstawić jako kolejną czynność nasłuchującą na zaistnienie zdarzenia ListenActivity (wykona się jedynie pierwsze zaistniałe zdarzenie). W jednej gałęzi dajemy DelayActivity z 1 dniem oczekiwania ( TimeoutDuration = 1.00:00:00) i informację o tym, że minął czas dla odpowiedzi eksperta wniosek kredytowy w statusie none. W drugiej gałęzi oczekujemy za pomocą HandleExternalEventActivity na nadejście powiadomienia od experta o dokonanej ekspertyzie z parametrów tego zdarzenia należy odczytać jaka zapadła decyzja (przyznany czy nie). Ustawiamy dla niej nazwę = czekaj_odpexperta, InterfaceType na

15 IExpertBankowy oraz EventName = opiniaexperta. Ustawiamy też nazwę metody jaka ma się wykonać po nadejściu zdarzenia (Invoked = przyszła_odp_exp). W kodzie tej metody sprawdzimy jaka jest nadesłana odpowiedź i ustawimy odpowiednio status dla kredytu. private void przyszła_odp_exp(object sender, ExternalDataEventArgs e) opiniaeventargs a = e as opiniaeventargs; if (a.przyznano) Status = StatusType.Approved; else Status = StatusType.Rejected; Console.WriteLine("Odpowiedź experta o przyznaniu kredytu: " + Status.ToString()); Zdebagować projekt Ogólny widok na układ projektu:

16

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

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

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Platforma.NET. Laboratorium nr 1 Podstawy języka C# Platforma.NET Laboratorium nr 1 Podstawy języka C# Ćwiczenie 1 1. Utwórz nowy projekt a. Z menu File wybierz New/Project b. W oknie dialogowym New Project określ następujące właściwości: typu projektu:

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

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1). Celem ćwiczenia jest przygotowanie prostej aplikacji internetowej wykorzystującej technologię usług sieciowych (ang. Web Services).

Bardziej szczegółowo

Windows Workflow Foundation

Windows Workflow Foundation Windows Workflow Foundation 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

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

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

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

Projektowanie aplikacji internetowych laboratorium

Projektowanie aplikacji internetowych laboratorium Projektowanie aplikacji internetowych laboratorium Programowanie w języku Java Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne NetBeans 7 (zrzuty ekranów pochodzą z wersji

Bardziej szczegółowo

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper

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

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Ustawienie zmiennych środowiskowych Przed rozpoczęciem pracy z pakietem AXIS należy ustalić

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

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

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c.

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

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

Platformy Programowania

Platformy Programowania Platformy Programowania Ćwiczenie 1 4 x Hello World! Środowisko programistyczne, w którym będziemy pracować do wakacji: Microsoft Visual Studio 2010 Profesional 1. Utwórz aplikację konsolową. Po uruchomieniu

Bardziej szczegółowo

Programowanie telefonów z Windows Phone 7, cz. 4

Programowanie telefonów z Windows Phone 7, cz. 4 Programowanie telefonów z Windows Phone 7, cz. 4 Piotr M. Szczypiński Instytut Elektroniki Politechniki Łódzkiej http://www.eletel.p.lodz.pl/pms/ piotr.szczypinski@p.lodz.pl Budynek B9, II piętro, pokój

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

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

Programowanie telefonów z Windows Phone 7, cz. 2

Programowanie telefonów z Windows Phone 7, cz. 2 Programowanie telefonów z Windows Phone 7, cz. 2 Piotr M. Szczypiński Instytut Elektroniki Politechniki Łódzkiej http://www.eletel.p.lodz.pl/pms/ piotr.szczypinski@p.lodz.pl Budynek B9, II piętro, pokój

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

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

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

Instrukcja obsługi certyfikatu kwalifikowanego w programie Płatnik.

Instrukcja obsługi certyfikatu kwalifikowanego w programie Płatnik. Instrukcja obsługi certyfikatu kwalifikowanego w programie Płatnik. Rejestracja certyfikatu w Płatniku Aby zarejestrować certyfikat w Płatniku proszę postępować zgodnie z instrukcją poniżej. Proszę uruchomić

Bardziej szczegółowo

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA Laboratorium nr 8 PODSTAWY OBSŁUGI PROGRAMU WONDERWARE INTOUCH 10.1 Opracował: mgr inż. Marcel Luzar Cel: Konfiguracja

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

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

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/05_03/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 Ręczne zakładanie kont użytkowników (D1) Jak ręcznie założyć konto w systemie

Bardziej szczegółowo

Kurs walut. Specyfikacja projektu. Marek Zając 2013-12-16

Kurs walut. Specyfikacja projektu. Marek Zając 2013-12-16 Kurs walut Specyfikacja projektu Marek Zając 2013-12-16 Spis treści 1. Podsumowanie... 2 1.1 Wstęp... 2 1.2 Projekt interfejsu... 2 1.2.1 Rozmiar głównego okna... 2 2. Słownik pojęć... 2 2.1 Definicja

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium

Zaawansowane aplikacje internetowe - laboratorium Zaawansowane aplikacje internetowe - laboratorium Web Services (część 3). Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2005. Ponadto wymagany jest

Bardziej szczegółowo

Programowanie wielowarstwowe i komponentowe

Programowanie wielowarstwowe i komponentowe Programowanie wielowarstwowe i komponentowe JSF 2 wprowadzenie Konfiguracja Eclipse - dodanie szablonu XHTML dla potrzeb JSF 1. Otwórz menu Window/Preferences. Następnie z drzewka wybierz Web/HTML Files/Editor/Templates.

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Programowanie w Javie

Programowanie w Javie Programowanie w Javie Andrzej Czajkowski Lista nr 0 Debugger w Javie Celem ćwiczenia jest poznanie podstawowych funkcji narzędzia debugera (odpluskwiacz) w środowisku Eclipse. Po ukończeniu ćwiczenia student

Bardziej szczegółowo

Instalacja systemu zarządzania treścią (CMS): Joomla

Instalacja systemu zarządzania treścią (CMS): Joomla Instalacja systemu zarządzania treścią (CMS): Joomla Na stronie http://www.cba.pl/ zarejestruj nowe konto klikając na przycisk:, następnie wybierz nazwę domeny (Rys. 1a) oraz wypełnij obowiązkowe pola

Bardziej szczegółowo

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Podstawy programowania Ćwiczenie Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio Tematy ćwiczenia algorytm, opis języka programowania praca ze środowiskiem, formularz, obiekty

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

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Laboratorium OiOSE. Programowanie w środowisku MS Visual C++ 1 Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych Organizacja i Oprogramowanie Systemów Elektronicznych Michał Kowalewski

Bardziej szczegółowo

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Microsoft.NET: LINQ to SQL, ASP.NET AJAX Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java

Aplikacje Internetowe. Najprostsza aplikacja. Komponenty Javy. Podstawy języka Java Aplikacje Internetowe Podstawy języka Java Najprostsza aplikacja class Hello { public static void main(string[] args) { System.out.println("Hello World!"); Komponenty Javy JRE Java Runtime Environment

Bardziej szczegółowo

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki LINQ TO XML Celem ćwiczenia jest zapoznanie się z możliwościami przetwarzania dokumentów XML na platformie.net. W toku zadania zostaną przedstawione dwie technologie: LINQ TO XML i XPath. Autor ćwiczenia:

Bardziej szczegółowo

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Karty pracy W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne. Ustawienia Pierwszym krokiem w rozpoczęciu pracy z modułem Karty Pracy jest definicja

Bardziej szczegółowo

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1 Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1 Przykład 1- Wykonanie prostej aplikacji internetowej w technologii JavaEE w środowisku Netbeans 5.5 z wykorzystaniem

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA. Celem ćwiczenia jest przygotowanie prostej aplikacji wykorzystującej architekturę CORBA. Aplikacja składa się z usługodawcy (serwera)

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Dodanie nowej formy do projektu polega na:

Dodanie nowej formy do projektu polega na: 7 Tworzenie formy Forma jest podstawowym elementem dla tworzenia interfejsu użytkownika aplikacji systemu Windows. Umożliwia uruchomienie aplikacji, oraz komunikację z użytkownikiem aplikacji. W trakcie

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

Laboratorium 7 Blog: dodawanie i edycja wpisów

Laboratorium 7 Blog: dodawanie i edycja wpisów Laboratorium 7 Blog: dodawanie i edycja wpisów Dodawanie nowych wpisów Tworzenie formularza Za obsługę formularzy odpowiada klasa Zend_Form. Dla każdego formularza w projekcie tworzymy klasę dziedziczącą

Bardziej szczegółowo

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wyjątki Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut. Wydaje się, że żaden użytkownik oprogramowania nie lubi, kiedy stosowany program nagle zawiesza się,

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

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka

Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka Makra Access 2003 wg WSiP Wyszukiwanie, selekcjonowanie i gromadzenie informacji Ewa Mirecka Makra pozwalają na zautomatyzowanie często powtarzających się czynności. Opierają się na akcjach np.: otwarcie

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

Aplikacje WWW - laboratorium

Aplikacje WWW - laboratorium Aplikacje WWW - laboratorium Serwlety Celem ćwiczenia jest przygotowanie kilku prostych serwletów ilustrujących możliwości tej technologii. Poszczególne ćwiczenia prezentują sposób przygotowania środowiska,

Bardziej szczegółowo

Instrukcja pomocnicza do przygotowania sprawozdania Zgłoszenie zaangażowania

Instrukcja pomocnicza do przygotowania sprawozdania Zgłoszenie zaangażowania Instrukcja pomocnicza do przygotowania sprawozdania wersja 5.15.2.4 Autorzy: Jadwiga Kordek Wrocław 11.2015 Wszelkie prawa zastrzeżone. Dokument może być reprodukowany przechowywany bez ograniczeń tylko

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

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

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

Zaawansowane aplikacje internetowe laboratorium

Zaawansowane aplikacje internetowe laboratorium Zaawansowane aplikacje internetowe laboratorium Web Services (część 2). Celem ćwiczenia jest przygotowanie prostej aplikacji prezentującej technologię usług sieciowych (ang. Web Services). Przygotowana

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

Ćwiczenie 1. Modelowanie prostego procesu

Ćwiczenie 1. Modelowanie prostego procesu Ćwiczenie 1. Modelowanie prostego procesu Część 1. Definiowanie nowego projektu 1. Uruchom narzędzie TIBCO Business Studio. 2. Z menu wybierz File -> New -> Project... 3. W oknie dialogowym New Project

Bardziej szczegółowo

16) Wprowadzenie do raportowania Rave

16) Wprowadzenie do raportowania Rave 16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual

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

Nowy szablon stron pracowników ZUT

Nowy szablon stron pracowników ZUT Nowy szablon stron pracowników ZUT Uczelniane Centrum Informatyki ZUT przygotowało nowy szablon stron pracowników, zunifikowany z obecnymi stronami ZUT. Serdecznie zachęcamy Państwa do migracji na nowy

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

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Kadry Optivum, Płace Optivum

Kadry Optivum, Płace Optivum Kadry Optivum, Płace Optivum Jak seryjnie przygotować wykazy absencji pracowników? W celu przygotowania pism zawierających wykazy nieobecności pracowników skorzystamy z mechanizmu Nowe wydruki seryjne.

Bardziej szczegółowo

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania:

Bardziej szczegółowo

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5

Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5 Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

INSTALACJA DOSTĘPU DO INTERNETU

INSTALACJA DOSTĘPU DO INTERNETU INSTALACJA DOSTĘPU DO INTERNETU Za pomocą protokołu PPPoE UWAGA: Niniejsza instrukcja dotyczy tylko przypadków połączeń kablowych oraz radiowych BEZ użycia routera domowego. W przypadku posiadania routera

Bardziej szczegółowo

Nowe funkcjonalności wersji 3.12.0

Nowe funkcjonalności wersji 3.12.0 1. Folder poczekalnia Nowe funkcjonalności wersji 3.12.0 Dostępny jest z poziomu strony głównej w zakładce Foldery 2. Wkładka adresowa Zdefiniowane wkładu 3. Lokalizacja składów chronologicznych Możliwość

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

Instrukcja użytkownika esowk Realizacja wniosku kredytowego przez POS Kredyt gotówkowy

Instrukcja użytkownika esowk Realizacja wniosku kredytowego przez POS Kredyt gotówkowy Instrukcja użytkownika esowk Realizacja wniosku kredytowego przez POS Kredyt gotówkowy data: 2014-01-16 Spis treści 1. Kalkulator kredytowy... 4 2. Podstawowe dane o kliencie... 7 3. Dodatkowe dane dotyczące

Bardziej szczegółowo

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16

Podstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16 M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16

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

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz

Wykłady 1, 2. Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz Wykłady 1, 2 Wstęp do programowania w środowisku Visual C++ Autor: Zofia Kruczkiewicz 1 Zagadnienia 1. Podstawowe pojęcia 2. Tworzenie aplikacji w Windows Forms 3. Zawartość projektu 4. Podstawowe cechy

Bardziej szczegółowo

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP W tym opracowaniu opisano, jak korzystać z edytora zasad grupy do zmiany ustawień zasad lokalnych dla

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Bezpieczne uruchamianie apletów wg

Bezpieczne uruchamianie apletów wg Bezpieczne uruchamianie apletów wg http://java.sun.com/docs/books/tutorial/security1.2/ Zabezpieczenia przed uruchamianiem apletów na pisanych przez nieznanych autorów 1) ograniczenie możliwości odczytywania,

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

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

Instrukcja instalacji wtyczki Przelewy24

Instrukcja instalacji wtyczki Przelewy24 Instrukcja instalacji wtyczki Przelewy24 Wersja 3.2.9. Data: 2015-06-05 Wersja: 3.2.9 Instrukcja instalacji wtyczki Przelewy24 dla Prestashop Moduł przeznaczony jest dla Prestashop w wersji minimum 1.5.

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

msgbox("akcja: Początek, argument: " + argument.tostring()); Thread.Sleep(1000); //opóźnienie msgbox("akcja: Koniec"); return DateTime.Now.

msgbox(akcja: Początek, argument:  + argument.tostring()); Thread.Sleep(1000); //opóźnienie msgbox(akcja: Koniec); return DateTime.Now. Programowanie asynchroniczne. Operator await i modyfikator async Język C# 5.0 wyposażony został w nowy operator await, ułatwiający synchronizację dodatkowych zadań uruchomionych przez użytkownika. Poniżej

Bardziej szczegółowo

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu

Serwis jest dostępny w internecie pod adresem www.solidnyserwis.pl. Rysunek 1: Strona startowa solidnego serwisu Spis treści 1. Zgłoszenia serwisowe wstęp... 2 2. Obsługa konta w solidnym serwisie... 2 Rejestracja w serwisie...3 Logowanie się do serwisu...4 Zmiana danych...5 3. Zakładanie i podgląd zgłoszenia...

Bardziej szczegółowo

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK Zaawansowane aplikacje internetowe EJB 2 Celem tego laboratorium jest pokazanie, w jaki sposób aplikacje stworzone w różnych technologiach mogą korzystać z funkcjonalności udostępnianej przez komponenty

Bardziej szczegółowo

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML:

Aby nadać jej pożądaną postać należy w pliku Window1.xaml stworzyć definicję swojego stylu modyfikując ręcznie postać zapisu XAML: Lab8 WPF Zad1 : - lista z językami i flagami + wiązanie danych z obiektu przerabiana na ComboBox - fisheye przegląd obrazków lupa (obrazki umieszczone na sztywno) - wyświetlenie galerii zdjęć zapisanej

Bardziej szczegółowo