Programowanie Systemów Rozproszonych - WCF
|
|
- Antoni Muszyński
- 4 lat temu
- Przeglądów:
Transkrypt
1 Literatura Wprowadzenie Programowanie Systemów Rozproszonych - WCF Paweł Paduch Politechnika Świętokrzyska 22 marca 2017 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 1 z 62
2 Plan wykładu Literatura Wprowadzenie 1 Literatura Wprowadzenie 2 Serwis Program Hostujący Klient 3 IIS - Automatycznie IIS - Ręcznie Usługa Windows 4 Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Paweł Paduch Programowanie Systemów Rozproszonych - WCF 2 z 62
3 Literatura Literatura Wprowadzenie Strony dokumentacji MS Andrew Troelsen - Język C# 2010 i platforma.net 4 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 3 z 62
4 Literatura Wprowadzenie WCF (ang. Windows Communication Foundation) framework do budowania aplikacji opartej o serwisy. Używając WCF można wysyłać dane jako asynchroniczne komunikaty z jednego punktu końcowego (ang. Endpoint) do drugiego. To samo API wykorzystuje się do stworzenia komunikacji pomiędzy aplikacjami na tym samym komputerze, komputerami lokalnej czy globalnej sieci. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 4 z 62
5 Zastosowania Literatura Wprowadzenie y zastosowań: Bezpieczne serwisy do przetwarzania informacji biznesowych Serwisy dostarczające bieżące dane np. o ruchu ulicznym czy serwisy monitorujące Komunikatory Aplikacje analityczne pobierające dane z wielu serwisów Wystawienie obiegu zleceń (workflow) Aplikacje silverlight zasilane z danych wystawionych przez serwis. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 5 z 62
6 Model Literatura Wprowadzenie WCF bazuje na pojęciu komunikacji opartej na przesyłaniu wiadomości i wszystko co może być wymodelowane jako komunikat (np. żądanie http lub kolejka komunikatów MSMQ) może być reprezentowane w uniwersalnym modelu programowania. Dlatego można wykorzystać jedno API do różnego mechanizmu transportowego. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 6 z 62
7 Model Literatura Wprowadzenie W modelu możemy wyróżnić: klientów, którzy inicjują komunikację serwisów, aplikacji które czekają i odpowiadają na zgłoszenia klientów. pojedyncza aplikacja może działać jednocześnie jako klient i serwer np. Duplex Services lub Peer-to-Peer Networking. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 7 z 62
8 Endpoints Literatura Wprowadzenie Endpoints to punkty pomiędzy którymi komunikaty są wymieniane (wysyłka i/lub odbiór). Definiują one wszystkie informacje potrzebne do wymiany wiadomości. Serwis zwykle wystawia jeden lub kilka punktów końcowych aplikacji jak również 0 lub więcej punktów końcowych infrastruktury. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 8 z 62
9 Endopoint Literatura Wprowadzenie Endopoint - może być częścią serwisu działającego ciągle np. osadzonego na IIS lub hostowany w aplikacji. Endpointem może być też klient zgłaszający się do serwera. Klient generuje endpoint kompatybilny z jednym z endpointów serwisu. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 9 z 62
10 Nowy projekt Web Service Serwis Program Hostujący Klient Dodajemy do solucji nowy Web Site o nazwie HelloWebService. Aby szablon ASP.NET Web Service był aktywny należy wybrać.net Framework 3.5. Rysunek: Nowy projekt Paweł Paduch Programowanie Systemów Rozproszonych - WCF 10 z 62
11 Nowy Web Service Serwis Program Hostujący Klient Powstanie kilka plików i katalogów: Katalogi App Code i App Data Plik Service.asmx (asmx jest domyślnym rozszerzeniem pliku opisującego usługę XML na platformie.net) Listing 1: Service.asmx 1 <%@ WebService Language="C#" CodeBehind="~ /App_Code/Service.cs" Class="Service" %> 2 Plik Web.config W katalogu App Code plik Service.sc z kodem web metody. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 11 z 62
12 Service.cs Serwis Program Hostujący Klient W pliku Service.cs mamy przykładową metodę HelloWorld oprócz niej możemy dodać metodę Dodaj Listing 2: Zmiana w app.config 1 [WebMethod] 2 public double Dodaj(double a, double b) 3 { 4 return a + b; 5 } 6 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 12 z 62
13 Uruchomienie Serwis Program Hostujący Klient Jeżeli projekt jest ustawiony jako domyślny do uruchomienia można wcisnąć F5. Rysunek: Uruchomienie web serwisu Paweł Paduch Programowanie Systemów Rozproszonych - WCF 13 z 62
14 Klient Web Serwisu Serwis Program Hostujący Klient Dodajemy nowy projekt konsolowy o nazwie HelloWebProgram Uruchamiamy WebService przez ctrl+f5 Dodajemy Service Reference Listing 3: Program.cs 1 static void Main(string[] args) 2 { 3 HelloWebProgram.HelloWebServiceRef.ServiceSoapClient klient = new HelloWebProgram.HelloWebServiceRef. ServiceSoapClient(); 4 klient.open(); 5 Console.WriteLine(klient.HelloWorld()); 6 Console.WriteLine("5+6=" + klient.dodaj(5, 6)); 7 Console.ReadLine(); 8 klient.close(); 9 } 10 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 14 z 62
15 Nowy projekt Serwis Program Hostujący Klient Tworzymy nową solucję WCFWyklad a w niej projekt CalcServiceLibrary typu WCF Library Rysunek: Nowy projekt Paweł Paduch Programowanie Systemów Rozproszonych - WCF 15 z 62
16 Modyfikacje Serwis Program Hostujący Klient Zmieniamy nazwy IService1 i Service na ICalc i Calc Modyfikujemy linijkę a App.config: Listing 4: Zmiana w app.config 1 <add baseaddress=" /Design_Time_Addresses/CalcServiceLibrary/Calc/" /> 2 Usuwamy wygenerowany przykład Echa Paweł Paduch Programowanie Systemów Rozproszonych - WCF 16 z 62
17 Interfejs Serwis Program Hostujący Klient Tworzymy nowy interfejs Listing 5: ICalc.cs 1 [ServiceContract(Namespace =" )] 2 public interface ICalc 3 { 4 [OperationContract] 5 double Add(double a, double b); 6 7 [OperationContract] 8 double Sub(double a, double b); 9 10 [OperationContract] 11 double Mul(double a, double b); [OperationContract] 14 double Div(double a, double b); 15 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 17 z 62
18 Implementacja interfejsu Serwis Program Hostujący Klient Tworzymy implementację Listing 6: Calc.cs 1 public double Add(double a, double b) 2 { return a + b; } 3 4 public double Div(double a, double b) 5 { if (b == 0) throw new DivideByZeroException(" parametr b nie moze byc 0"); 6 return a / b; } 7 8 public double Mul(double a, double b) 9 { return a * b; } public double Sub(double a, double b) 12 { return a - b; } Można przetestować serwis (F5) Paweł Paduch Programowanie Systemów Rozproszonych - WCF 18 z 62
19 Nowy projekt Serwis Program Hostujący Klient Dodajemy nowy projekt do solucji typu Console Application Dodajemy referencję do projektu Dodajemy referencję do System.ServiceModel Dodajemy odpowiednie using do Program.cs: Listing 7: Dodatkowe przestrzenie nazw 1 using CalcServiceLibrary; 2 using System.ServiceModel; 3 using System.ServiceModel.Description; 4 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 19 z 62
20 Main Serwis Program Hostujący Klient Listing 8: Adres oraz instancja serwisu 1 Uri baseaddress = new Uri(" ; 2 3 ServiceHost selfhost = new ServiceHost(typeof(Calc), baseaddress); Paweł Paduch Programowanie Systemów Rozproszonych - WCF 20 z 62
21 Main Serwis Program Hostujący Klient Ustanawiamy punkt końcowy usługi oraz umożliwiamy wymianę metadanych: Listing 9: Endpoint i wymiana danych 1 // Dodajemy Endopoint uslugi 2 selfhost.addserviceendpoint(typeof(icalc), new WSHttpBinding(), "CalculatorService"); 3 4 // Umozliwiamy wymiane metadanych 5 ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 6 smb.httpgetenabled = true; 7 selfhost.description.behaviors.add(smb); Paweł Paduch Programowanie Systemów Rozproszonych - WCF 21 z 62
22 Main Serwis Program Hostujący Klient Startujemy i zamykamy serwis Listing 10: Start i zamknięcie serwisu 1 selfhost.open(); 2 Console.WriteLine("Serwis dziala..."); 3 Console.WriteLine("Nacisnij <ENTER> by zakonczyc."); 4 Console.WriteLine(); 5 Console.ReadLine(); 6 7 selfhost.close(); Można ustawić startup na bieżący projekt i uruchomić (F5) Paweł Paduch Programowanie Systemów Rozproszonych - WCF 22 z 62
23 Nowy projekt Serwis Program Hostujący Klient Dodajemy nowy projekt WPF Z Toolboxa po lewej dodajemy 3 razy textbox (textboxa, textboxb, textboxwynik) Ten ostatni można dać Disabled Dodajemy 4 guziki (buttonplus, buttonminu, buttonmnoz, buttondziel ja na rysunku 4 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 23 z 62
24 Referencje i implementacja Serwis Program Hostujący Klient Uruchamiamy hosta z usługą w trybie bez debugowania (ctrl+f5) Dodajemy referencje do System.ServiceModel oraz service reference podając adres gdzie host wystawił naszą usługę Dodajemy using CalculatorClient.CalcServiceReference; do MainWindowXaml.cs Paweł Paduch Programowanie Systemów Rozproszonych - WCF 24 z 62
25 Implementacja Serwis Program Hostujący Klient W konstruktorze MainWindow dodajemy: Listing 11: Start serwisu 1 public MainWindow() 2 { 3 InitializeComponent(); 4 try 5 { 6 klient = new CalcServiceReference.CalcClient(); 7 } 8 catch (Exception ex) 9 { 10 MessageBox.Show("nie udalo sie stworzyc klienta CalcServiceReference. " + ex.message); 11 } 12 } dodajemy prywatne pole CalcClient klient = null; dodajemy obsługę ClosingWindow gdzie umieszczamy klient.close(); Paweł Paduch Programowanie Systemów Rozproszonych - WCF 25 z 62
26 Pobierz liczby Serwis Program Hostujący Klient Piszemy funkcję pobierającą dane z Textboxów Listing 12: pobierzliczby 1 bool pobierzliczby(out double a, out double b) 2 { 3 b = 0; 4 a = 0; 5 6 if (!double.tryparse(textboxparama.text, out a)) 7 { 8 MessageBox.Show("niepoprawna liczba a"); 9 return false; 10 } 11 if (!double.tryparse(textboxparamb.text, out b)) 12 { 13 MessageBox.Show("niepoprawna liczba b"); 14 return false; 15 } 16 return true; 17 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 26 z 62
27 Obsługa guzików Serwis Program Hostujący Klient Dodajemy i podpinamy funkcje do obsługi zdarzeń kliknięć Listing 13: Obsługa kliknięcia na guziku dodawania 1 private void buttonplus_click(object sender, RoutedEventArgs e) 2 { 3 double a, b; 4 if (pobierzliczby(out a, out b)) 5 { 6 textboxwynik.text = klient.add(a, b).tostring(); 7 } 8 } Jeżeli program hostujący uruchomiony możemy uruchomić naszego klienta (F5) Paweł Paduch Programowanie Systemów Rozproszonych - WCF 27 z 62
28 Przygotowanie nowej strony IIS - Automatycznie IIS - Ręcznie Usługa Windows Otwieramy menadżera IIS Dodajemy nową stronę Rysunek: Nowa strona Paweł Paduch Programowanie Systemów Rozproszonych - WCF 28 z 62
29 Zmiana architektóry IIS - Automatycznie IIS - Ręcznie Usługa Windows Dwukrotnie klikamy na puli aplikacji Zmieniamy na.net 4.0 Rysunek: Zmiana architektury na.net 4.0 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 29 z 62
30 Deploy automatyczny IIS - Automatycznie IIS - Ręcznie Usługa Windows Tworzymy nowy projekt WCF Service App Wybieramy publikuj i klikamy custom. Rysunek: Publikacja serwisu Paweł Paduch Programowanie Systemów Rozproszonych - WCF 30 z 62
31 Deploy automatyczny IIS - Automatycznie IIS - Ręcznie Usługa Windows Wpisujemy odpowiednie dane... Rysunek: Dane do publikacji Paweł Paduch Programowanie Systemów Rozproszonych - WCF 31 z 62
32 Deploy automatyczny - problem IIS - Automatycznie IIS - Ręcznie Usługa Windows...i mamy pierwszy problem Rysunek: Nie można połączyć Należy włączyć Usługę zarządzania siecią Web - wmsvc Doinstalować też Web Deployment Tool co spowoduje dodanie usługi Web Deployment Agent Service msdepsvc. Otworzyć na firewallu port 8172 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 32 z 62
33 Deploy ręczny IIS - Automatycznie IIS - Ręcznie Usługa Windows Do CalcServiceLibrary dodaje plik Service.svc Listing 14: Service.svc 1 <%@ServiceHost language="c#" Debug="true" Service=" CalcServiceLibrary.Calc"%> Dodajemy też Web.config Paweł Paduch Programowanie Systemów Rozproszonych - WCF 33 z 62
34 Deploy ręczny IIS - Automatycznie IIS - Ręcznie Usługa Windows Listing 15: Web.config 1 <?xml version="1.0" encoding="utf-8"?> 2 <configuration> 3 <system.servicemodel> 4 <services> 5 <!-- This section is optional with the default configuration 6 model introduced in.net Framework 4 --> 7 <service name="calcservicelibrary.calc" behaviorconfiguration="defaultbehavior"> 8 <!-- This endpoint is exposed at the base address provided by host: --> 9 <endpoint address="" 10 binding="wshttpbinding" 11 contract="calcservicelibrary.icalc" /> 12 <!-- The mex endpoint is exposed at --> 13 <endpoint address="mex" 14 binding="mexhttpbinding" 15 contract="imetadataexchange" /> 16 </service> 17 </services> 18 <behaviors> 19 <servicebehaviors > 20 <behavior name="defaultbehavior"> 21 <!-- To avoid disclosing metadata information, 22 set the values below to false before deployment --> 23 <!-- <servicemetadata httpgetenabled="true" httpsgetenabled="true"/>--> 24 <servicemetadata httpgetenabled="true" /> <!-- To receive exception details in faults for debugging purposes, 27 set the value below to true. Set to false before deployment 28 to avoid disclosing exception information --> 29 <servicedebug includeexceptiondetailinfaults="true"/> 30 </behavior> 31 </servicebehaviors> 32 </behaviors> 33 </system.servicemodel> 34 </configuration> Paweł Paduch Programowanie Systemów Rozproszonych - WCF 34 z 62
35 Deploy ręczny IIS - Automatycznie IIS - Ręcznie Usługa Windows W katalogu gdzie wskazuje strona np. C:\inetpub\wwwroot\webservices\TestService wgrać pliki service.svc, Web.config oraz katalog bin. Jeżeli web config jest ok to powinno zadziałać. Uruchamiamy Developer Command Prompt for VS2015 i tam wpisujemy wcftestclient.exe podajemy adres naszej strony svc. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 35 z 62
36 Nowy projekt usługi windows IIS - Automatycznie IIS - Ręcznie Usługa Windows Tworzymy nowy projekt nazwa CalcWindowsService Rysunek: Nowy projekt usługi windows Zmieniamy Service1 na CalcWinService Paweł Paduch Programowanie Systemów Rozproszonych - WCF 36 z 62
37 Nadanie nazwy usłudze IIS - Automatycznie IIS - Ręcznie Usługa Windows W CalcWindowsService.Designer.cs zmieniamy nazwę usługi Listing 16: CalcWindowsService.Designer.cs 1 private void InitializeComponent() 2 { 3 components = new System.ComponentModel.Container(); 4 this.servicename = "CalcWindowsService"; 5 } W CalcWinService.cs dodajemy referencje do System.ServiceModel i System.ServiceModel.Description i zmienną Listing 17: CalcWinService.cs 1 private ServiceHost m_svchost = null; Dodajemy referencje do proj CalcServiceLibrary i wstawiamy using o tej samej nazwie. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 37 z 62
38 Metoda OnStart IIS - Automatycznie IIS - Ręcznie Usługa Windows Wypełniamy metodę OnStart w CalcWinService.cs Listing 18: CalcWinService.cs 1 protected override void OnStart(string[] args) 2 { 3 if (m_svchost!= null) m_svchost.close(); 4 5 string stradrhttp = " 6 string stradrtcp = "net.tcp://localhost:9002/calcservice"; 7 8 Uri[] adrbase = { new Uri(strAdrHTTP), new Uri(strAdrTCP) }; 9 m_svchost = new ServiceHost(typeof(Calc), adrbase); ServiceMetadataBehavior mbehave = new ServiceMetadataBehavior(); 12 m_svchost.description.behaviors.add(mbehave); BasicHttpBinding httpb = new BasicHttpBinding(); 15 m_svchost.addserviceendpoint(typeof(icalc), httpb, stradrhttp); 16 m_svchost.addserviceendpoint(typeof(imetadataexchange), 17 MetadataExchangeBindings.CreateMexHttpBinding(), "mex"); NetTcpBinding tcpb = new NetTcpBinding(); 20 m_svchost.addserviceendpoint(typeof(icalc), tcpb, stradrtcp); 21 m_svchost.addserviceendpoint(typeof(imetadataexchange), 22 MetadataExchangeBindings.CreateMexTcpBinding(), "mex"); m_svchost.open(); 25 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 38 z 62
39 Metoda OnStop IIS - Automatycznie IIS - Ręcznie Usługa Windows Wypełniamy metodę OnStop w CalcWinService.cs Listing 19: CalcWinService.cs 1 protected override void OnStop() 2 { 3 if (m_svchost!= null) 4 { 5 m_svchost.close(); 6 m_svchost = null; 7 } 8 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 39 z 62
40 Dodanie instalatora usługi IIS - Automatycznie IIS - Ręcznie Usługa Windows Otworzyć CalcWinService w trybie designera Prawym klawiszem otworzyć menu kontekstowe i wybrać add installer Rysunek: Dodanie instalatora Zmieniamy nazwę ProjectInstaller na CalcServiceInstaller Paweł Paduch Programowanie Systemów Rozproszonych - WCF 40 z 62
41 CalcServiceInstaller IIS - Automatycznie IIS - Ręcznie Usługa Windows Kalwiszem F7 przełączmy się na kod i uzupełniamy go Listing 20: CalcServiceInstaller.cs 1 public CalcServiceInstaller() 2 { 3 // InitializeComponent(); 4 serviceprocessinstaller1 = new ServiceProcessInstaller(); 5 serviceprocessinstaller1.account = ServiceAccount. LocalSystem; 6 serviceinstaller1 = new ServiceInstaller(); 7 serviceinstaller1.servicename = "CalcWinService"; 8 serviceinstaller1.displayname = "Kalkulator Serwis"; 9 serviceinstaller1.description = "WCF Kalkulator Serwis, przykladowy serwis hostowany w usludze windows"; 10 serviceinstaller1.starttype = ServiceStartMode.Automatic; 11 Installers.Add(serviceProcessInstaller1); 12 Installers.Add(serviceInstaller1); 13 } 14 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 41 z 62
42 Instalacja i start usługi IIS - Automatycznie IIS - Ręcznie Usługa Windows Otwieramy Command Prompt z uprawnieniami administratora i przechodzimy do katalogu gdzie znajduje się CalcWindowsService.exe Wykonujemy polecenie: InstallUtil CalcWindowsService.exe Start usługi: sc start CalcWinService lub z menadżera usług: Rysunek: Zarządzanie usługami usługa powinna być widoczna pod Paweł Paduch Programowanie Systemów Rozproszonych - WCF 42 z 62
43 Zatrzymanie i usunięcie usługi IIS - Automatycznie IIS - Ręcznie Usługa Windows Zatrzymanie sc stop CalcWinService Usunięcie InstallUtil /u CalcWindowsService.exe Mamiętaj! Gdy zmieniamy nazwę usługi należy ją najpierw odinstalować przed skompilowaniem nowej wersji ponieważ deinstalator posługując się plikiem exe nie znajdzie usługi o starej nazwie Można ewentualnie też tak: net stop ServiceName sc delete ServiceName Gdyby był błąd 1072 to trzeba sprawdzić czy nie ma uruchomionego menadżera usług, mmc lub ProcessExplorera Paweł Paduch Programowanie Systemów Rozproszonych - WCF 43 z 62
44 Nowy projekt Web Site Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Do solucji dodajemy nowy web site (z menu kontekstowego wybieramy add new web site) Rysunek: Nowy Web Site Do projektu dodajemy nowy formularz Web Form i zostawiamy nazwę Default.aspx Paweł Paduch Programowanie Systemów Rozproszonych - WCF 44 z 62
45 Formatka Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Uzupełniamy kod dodanej formatki Default.aspx Listing 21: Default.aspx 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns=" 6 <head runat="server"> 7 <title></title> 8 </head> 9 <body> 10 <form id="form1" runat="server"> 11 <div> 12 <asp:label ID="Label1" runat="server" 13 Text="Wartosc 1 : "></asp:label> 14 <asp:textbox ID="txtVal1" runat="server"></asp:textbox> 15 <br /> 16 <asp:label ID="Label2" runat="server" 17 Text="Wartosc 2 : "></asp:label> 18 <asp:textbox ID="txtVal2" runat="server"></asp:textbox> 19 <br /> 20 <asp:button ID="btnCalc" runat="server" 21 onclick="btncalc_click" Text="Oblicz" 22 Width="91px" /> 23 <br /> 24 <asp:label ID="lblOutput" runat="server" 25 BorderStyle="None" Height="152px" 26 Width="606px"></asp:Label> 27 </div> 28 </form> 29 </body> 30 </html> 31 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 45 z 62
46 Service Reference Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Dodajemy referencje do serwisu Rysunek: Nowy Web Site Stworzy nam to katalog App WebReferences oraz zmodyfikuje web.config Paweł Paduch Programowanie Systemów Rozproszonych - WCF 46 z 62
47 Default.aspx.cs Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Listing 22: Default.aspx.cs 1 protected void btncalc_click(object sender, EventArgs e) 2 { double dblx = 0, dbly = 0; 3 bool b1 = double.tryparse(txtval1.text, out dblx); 4 bool b2 = double.tryparse(txtval2.text, out dbly); 5 6 if ((b1) && (b2)) 7 { StringBuilder sbtmp = new StringBuilder("<font size=3 color=#000080>"); 8 9 sbtmp.append("<p>wprowadzono<br>wartosc 1 : " + dblx.tostring("f2")); 10 sbtmp.append("<br>wartosc 2 : " + dbly.tostring("f2")); 11 sbtmp.append("<p>obliczam za pomoca HTTP Binding"); ServiceReferenceCalc.CalcClient calcproxy1 = new ServiceReferenceCalc.CalcClient("BasicHttpBinding_ICalc"); 14 double dblresult = calcproxy1.add(dblx, dbly); 15 sbtmp.append("<br>wolam Add >"); 16 sbtmp.append(dblresult.tostring()); 17 dblresult = calcproxy1.sub(dblx, dbly); 18 sbtmp.append("<br>wolam Sub >"); 19 sbtmp.append(dblresult.tostring()); 20 dblresult = calcproxy1.mul(dblx, dbly); 21 sbtmp.append("<br>wolam Mul >"); 22 sbtmp.append(dblresult.tostring()); 23 dblresult = calcproxy1.div(dblx, dbly); 24 sbtmp.append("<br>wolam Div >"); 25 sbtmp.append(dblresult.tostring()); 26 ServiceReferenceCalc.CalcClient calcproxy2 = new ServiceReferenceCalc.CalcClient("NetTcpBinding_ICalc"); 27 sbtmp.append("<p>obliczam za pomoca NetTcp Binding"); 28 dblresult = calcproxy2.add(dblx, dbly); 29 sbtmp.append("<br>wolam Add >"); 30 sbtmp.append(dblresult.tostring()); 31 dblresult = calcproxy2.sub(dblx, dbly); 32 sbtmp.append("<br>wolam Sub >"); 33 sbtmp.append(dblresult.tostring()); 34 dblresult = calcproxy2.mul(dblx, dbly); 35 sbtmp.append("<br>wolam Mul >"); 36 sbtmp.append(dblresult.tostring()); 37 dblresult = calcproxy2.div(dblx, dbly); 38 sbtmp.append("<br>wolam Div >"); 39 sbtmp.append(dblresult.tostring()); 40 lbloutput.text = sbtmp.tostring(); 41 } 42 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 47 z 62
48 Przekazywanie wyjątków do klienta Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Jeżeli chcemy przekazać klientowi wyjątek wygenerowany po stronie serwera należy zmodyfikować zachowanie serwisu Można to zrobić z poziomu kodu Listing 23: Włączenie przekazywania szczegółów wyjątków 1 ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 2 smb.httpgetenabled = true; 3 selfhost.description.behaviors.find<servicedebugbehavior>(). IncludeExceptionDetailInFaults = true; 4 selfhost.description.behaviors.add(smb); 5 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 48 z 62
49 Przekazywanie wyjątków do klienta Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Można to zrobić w konfiguracji serwisu Listing 24: Włączenie przekazywania szczegółów wyjątków 1 <!-- To receive exception details in faults for debugging purposes, 2 set the value below to true. Set to false before deployment 3 to avoid disclosing exception information --> 4 <servicedebug includeexceptiondetailinfaults="true"/> 5 </behavior> 6 </servicebehaviors> 7 </behaviors> 8 </system.servicemodel> 9 10 </configuration> Paweł Paduch Programowanie Systemów Rozproszonych - WCF 49 z 62
50 Zwracanie błędu Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Aby przekazać bład do klienta można posłużyć się klasą FaultException Listing 25: Przekazywanie błedów do klientów 1 throw new FaultException("Nie dziel przez 0!", new FaultCode("Zle parametry wejsciowe!")); 2 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 50 z 62
51 Duplex Contract Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Duplex Service Contract jest paternem dwukierunkowej wymiany komunikatów pomiędzy dwoma endpointami Duplex Service może odesłać wiadomość do klienta poprzez kanał zwrotny, który klient udostępnia serwisowi. Żeby stworzyć kontrakt typu duplex potrzebujemy pary interfejsów. Pierwszym jest Service Contract Interface, który opisuje operacje jaki klient może wywoływać na serwisie. W tym kontrakcie definiujemy też interfejs dla klienta tzw. Callback Contract w atrybucie ServiceContractAttribute.CallbackContract Callback Contract jest interfejsem opisującym co może serwis zrobić u klienta. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 51 z 62
52 Nowy projekt Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Dodajemy nowy projekt WCF Service Application o nazwie WCFTestApp Rysunek: Nowy projekt WCF Paweł Paduch Programowanie Systemów Rozproszonych - WCF 52 z 62
53 Zmiana nazw Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Service1 zmieniamy na DuplexTest modyfikujemy zawartość DuplexTest.svc (prawy klawisz myszy,,view Markup ) Zamieniamy Service1 na DuplexTest usuwamy domyślną zawartość w plikach *.cs Paweł Paduch Programowanie Systemów Rozproszonych - WCF 53 z 62
54 Definicja Interfejsów Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex W pliku IDuplexText.cs Definiujemy dwa interfejsy wraz z odpowiednimi atrybutami: Listing 26: Interfejsy 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Runtime.Serialization; 5 using System.ServiceModel; 6 using System.ServiceModel.Web; 7 using System.Text; 8 9 namespace DuplexTestApp 10 { 11 public interface IKontraktZwrotny 12 { 13 [OperationContract(IsOneWay = true)] 14 void FunkcjaZwrotna(string str); 15 } 16 [ServiceContract (CallbackContract = typeof(ikontraktzwrotny))] 17 public interface IDuplexTest 18 { 19 [OperationContract(IsOneWay = true)] 20 void DodajSlowo(string str); 21 } 22 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 54 z 62
55 Implementacja DuplexTest.cs Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex W pliku DuplexTest realizujemy zadany interfejs. Listing 27: DuplexTest.svc.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Runtime.Serialization; 5 using System.ServiceModel; 6 using System.ServiceModel.Web; 7 using System.Text; 8 9 namespace DuplexTestApp 10 { public class DuplexTest : IDuplexTest 13 { 14 IKontraktZwrotny callback = null; 15 List<string> listaslow = null; 16 public DuplexTest() 17 { 18 listaslow = new List<string>(); 19 callback = OperationContext.Current.GetCallbackChannel<IKontraktZwrotny>(); 20 } 21 public void DodajSlowo(string str) 22 { 23 if (listaslow!= null) listaslow.add(str); 24 callback.funkcjazwrotna("otrzymalem slowo: " + str + ". Liczba slow: " + listaslow.count()); 25 } 26 } 27 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 55 z 62
56 Implementacja DuplexTest.cs Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex W pliku Web.config modyfikujemy konfiguracje tak by serwis obsługiwał tryb duplex, dodajemy nasz serwis Listing 28: Web.config 1 <system.servicemodel> 2 <behaviors> 3 <servicebehaviors> 4 <behavior name ="duplexbehav"> 5 <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 6 <servicemetadata httpgetenabled="false" httpsgetenabled="false"/> 7 <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 8 <servicedebug includeexceptiondetailinfaults="true"/> 9 </behavior> 10 </servicebehaviors> 11 </behaviors> 12 <services> 13 <service name="duplextestapp.duplextest" behaviorconfiguration="duplexbehav"> 14 <host> 15 <baseaddresses> 16 <add baseaddress=" 17 </baseaddresses> 18 </host> 19 <endpoint name ="duplexendpoint" 20 address="" 21 binding="wsdualhttpbinding" 22 contract="duplextestapp.iduplextest"/> 23 <endpoint name ="MetaDataTcpEndpoint" 24 address="mex" 25 binding="mexhttpbinding" 26 contract="imetadataexchange"/> 27 </service> 28 </services> 29 <!--<protocolmapping> 30 <add binding="basichttpsbinding" scheme="https"/> 31 </protocolmapping>--> 32 <servicehostingenvironment aspnetcompatibilityenabled="true" multiplesitebindingsenabled="true"/> 33 </system.servicemodel> Paweł Paduch Programowanie Systemów Rozproszonych - WCF 56 z 62
57 Uruchomienie Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Można prawym klawiszem myszy otworzyć menu kontekstowe na pliku e i wybrać View in Browser Możemy też hostawać serwis na IIS jak pokazano na innych slajdach. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 57 z 62
58 Klient Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Mając uruchomiony serwis, tworzymy nową aplikację konsolową: Dodaj nowy projekt o nazwe DuplexTestProgram Dodaje referencje do System.ServiceModel oraz service reference do naszej usługi Np. Nadajemy przestrzeń nazw dla nowej referencji DuplexTestRef Do programu dodajemy nową klasę Odpowiadacz Paweł Paduch Programowanie Systemów Rozproszonych - WCF 58 z 62
59 Klasa Odpowiadacz Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Listing 29: Odpowiadacz.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.ServiceModel; 7 using DuplexTestProgram.DuplexTestRef; 8 9 namespace DuplexTestProgram 10 { 11 class Odpowiadacz : IDuplexTestCallback, IDisposable 12 { 13 DuplexTestClient proxy; public void FunkcjaZwrotna(string str) 16 %{ 17 Console.WriteLine("Zwrotnie dostalem: " + str); 18 } public void zawolajserwis(string str) 21 { 22 InstanceContext context = new InstanceContext(this); 23 proxy = new DuplexTestClient(context); 24 proxy.dodajslowo(str); 25 } public void Dispose() 28 { 29 proxy.close(); 30 } 31 } 32 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 59 z 62
60 Główny program Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Listing 30: Program.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace DuplexTestProgram 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 Odpowiadacz odp = new Odpowiadacz(); 14 odp.zawolajserwis("kuku"); 15 Console.ReadLine(); 16 odp.dispose(); 17 } 18 } 19 } Paweł Paduch Programowanie Systemów Rozproszonych - WCF 60 z 62
61 Pytania Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex? Paweł Paduch Programowanie Systemów Rozproszonych - WCF 61 z 62
62 koniec Web Site Przekazywanie informacji o błędzie do klienta Komunikacja dwukierunkowa - Duplex Dziękuję Państwu za uwagę. Paweł Paduch Programowanie Systemów Rozproszonych - WCF 62 z 62
Programowanie Systemów Rozproszonych - WCF
Literatura Wprowadzenie Programowanie Systemów Rozproszonych - WCF Paweł Paduch Politechnika Świętokrzyska 15 kwietnia 2016 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 1 z 57 Plan wykładu Literatura
Bardziej szczegółowoProgramowanie Systemów Rozproszonych Laboratorium 3 WCF. Paweł Paduch
Programowanie Systemów Rozproszonych Laboratorium 3 WCF Paweł Paduch paduch@tu.kielce.pl 12-04-2016 Rozdział 1 Wstęp 1.1 Materiały pomocniczne Do zajęć przydatne mogą być: materiały udostępniane przez
Bardziej szczegółowoProgramowanie Systemów Rozproszonych Laboratorium 2 WCF. Paweł Paduch
Programowanie Systemów Rozproszonych Laboratorium 2 WCF Paweł Paduch paduch@tu.kielce.pl 21-03-2016 Rozdział 1 Wstęp 1.1 Materiały pomocniczne Do zajęć przydatne mogą być: materiały udostępniane przez
Bardziej szczegółowoProgramowanie Systemów Rozproszonych - WCF
Plan Literatura Podstawowe pojęcia Programowanie Systemów Rozproszonych - WCF Paweł Paduch Politechnika Świętokrzyska 15 kwietnia 2015 Paweł Paduch Programowanie Systemów Rozproszonych - WCF 1 z 70 Plan
Bardziej szczegółowoProgramowanie Systemów Rozproszonych - WCF REST
Literatura Wprowadzenie Programowanie Systemów Rozproszonych - WCF REST Paweł Paduch Politechnika Świętokrzyska 11 kwietnia 2018 Paweł Paduch Programowanie Systemów Rozproszonych - WCF REST 1 z 44 Literatura
Bardziej szczegółowoTworzenie 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ółowoLaboratorium 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ółowoWykł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ółowoRESTful WCF Services. Autor ćwiczenia: Piotr Ostrowski. Kroki ćwiczenia : 1. Utworzenie nowego projektu RESTful WCF.
RESTful WCF Services Do realizacji ćwiczenia potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2010 oraz serwer bazy danych SQL Server Express 2005 lub nowszy. Celem ćwiczenia
Bardziej szczegółowoZaawansowane 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ółowoNarzę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ółowoABC WCF. adam.furmanek@studentpartner.com
ABC WCF adam.furmanek@studentpartner.com Agenda WS, SOAP, REST Czym jest WCF? ABC WCF Usługa WCF Klient WCF Demo: prognoza pogody Demo: przesyłanie plików Pozostałe aspekty WCF Podsumowanie WS, SOAP, REST
Bardziej szczegółowoMichał Jankowski. Remoting w.net 2.0
Michał Jankowski Remoting w.net 2.0 Co to jest? Remoting jest zbiorem funkcji pozwalającym na komunikacje miedzy aplikacjami zarówno w obrębie jednego komputera jak i poprzez sieć Pozwala na komunikację
Bardziej szczegółowoUsługi sieciowe laboratorium 2013 K.M. Ocetkiewicz, T. Goluch
Usługi laboratorium 2013 K.M. Ocetkiewicz, T. Goluch 1. Wstęp Usługa sieciowa jest zbiorem funkcji udostępnianych przez serwer. Jest to kolejne podejście do problemu zdalnego wołania procedur, w tym wypadku
Bardziej szczegółowonamespace HostedReceiver { public class Receiver: IConfigureThisEndpoint, AsA_Server {
Pobranie i instalacja: - http://www.nservicebus.com/ - download v3.0 now - rozpakować - MSMQ powinno być zainstalowane (Panel Sterowania -> Dodaj/Usuń programy -> Składniki systemu Windows -> Kolejkowanie
Bardziej szczegółowoUsługi sieciowe laboratorium 2013 K.M. Ocetkiewicz, T. Goluch
Usługi laboratorium 2013 K.M. Ocetkiewicz, T. Goluch 1. Wstęp Usługa sieciowa jest zbiorem funkcji udostępnianych przez serwer. Jest to kolejne podejście do problemu zdalnego wołania procedur, w tym wypadku
Bardziej szczegółowoWykł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Ć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ółowoZaawansowane 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ę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ółowoRozdział 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ółowoMateriały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione
Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf Materiały poprawione Rozwiązanie zadania w NetBeans IDE 7.4: Jarosław Ksybek, Adam Miazio Celem ćwiczenia jest przygotowanie prostej aplikacji
Bardziej szczegółowo1 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ółowoMasterPage w ASP.NET
MasterPage w ASP.NET Paulo Gliwa Data opracowania: 23 VI 2017 Wstęp. Podczas tworzenia aplikacji internetowych na platformie ASP.NET mamy do użytku wiele przydatnych narzędzi przyśpieszających i ułatwiających
Bardziej szczegółowoASP.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ółowoxmlns: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ółowoInstrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.
Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie
Bardziej szczegółowoProgramowanie 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ółowoAplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów
Bardziej szczegółowoProsta 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.NET 3.0. .NET Framework Microsoft Windows Communication Foundation Microsoft Windows Presentation Foundation Microsoft Windows Workflow Foundation
.NET 3.0 i 3.5 .NET 3.0 Składa się z:.net Framework Microsoft Windows Communication Foundation Microsoft Windows Presentation Foundation Microsoft Windows Workflow Foundation.NET Framework jak w wersji
Bardziej szczegółowoProgramowanie 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ółowoSposoby 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ółowoInfrastruktura aplikacji WWW
ASP.NET WebForms Infrastruktura aplikacji WWW Gotowe rozwiązania architektoniczne i szkielety aplikacji zwalniają twórców aplikacji z implementacji infrastruktury, zwiększając ich produktywność Stanowy,
Bardziej szczegółowoWykł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ółowoAplikacje RMI Lab4
Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych
Bardziej szczegółowoProgramowanie 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ółowoPrzykł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ółowoArchitektury Usług Internetowych. Laboratorium 2. Usługi sieciowe
Architektury Usług Internetowych Laboratorium 2. Usługi sieciowe Wstęp Celem laboratorium jest zapoznanie się z modelem usług sieciowych na przykładzie prostego serwera Apache Axis2. Apache Axis2 Apache
Bardziej szczegółowoSZYBKI START. Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2. Szyfrowanie/odszyfrowanie danych 4
SZYBKI START Tworzenie nowego połączenia w celu zaszyfrowania/odszyfrowania danych lub tekstu 2 Szyfrowanie/odszyfrowanie danych 4 Szyfrowanie/odszyfrowanie tekstu 6 Tworzenie nowego połączenia w celu
Bardziej szczegółowoProgramowanie 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ółowoGit, Bitbucket, IntelliJ IDEA
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Narzędzia i środowiska programistyczne Laboratorium 3 Git, Bitbucket, IntelliJ IDEA Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy
Bardziej szczegółowo1. 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ółowoKlasy 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ółowoWYKONANIE 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ółowoWszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną,
Bardziej szczegółowoWstęp. Skąd pobrać program do obsługi FTP? Logowanie
Wstęp FTP - (ang. File Transfer Protocol - protokół transmisji danych) jest to protokół typu klient-serwer, który umożliwia przesyłanie plików na serwer, oraz z serwera poprzez program klienta FTP. Dzięki
Bardziej szczegółowoInstrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net
Instrukcja tworzenia aplikacji bazodanowej opartej o technologię Oracle i platformę.net Aby móc uzyskaćdostęp do bazy danych z zewnętrznych aplikacji, w tym wypadku aplikacji.net, niezbędne jest wykonanie
Bardziej szczegółowoProgramowanie komponentowe 5
Budowa warstwy klienta w architekturze typu klient-serwer zbudowanych z komponentów typu EE - klient desktopowy i internetowy. Zastosowanie komponentów opartych na technologii EJB 3.2. na podstawie https://docs.oracle.com/javaee/7/jeett.pdf
Bardziej szczegółowoWeb Services (SOAP) Ćwiczenie 1
Web Services (SOAP) Ćwiczenia dotyczące platformy Java EE zostały przygotowane z myślą o środowisku NetBeans w wersji 8.x (do pobrania z http://www.netbeans.org/). Do wykonania ćwiczeń dotyczących platformy
Bardziej szczegółowoInstalacja i konfiguracja IIS-a na potrzeby dostępu WEBowego/Secure
Instalacja i konfiguracja IIS-a na potrzeby dostępu WEBowego/Secure Viewer-a do aplikacji Wonderware InTouch Machine Edition Informator Techniczny Wonderware nr 164 27.06.2017 r. INSTALACJA MICROSOFT INTERNET
Bardziej szczegółowo4 C#. Tworzenie aplikacji sieciowych. 101 gotowych projektów
Wstęp... 7 Rozdział 1. Język C# i platforma.net... 9 Technologia.NET. Krótki wstęp... 9 Elementy języka C# i programowanie zorientowane obiektowo... 10 Przestrzenie nazw... 13 Kolekcje... 14 Zdarzenia
Bardziej szczegółowoZaawansowane aplikacje internetowe laboratorium REST
Zaawansowane aplikacje internetowe laboratorium REST Pytka Bartosz, Drożdż Mateusz, Ejkszto Mateusz, Łozowski Marcin, Tański Mariusz Do wykonania ćwiczeń potrzebne jest zintegrowane środowisko programistyczne
Bardziej szczegółowoInstrukcja obsługi serwera FTP v.28.12.2010
Instrukcja obsługi serwera FTP v.28.12.2010 1. Dostęp klienta do konta FTP 1.1. Wprowadzić do przeglądarki adres ftp://87.204.185.42 lub alternatywny adres IP ftp://82.11.1160.114 1.2. Wprowadzić nazwę
Bardziej szczegółowoLaboratorium 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ółowoBudowa 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ółowoInstalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition
Instalacja i konfiguracja IIS-a na potrzeby dostępu WEB do aplikacji Wonderware InTouch Machine Edition Informator Techniczny Wonderware nr 164 27.06.2017 r. INSTALACJA MICROSOFT INTERNET INFORMATION SERVICES
Bardziej szczegółowoProgramowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków
Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków mgr inż. Maciej Lasota Version 1.0, 13-05-2017 Spis treści Wyjątki....................................................................................
Bardziej szczegółowoProgramowanie 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ółowoSpis treści INTERFEJS (WEBSERVICES) - DOKUMENTACJA TECHNICZNA 1
I N T E R F E J S W E BSERVICES NADAWANIE PAKIETÓW D O S Y S T EMU MKP PRZEZ I N TERNET D O K U M E N T A C J A T E C H N I C Z N A P A Ź D Z I E R N I K 2 0 1 6 Spis treści 1. Wstęp... 2 2. Informacje
Bardziej szczegółowoProgramowanie 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ółowoAplikacje WWW - laboratorium
Aplikacje WWW - laboratorium JavaServer Pages Celem ćwiczenia jest zbudowanie kilku prostych stron internetowych z użyciem technologii JSP. Podczas ćwiczenia wykorzystany zostanie algorytm sortowania bąbelkowego
Bardziej szczegółowoProgramowanie zespołowe
Państwowa Wyższa Szkoła Zawodowa w Tarnowie Zakład Informatyki Laboratorium 6 Programowanie zespołowe Prowadzący: Kierunek: Semestr: Rok: Informatyka Zimowy 2 Programowanie zespołowe Wymagania wstępne
Bardziej szczegółowoAplikacje 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ółowoProgramowanie Systemów Rozproszonych Laboratorium 1 Wprowadzenie do Visual Studio i C# Paweł Paduch
Programowanie Systemów Rozproszonych Laboratorium 1 Wprowadzenie do Visual Studio i C# Paweł Paduch paduch@tu.kielce.pl 11-03-2019 Rozdział 1 Wstęp 1.1 Na początek Pierwsze zajęcia laboratoryjne z Programowania
Bardziej szczegółowoRozdział 2. Debugowanie kodu
Rozdział 2. Debugowanie kodu Jacek Matulewski Materiały dla Podyplomowego Studium Programowania i Zastosowania Komputerów, sekcja Projektowanie i tworzenie aplikacji dla platformy.net (pod patronatem Microsoft)
Bardziej szczegółowo5.4. Tworzymy formularze
5.4. Tworzymy formularze Zastosowanie formularzy Formularz to obiekt bazy danych, który daje możliwość tworzenia i modyfikacji danych w tabeli lub kwerendzie. Jego wielką zaletą jest umiejętność zautomatyzowania
Bardziej szczegółowoUsługi sieciowe laboratorium 2013 K.M. Ocetkiewicz, T. Goluch
Usługi laboratorium 2013 K.M. Ocetkiewicz, T. Goluch 1. Wstęp Usługa sieciowa jest zbiorem funkcji udostępnianych przez serwer. Jest to kolejne podejście do problemu zdalnego wołania procedur, w tym wypadku
Bardziej szczegółowoZaawansowane 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ółowoWykład 3 Inżynieria oprogramowania. Przykład 1 Bezpieczeństwo(2) wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz
Wykład 3 Inżynieria oprogramowania Przykład 1 Bezpieczeństwo(2) 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
Bardziej szczegółowoWindows 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ółowoProgramowanie 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ółowoWywoł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ółowoPodstawy 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ółowoWdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x
Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - 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ółowoEkspert 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Środowiska rozproszone. WebService
Środowiska rozproszone WebService Literatura Głównie informacje w sieci: www.wikipedia.pl www.w3.org www.google.pl http://www.cs.fsu.edu/~engelen/soap.html http://www.cs.fsu.edu/~engelen/calc.wsdl - przydkład
Bardziej szczegółowoWykład 4. Klasa List Kolejki Stosy Słowniki
Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien
Bardziej szczegółowoĆwiczenie 1. Przygotowanie środowiska JAVA
Ćwiczenie 1 Przygotowanie środowiska JAVA 1. Wprowadzenie teoretyczne Instalacja JDK (Java Development Kit) NaleŜy pobrać z java.sun.com środowisko i zainstalować je. Następnie naleŝy skonfigurować środowisko.
Bardziej szczegółowoKurs 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ółowoUsługi sieciowe laboratorium 2018 K.M. Ocetkiewicz, T. Goluch
Usługi sieciowe laboratorium 2018 K.M. Ocetkiewicz, T. Goluch 1. Wstęp Usługa sieciowa jest zbiorem funkcji udostępnianych przez serwer. Jest to kolejne podejście do problemu zdalnego wołania procedur,
Bardziej szczegółowoDb4o 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ółowoMechanizmy pracy równoległej. Jarosław Kuchta
Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy
Bardziej szczegółowoVisual 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ółowoMikroTik Serwer OpenVPN
MikroTik Serwer OpenVPN Generowanie certyfikatów na systemie Debian. Instalujemy OpenVPN, następnie przechodzimy do katalogu ze skryptami: cd /usr/share/openvpn/easyrsa edytujemy plik vars ustawiając kraj,
Bardziej szczegółowoFragmenty 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ółowoInformatyka 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ółowoKonfiguracja współpracy urządzeń mobilnych (bonowników).
Konfiguracja współpracy urządzeń mobilnych (bonowników). Współpracę Bistro z bonownikami można realizować na dwa sposoby: poprzez udostępnienie folderu w Windows albo za pomocą serwera ftp. 1. Współpraca
Bardziej szczegółowoInstrukcja 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ółowoKurs 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ółowoInstrukcja laboratoryjna cz.6
Programowanie aplikacji internetowych 2013/2014 Instrukcja laboratoryjna cz.6 Technologia Silverlight cz.2 Prowadzący: Tomasz Goluch Wersja: 3.0 I. Model danych (tworzenie bazy na podstawie modelu). Cel:
Bardziej szczegółowoUsługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl
Budowa aplikacji sieciowych. Usługi WWW dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska 48 50-204 Opole zlipinski@math.uni.opole.pl Usługi WWW W3C Working Group, Web Services Architecture,
Bardziej szczegółowoWywoływanie metod zdalnych
Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia
Bardziej szczegółowo2. 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ółowoInstrukcja 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ółowoZaawansowane aplikacje internetowe laboratorium
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ółowoWielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services
Web Services Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski Web Services Plan wykładu Wprowadzenie do technologii Web Services Architektura Web Services Protokół komunikacyjny SOAP Język opisu
Bardziej szczegółowoInstrukcja obsługi programu CMS Dla rejestratorów HANBANG
Instrukcja obsługi programu CMS Dla rejestratorów HANBANG 1. Wymagania sprzętowe: Minimalne wymagania sprzętowe: System operacyjny: Windows Serwer 2003 Standard Edition SP2 Baza danych: Mysql5.0 Procesor:
Bardziej szczegółowoJę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ółowoZdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu
Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja
Bardziej szczegółowo