葡京娱乐总站平台VSALM 动手实验 – 持续集成

参考:http://blog.csdn.net/songyefei/article/details/7397296

 

老大数据交换

Visual Studio 应用生命周期管理(VSALM – Visual Studio Application
Lifecycle Managemnet)是微软基于Visual
Studio产品线所提供的软件管理平台,其中囊括要:

经过前少篇之修,我们询问了WCF通信的片段基本原理,我们知晓,WCF服务端和客户端通过共同享元数据(包括服务协定、服务器终结点消息)在少数单终结点上成立通道从而进行通信。我们透过手写代码(或安排)的计呢服务端编写了初数据信息,没有因元数据交换就兑现了通信。然而以事实上应用被,元数据往往是诸多底,而且还修元数据的劳作为是不值得的,因此一定会为此到首数据交换的方受客户端获取元数据,本篇我们即便来更询问一下老大数据和元数据交换。

  • 出品管理
  • 需管理
  • 型管理
  • 任务跟踪
  • 源代码管理(SCM)
  • 测试管理
  • 代码编译持续集成(CI)
  • 颁发管理(Release Management)
  • 自动化和数码解析与报表

1.
头数据是什么提供的

等于软件开发过程遭到所用的管制力量跟工具。具体信息可透过 Visual
Studio 产品主页进行问询,或者参考本文档中
关于VSALM 部分。

   
我们知晓,元数据包括了而与服务端进行通信的富有消息,包括劳动协定接口、服务端终结点地址、绑定等消息,它指出了客户端应该到哪儿去搜寻服务同怎样调用服务之整套线索。但是服务端是怎么样公布其首批数据的也罢?
    答案是用WSDL文件,WSDL即Web Service Description
Language,Web服务描述语言,它是一个XML文件,在这文件中按一定之正规来针对Web
Service进行描述,他是顺应W3C标准的,因为WCF是于设计为供不同平台调用的服务框架,所以客户端可能是不微软平台的,比如Java什么的。因此WCF必须使WSDL这种国际标准的叙述道来叙述服务才能够吃广大之阳台所走访。

以下实验内容在GitHub上开源,获取地址:

 

https://github.com/ups216/vsalm-hols

2.
元数据交换的经过是怎的

 

每当WCF服务端的周转时,有平等组类库随时待命把劳动之头条数据输出为WSDL描述提供给请求者,只要出客户端按照服务端约定的法子来求求元数据,服务端立即将服务运作时状态写照成WSDL文件提供。客户端取的实际就是WSDL文件(还有一部分框架描述文件XSD),客户端将到文件后更用好的道来解读WSDL,把他翻成客户端可用的源代码或布文件,这时客户端就赢得了服务的编程模型,通过一些代理类,客户端还是足以像调用本地对象同使用WCF服务。

没完没了交付 – 持续集成,自动化发布与自动化测试

当此实验中,您跟汝的团组织成员以形成产品从代码到上线的揭晓管道的立。我们用据TFS所提供的随地集成引擎和Release
Management功能构建平久机关的发布管道,您将得以于成功代码编写后一样键发布新本子及生产条件,并在斯过程中经过测试环境完成产品效果的验证和上线审批。

咱们还用祭单元测试,代码覆盖率,代码分析及自动化UI测试来增强我们对代码质量之掌控能力。

终极我们用贯彻如下图的频频集成环境:

葡京娱乐总站平台 1

练列表

  • 勤学苦练一:为你的类增长持续集成力量
  • 习二: 建立产品发布管道 –
    实现自动宣布
  • 勤学苦练三:添加自动化测试
  • 演习四:使用拉取请求(Pull
    Request)实现质量门控制
  • 总结

 

 


吁关注微信公众号 【devopshub】,获取更多关于DevOps研发运维一体化的音

葡京娱乐总站平台 2

 

 

用所有经过是这样:客户端向服务端请求元数据交换–>服务端运行时拿首届数据编写成WSDL文件提供–>客户端取文件–>客户端翻译文件–>客户端根据翻译结果大本地类代码和安排–>客户端取劳动之本土编程模型。这即是初次数据交换的进程。

  1. 获得WSDL

以微软平台遭遇,有零星种植艺术来进展首数据交换,第一凡动服务引用,第二是下初数据实用工具(svcutil.exe)来拓展,我们先行修是家伙。

斯家伙得以在Windows
SDK中找到,具体位置为 C:\Program Files\Microsoft
SDKs\Windows\v6.0\Bin,如果您来VS2010,可以启动VS2010之命令行工具,这样即便得当其余目录下用是序。

咱俩事先押一个例,就是咱当眼前几乎首被树立之IIS服务HelloWCFService,它被自己留宿在IIS中。

源代码如下(HelloWCF.cs):

using System;  
using System.ServiceModel;  

namespace LearnWCF  
{  
    [ServiceContract]  
    public interface IHelloWCF  
    {  
        [OperationContract]  
        string HelloWCF();  
    }  

    public class HelloWCFService : IHelloWCF  
    {  
        public string HelloWCF()  
        {  
            return "Hello WCF!";  
        }  
    }  
} 

布文件(web.config)如下:

    <configuration>  
      <system.serviceModel>  
        <services>  
          <service name="LearnWCF.HelloWCFService" behaviorConfiguration="metadataExchange">  
            <endpoint address="" binding="wsHttpBinding" contract="LearnWCF.IHelloWCF"/>  
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>  
          </service>  
        </services>  
        <behaviors>  
          <serviceBehaviors>  
            <behavior name="metadataExchange">  
              <serviceMetadata httpGetEnabled="true"/>  
            </behavior>  
          </serviceBehaviors>  
        </behaviors>  
      </system.serviceModel>  
    </configuration>  

当浏览器被输入服务地方会使下图所示:

葡京娱乐总站平台 3

看到网提醒的那行命令了么?系统于报告我们怎么样采取svcutil.exe来博首批数据。我们现在试行一下,首先打开VS2010命令行:

起来–>所有程序–>Visual Studio
2010–>Visual Studio Tools–>Visual Studio命令行提示

葡京娱乐总站平台 4

 

 葡京娱乐总站平台 5

 

咱导航及一个目下准备得首批数据文件。

俺们临时无遵循浏览器提供被我们的法子做,因为本大方式做就是管收获WSDL和翻译WSDL为客户端代码合在一起了,我们事先取得WSDL元数据文件,看看她是啊则的。我们仍如下的通令做:

svcutil.exe /t:metadata http://localhost/iisservice/hellowcfservice.svc?wsdl  

我们进入了一个参数/t:metadata
表示无非输出元数据,不转代码。命令的尽过程如下:

葡京娱乐总站平台 6

足见到变化了3个公文,包括个别只架构文件与一个WSDL文件,这些虽是劳动端元数据的描述了,所有的客户端请求到之莫过于都是这个文件。WSDL的正规化比较多,关于她的始末,我们后还进行来拘禁,不过大概的开辟看一下便会顾有些及劳务协定、绑定、操作这些事物有关的地方。

  1. 翻译WSDL文件

WSDL是一个XML文件,其实就是只公文文件,客户端必须以其按照自己之平台特色把他翻译成本地代码文件来以。svcutil当然会提供这效应。在wsdl文件所在目录下用如下的下令就足以将WSDL文件翻译成本地代码文件:

 svcutil *.wsdl *.xsd

顾名思义,就是冲当前目录下的持有的WSDL文件与XSD文件来深成客户端代码文件。过程会是这般

葡京娱乐总站平台 7

得视,生成了一个cs文件和一个布局文件,这些就是冲WSDL文件翻译成的客户端代码文件了。打开来探,一定不生,就是采取ClientBase<>来大成一个客户端代理类并将终结点的音讯配置当了.config文件里。把当下片只文件包含在客户端的型遭到并拿output.config改化app.config就可了。

  1. 又好地运初数据交换工具

事先我们询问了动用svcuitl.exe来博WSDL并翻译成客户端代码的过程。实际上这片步可一起二呢同。直接实施下的命令可以一直拿走客户端文件:

svcutil.exe http://localhost/iisservice/hellowcfservice.svc?wsdl

如此这般它们便不见面生成WSDL而直接生成客户端文件了。

但是本这样的计变的文件或者未绝相符我们的要求,我们得加上有参数来指定我们输出的文件称:

svctuil.exe /out:ClientProxy.cs /config:app.config http://localhost/iisservice/hellowcfservice.svc?wsdl 

这样输出的文本我们便足以一直包含在客户端项目受到使了。

  1. 使劳务引用

实际上使用服务引用和用svcutil.exe生成的客户端模型是同样的,不过服务引用保留了WSDL文件(以及一些有关的七七八八底文书),没有svcutil.exe来得那舒服,但是其与VS2010拼,使用起来十分粗略,而且当服务发生变化时,只待右击服务引用选择翻新服务就是好重新生载WSDL了

 

  1. 拓展一点点

 

当服务端,公开元数据是需要配备的,不同之布局会促成元数据明白之道各异。

 

我们而记住,WCF服务端公开元数据要有所简单单标准:

 

(1) 为服务添加ServiceMetadata行为。

 

(2) 打开元数据交换终结点。

 

双面缺一不可。

 

WCF的公然元数据的招要出些许种植:

 

第一种:通过HTTP GET方法。

 

立马就是于前文中我们见到的方,我们好采取HTTP
Get的道来获取WSDL文件就于服务地址.svc后面和达到?wsdl的措施直接呼吁到WSDL文件。我们得直接当浏览器被输入服务端地址.svc?wsdl,浏览器就径直得到了WSDL文件并也咱展示出来了。

葡京娱乐总站平台 8

 

还有相应的框架描述文件(XSD)

 葡京娱乐总站平台 9

只要想利用这种元数据明白方法,必须配备服务之ServiceMetadata行为,并指定httpGetEnabled

“true”,而老大数据明白终结点不必配置,系统会自行配置一个,配置文件的写法如下:

    <configuration>  
      <system.serviceModel>  
        <services>  
          <service name="LearnWCF.HelloWCFService" behaviorConfiguration="metadataExchange">  
            <endpoint address="" binding="wsHttpBinding" contract="LearnWCF.IHelloWCF"/>  
          </service>  
        </services>  
        <behaviors>  
          <serviceBehaviors>  
            <behavior name="metadataExchange">  
              <serviceMetadata httpGetEnabled="true"/>  
            </behavior>  
          </serviceBehaviors>  
        </behaviors>  
      </system.serviceModel>  
    </configuration>  

以这种安排下,访问元数据的方式是访问下面的地点:

http://localhost/iisservice/hellowcfService.svc?wsdl 

其次种:通过MEX元数据交换终结点。

每当这种方法下,我们第一使保服务具有ServiceMetadata行为,但是httpGetEnabled可以不必为true。此外我们还欲为服务显式地增长一个终结点,这个终结点的地方、绑定和签订都是指定的我们不克转

<endpoint address=”mex” binding=”mexHttpBinding” contract=”IMetadataExchange” /> 

配备文件之写法如下:

    <configuration>  
      <system.serviceModel>  
        <services>  
          <service name="LearnWCF.HelloWCFService" behaviorConfiguration="metadataExchange">  
            <endpoint address="" binding="wsHttpBinding" contract="LearnWCF.IHelloWCF"/>  
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>  
          </service>  
        </services>  
        <behaviors>  
          <serviceBehaviors>  
            <behavior name="metadataExchange">  
              <serviceMetadata />  
            </behavior>  
          </serviceBehaviors>  
        </behaviors>  
      </system.serviceModel>  
    </configuration>  

若果按这种安排,我们亟须比照如下地址来拜会公开之首位数据:

http://localhost/iisservice/hellowcfservice.svc/mex

瞩目,由于没有打开HTTP
GET,我们无克以浏览器中一直输入这个地方来抱WSDL了(会唤起400错),我们务必经svcutil.exe或长服务引用的艺术来访问。

采取svcutil.exe或服务引用的时可免体贴元数据明白方法是HTTP
GET还是Mex,他们会活动检索到适当的法门,只待把劳动之svc文件地点输入就得了,但是咱应有清楚,这简单种植元数据明白的计是出分之。

  1. 总结

透过今天之求学,我们越来越了解了WCF元数据的和元数据交换的规律。虽然咱以实际工程中还见面以该使用初数据交换工具来援助提高效率,但是就背后有的享有环节也是咱们应控制的。

有关资源

MSDN关于Svcutil.exe用法的文档

http://msdn.microsoft.com/zh-cn/library/aa347733.aspx