Azure DevOps Server(TFS) 客户端分析
Azure DevOps Server(TFS) 是微软公司的软件协作开发管理平台产品,为软件研发、测试、实施提供全流程的服务。作为一款应用服务器产品,他的客户端是什么,在哪里下载客户端?我们在项目实施过程,经常碰到这样的问题。本文的目的就是为了解答这个问题。
作为一款企业级的软件研发管理平台,Azure DevOps Server 集成了需求管理、项目计划、人员管理、代码管理、持续集成、自动发布等全流程的功能,他涉及到各种不同角色的IT技术人员,例如业务人员、需求分析师、设计师、程序员、质量控制人员和运维人员等。不同角色的人员使用不同的工具,在软件研发的不同阶段,同一个角色也会使用不同的通具。下面我们就来详细说一说,Azure DevOps Server (TFS)到底有哪些客户端?它如何满足不同角色成的个性需求?
1. 开发工具
首先我们要来说开发工具,因为在一个信息技术部门,软件研发团队是绝对的主力人员。他们手头使用的工具的集成功能,是Azure DevOps Server首先需要解决的问题。
Visual Studio
Azure DevOps Server的原名就是Visual Studio Team Foundation Server (简称TFS,曾经还叫VSTS),做为Visual Studio产品家族的成员,Visual Studio当然是DevOps Server的首推客户端,特别是对于基于微软技术框架做开发的技术人员,使用Visual Studio中集成的团队资源管理器(Team Explorer)功能,可以非常便捷地完成代码版本管理、工作项查询、持续集成等工作。几乎可以说,DevOps的大部分客户端工作都可以在Visual Studio中完成。Visual Studio Team Explorer(VS团队资源管理器)
对于使用Visual Studio的建议,Java程序员马上就会泼冷水:“完整的VS安装包30GB,对我有什么用?” 为了满足非微软技术框架的开发人员,微软公司也是操碎了心,专门精简改造Visual Studio,将30GB的安装包,精简到300MB,其中只包含了Azure DevOps Server的全部客户端功能,例如TFVC版本管理、Git版本管理、工作项等。这个工具,无论是功能的完备性、稳定性、速度等多角度考虑,目前是非微软开发人员的最好的客户端工具,也是我们在推广DevOps Server过程中首推的客户端。Visual Studio Code
Visual Studio Code,作为微软跨平台开发工具,当然不会缺少DevOps Server的关联。使用Visual Studio Code的原生Git功能呢,可以与DevOps无缝衔接,实现版本管理;借助与TFVC插件,也可以实现集中式源代码的版本管理。
图:在Visual Studio Code中实现代码版本管理Eclipse、MyEclipse、Idea、Android Studio、XCode
好了,现在我们来和Java开发人员聊一聊。在Java开发开发人员的心目中,应该只有Windows和Office与自己有关,可能从未想到过在开发过程中还需要微软的开发工具。那么先来看一下微软公司为Java开发人员准备的大礼包:https://azure.microsoft.com/en-us/services/devops/java/ 在这个连接中,你可以看到主流的Java IDE工具,可以与DevOps Server实现快速无缝集成。同时,在CI和CD过程中,微软还提供与Jenkins一样的功能,在发布流程管理方面,甚至远远超越了Jenkins。你熟悉的Maven、Ant、Gradle等,在DevOps Server中,一应俱全。下面我们来一个一个分析Java开发人员的开发神器:
- Eclise:
对于传统的TFVC这种集中式的源代码管理,在Eclipse(基于Eclipse的)开发工具中安装微软TFS插件(Team Explorer Everywhere,简称TEE),可以直接在Eclipse中连接TFS服务器。这个TEE插件的功能,与Visual Studio中的团队资源管理器比较,无论在功能还是用户界面上,二者几乎一模一样。当然,由于是作为第三方插件的方式集成在Ecipse中,在速度和稳定性方面和原生的VS是有差距的。
图:Eclipse连接Azure DevOps Server
- Idea
除开Eclipse,Idea应该是Java开发人员的最爱了。作为捷克共和国这个东欧国家开发的IDE工具,在Java软件开发、调试和兼容性方面,与Eclispe相比毫不逊色。更有惊喜的是,Idea原生支持TFS系统,可以在Idea中直接连接TFS实现版本管理,无需任何第三方插件。
图:Eclipse连接Azure DevOps Server (TFS)安卓、苹果移动开发
由于DevOps Server中集成的Git服务器的功能,类似Android Studio、XCode等原生就支持Git的开发工具,现在被微软的DevOps Server收为一统。移动开发人员,再也不用担心在MAC机器上如何上传代码的问题了。Sublime等非主流开发
前面说了主流的开发工具,实际上,对于非主流的开发工具、文本编辑器等,Azure DevOps Server提供了丰富的插件支持,你可以微软的扩展市场(https://marketplace.visualstudio.com/)中,找到几千种插件,但凡有一定数据量用户的开发工具,基本都可以通过插件的方式连接到DevOps Server。比较就曾经在一个项目中,为PL/SQL的用户(数据DBA)找到连接DevOps Server的工具,实现数据脚本的版本管理。详情可以查看我的博客https://www.cnblogs.com/danzhang/p/6936611.html。跨平台工具TEE(Team Explorer Everywhere)
开发人员不提跨平台,总让人看不起。微软公司在Team Explorer Everywhere中提供了一个基于命令行的跨平台工具,终于为我们长了脸,在培训过程中,对于Linux、Unix的用户,我可以信心满满的告诉他,你可以在所有支持Java的平台上连接Azure DevOps Server!
2. 浏览器
在上一节的说明中,应该已经可以覆盖绝大部分研发人员使用的工具了。但是,作为一个服务器系统,如果你不支持基于浏览器web服务,那是不可以思议的。DevOps Server在浏览器的兼容性、功能全面方面,比起作为客户端的主流开发工具来说,可以说做到了极致。目前官方公开声明支持所有主流浏览器,包括:Chrome、Firefox、IE、Safari等。
对于国产的浏览器,虽然微软没有给出官方说明,但是在项目实施过程中,我们的客户使用360、搜狗等,几乎没有任何障碍。
使用Web浏览器,可以完成Azure DevOps Server百分之九十的功能,甚至可以在Web浏览器中编写代码。
有个同学马上就问:“不能做的那百分之十是什么?”,我只好心虚的说“调试代码”。但是,我相信,如果人类发明了可以使用浏览器编写、调试代码的框架,微软很快就会把它集成在Azure DevOps Server中。
3. 微软Office 工具
通过前面的说明,开发人员应该有所宽心了。
下面我们和非开发人员(需求、测试、运维)来聊一下。作为不经常编写代码的技术人员,手头最常用的工具莫过于微软的Office。秉承的微软其他应用软件的系统,Azure DevOps在集成Office系列软件的过程中,它具备的功能远远超出了我们的现象。
- Office Excel
我认识的人中,除了50年代出生的父母外,都使用过Excel来管理电子表格数据,就连我那个正在读小学的孩子,都会熟练的使用Excel中记录家庭作业完成情况。对于如此广泛使用的电子表格工具,Azure DevOps 开发团队当然不会忽略它的存在。微软开发团队提供了一个Office插件(Azure DevOps Office Integration: https://docs.microsoft.com/en-us/azure/devops/boards/backlogs/office/track-work?WT.mc_id=DT-MVP-5001330 )。使用这个插件,可以在Excel中下载、批量修改、汇总报表。而这些操作过程中的数据来源,则可以直接与Azure DevOps相连,甚至可以获取实时的数据。测试人员录入Bug、需求人员跟踪进度、管理人员统计绩效等等,都可以使用自己熟悉的Excel,无需学习新的知识。
图:Excel连接Azure DevOps服务器
- Project Professional
一提起Project,你肯定就会问“甘特图呢?”。是的,Azure DevOps的Office插件让你在Project中,可以使用服务器中的数据,生成项目计划甘特图。使用Project,可以实现项目管理人员和开发团队之间,实现数据共享,互联互通。
图:Project连接Azure DevOps服务器
- Outlook
这个工具就不值得提了,因为电子邮件集成几乎是所有服务器软件必备的功能。
但是,如果你发现,在Outlook中,可以将用户反馈的一个电子邮件,直接转换为一个Bug或者一条需求信息,那就不是简单的邮件通知功能了。
4. 服务器集成
实际上,Azure DevOps Server与其他服务器之间的集成,也可以看成是客户端的扩展。例如,我们在SharePoint Server中可以获取Azure DevOps Server的工作项数据;可以将需求推送到Project Server;可以在SQL Server Reporing Server和PowerBI中,生成漂亮的统计报表;还可以与及时信息软件(例如Slack、Teams)集成,自动发送实时通知。
甚至,利用Azure DevOps完善的Rest API,可以与任何自主研发的第三方服务器集成,实现数据共享、流程互通。例如,在项目实施过程中,我们就为许多客户做过系统集成,从OA系统自动获取需求,从测试管理平台中自动获取缺陷,自动通知运维平台升级,等等。。。
作为企业级的软件研发管理平台,Azure DevOps Server在客户端的集成和兼容性上,几乎可以满足大部分研发角色成员的需求。在实际使用过程中,由于Azure DevOps Server涉及到软件研发的全生命周期管理(ALM),可能还有更多笔者未知的工具、技术和技巧,欢迎大家在讨论中补充。
------------------------------------------------------------
http://www.cnblogs.com/danzhang/ DevOps MVP 张洪君
------------------------------------------------------------
Azure DevOps Server(TFS) 客户端分析的更多相关文章
- Azure DevOps Server (TFS) 代码库Repo管理培训
Repo是分布式代码库Git中的一个专用词,用于存储和管理开发团队中特定的源代码. 使用Git,可以协调整个团队的代码更改. 即使您只是一个开发人员,版本控制也可以帮助您在修复错误和开发新功能时保持井 ...
- Azure DevOps Server (TFS)中代码文件换行问题解决方案(Git)
之前写过一篇博客"探索TFS Git 库文件换行(CRLF)的处理方式",主要是针对TFVC代码库的. 下面这篇文章说明如何在TFS的Git库中处理代码换行的问题. 概述 在Azu ...
- 还原Azure DevOps Server (TFS)中误删除的生成流水线
流水线历史记录 DevOps Server流水线的历史记录有完善的版本日志,用户可以随时回退到修改过程中的任何一个版本,还能比较差异.这个历史记录功能可以和代码库中的版本控制媲美. 图一:生成历史记录 ...
- 在Azure DevOps Server (TFS 2019) 流水线传递参数
变量概述 在Azure DevOps Server的流水线中,变量是衔接不同任务和不通代理之间的桥梁,它可以使相对松散.各自独立的任务之间相关影响并共享数据.在流水线中使用变量,可以在各任务之间相互调 ...
- 在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)
概述 Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具.使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcod ...
- 集成Azure DevOps Server(TFS) 与微软Teams
1.概述 Microsoft Teams是Office 365中团队协作的中心.将团队的所有聊天.会议.文件和应用程序放在一个位置.软件开发团队可以在一个专门的协作中心中即时访问他们所需的所有内容,T ...
- 在Azure DevOps Server (TFS)中实现VUE项目的自动打包
概述 Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.由于它在数据绑定.页面展示和使用简单方面有很大的优势,逐渐被越来越多的前端开发团队使用.本文 ...
- Azure DevOps Server (TFS) 修改工作项附件大小限制
1. 问题描述 当上传工作项附件时,系统提示"附件大小限制" 2.解决方案 2.1 默认设置 默认情况下,Azure DevOps Service和Team Foundation ...
- 在Windows操作系统的文件管理器中集成Azure DevOps Server (TFS)工具菜单
故事场景 使用过SVN的用户,都知道在Windows的文件夹上点击鼠标右键,就会弹出Tortoise SVN的操作菜单(俗称小乌龟).通过这个功能,用户不需要打开SVN工具,可以直接在Windows的 ...
- Azure DevOps Server (TFS) 修改Git文件大小限制
签入Git的所有文件将永远保留在存储库中,限制大文件签入到代码库,可以增加磁盘使用效率,提高系统备份还原等日常维护的效率. 通过下面的设置,团队项目管理员可以阻止超过特定大小的文件进入存储库.如果推送 ...
随机推荐
- python 各层级目录下的import方法
---恢复内容开始--- 以前经常使用python2.现在很多东西都切换到了python3,发现很多东西还是存在一些差异化的.跨目录import是常用的一种方法,并且有不同的表现形式,新手很容易搞混. ...
- C语言--计算程序执行时间
C语言–计算程序执行时间1. gettimeofday精度1us #include<stdio.h>#include<sys/time.h> int main(){ /* 定义 ...
- 疑问:Spring 中构造器、init-method、@PostConstruct、afterPropertiesSet 孰先孰后,自动注入发生时间
一.前言 spring的一大优点就是扩展性很强,比如,在spring bean 的生命周期中,给我们预留了很多参与bean 的生命周期的方法.大致梳理一下,有以下几种: 通过实现 Initializi ...
- Think in Speed (关于速度的一点思考)
天下武功,无坚不摧,唯快不破!所以我们重视速度没毛病! 老话说:不要过早优化.赞同! 我们在写代码过程中,有时可能就是为了追求所谓的性能,然后,就给自己挖坑了. 关于开发速度,我有以下几点思考: 1. ...
- python IPy库
Website: https://github.com/haypo/python-ipy/ 安装: easy_install IPy >>> from IPy import IP ...
- MySQL学习——数据类型
MySQL学习——数据类型 摘要:本文主要学习了MySQL数据库的数据类型. 整数类型 MySQL主要提供的整数类型有tinyint.smallint.mediumint.int.bigint,其属性 ...
- Javase之多线程(1)
多线程(1) 多线程的概述 了解多线程之前需要先了解线程,而线程依赖于进程而存在,所以先了解进程. 什么是进程 进程就是正在运行的程序.是系统进行资源分配和调用的独立单位.每一个进程都有它自己的内存空 ...
- 关于OC中直接打印结构体(CGRectCGSize、CGPoint、UIOffset)等数据类型
关于OC直接打印结构体,点(CGRect,CGSize,CGPoint,UIOffset)等数据类型,我们完全可以把其转换为OC对象来进项打印调试,而不必对结构体中的成员变量进行打印.就好比我们可以使 ...
- 74HC238引脚定义 使用方法
三八译码器 用作IO扩展与复用 用3个IO,可以控制8个输出 引脚定义 A0~A2:3个输入 E1.E2:拉低使能,可以接地 E3:拉高使能,可以接VCC Y0~Y7:8个输出 真值表 如果想输出8个 ...
- dos编码格式 cmd编码 dos中文显示
设置uft-8编码 > chcp 65001 设置默认编码 > chcp 936 字符集 1258 越南语 1257 波罗的语 1256 阿拉伯语 1255 希伯来语 1254 土耳其语 ...