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. invokewebserviceactivity1_fromcurrency1 = new WorkflowConsoleApplication3_usun.net.webservicex. 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. invokewebserviceactivity1_tocurrency1 = new WorkflowConsoleApplication3_usun.net.webservicex. 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. switch (symbol_waluty.toupper()) case "USD": invokewebserviceactivity1_tocurrency1 = WorkflowConsoleApplication1.net.webservicex. break; case "EUR": invokewebserviceactivity1_tocurrency1 = WorkflowConsoleApplication1.net.webservicex. 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

- 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

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

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

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

Ć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

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Przykładowa dostępna aplikacja w Visual Studio - krok po kroku Zadaniem poniższego opisu jest pokazanie, jak stworzyć aplikację z dostępnym interfejsem. Sama aplikacja nie ma konkretnego zastosowania i

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

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

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek

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

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

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 07 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami tworzenia aplikacji okienkowych w C#. Wprowadzenie teoretyczne. Rozważana w

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

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

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

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

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

Informatyka II. Laboratorium Aplikacja okienkowa

Informatyka II. Laboratorium Aplikacja okienkowa Informatyka II Laboratorium Aplikacja okienkowa Założenia Program będzie obliczał obwód oraz pole trójkąta na podstawie podanych zmiennych. Użytkownik będzie poproszony o podanie długości boków trójkąta.

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

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

Języki i metody programowania Java Lab2 podejście obiektowe

Języki i metody programowania Java Lab2 podejście obiektowe Języki i metody programowania Java Lab2 podejście obiektowe https://docs.oracle.com/javase/tutorial/ http://zofia.kruczkiewicz.staff.iiar.pwr.wroc.pl/wyklady/pojava/javazk4_2.pdf Zofia Kruczkiewicz 1 Zadanie

Bardziej szczegółowo

Visual Studio instalacja

Visual Studio instalacja Visual Studio 2017 - instalacja Do tej pory napisaliśmy wiele programów, z czego niemal wszystkie były aplikacjami konsolowymi. Najwyższy więc czas zająć się tworzeniem aplikacji z graficznym interfejsem

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

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

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

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

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

imei CYFROWE PRZETWARZANIE SYGNAŁÓW Laboratorium Temat: Tworzenie aplikacji w środowisku LabWindows/CVI Instytut Metrologii, Elektroniki i Informatyki

imei CYFROWE PRZETWARZANIE SYGNAŁÓW Laboratorium Temat: Tworzenie aplikacji w środowisku LabWindows/CVI Instytut Metrologii, Elektroniki i Informatyki CYFROWE PRZETWARZANIE SYGNAŁÓW Laboratorium imei Instytut Metrologii, Elektroniki i Informatyki Temat: Tworzenie aplikacji w środowisku LabWindows/CVI Wprowadzenie Tworzenie nowej aplikacji w środowisku

Bardziej szczegółowo

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub

PWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static

Bardziej szczegółowo

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

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

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz

Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Języki i metody programowania Java Lab1 https://docs.oracle.com/javase/tutorial/ Zofia Kruczkiewicz Zadanie 1. Wykonanie projektu Java SE w środowisku Netbeans- File/New Project W formularzu New Project

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

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Interfejs w MFC 1. Tworzenie nowego projektu Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej: Następnie wybieramy opcje jak na rysunku: Następnie wybieramy

Bardziej szczegółowo

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki Język C# pętle, sterowanie, wyjątki Język C# pętle Pętle: while ( ) do { while ( ); for ( ; ; ) foreach ( in

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

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1) Instrukcja tworzenia aplikacji EE na podstawie aplikacji z dostępem do bazy danych, prezentowanej na zajęciach lab.5 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie

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

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 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

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

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

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

Podstawy programowania obiektowego

Podstawy programowania obiektowego 1/23 Podstawy programowania obiektowego wykład 8 polimorfizm, wyjątki, kolekcje generyczne Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie klasy już istniejącej,

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

Aplikacje internetowe i rozproszone - laboratorium

Aplikacje internetowe i rozproszone - laboratorium Aplikacje internetowe i rozproszone - laboratorium Enterprise JavaBeans (EJB) Celem tego zestawu ćwiczeń jest zapoznanie z technologią EJB w wersji 3.0, a w szczególności: implementacja komponentów sesyjnych,

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

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt

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

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

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

Modelowanie obiektowe - Ćw. 1.

Modelowanie obiektowe - Ćw. 1. 1 Modelowanie obiektowe - Ćw. 1. Treść zajęć: Zapoznanie z podstawowymi funkcjami programu Enterprise Architect (tworzenie nowego projektu, korzystanie z podstawowych narzędzi programu itp.). Enterprise

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

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse... KORZYSTANIE Z KONTROLKI.NET LENDEVICERS232 DODAWANIE KONTROLKI DO ZBIORU KOMPONENTÓW DOSTĘPNYCH W PALECIE TOOLBOX (ŚRODOWISKA PROGRAMISTYCZNE FIRMY MICROSOFT) W środowisku programistycznym (Visual C++,

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

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Protokół JDBC współpraca z relacyjnymi bazami danych lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych Zadanie1 Połączenie z bazą danych travel systemu bazodanowego Derby (metoda void

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

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3(); 1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {; static public void m2() {; void abstract m3(); default static void m4() {; a) Poprawnie zadeklarowano metodę m1() b) Poprawnie

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

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

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

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

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

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

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

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

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

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

Bardziej szczegółowo

Ćwiczenia 9 - Swing - część 1

Ćwiczenia 9 - Swing - część 1 Ćwiczenia 9 - Swing - część 1 Utwórz nowy projekt wybierając: File->New Project->Java Application, przy czym odznacz opcję Create Main Class. Kliknij prawym przyciskiem myszy na podfolder Source Packages

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 13 PODSTAWY OBSŁUGI PROGRAMU WONDERWARE INTOUCH 10.1 Opracował: mgr inż. Marcel Luzar Cel: Konfiguracja

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

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1 Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM

Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania. Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM Instrukcja 5 Laboratorium z Podstaw Inżynierii Oprogramowania Warstwy integracji z bazą danych: Wzorzec DAO Technologia ORM Cel laboratorium 5 Należy wykonać dwie aplikacje zawierające warstwę integracji

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

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

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

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

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Programowanie komponentowe Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz Struktura wykładu 1. Utworzenie użytkowników i ról na serwerze aplikacji Sun Java System Application

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

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

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie

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

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

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

Ć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

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo