Visual Studio Online (VSO) is a cloud based offering from Microsoft for teams that are developing software. It includes foundation services like source repository, tools for project planning and tracking and execution of build for Continuous Integration. Since Team Foundation Service (TFS) is in the cloud, teams can start working on these features without spending any time in installation and configuration. The infrastructure provisioning and maintenance required for these services is taken care of by Microsoft. As soon as the organization subscribes to VSO, it can start using different features from integrated IDE like Visual Studio or Eclipse.
Visual Studio Online was called as Team Foundation Service until recently. It provides storage and endpoints of the services in the cloud for the team to work. The VSO features are licensed in 3 major categories as follows
This article is published from the DotNetCurry .NET Magazine – A Free High Quality Digital Magazine for .NET professionals published once every two months. Subscribe to this eMagazine for Free and get access to hundreds of free .NET tutorials from experts
Visual Studio Online: Basic (5 users free)
Code repositories, Backlog, track bugs and tasks, Integration with IDEs like VS, Eclipse, Run CI Build, and Includes Visual Studio Express for Web, Windows or Windows Desktop
Visual Studio Online: Professional
all features from basic, up to 10 users per account, subscription to VS Professional IDE
Visual Studio Online: Advanced
all features from basic, break down complex project with Agile Portfolio features, Team Rooms, Integrated feedback request, Integration with major IDEs, Visual Studio Express
Let us first see who can really be benefitted from Visual Studio Online.
Any organization which does not want to invest in on-premises installation of Team Foundation Server can use Visual Studio Online. The team can start working within 5 minutes on a project without getting into any infrastructure specific details. If the team is working in multiple locations, VSO will be ideal to use.
Considering the fact that VSO is a cloud based set of services, some advantages immediately come to mind. Apart from no infrastructure required in-premise, VSO also provides all the new updates for a product, without the organization taking any efforts. These new features will be available even before they are made available to on-premises Team Foundation Server. Being cloud enabled, the team can start working on a project in a very short duration. Time required for installation and configuration of TFS in-premise is saved.
We will be exploring following features in this article
- Code Repository
- Agile Portfolio Management
- CI Build
- Team Room
- Load Testing
Before we start exploring these features, let us see how to get started with subscribing and using VSO.
1. If you do not have a Visual Studio Online account, you can get one by using Microsoft Account or create an account from www.visualstudio.com. If you have a Hotmail email account then you already have a Microsoft account.
2. You should have Visual Studio 2013 installed on your machine. If you do not have it, you can get a evaluation copy from http://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
3. Now you can create your Team Project by logging on to http://.visualstudio.com
4. Open Visual Studio from your account after creating a project
5. You can configure workspace and get source.
6. You can check in code, queue build, manage workitems and even execute tests.
Now that we have seen how to get started with VSO, let’s delve into the various features.
The team members of a project can be at different locations. They require a common repository for storing their work. We have 2 options for source control i.e. Git (Distributed Version Control) or Team Foundation Version Control. Any of these source control mechanisms can integrate with multiple IDEs like Visual Studio or Eclipse. We can provide security of the team by creating groups. You can observe default VSO groups as we have with on premise Team Foundation Server.
Team members can be added as needed to Team Project. The member can be added to the group as per security requirement. The permissions can be at project level if needed.
The code being developed can be for various Microsoft platforms like Windows, Windows Phones, Desktop or Web. Once the functionality is ready, we can check-in to Visual Studio Online directly from IDE (only).
Now let’s shift our focus to the browser based VSO pages. Observe the Code tab which includes Explorer, Changesets and Shelvesets. History can be observed with Changesets and the Shelvesets information can be obtained as well. All changes to the code, the changes made by individual team member or search criteria, can be specified with Changesets.
Agile Portfolio Management
While working in a team, it is required to keep focus on writing right, qualitative code. In order to achieve this goal, we can classify the parts of project into areas or iterations. Project planning tools of VSO will be helpful for this classification. We can just drag and drop the backlog items into required sprint or iteration. We can assign work items to team members by drag-drop mechanism and the team member can concentrate on writing required code. We have already seen how team members can be provided with security.
A sprint backlog created by team members helps in understanding work to be done in that sprint. It can be used to manage work. With the work tab, we can also track the changesets to which a particular workitem is associated as well as other linked work items.
We can observe the current and future releases. A new Product Backlog Item (PBI) or bug can be created. These 2 are represented using 2 colors (blue and yellow).
A feature is a logical combination of multiple PBIs that provides a perspective to the product being created. We can create a feature and add PBIs to it. A PBI will be implemented by breaking it into multiple tasks.
A similar hierarchy of PBIs of tasks can also be viewed.
At the end of sprint development, team should create potentially releasable increments to the product. It can be one or multiple features. Each PBI can be dragged and dropped into a sprint. We can set team’s capacity by selecting the Capacity tab. Individual capacity can be added. We can even specify if a team member is having day/days off or if it’s a holiday for the entire team. Once the capacity is specified and the team velocity (scrum) gives the tasks with remaining work, the overall work separation is represented with graph.
The green color indicates the work can be completed within the stipulated duration, whereas the red color says that some work needs to be re-allocated.
Once the team starts working on the tasks, the overall view can be seen with the Board tab. You can observe the status of various tasks – TO DO, IN PROGRESS and DONE. The workitems can be dragged and dropped to next state. This view can be either grouped by backlog items or team member wise.
You can view the workitmes with graphs as well. You can add as many as charts as required with different types. Visualizing a graphical view is much easier!
Continuous Integration – Team Build
It is a good practice to capture bugs at an early stage and also maintain the quality of the code. If we specify Continuous Integration of cloud based build services, the quality of the product can be monitored. Every time the code is checked-in, the build will be executed. The build definition needs to be created with Team Explorer from Visual Studio.
The build will be automatically triggered with each check-in. The queued build can be viewed with the Build tab. Once the build is completed, its information can be viewed in Completed tab. Double clicking the completed build will provide the summary. The log and diagnostics can be viewed as well. The build can be assigned with quality.
Automated tests can also be run along with build. The build controller used is the Hosted Build Controller.
The team can collaborate with each other by discussing work in progress and providing information about issues raised. This is taken care by using Team Room. This feature is more helpful when team members are in disparate locations.
A team member can enter the room by going to the home page of the team project and selecting Team Room option. A team member can then send a message to another team member. A work item can be included by preceding it with # tag as a part of the message. You can ask a team member to look into a bug by providing the id. A workitem can be opened from a link. An event can be added which can be viewed by all team members eg: completion of build, updating a workitem, changing of code or code review requests. A Room event will appear as links as shown here
The figure shows the events, the team members currently in Team Room, other members and also how a message can be sent to another team member.
Visual Studio Online provides ‘Test Case Management’. You don’t have to switch to Microsoft Test Manager for Test Plans, Test Suites and Shared Steps creation. In order to access the Test tab, we need to provide Full access to the Windows user or Group who is accessing the functionality.
Test Plan, Test Suites, Test Cases or Shared Steps can be seen if they already exist, or new ones can be easily created. There is a link to opening a Test Plan with Microsoft Test Manager. A new Test Case can be created using the usual IDE or multiple Test Cases can be created using a Grid. We can provide all the details to the Test Case like Title, Iteration, Area, and Assigned To (ownership of Test Case). When we have finished creating Test Plans, Test Suites and Test Cases, we can start executing the Test Cases.
Once the execution starts and we encounter any error, we can create a bug, add a comment to it or add an attachment. Once the execution is completed, we can save and close the runner. We have various options to mark the test case as Pass, Fail, Block or Not applicable. The test case can also be marked as Paused. For Paused Test Case, we later get Resume test as the option. While creating a bug, it is possible to add comments, attachments along with the bug however we cannot create a Rich bug. (It requires Microsoft Test Manager installed in order to configure Data Adapters)
Once the functional testing is completed, performance of the project can be tested with increase in users. We do not have to prepare an infrastructure for it, like installing and configuring items. We can use cloud based load testing with readymade virtual machines. The application under test must be available on the internet. You can use Visual Studio 2013 to create a Load Test. Once the load test is ready with multiple functional tests mix, network mix, concurrent or stepped users, browser mix; we need to configure the load test to run in the cloud.
Before running load tests in Cloud, you need to connect to the Team Project with Visual Studio Online. We can get relevant information about the test, eg: if it is running successfully or not. Once the test is completed, we can download and view the report.
In this article we saw how Visual Studio Online provides an end-to-end, cloud based Application Lifecycle Management solution, which is essentially a collection of developer services that focuses on Agile Team Collaboration, runs on Windows Azure and extends the development experience in the cloud.
It’s the beginning of a new era for Visual Studio, so stay tuned for more!
C# and .NET have been around for a very long time, but their constant growth means there’s always more to learn.
We at DotNetCurry are very excited to announce the The Absolutely Awesome Book on C# and .NET. This is a 500 pages concise technical eBook available in PDF, ePub (iPad), and Mobi (Kindle).
Organized around concepts, this eBook aims to provide a concise, yet solid foundation in C# and .NET, covering C# 6.0, C# 7.0 and .NET Core, with chapters on .NET Standard and the upcoming C# 8.0 too. Use these concepts to deepen your existing knowledge of C# and .NET, to have a solid grasp of the latest in C# and .NET OR to crack your next .NET Interview.
Click here to Purchase this eBook at a Discounted Price!