XMLWebService应用开发--VisualStudio.NETDevelopTeamMicrosoftChina日程:新的技术革命---.NET和WebServices开发WebServices的最佳工具---VisualStudio.NET轻松上手VisualStudio.NETMicrosoft.NET下一代互联网开发平台新观念(Vision)软件作为服务“SoftwareAsAService”标志Windows.NET,Office.NET,VisualStudio.NET…etc体系结构XMLWebServices.NET以XML为基础什么是XMLWebService?通过标准的Web协议(HTTP)可编程访问的WEB组件开放的Internet传输协议XMLWebserviceSOAPSOAP(简单对象访问协议)–用XML实现Webservice的标准协议WSDLXMLWebservicesDescriptionLanguageWSDL–描述Webservice的语言规范,相当于访问Webservice的接口基于开放的Internet协议XMLandHTTPUDDIUniversalDescription,DiscoveryandIntegrationUDDI-Webservice的黄页XMLWebServiceDemo航班跟踪那给我用用吧(SOAP)WebServices工作流程Design-TimeorDynamicRuntime你都有什么服务啊?(WSDL)描述客户端UDDI查找服务:SOAP-ENV=“”SOAP-ENV:HeaderCustomHeaderTID=“011F28”//SOAP-ENV:HeaderSOAP-ENV:Bodym:GetBattingAveragexmlns:m=“”m:PlayerNumber11/m:PlayerNumberm:Year2001/m:Year/m:GetBattingAverage/SOAP-ENV:Body/SOAP-ENV:EnvelopeSOAP回应示例SOAP-ENV:Envelopexmlns:SOAP-ENV=“”SOAP-ENV:HeaderCustomHeaderTID=“011F28”//SOAP-ENV:HeaderSOAP-ENV:Bodym:GetBattingAverageResponsexmlns:m=“”m:BattingAverage311/m:BattingAverage/m:GetBattingAverageResponse/SOAP-ENV:Body/SOAP-ENV:EnvelopeWSDL实现互联网上的互操作=WebServiceWSDLHTTPSOAP(XML)TCP/SSLUDDIDISCOClientWebService现有的远程访问协议—DCOM,CORBA,RMI不能很好用于互联网环境采用W3C标准,真正的与平台无关;不受现有的代理和防火墙的限制可以利用HTTP验证模式,支持安全套接层(SSL)XMLWebServiceDemo1.创建Web服务项目2.输入自己的代码3.编译生成三个步骤创建自己的Web服务XMLWebServiceDemo1.添加Web服务引用2.访问Web服务对象两个步骤访问Web服务VisualStudio.NET什么是.NETFramework基于开放的标准CLICLRBaseClassLibraryDataandXMLXMLWebservicesWindowsFormsWebFormsCommonLanguageSpecificationVBC++C#…已递交到ECMA已递交到ECMA开放的语言规范基于XML的数据存取JScript基于XML和SOAP让编程变得简单HWNDhwndMain=CreateWindowEx(0,MainWClass,MainWindow,WS_OVERLAPPEDWINDOW|WS_HSCROLL|WS_VSCROLL,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,(HWND)NULL,(HMENU)NULL,hInstance,NULL);ShowWindow(hwndMain,SW_SHOWDEFAULT);UpdateWindow(hwndMain);Formform=newForm();form.Text=MainWindow;form.Show();WindowsAPI.NETFramework类加载器ClassLoader中间语言到二进制编译器代码管理器垃圾收集GarbageCollector安全引擎调试引擎类型检查异常管理线程支持COMMarshaler支持BaseClassLibrary公共语言运行库(CommonLanguageRuntime)跨语言继承演示开始您第一个XMLWebService开发的利器VisualStudio.NETASP.NETVisualC#VB.NETC++ASP.NET新特性设计和代码可以存在于不同的文件中.性能大大提高代码编译后运行提供缓存支持基于控件,拖放式的编程生成客户端脚本更加简单的配置和部署支持多种语言(VB.NET,C#,…..)ASP.NET动态编译ASPX文件请求ASPXEngine解析Gen’dPageClass生成回应请求Instantiate回应Code-behindclassPageClassInstantiate,Process&Render编译ASP.Net演示基于服务器的控件Web表单表单验证(Validation)缓存服务演示•输出缓存•%@OutputCacheDuration=60VaryByParam=none%•碎片缓存•%@OutputCacheDuration=120VaryByParam=“ID%•数据缓存•Cacheclass•演示•代码24001200160080040028002000PCMagazineNile应用程序测试PagesServedperSecond8-CPUCompaqProLiant8500ApplicationServer8-CPUCompaqProLiant8500DatabaseServerWebSphere3.5JSPRHLinux7.0Oracle8i3707896038CPU4CPU2CPUMicrosoftASP(VBScript)SQLSvr2000330748637MicrosoftASP.NET(C#)SQLSvr2000198911542781跟踪和调试演示跟踪页面级的跟踪演示代码Trace类应用程序级的跟踪调试在IDE中运行Web应用程序C#---像VB一样简单,像C++一样强大的新语言C#是第一流的面向组件的语言由TurboPascal,Delphi,andVisualJ++的首席设计师AndersHejlsberg倾心3年设计所有的语言元素都是真正的对象开发强壮和可重用的软件所有的.NETFramework中的基类库(BaseClassLibrary)都由C#编写C#面向组件的语言C#是第一流的面向组件的语言直接支持属性(Properties),事件(events)设计和运行时的attributes属性通过XML注释直接生成开发文档一步到位的编程没有C++中的头文件(.h文件),IDL等可用于编写ASP.NETC#开发强壮和可重用的软件垃圾收集(GarbageCollection)防止出现内存漏洞和游离指针统一的异常处理没有HRESULT了安全和统一的数据类型,没有未初始化的变量,防止不安全的引用在代码中直接支持版本控制已递交ECMA(EuropeanComputerManufactureAssociation)C#代码示例foreach语句字符串赋值数组参数strings=@”c:\file\somewhere\joe.txt”;stringt=@”Astringwithanewlineandatabinit”;foreach(Customercincustomers.OrderBy(name)){if(c.Orders.Count!=0){...}}printf(%s%i%i,str,int1,int2);object[]args=newobject[3];args[0]=str;args[1]=int1;args[2]=int2;printf(%s%i%i,args);C#DemoXML注释classHello{///remarksHello类包括以下的方法:///listtype=bullet///item///descriptionMain-程序入口点/description////item///item///description如果有其他的方法,可以列在这里/description////item////list//////para///在本程序中,我们用了基于控制带的输入/输出(I/O).///如果想知道关于WriteLine的更多信息,请参考///seealsocref=System.Console.WriteLine/////para////remarkspublicstaticvoidMain(){Console.WriteLine(Hello,World);}}VisualBasic.NET完全面向对象的BASIC语言新的语言特性完全面向对象–继承(Inheritance),重载(overloading),共享的成员,结构化异常处理强壮的语言–严格的类型检查,变量声明时初始化,支持垃圾收集(Garbagecollection)强大–支持委托(Delegates),freethreading,Variant数据类型被Object代替与VB6一致的语法ImportsSystem.MathNamespaceGeometryPublicModuleModule1SubMain()DimtriAsTriangle=NewTriangle(2,3,4)Console.WriteLine(tri.ComputeArea())Console.WriteLine(Circle.Area(5))EndSubEndModulePublicClassTriangleDimm_a,m_b,m_cAsIntegerPublicSubNew()'emptyconstructorEndSubPublicSubNew(aAsInteger,bAsInteger,cAsInteger)m_a=a:m_b=b:m_c=cEndSubPublicFunctionComputeArea()AsDoubleDimsAsDouble=(m_a+m_b+m_c)/2ReturnSqrt(s*(s–m_a)*(s–m_b)*(s–m_c))End