powerpoint презентация (1,21 mb)

76

Upload: ngokhanh

Post on 11-Jan-2017

236 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: PowerPoint презентация (1,21 MB)
Page 2: PowerPoint презентация (1,21 MB)

Web услугиWeb услугис ASP.NETс ASP.NET

Програмиране за .NET FrameworkПрограмиране за .NET Frameworkhttp://www.nakov.com/dotnet/http://www.nakov.com/dotnet/

Светлин НаковСветлин НаковНационална академия по Национална академия по разработка на софтуерразработка на софтуерacademy.devbg.orgacademy.devbg.org

Page 3: PowerPoint презентация (1,21 MB)

Необходими знанияНеобходими знания Базови познания за .NET FrameworkБазови познания за .NET Framework Базови познания за езика C#Базови познания за езика C# Базови познания за Базови познания за ASP.NETASP.NET Начални умения за работа с Начални умения за работа с Visual Visual

Studio .NETStudio .NET Познания по XMLПознания по XML АтрибутиАтрибути

Page 4: PowerPoint презентация (1,21 MB)

СъдържаниеСъдържание Инфраструктурата на Web услугитеИнфраструктурата на Web услугите

Разпределени приложенияРазпределени приложения Нуждата от Web услугиНуждата от Web услуги Услуги и Web услугиУслуги и Web услуги UDDI директории за Web услугиUDDI директории за Web услуги Откриване на Web услуги (DISCO)Откриване на Web услуги (DISCO) WSDL описания на услугиWSDL описания на услуги SOAP – формат на заявкитеSOAP – формат на заявките Протоколен стек на Web услугитеПротоколен стек на Web услугите Сценарии за използване на Web услугиСценарии за използване на Web услуги .NET Enterprise приложения.NET Enterprise приложения

Page 5: PowerPoint презентация (1,21 MB)

Съдържание (2)Съдържание (2) Web услугите в ASP.NETWeb услугите в ASP.NET

АрхитектураАрхитектура Създаване на Web услугиСъздаване на Web услуги Публикуване на Web услугиПубликуване на Web услуги Използване на Web услуги. Генериране Използване на Web услуги. Генериране

на прокси класна прокси клас Web услугите и VS.NET – създаване и Web услугите и VS.NET – създаване и

консумиранеконсумиране Атрибути за Web услугите – Атрибути за Web услугите –

[WebService][WebService], , [WebMethod][WebMethod] Прехвърляне на типовеПрехвърляне на типове

Page 6: PowerPoint презентация (1,21 MB)

Съдържание (3)Съдържание (3) Web услугите в ASP.NETWeb услугите в ASP.NET

Deployment Deployment на на Web Web услуги върху услуги върху IISIIS Дебъгване на Web услугиДебъгване на Web услуги Моделът на изпълнение на Моделът на изпълнение на WebWeb

услугитеуслугите в в ASP.NETASP.NET Асинхронно извикванеАсинхронно извикване Web услуги и работа с данниWeb услуги и работа с данни Поддръжка на сесииПоддръжка на сесии Сигурност на Сигурност на Web Web услугитеуслугите Сигурност чрез сесииСигурност чрез сесии Изключенията в Изключенията в Web Web услугитеуслугите

Page 7: PowerPoint презентация (1,21 MB)

Разпределени приложенияРазпределени приложения Повечето днешни приложения са Повечето днешни приложения са

разпределениразпределени Състоят се от няколко раздалечени Състоят се от няколко раздалечени

компонента, които си взаимодействаткомпонента, които си взаимодействат Модели за разпределени приложенияМодели за разпределени приложения

Модел "клиент/сървър"Модел "клиент/сървър" Модел "разпределени обекти"Модел "разпределени обекти"

DCOM – DCOM – ползва се в ползва се в Microsoft WindowsMicrosoft Windows CORBA – CORBA – отворен стандарт, доста сложенотворен стандарт, доста сложен Java RMIJava RMI – базира се на – базира се на JavaJava технологията технологията .NET Remoting – .NET Remoting – ползва се в ползва се в .NET Framework.NET Framework

Модел "Модел "Web Web услуги"услуги"

Page 8: PowerPoint презентация (1,21 MB)

Нуждата от Нуждата от Web Web услугиуслуги Моделът "разпределени обекти не е Моделът "разпределени обекти не е

подходящ за употреба в Интернетподходящ за употреба в Интернет Силна свързаност между услуга и клиентСилна свързаност между услуга и клиент Трудности при хетерогенна Трудности при хетерогенна

инфраструктураинфраструктура Проблеми с версиитеПроблеми с версиите Защитните стени Защитните стени (firewalls)(firewalls) силно силно

затрудняват комуникациятазатрудняват комуникацията COM/DCOM COM/DCOM се поддържа само в се поддържа само в WindowsWindows CORBA CORBA не работи добре през Интернетне работи добре през Интернет Java RMI / EJB Java RMI / EJB сесе поддържат само в поддържат само в JavaJava

Решението: Решението: WebWeb услуги услуги

Page 9: PowerPoint презентация (1,21 MB)

Какво е услуга?Какво е услуга? В реалния свят услугата е:В реалния свят услугата е:

Единица работа, извършвана от Единица работа, извършвана от доставчик на услугидоставчик на услуги

Предоставя някакъв желан резултат на Предоставя някакъв желан резултат на клиента (консуматор на услуги)клиента (консуматор на услуги)

С ясно дефинирани входни параметри и С ясно дефинирани входни параметри и изходни резултатиизходни резултати

Лесна за използванеЛесна за използване Винаги достъпнаВинаги достъпна Има характеристики за качество (цена, Има характеристики за качество (цена,

време за извършваневреме за извършване и др.)и др.)

Page 10: PowerPoint презентация (1,21 MB)

Web-Web-услугиуслуги Web-Web-услугите моделират услугите от услугите моделират услугите от

реалния святреалния свят Програмни компоненти, достъпни Програмни компоненти, достъпни

отдалечено през отдалечено през WebWeb Модел за изпълнение “заявка-отговор”Модел за изпълнение “заявка-отговор”

Клиентът поръчва, услугата изпълнява Клиентът поръчва, услугата изпълнява поръчката и връща резултатпоръчката и връща резултат

Използват отворени стандарти за Използват отворени стандарти за комуникация – комуникация – HTTP, XML HTTP, XML ии SOAP SOAP

Сами описват интерфейса си за достъп Сами описват интерфейса си за достъп чрез езика чрез езика WSDLWSDL

Могат да бъдат търсени чрез Могат да бъдат търсени чрез UDDIUDDI

Page 11: PowerPoint презентация (1,21 MB)

Web-Web-услугиуслуги Web-Web-услугите моделират услугите от услугите моделират услугите от

реалния святреалния свят Работят на принципа на обмяна на Работят на принципа на обмяна на

SOAP SOAP съобщениясъобщения Съобщенията съдържат структурирана Съобщенията съдържат структурирана

информация – данни + метаданни информация – данни + метаданни (описание на данните)(описание на данните)

Независими от операционната система, Независими от операционната система, платформата и езика за програмиранеплатформата и езика за програмиране

Функционално-независими (Функционално-независими (loosely loosely coupled)coupled)

Слабо-обвързани с клиентаСлабо-обвързани с клиента

Page 12: PowerPoint презентация (1,21 MB)

ИнфраструктуратаИнфраструктурата Инфраструктурата на Инфраструктурата на Web Web услугите услугите

се състои от следните компонентисе състои от следните компоненти ДиректорияДиректория (Directory) (Directory)

UDDIUDDI Откриване (Откриване (DiscoveryDiscovery))

DISCODISCO Описание (Описание (DescriptionDescription))

WSDLWSDL Формат на заявките Формат на заявките (Wire Format)(Wire Format)

SOAPSOAP XML, XSD, HTTPXML, XSD, HTTP

Page 13: PowerPoint презентация (1,21 MB)

Директории за Директории за Web Web услугиуслуги Директориите за Web услугиДиректориите за Web услуги

Позволяват търсене на Web услугиПозволяват търсене на Web услуги Организирани са по категорииОрганизирани са по категории Може да се търси по различни Може да се търси по различни

параметрипараметри Използват UDDI стандартаИзползват UDDI стандарта

UDDI (Universal Description, Discovery and UDDI (Universal Description, Discovery and Integration)Integration)

Отворен стандарт на OASISОтворен стандарт на OASIS Представлява Представлява WebWeb услуга, предлагаща услуга, предлагаща

регистрация и търсене на други регистрация и търсене на други WebWeb услуги услуги Пример за UDDI директория:Пример за UDDI директория:

http://uddi.microsoft.comhttp://uddi.microsoft.com

Page 14: PowerPoint презентация (1,21 MB)

Директории Директории – – примерпример

Page 15: PowerPoint презентация (1,21 MB)

Откриване на Откриване на Web Web услугиуслуги Откриването на Web услугиОткриването на Web услуги

Позволява да се извлече описанието на Позволява да се извлече описанието на Web услуга от даден сървърWeb услуга от даден сървър

Използват се т. нар. "discovery" Използват се т. нар. "discovery" файлове (файлове (*.disco*.disco))

DISCO (Discovery of Web Services)DISCO (Discovery of Web Services) XML XML базиран езикбазиран език Описва Web услугата – връзка към WSDL Описва Web услугата – връзка към WSDL

файла, връзка към самата услуга и връзка файла, връзка към самата услуга и връзка към документация за услугатакъм документация за услугата

Обикновено Обикновено discodisco файлът стои в файлът стои в главната директория на услугатаглавната директория на услугата Напр. Напр. http://www.mysite.com/math/math.discohttp://www.mysite.com/math/math.disco

Page 16: PowerPoint презентация (1,21 MB)

DISCO DISCO файлове – примерфайлове – пример<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><discovery<discovery xmlns="http://schemas.xmlsoap.org/disco/">xmlns="http://schemas.xmlsoap.org/disco/">

<contractRef<contractRef ref="http://www.myserver.com/Demo-5-Service-ref="http://www.myserver.com/Demo-5-Service-Types/TypesService.asmx?wsdl"Types/TypesService.asmx?wsdl" docRef="http://www.myserver.com/Demo-5-Service-docRef="http://www.myserver.com/Demo-5-Service-Types/TypesService.asmx"Types/TypesService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />xmlns="http://schemas.xmlsoap.org/disco/scl/" />

<soap <soap address="http://www.myserver.com/Demo-5-Service-address="http://www.myserver.com/Demo-5-Service-Types/TypesService.asmx"Types/TypesService.asmx" xmlns:q1="http://www.myserver.com/schemas/ xmlns:q1="http://www.myserver.com/schemas/ Demo_5_Service_Types/"Demo_5_Service_Types/" binding="q1:TypesServiceSoap"binding="q1:TypesServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />xmlns="http://schemas.xmlsoap.org/disco/soap/" />

</discovery></discovery>

Page 17: PowerPoint презентация (1,21 MB)

WSDL WSDL описания на услугиописания на услуги WSDL (Web Services Description WSDL (Web Services Description

Language)Language) Описва интерфейса за достъп до Описва интерфейса за достъп до

дадена Web услугададена Web услуга имената на поддържаните методиимената на поддържаните методи входни и изходни параметривходни и изходни параметри използвани типове данниизползвани типове данни

XML базиран отворен стандарт на W3CXML базиран отворен стандарт на W3C ASP.NET Web услугите връщат своя ASP.NET Web услугите връщат своя

WSDL при извикване с параметър WSDL при извикване с параметър ?wsdl?wsdl http://localhost/MyService.asmx?wsdlhttp://localhost/MyService.asmx?wsdl

Page 18: PowerPoint презентация (1,21 MB)

WSDL WSDL описание – примерописание – пример<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><definitions<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema"xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://www.devbg.org/ws/MathService"xmlns:s0="http://www.devbg.org/ws/MathService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://www.devbg.org/ws/MathService"targetNamespace="http://www.devbg.org/ws/MathService" xmlns="http://schemas.xmlsoap.org/wsdl/">xmlns="http://schemas.xmlsoap.org/wsdl/">

<types> … </types><types> … </types>

<message name="AddSoapIn"> … </message><message name="AddSoapIn"> … </message> <portType name="MathServiceSoap"> … </portType><portType name="MathServiceSoap"> … </portType> <binding name="MathServiceSoap" … > … </binding><binding name="MathServiceSoap" … > … </binding> <service name="MathService"> … </service><service name="MathService"> … </service>

</definitions></definitions>

Page 19: PowerPoint презентация (1,21 MB)

SOAP – SOAP – формат на заявкитеформат на заявките SOAP (Simple Object Access Protocol)SOAP (Simple Object Access Protocol)

Дефинира Дефинира XMLXML базиран формат за обмяна на базиран формат за обмяна на съобщениясъобщения

Отворен стандарт на Отворен стандарт на W3CW3C Едно Едно SOAP SOAP съобщение се състои отсъобщение се състои от::

SOAP SOAP хедър – описва параметри на хедър – описва параметри на съобщениетосъобщението ( (метаданниметаданни))

SOAPSOAP тяло – съдържа самото съобщение тяло – съдържа самото съобщение (данни – изпратената или върнатата заявка)(данни – изпратената или върнатата заявка)

Обикновено Обикновено SOAP SOAP съобщенията се съобщенията се предават по протокол предават по протокол HTTPHTTP Това позволява да преминават през Това позволява да преминават през firewallfirewall

Page 20: PowerPoint презентация (1,21 MB)

SOAP SOAP заявка – примерзаявка – пример<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<soap:Envelope<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body><soap:Body> <CalcDistance xmlns="http://www.devbg.org/<CalcDistance xmlns="http://www.devbg.org/CalcCalc">"> <p1><p1> <x><x>44</x></x> <y>5</y><y>5</y> </p1></p1> <p2><p2> <x><x>77</x></x> <y><y>-3-3</y></y> </p2></p2> </CalcDistance></CalcDistance> </soap:Body></soap:Body>

</soap:Envelope></soap:Envelope>

Page 21: PowerPoint презентация (1,21 MB)

SOAP SOAP отговор – примеротговор – пример<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>

<soap:Envelope<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body><soap:Body> <CalcDistanceResponse<CalcDistanceResponse xmlns="http://www.devbg.org/Calc/">xmlns="http://www.devbg.org/Calc/"> <CalcDistanceResult><CalcDistanceResult> 8,544003745317538,54400374531753 </CalcDistanceResult></CalcDistanceResult> </CalcDistanceResponse></CalcDistanceResponse> </soap:Body></soap:Body>

</soap:Envelope></soap:Envelope>

Page 22: PowerPoint презентация (1,21 MB)

ИнфраструктуратаИнфраструктурата

Източник: MSDN

Page 23: PowerPoint презентация (1,21 MB)

Протоколен стек на Протоколен стек на WebWeb услугите услугите

SOAPSOAP СъобщениеСъобщение

WSDLWSDL ИнтерфейсИнтерфейс

XSDXSD СхемаСхема

XMLXML

HTTPHTTP

ДанниДанни

ТранспортТранспорт

Page 24: PowerPoint презентация (1,21 MB)

HTTPHTTP, , XML, XSDXML, XSD HTTPHTTP

Протокол за обмяна на информация между Протокол за обмяна на информация между Web Web сървър и сървър и WebWeb браузър браузър

Използва модела "заявка-отговор"Използва модела "заявка-отговор" Не поддържа стандартно сесия (Не поддържа стандартно сесия (stateless)stateless) Отворен стандарт на Отворен стандарт на W3CW3C

XMLXML Прост, текстово-базиран език за структурирано Прост, текстово-базиран език за структурирано

описание на информацияописание на информация Отворен стандарт на Отворен стандарт на W3CW3C

XSDXSD Мощен Мощен XML-XML-базиран език за описание базиран език за описание

структурата (формата) на структурата (формата) на XML XML документидокументи Отворен стандарт на Отворен стандарт на W3CW3C

Page 25: PowerPoint презентация (1,21 MB)

Сценарии за използванеСценарии за използване Типични сценарии за употреба на Типични сценарии за употреба на

Web Web услугиуслуги Услуги към клиентски приложенияУслуги към клиентски приложения

Могат да се консумират директно от Могат да се консумират директно от клиентите, например от клиентите, например от MS OfficeMS Office

Интеграция на приложенияИнтеграция на приложения Взаимодействие между приложения, Взаимодействие между приложения,

работещи на различни платформи и ОСработещи на различни платформи и ОС Връзка между отделните компоненти Връзка между отделните компоненти

при при Enterprise Enterprise приложенияприложения

Front EndFront End(клиент)(клиент) Web Web услугауслуга Back EndBack End

((база данни)база данни)SOAPSOAPпакетипакети

ADOADO.NET.NET

Page 26: PowerPoint презентация (1,21 MB)

Enterprise Enterprise приложенияприложения Какво са "Какво са "Enterprise Enterprise приложенията"?приложенията"?

Многослойни разпределени Многослойни разпределени приложения, отговарящи на нуждите на приложения, отговарящи на нуждите на големите корпоративни клиентиголемите корпоративни клиенти

НадеждниНадеждни СкалируемиСкалируеми Лесно разширяемиЛесно разширяеми Устойчиви на сривовеУстойчиви на сривове

""EnterpriseEnterprise"" е е buzzword buzzword –– понятие, за понятие, за което много се говори, много се което много се говори, много се спекулира с него, но няма точна спекулира с него, но няма точна дефиниция какво означавадефиниция какво означава

Page 27: PowerPoint презентация (1,21 MB)

.NET Enterprise .NET Enterprise приложенияприложения Класическата Класическата Enterprise Enterprise архитектура архитектура

е трислойна:е трислойна:

Web КлиентПрезентационен слой (Presentation Tier)

ASP.NET Webприложение

Бизнес слой(Business Tier)

ASP.NETWeb услуга

Windows Formsприложение(Rich client)

SOAP

SOAP

Web браузър

HTTPСлой за данни(Back End)

База от данни

ADO.NET

Page 28: PowerPoint презентация (1,21 MB)

.NET Enterprise .NET Enterprise приложенияприложения Слоевете в трислойнатаСлоевете в трислойната архитектура:архитектура:

Презентационен слой (Front End)Презентационен слой (Front End) Управлява взаимодействието с Управлява взаимодействието с

потребителя (потребителски интерфейс)потребителя (потребителски интерфейс) Windows Forms и ASP.NET Web приложенияWindows Forms и ASP.NET Web приложения

Бизнес слой (Business Tier)Бизнес слой (Business Tier) Реализира работните процеси и операциите Реализира работните процеси и операциите

над данните (бизнес логиката)над данните (бизнес логиката) ASP.NET Web услугиASP.NET Web услуги

Слой за данните (Back End)Слой за данните (Back End) Управлява данните на систематаУправлява данните на системата База от данни (База от данни (MS MS SQL ServerSQL Server, Oracle, DB2, Oracle, DB2))

Page 29: PowerPoint презентация (1,21 MB)

Web Web услугите в услугите в ASP.NETASP.NET Реализират се в пространството Реализират се в пространството

System.Web.ServicesSystem.Web.Services Имплементират предаването и Имплементират предаването и

приемането на SOAP съобщенияприемането на SOAP съобщения Осигуряват преобразуване на Осигуряват преобразуване на

типовете от XML в .NET типове и типовете от XML в .NET типове и обратнотообратното

Автоматично генериране на Автоматично генериране на WSDLWSDL описанияописания

Автоматично генериране на Автоматично генериране на C# C# прокси класове по прокси класове по WSDLWSDL описание описание

Page 30: PowerPoint презентация (1,21 MB)

ASP.NET Web ASP.NET Web услуги – архитектурауслуги – архитектура

IISIISОперационна система (Win2000, WinXP, Win2003)Операционна система (Win2000, WinXP, Win2003)

ISAPI ISAPI филтърфилтърCommon Language RuntimeCommon Language Runtime

ASP.NET Web услугаASP.NET Web услуга

[WebMethod][WebMethod]public string public string BBlah()lah(){{ …… }}

КлиентскиКлиентски кодкод

ОСОС

Платформа Платформа ((.NET.NET / /

JavaJava // PHP / PHP / Perl)Perl)

SOAP SOAP заявказаявка

SOAP SOAP отговоротговор

ASP.NET ASP.NET работен процесработен процес

Web услугите се хостват в IIS (Internet Web услугите се хостват в IIS (Internet Information Server)Information Server)

Изпълняват се от ASP.NET работния Изпълняват се от ASP.NET работния процес (aspnet_wp)процес (aspnet_wp)

Page 31: PowerPoint презентация (1,21 MB)

Създаване на Създаване на Web Web услугиуслуги В .NET Framework за създаване на В .NET Framework за създаване на

Web услуга се създава Web услуга се създава .asmx.asmx файл файл Задава се специален таг, указващ, че Задава се специален таг, указващ, че

файлът е Web услуга:файлът е Web услуга:

Наследява се класът Наследява се класът System.Web. System.Web. Services.WebServiceServices.WebService (не е (не е задължително)задължително)

Имплементират се 1 или няколко Имплементират се 1 или няколко WebWeb метода:метода:

<%@ WebService Language="C#" Class="<%@ WebService Language="C#" Class="SomeSomeService" %>Service" %>

[WebMethod] public void SomeMethod(…) { [WebMethod] public void SomeMethod(…) { …… } }

Page 32: PowerPoint презентация (1,21 MB)

Web-Web-услуга –услуга – примерпример

<%@ WebService Language="C#" Class="AddService" %><%@ WebService Language="C#" Class="AddService" %>

using System;using System;using System.Web.Services;using System.Web.Services;

public class AddService : WebServicepublic class AddService : WebService{{

[WebMethod][WebMethod] public int Add(int a, int b)public int Add(int a, int b) {{ return a + b;return a + b; }}

}}

Demo-1-AddService.asmxDemo-1-AddService.asmx

Page 33: PowerPoint презентация (1,21 MB)

Публикуване на Публикуване на Web Web услугиуслуги Web услугите се изпълняват от Web услугите се изпълняват от

ASP.NET като Web-приложенияASP.NET като Web-приложения Могат да се настройват както Web-Могат да се настройват както Web-

приложенията с файловетеприложенията с файловете Web.configWeb.config и и Global.asaxGlobal.asax

Обикновено се хостват от IIS (Internet Обикновено се хостват от IIS (Internet Information Server)Information Server)

Публикуване на Web услугаПубликуване на Web услуга Копира се директорията на услугата в Копира се директорията на услугата в C:\C:\

Inetpub\wwwrootInetpub\wwwroot Създава се Web Application в IISСъздава се Web Application в IIS Компилира се услугата (ако е необходимо)Компилира се услугата (ако е необходимо)

Page 34: PowerPoint презентация (1,21 MB)

Демонстрация #1Демонстрация #1 Нашата първа Нашата първа Web Web услугауслуга – –

публикуване и тестванепубликуване и тестване

Page 35: PowerPoint презентация (1,21 MB)

Използване на Използване на WebWeb услуги услуги В .NET Framework за консумиране на Web В .NET Framework за консумиране на Web

услуги се генерират т. нар. прокси класовеуслуги се генерират т. нар. прокси класове Прокси класоветеПрокси класовете

Генерират се по WSDL дефиницията на Генерират се по WSDL дефиницията на Web услугата (Web услугата (http://http://……/service?wsdl/service?wsdl))

Представляват сорс код на C# (VB.NET, …)Представляват сорс код на C# (VB.NET, …) Преобразуват заявките от .NET към SOAP Преобразуват заявките от .NET към SOAP

заявки и SOAP отговорите към .NETзаявки и SOAP отговорите към .NET Преобразуват .NET типовете в XML и Преобразуват .NET типовете в XML и

обратното (marshalling)обратното (marshalling)

клиентклиент проксипрокси.NET.NET

типоветипове Web Web услугауслугаSOAPSOAPпакетипакети

Page 36: PowerPoint презентация (1,21 MB)

Генериране на прокси класГенериране на прокси клас Прокси класовете могат да се Прокси класовете могат да се

генерират с инструмента генерират с инструмента wsdlwsdl Пример:Пример:

Резултатът е прокси класът Резултатът е прокси класът AddService.csAddService.cs

За всеки метод За всеки метод XXXXXX се генерират 3 се генерират 3 метода с подходящите параметри:метода с подходящите параметри: XXX(…)XXX(…) – за синхронно извикване – за синхронно извикване BeginXXX(…)BeginXXX(…) и и EndXXX(…)EndXXX(…) – за асинхронно – за асинхронно

извикванеизвикване

wsdl http://localhost/Demo-1-wsdl http://localhost/Demo-1-AddAddService/Demo-1-Service/Demo-1-AddService.asmx?wsdlAddService.asmx?wsdl

Page 37: PowerPoint презентация (1,21 MB)

Използване на прокси класИзползване на прокси клас Използването на прокси класовете е Използването на прокси класовете е

като обикновените класовекато обикновените класове Инстанцира се прокси класътИнстанцира се прокси класът Извикват му се методитеИзвикват му се методите

Методите могат да предизвикат Методите могат да предизвикат SoapExceptionSoapException или или WebExceptionWebException

При промяна на интерфейса на Web При промяна на интерфейса на Web услугата трябва да се генерира услугата трябва да се генерира отново прокси класътотново прокси класът

AddService addSevice = new AddService();AddService addSevice = new AddService();int sum = addService.Add(5, 6);int sum = addService.Add(5, 6);

Page 38: PowerPoint презентация (1,21 MB)

Демонстрация #2Демонстрация #2 Използване на Използване на WebWeb услуга услуга

Page 39: PowerPoint презентация (1,21 MB)

WebWeb услугите и услугите и VS.NETVS.NET Visual Studio .NET Visual Studio .NET има силна има силна

поддръжка за поддръжка за WebWeb услуги услуги Създаване на Създаване на Web Web услугиуслуги

Консумиране на Консумиране на WebWeb услуги услуги Автоматично генериране на прокси Автоматично генериране на прокси

клас по клас по WSDL WSDL описаниетоописанието

Page 40: PowerPoint презентация (1,21 MB)

Създаване на услуга с Създаване на услуга с VS.NETVS.NET При създаване на нова При създаване на нова WebWeb-услуга -услуга

VS.NET 2003 VS.NET 2003 прави следното:прави следното:1.1. Създава .sln файл:Създава .sln файл:

2.2. Създава виртуална директория в Създава виртуална директория в IISIIS::

3.3. Създава в нея файловете на проекта:Създава в нея файловете на проекта:

C:\Documents and Settings\C:\Documents and Settings\<your user name><your user name>\\My Documents\Visual Studio Projects\My Documents\Visual Studio Projects\<Web<WebServiceServiceName>Name>\\<Web<WebServiceServiceName>Name>.sln.sln

C:\Inetput\wwwroot\C:\Inetput\wwwroot\<WebAppName><WebAppName>

<WebServiceName><WebServiceName>.csproj.csproj, , <WebServiceName><WebServiceName>.asmx.asmx, , <WebServiceName><WebServiceName>.asmx.cs.asmx.cs, , <WebServiceName><WebServiceName>.resx.resx,,Web.configWeb.config, , Global.asaxGlobal.asax, , Global.asax.csGlobal.asax.cs

Page 41: PowerPoint презентация (1,21 MB)

Демонстрация #3Демонстрация #3 Създаване на Създаване на WebWeb услуга с услуга с VS.NETVS.NET

Page 42: PowerPoint презентация (1,21 MB)

Демонстрация #4Демонстрация #4 Консумиране на Консумиране на WebWeb услуга с услуга с VS.NETVS.NET

Page 43: PowerPoint презентация (1,21 MB)

Атрибути за Атрибути за Web Web услугитеуслугите Атрибутът Атрибутът [WebService][WebService]

Задава описание на Web услугатаЗадава описание на Web услугата NamespaceNamespace – задава XML пространство, което – задава XML пространство, което

идентифицира уникално услугатаидентифицира уникално услугата NameName – – име на услугатаиме на услугата DescriptionDescription – текстово описание на услугата – текстово описание на услугата

Атрибутът Атрибутът [WebMethod][WebMethod] Указва, че даден метод е достъпен за Указва, че даден метод е достъпен за

клиентите на Web услугатаклиентите на Web услугата EnableSession=trueEnableSession=true – позволява използване – позволява използване

на сесия (на сесия (SessionSession обекта в обекта в ASP.NETASP.NET)) DescriptionDescription – текстово описание на метода – текстово описание на метода

Page 44: PowerPoint презентация (1,21 MB)

Атрибути на услугите – примерАтрибути на услугите – пример[WebService([WebService( Description="Demo Web service –Description="Demo Web service – " +" + " " demonstratesdemonstrates complex complex type marshalling.",type marshalling.", Namespace=Namespace=""http://www.devbg.org/services/http://www.devbg.org/services/" +" + ""Demo_5_Service_Types/Demo_5_Service_Types/2004/12/172004/12/17",", Name="Demo 5 - Service Types")]Name="Demo 5 - Service Types")]public class TypesService :public class TypesService : System.Web.Services.WebServiceSystem.Web.Services.WebService{{ ......

[WebMethod([WebMethod( Description="Description="Returns the list ofReturns the list of " +" + ""currently active issuescurrently active issues.",.", EnableSession=true)]EnableSession=true)] public Issuepublic Issue[][] GetIssues() GetIssues() {{ …… }} ......}}

Page 45: PowerPoint презентация (1,21 MB)

Прехвърляне на типовеПрехвърляне на типове Прехвърлянето на типовете (Прехвърлянето на типовете (type type

marshalling) marshalling) в в .NET Framework .NET Framework се се извършва автоматичноизвършва автоматично Използва се вградената Използва се вградената XMLXML сериализация сериализация

Като параметри и връщана стойност на Като параметри и връщана стойност на методите могат да бъдат използвани:методите могат да бъдат използвани:

ТипТип ОписаниеОписаниеПримитивни Примитивни типоветипове

Например: Например: stringstring, , charchar, , bytebyte, , boolbool, , sbytesbyte, , intint, , uintuint, , longlong, , ulongulong, , shortshort, , ushortushort, , floatfloat, , doubledouble, , decimaldecimal, , ……

Изброени Изброени типоветипове

Например: Например: enum Color {Red, Blue}enum Color {Red, Blue}Предават се като низове. Ползват се Предават се като низове. Ползват се имената на изброените стойности.имената на изброените стойности.

Page 46: PowerPoint презентация (1,21 MB)

Прехвърляне на типовеПрехвърляне на типове Като параметри и връщана стойност на Като параметри и връщана стойност на

методите могат да бъдат използвани:методите могат да бъдат използвани:

ТипТип ОписаниеОписание

Класове и Класове и структуриструктури

Предават се само публичните полета и Предават се само публичните полета и свойства на класовете и структурите. свойства на класовете и структурите. Поддържат се вложени типове и Поддържат се вложени типове и дървовидни структури, но не и цикли. дървовидни структури, но не и цикли. Трябва да е дефиниран конструктор без Трябва да е дефиниран конструктор без параметри! Ползва се XML сериализация.параметри! Ползва се XML сериализация.Примери:Примери:public struct Pointpublic struct Point{ public int x, y; }{ public int x, y; }public class Studentpublic class Student{{ public int Age {public int Age { getget {…}{…} setset {…}{…} }}

Page 47: PowerPoint презентация (1,21 MB)

Прехвърляне на типовеПрехвърляне на типове Като параметри и връщана стойност на Като параметри и връщана стойност на

методите могат да бъдат използвани:методите могат да бъдат използвани:

ТипТип ОписаниеОписание

МасивиМасивиМасиви от примитивни типове, изброени Масиви от примитивни типове, изброени типове, класове или структуритипове, класове или структуриНапример: Например: string[]string[], , Color[]Color[], , Point[]Point[]

КолекцииКолекцииКолекции от примитивни типове, Колекции от примитивни типове, изброени типове, класове или структури.изброени типове, класове или структури.Пример: Пример: ICollectionICollection, , ArrayListArrayList, …, …Предават се като масиви.Предават се като масиви.

DataSetDataSet обектиобекти

ADO.NET ADO.NET DataSetDataSet обекти. Предават се обекти. Предават се заедно с XSD схемата, която описва заедно с XSD схемата, която описва структурата им.структурата им.

XmlNodeXmlNode XML фрагменти. Предават се в чист вид.XML фрагменти. Предават се в чист вид.

Page 48: PowerPoint презентация (1,21 MB)

DeploymentDeployment на на WebWeb услуга услуга Искаме да публикуваме Web-услуга Искаме да публикуваме Web-услуга

МyServiceМyService, която имаме на сорс-код, която имаме на сорс-код1.1. Копираме всички файлове на услугата Копираме всички файлове на услугата

в в C:\Inetpub\wwwroot\MyServiceC:\Inetpub\wwwroot\MyService2.2. От IIS административната конзола От IIS административната конзола

създаваме Web приложение за създаваме Web приложение за виртуалната директория виртуалната директория MyServiceMyService

3.3. Компилираме услугата с VS.NETКомпилираме услугата с VS.NET Ако няма да дебъгваме (например Ако няма да дебъгваме (например

при Release), изтриваме сорс-кода:при Release), изтриваме сорс-кода:del *.cs *.csproj *.resx *.webinfo …del *.cs *.csproj *.resx *.webinfo …

Page 49: PowerPoint презентация (1,21 MB)

Демонстрация #Демонстрация #55 Прехвърляне на сложни типове – Прехвърляне на сложни типове –

Web Web услугатауслугата

Page 50: PowerPoint презентация (1,21 MB)

Демонстрация #6Демонстрация #6 Прехвърляне на сложни типове – Прехвърляне на сложни типове –

клиент за клиент за Web Web услугатауслугата

Page 51: PowerPoint презентация (1,21 MB)

Демонстрация #7Демонстрация #7 Дебъгване на Дебъгване на Web Web услугиуслуги

Page 52: PowerPoint презентация (1,21 MB)

Моделът на изпълнениеМоделът на изпълнение За всяка заявка към За всяка заявка към Web Web услуга услуга

ASP.NET ASP.NET прави следното:прави следното:1.1. Инстанцира класа на Инстанцира класа на WebWeb-услугата-услугата2.2. Заделя отделна нишка от пулаЗаделя отделна нишка от пула3.3. Изпълнява заявката в тази нишкаИзпълнява заявката в тази нишка4.4. Връща резултата към клиентаВръща резултата към клиента5.5. Връща нишката в обратно пулаВръща нишката в обратно пула6.6. Оставя инстанцията на класа на Оставя инстанцията на класа на

услугата да бъде унищожена от услугата да бъде унищожена от GCGC Заявките се подреждат в опашка и се Заявките се подреждат в опашка и се

изпълняват по няколко едновременноизпълняват по няколко едновременно

Page 53: PowerPoint презентация (1,21 MB)

Асинхронно извикванеАсинхронно извикване Асинхронното извикване се използва при Асинхронното извикване се използва при

времеотнемащи операции с Web услугивремеотнемащи операции с Web услуги За асинхронни извиквания в прокси класа За асинхронни извиквания в прокси класа

има методи има методи BeginXXX(BeginXXX(…)…) и и EndXXX(EndXXX(…)…) При завършване услугата извиква зададен При завършване услугата извиква зададен

метод за обратно извикване (метод за обратно извикване (callback)callback)public void static Main()public void static Main(){{ AsyncCallback cb = new AsyncCallback(CallFinished);AsyncCallback cb = new AsyncCallback(CallFinished); service.BeginLongProcess(params, cb, service);service.BeginLongProcess(params, cb, service);}}

privateprivate void CallFinished(IAsyncResult asyncResult) void CallFinished(IAsyncResult asyncResult){{ Console.Console.WWriteLine("Async call completed.")riteLine("Async call completed.");;}}

Page 54: PowerPoint презентация (1,21 MB)

Демонстрация #8Демонстрация #8 Асинхронно извикване на Асинхронно извикване на Web Web услугауслуга

Page 55: PowerPoint презентация (1,21 MB)

Web Web услуги и работа с данниуслуги и работа с данни Web услугите често се използват за Web услугите често се използват за

достъп до даннидостъп до данни Обикновено се прехвърлят Обикновено се прехвърлят DataSetDataSet

обекти или масиви с данниобекти или масиви с данни Web Web услугата реализира:услугата реализира:

Извличането на данниИзвличането на данни Промяната на данниПромяната на данни

Web Web услугауслуга

Извикване на Web услугаИзвикване на Web услуга Изпълнение нa SQL заявкаИзпълнение нa SQL заявка

Резултат от SQL заявкаРезултат от SQL заявкаXMLXMLDataSetDataSet

Промяна на данниПромяна на даннипрез XMLпрез XML DataSetDataSet Заявки за нанасянеЗаявки за нанасяне

на променитена променитеКлиентКлиентБаза от данниБаза от данни

DBDBDataSetDataSet

Page 56: PowerPoint презентация (1,21 MB)

Демонстрация #9Демонстрация #9 Достъп до данни през Достъп до данни през Web Web услуга – услуга –

услугатауслугата

Page 57: PowerPoint презентация (1,21 MB)

Демонстрация #10Демонстрация #10 Достъп до данни през Достъп до данни през Web Web услуга – услуга –

клиентското приложениеклиентското приложение

Page 58: PowerPoint презентация (1,21 MB)

Поддръжка на сесииПоддръжка на сесии ASP.NET Web ASP.NET Web услугите поддържат услугите поддържат

сесии, както всички сесии, както всички Web Web приложенияприложения SessionSession – – съдържа текущата сесиясъдържа текущата сесия ApplicationApplication – съдържа контекста на – съдържа контекста на WebWeb

приложениетоприложението Разрешаване на сесията при услугата:Разрешаване на сесията при услугата:

Разрешаване на сесията при клиента:Разрешаване на сесията при клиента:

[WebMethod(EnableSession=true)][WebMethod(EnableSession=true)]

MyService myService = new MyService();MyService myService = new MyService();myService.CookieContainer =myService.CookieContainer = new System.Net.CookieContainer();new System.Net.CookieContainer();

Page 59: PowerPoint презентация (1,21 MB)

Демонстрация #Демонстрация #1111 Използване на сесии – Използване на сесии – Web Web услугауслуга

Page 60: PowerPoint презентация (1,21 MB)

Демонстрация #Демонстрация #1122 Използване на сесии – клиент за Използване на сесии – клиент за Web Web

услугатауслугата

Page 61: PowerPoint презентация (1,21 MB)

Сигурност на Сигурност на WebWeb услугите услугите Често пъти се изисква някои методи да Често пъти се изисква някои методи да

не могат да се викат без автентикацияне могат да се викат без автентикация Защитата от неоторизиран достъп може Защитата от неоторизиран достъп може

да се направи по няколко начина:да се направи по няколко начина: Всеки метод да има допълнителни Всеки метод да има допълнителни

параметри (потребител, парола и др.)параметри (потребител, парола и др.) Чрез използване на сесияЧрез използване на сесия Чрез средствата на Чрез средствата на Web Services Web Services

Enhancements Enhancements ((WSE)WSE). . WSE WSE поддържат:поддържат: Криптиране на трафикаКриптиране на трафика Цифрово подписванеЦифрово подписване Автентикация чрез цифрови сертификатиАвтентикация чрез цифрови сертификати

Page 62: PowerPoint презентация (1,21 MB)

Сигурност чрез сесииСигурност чрез сесии1.1. Добавяме метод за автентикацияДобавяме метод за автентикация на на

потребител:потребител:[WebMethod(EnableSession[WebMethod(EnableSession == truetrue, Description =, Description = "Checks given login and creates a session.")"Checks given login and creates a session.")]]public void Login(string aUser, string aPassword)public void Login(string aUser, string aPassword){{ if ( if ( user/passuser/pass is valid is valid ) ) {{ Session[Session[""useruser""] = aUser;] = aUser; }} elseelse {{ throw new Exception("Ivalidthrow new Exception("Ivalid login login!");!"); }}}}

Page 63: PowerPoint презентация (1,21 MB)

Сигурност чрез сесииСигурност чрез сесии2.2. Във всеки защитен метод проверяваме Във всеки защитен метод проверяваме

дали има автентикиран потребител:дали има автентикиран потребител:[WebMethod(EnableSession[WebMethod(EnableSession == truetrue, Description =, Description = "This method requires active session.")"This method requires active session.")]]public string GetProtectedData()public string GetProtectedData(){{ string string useruser = (string) Session["user"]; = (string) Session["user"]; if (if (useruser !!= null)= null) {{ return "This is protected data!";return "This is protected data!"; }} elseelse {{ throw new Exception("throw new Exception("Access deniedAccess denied!");!"); }}}}

Page 64: PowerPoint презентация (1,21 MB)

Демонстрация #Демонстрация #1313 Защита на достъпа до Защита на достъпа до Web Web услуга услуга

чрез сесия – чрез сесия – Web Web услугатауслугата

Page 65: PowerPoint презентация (1,21 MB)

Демонстрация #Демонстрация #1144 Защита на достъпа до Защита на достъпа до Web Web услуга услуга

чрез сесия – клиент за чрез сесия – клиент за Web Web услугатауслугата

Page 66: PowerPoint презентация (1,21 MB)

Изключенията в Изключенията в Web Web услугитеуслугите Когато Web услуга хвърли изключение, Когато Web услуга хвърли изключение,

клиентът получава клиентът получава SoapExceptionSoapException Оригиналният тип на изключението се губиОригиналният тип на изключението се губи Губят се вложените (inner) изключенияГубят се вложените (inner) изключения Запазва се текстът (свойството Запазва се текстът (свойството MessageMessage))

За да връщаме информация за За да връщаме информация за проблем, възникнал в Web метод:проблем, възникнал в Web метод: Дефинираме изброен тип (Дефинираме изброен тип (enumenum), ),

съдържащ възможните грешкисъдържащ възможните грешки Връщаме от Web метода код на грешка – Връщаме от Web метода код на грешка –

инстанция на изброения типинстанция на изброения тип Клиентът проверява кода за грешкаКлиентът проверява кода за грешка

Page 67: PowerPoint презентация (1,21 MB)

Изключенията в Изключенията в Web Web услугитеуслугите[WebMethod][WebMethod]public UserError AddUser(string aUser, string aPass)public UserError AddUser(string aUser, string aPass){{ if ( aUser is invalid )if ( aUser is invalid ) return UserError.InvalidUser;return UserError.InvalidUser; if ( aPass is invalid )if ( aPass is invalid ) return UserError.InvalidPassword;return UserError.InvalidPassword; ...... return UserError.Success;return UserError.Success;}}

public enum UserErrorpublic enum UserError{{ Success,Success, UserAlreadyExists,UserAlreadyExists, InvalidUser,InvalidUser, InvalidPassword,InvalidPassword, DatabaseErrorDatabaseError}}

Page 68: PowerPoint презентация (1,21 MB)

Web Web услуги с услуги с ASP.NETASP.NET

Въпроси?Въпроси?

Page 69: PowerPoint презентация (1,21 MB)

УпражненияУпражнения1.1. Какви модели за разпределени приложения Какви модели за разпределени приложения

познавате? Каква е разликата между тях?познавате? Каква е разликата между тях?2.2. Какво представляват Какво представляват WebWeb услугите? Какъв услугите? Какъв

проблем решава тази технология?проблем решава тази технология?3.3. Какво представлява инфраструктурата на Какво представлява инфраструктурата на Web Web

услугите?услугите? От какво се състои?От какво се състои?4.4. Какво представляват Какво представляват UDDIUDDI директориите и за какво директориите и за какво

служат?служат?5.5. Какво е Какво е DISCODISCO и за какво служи? и за какво служи?6.6. Какво е Какво е WSDLWSDL и за какво се използва? и за какво се използва?7.7. Какво е Какво е SOAPSOAP? От какво се състои? За какво се ? От какво се състои? За какво се

използва?използва?8.8. Опишете типични сценарии за използване на Опишете типични сценарии за използване на WebWeb

услуги при услуги при .NET.NET базирани приложения. базирани приложения.

Page 70: PowerPoint презентация (1,21 MB)

УпражненияУпражнения9.9. Без да използвате VS.NET създайте проста Web Без да използвате VS.NET създайте проста Web

услуга (услуга (asmxasmx файл), която по зададена дата файл), която по зададена дата връща деня от седмицата (на български език). връща деня от седмицата (на български език). Инсталирайте Инсталирайте WebWeb услугата на услугата на IIS.IIS. Тествайте с Тествайте с Internet Explorer. Internet Explorer. Разгледайте Разгледайте WSDLWSDL описанието. описанието.

10.10. Без да използвате VS.NET създайте клиент Без да използвате VS.NET създайте клиент (конзолно приложение) за Web услугата от (конзолно приложение) за Web услугата от предходната задача.предходната задача.

11.11. С помощта на С помощта на VS.NET VS.NET създайте създайте WebWeb услуга, която услуга, която приема 2 символни низа и връща колко пъти приема 2 символни низа и връща колко пъти първият се среща във втория. Дефинирайте първият се среща във втория. Дефинирайте уникален уникален namespacenamespace за за Web Web услугата. Задайте услугата. Задайте подходящо описание на подходящо описание на Web Web методаметода й.й.

12.12. С помощта на С помощта на VS.NET VS.NET създайте клиент за създайте клиент за WebWeb--услугата от предходната задача.услугата от предходната задача.

Page 71: PowerPoint презентация (1,21 MB)

УпражненияУпражнения13.13. В едно училище учат ученици, разпределени в В едно училище учат ученици, разпределени в

различни класове. Всички ученици от даден клас различни класове. Всички ученици от даден клас изучават някаква съвкупност от учебни предмети изучават някаква съвкупност от учебни предмети и имат по няколко оценки от изпитванията по и имат по няколко оценки от изпитванията по всеки предмет. Проектирайте релационна схема, всеки предмет. Проектирайте релационна схема, която да съхранява информация за учениците, която да съхранява информация за учениците, класовете, учебните предмети и оценките. класовете, учебните предмети и оценките. Реализирайте Реализирайте WebWeb-услуга, която изпълнява -услуга, която изпълнява следните операции (чрез следните операции (чрез SQLSQL команди към БД): команди към БД):

• добавяне/изтриване на класдобавяне/изтриване на клас• добавяне/изтриване/промяна на ученик, добавяне/изтриване/промяна на ученик,

извличане на учениците (от даден клас)извличане на учениците (от даден клас)• добавяне/изтриване на учебен предмет, добавяне/изтриване на учебен предмет,

извличане на уч. предмети (за даден клас)извличане на уч. предмети (за даден клас)• добавяне/изтриване/извличане на оценки (на добавяне/изтриване/извличане на оценки (на

даден ученик по даден предмет)даден ученик по даден предмет)Използвайте свързания модел от Използвайте свързания модел от ADO.NET.ADO.NET.

Page 72: PowerPoint презентация (1,21 MB)

УпражненияУпражнения14.14. Създайте Създайте Windows FormsWindows Forms клиент за клиент за WebWeb услугата услугата

от предходната задача. Приложението трябва да от предходната задача. Приложението трябва да визуализира класовете и да позволява навигация визуализира класовете и да позволява навигация сред тях. При избор на даден клас трябва да се сред тях. При избор на даден клас трябва да се показват учениците, които го съставят и учебните показват учениците, които го съставят и учебните предмети, които тези ученици изучават. Трябва предмети, които тези ученици изучават. Трябва да се позволява редактиране на учениците и да се позволява редактиране на учениците и учебните предмети за текущия избран клас. При учебните предмети за текущия избран клас. При избор на ученик трябва да се позволява избор на ученик трябва да се позволява редактиране на оценките му по всеки от учебните редактиране на оценките му по всеки от учебните предметите. При всяка редакция трябва да се предметите. При всяка редакция трябва да се извиква извиква WebWeb метод от услугата чрез който метод от услугата чрез който измененията да се нанасят в базата данни. При измененията да се нанасят в базата данни. При промяна на текущия избран клас, трябва да се промяна на текущия избран клас, трябва да се извличат наново учениците и предметите. При извличат наново учениците и предметите. При промяна на избрания ученик трябва оценките му промяна на избрания ученик трябва оценките му да се зареждат наново от да се зареждат наново от Web Web услугата.услугата.

Page 73: PowerPoint презентация (1,21 MB)

УпражненияУпражнения15.15. Създайте Създайте WebWeb услуга, която по зададено цяло услуга, която по зададено цяло

число число pp ( (pp e e UInt32UInt32) ) намира и връща броя простинамира и връща броя прости числа в интервала числа в интервала [1…p][1…p]. . Услугата би трябвало Услугата би трябвало да работи бавно при големи стойности на да работи бавно при големи стойности на pp.. Създайте Създайте Windows Forms Windows Forms приложение, което приложение, което съдържа текстово поле, бутон и списък. При съдържа текстово поле, бутон и списък. При въвеждане на число в текстовото поле и въвеждане на число в текстовото поле и натискане на бутона трябва да се извиква натискане на бутона трябва да се извиква асинхронно асинхронно WebWeb услугата за пресмятане на услугата за пресмятане на простите числа между простите числа между 11 и и pp. . При завършване на При завършване на асинхронно извикване резултатът трябва да се асинхронно извикване резултатът трябва да се добавя в списъка във формат "добавя в списъка във формат "Primes inPrimes in range range [1…p][1…p] are XXXare XXX"". . Не забравяйте, че асинхронните Не забравяйте, че асинхронните извиквания използват нишки от извиквания използват нишки от Thread PoolThread Pool-а -а на на .NET Framework.NET Framework, които не трябва да достъпват , които не трябва да достъпват директно потребителския интерфейс.директно потребителския интерфейс.

Page 74: PowerPoint презентация (1,21 MB)

УпражненияУпражнения16.16. Проектирайте релационна схема от таблици в Проектирайте релационна схема от таблици в MS MS

SQL сървър, която описва потребители и правата SQL сървър, която описва потребители и правата им за достъп в дадена система. Всеки потребител им за достъп в дадена система. Всеки потребител се характеризира с име, login и парола и може да се характеризира с име, login и парола и може да има достъп до подмножество от функциите на има достъп до подмножество от функциите на системата. Всяка функция в системата си има системата. Всяка функция в системата си има име и може да е достъпна от подмножество на име и може да е достъпна от подмножество на потребителите. Създайте потребителите. Създайте Web Web услуга, която чрез услуга, която чрез използване на несвързания модел на достъп до използване на несвързания модел на достъп до данни в ADO.NET реализира Web методи за данни в ADO.NET реализира Web методи за извличане на данните (във вид на извличане на данните (във вид на DataSetDataSet) и за ) и за обновяване на променени данни (съдържащи се обновяване на променени данни (съдържащи се в в DataSetDataSet). Реализирайте ). Реализирайте Windows Forms Windows Forms приложение, което позволява редактиране на приложение, което позволява редактиране на потребителите и техните права използвайки потребителите и техните права използвайки Web Web услугата.услугата.

Page 75: PowerPoint презентация (1,21 MB)

УпражненияУпражнения17.17. Реализирайте системата за управление на Реализирайте системата за управление на

потребители и техните права от предходната потребители и техните права от предходната задача като добавите автентикация в задача като добавите автентикация в WebWeb услугата и защитите методите за достъп до услугата и защитите методите за достъп до данните чрез данните чрез ASP.NETASP.NET сесията. сесията. WebWeb услугата услугата трябва да позволява достъп до защитените трябва да позволява достъп до защитените методи само на потребителя с име методи само на потребителя с име ""adminadmin".". Първоначално създайте този потребител Първоначално създайте този потребител директно в базата данни на ръка.директно в базата данни на ръка.

Page 76: PowerPoint презентация (1,21 MB)

MSDN Library – MSDN Library – http://msdn.microsoft.comhttp://msdn.microsoft.com Стоян Йорданов, Стоян Йорданов, Web Web услугиуслуги – –

http://www.nakov.com/dotnet/http://www.nakov.com/dotnet/2003/2003/lectures/lectures/Web-Services.docWeb-Services.doc

MSDN Training, MSDN Training, Developing XML Web Services Using Developing XML Web Services Using Microsoft® ASP.NET (MOC 2524B)Microsoft® ASP.NET (MOC 2524B)

Enterprise Application – Enterprise Application – http://c2.com/cgi/wiki?EnterpriseApplicationhttp://c2.com/cgi/wiki?EnterpriseApplication

Consuming a DataSet from an XML Web Service, Consuming a DataSet from an XML Web Service, MSDN Library – MSDN Library – http://msdn.microsoft.comhttp://msdn.microsoft.com

Използвана литератураИзползвана литература