Showing posts with label Visual Studio Online. Show all posts
Showing posts with label Visual Studio Online. Show all posts

Tuesday, September 20, 2016

Why I still prefer using TFS vs. using Git

On all of my recent projects, I have been primarily using Git source control mainly because of the features for local feature branches for locally developing features and functionality without committing a branch directly to the main source control repository.

Of course, being a Microsoft developer, I am using Git within the Visual Studio IDE which presents its own challenges since Git support was added to the Visual Studio IDE very recently and mainly as an afterthought for functionality to cater to the needs of non-Microsoft-centric developers.

However, TFS is a platform which has been around for the last 11 years and has very robust and full-featured support within the Visual Studio IDE and provides many more features and functionality directly within the Visual Studio IDE.  In addition, many features are much more easily accessible and usable than with Git support in the Visual Studio IDE.


  1. First of all, Visual Studio has full support for viewing source control for TFS using Source Control Explorer directly within the Visual Studio IDE.  Unfortunately, while using Git, the developer is forced to browse to the repository within the browser in order to view source.
  2. Using Source Control Explorer within the Visual Studio IDE with TFS, you get much better visualization of the branching structure and how branches are interrelated to each other.
  3. Using Source Control Explorer within the Visual Studio IDE with TFS, you also have the ability to view "deleted" files from the TFS repository.  Using Git within the browser, there are no such options.
  4. Performing commits within TFS allows for meaningful commit numbers called "Changesets" which are easily understandable and can be readily remembered.  However, with Git, commits are very long random GUIDs which are neither easily understandable nor remembered.
  5. TFS allows committing just a single file even when there are other pending edits on your file system, while Git ALWAYS requires a commit and pull request before committing/pushing even a SINGLE file.
  6. Using Git within the Visual Studio IDE, only a very small portion of the total commands for using Git are available from a GUI interface.  All other operations require using a separate GIT client such as SourceTree or GitKraken or requires using the Git Command-Line client.  However, using TFS, nearly every operation is available within the GUI while only a few operations require using the TFS Power Tools through the command-line interface.
  7. Code Reviews within Git require a branching strategy and creating Pull requests from within the browser, while Code Reviews within TFS can be done on any committed code and are significantly easier and can be initiated directly from within the Visual Studio IDE.
  8. 3rd party merging and comparison tools such as Beyond Compare can be readily integrated into the IDE while using TFS, however, using Git only supports Visual Studio's built-in comparison and merging by default.  In order to support Beyond Compare for Git requires the installation of the Git Extensions for Visual Studio which still provides incomplete support at best.
  9. TFS allows "Shelving" support directly within the IDE as well as easily reviewing Shelvesets, however, Visual Studio has no built-in support for "Stashing" when using Git.  
So, even though Git is becoming increasingly popular to use as a source control repository, for Microsoft-based developers using the Visual Studio IDE, using Git over TFS presents some significant disadvantages that should be carefully weighed and considered before choosing Git over TFS as the de facto source control repository for your development team and organization.

Tuesday, September 13, 2016

Code Review in TFS vs. Git

If you are currently using Git with Team Foundation Server or Visual Studio Online, you may be wondering how the process of Code Reviews differs between the 2 source control platforms.

Well, they differ remarkably!

In fact, if you compare the TFS Code Review solution side-by-side with the Git Code Review solution, the TFS Code Review solution is FAR better and much more intuitive to use than the Git Code Review process.

Get your code reviewed with Visual Studiohttps://www.visualstudio.com/en-us/docs/tfvc/get-code-reviewed-vs

With TFS Code Reviews, you can easily review any set of code that exists in the TFS Repository which is extremely convenient!

However, with Git Code Reviews, you have to create feature branches and then create "Pull Requests" in order to get code reviewed before it is merged back into the main branch:

Review code with pull requestshttps://www.visualstudio.com/en-us/docs/git/pull-requests

Ideally, Microsoft would make the process of performing Code Reviews IDENTICAL between using Git or TFS Source Control!

If you also believe that Microsoft should make these 2 completely disparate processes consolidated within the Visual Studio IDE regardless of which source control system the developer is using, then you should vote for this UserVoice item here: https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/16046128-make-git-code-reviews-more-like-tfs-code-reviews


Saturday, September 10, 2016

Connecting to Team Foundation Server/Visual Studio Online using Visual Studio

As a consultant, I often end up working with teams which have not used Team Foundation Server or Visual Studio Online before and therefore end up training them on how to connect to TFS/VSO using Visual Studio.

Since I do this often enough from project to project, I thought I would finally write a blog on how to do this!

First of all, Microsoft has already written 2 articles on just how to do this:

Connect to Visual Studio Team Services from Eclipse, Xcode, Visual Studio, and morehttps://www.visualstudio.com/en-us/docs/setup-admin/team-services/connect-to-visual-studio-team-services

Connect to team projectshttps://www.visualstudio.com/docs/connect/connect-team-projects#connect-from-visual-studio-or-team-explorer

This article also addresses how to connect using Visual Studio 2013, but this still applies to Visual Studio 2015: https://binary-stuff.com/post/connecting-visual-studio-to-vso

One of the easiest methods the above article does not mention is connection from the Team menu!






From there, all the steps remain the same!  That is really all there is to it!

Monday, August 22, 2016

Changing the Account Owner in Visual Studio Online

If you use Visual Studio Online, you might know that you are only allowed to have a single account owner for Visual Studio Online.

But what happens in instances where that staff member is out of the office, goes on leave or even leaves the company?

Thankfully, any administrator in Visual Studio Online can change the Account Owner to another individual in the organization!

The steps for accomplishing this can be found in this blog: https://blog.kloud.com.au/2014/01/06/how-to-link-existing-visual-studio-online-with-windows-azure/

Thursday, August 18, 2016

Create a README file for Team Foundation Server/Visual Studio Online

If you want to create a README file for your Team Foundation Server/Visual Studio Online project in a manner similar to what you see used on sites such as GitHub, you can do that rather readily using the web-based User Interface!

Just as with standard markdown files (.md), you can use Markdown syntax to create the README file in VSO as outlined in this article: https://www.visualstudio.com/en-us/docs/reference/markdown-guidance

In addition, you even have the option of adding this README file directly to the Overview dashboard so that it is immediately visible to all of your users!

Tuesday, August 16, 2016

Setting up a Paid Subscription for Visual Studio Online in the Windows Azure Portal

If you want to set up a Paid Subscription for Visual Studio Online, you have to set this up within the Windows Azure Portal.

Unfortunately, the process to accomplish this is not documented and instead you have to figure this out on your own.

But not to worry!  It is a relatively easy process to follow!


  1. From the More Services section in the Azure Portal, click on Team Services Accounts
  2. You should then see your existing Visual Studio Online account
  3. If you have an existing Azure Subscription, you can then link your Visual Studio Online account to your Azure Subscription, by clicking on the Link button
  4. Once the accounts have been linked, you can view the settings for your Visual Studio Online account
  5. When you are ready to purchase additional Visual Studio Online licenses for your users, you can click on "Users" in the Settings pane
  6. The new pane that displays will allow you to select the number of users you want to purchase
  7. Once you have chosen the number of users you want to purchase, you click on the "Save" button in the toolbar.
  8. Finally, once the purchased users have been assigned, you can go into Visual Studio Online and assign the appropriate purchased User Licenses to your Visual Studio Online users!







Thursday, August 11, 2016

Features missing in Visual Studio Online/Visual Studio Team Services

If you use Visual Studio Online/Visual Studio Team Services as compared to Team Foundation Server, there are some notable features missing in Visual Studio Online which mainly center around integrations such as:


  1. Integration with SharePoint/Office 365
  2. Integration with Project Server
  3. Integration with Dynamics CRM

Lacking these integrations in Visual Studio Online is a huge loss since the integrations with SharePoint and Project Server alone provides a tremendous amount of functionality.

Even at a bare minimum, these features would be nice to have built-into Visual Studio Online:

  1. Support for daily and weekly status reports
  2. Support for time tracking using a built-in web-based timer for individual tasks

There is no telling when (or if) Microsoft will be adding these features to Visual Studio Online in the near future, so for now, you have to look for 3rd party solutions to fill in the gaps left by Visual Studio Online/Visual Studio Team Services!!

You can vote for some these features in the UserVoice site here:

https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/3103684-integrate-office365-and-visual-studio-online

https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/15626682-provide-project-server-integration-with-team-servi

https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/15626697-provide-status-reporting-with-team-services

https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8219763-start-work-starts-a-timer

Wednesday, August 10, 2016

Handling spaces in Git Urls using TeamCity

If you are using Team Foundation Server/Visual Studio Online for your Git repository, there is a good chance that you may end up with spaces in your Git repository Url!

This is because TFS/VSO uses the Project Name as the method to generate the Git repository Url.

Unfortunately, this presents an immediate problem for TeamCity because spaces in Urls are translated as the %20 character!  Once you run a build in TeamCity with a Url containing these characters, the build on the build agent will fail with an error such as this:

"20Reports defined in VCS Root: VSO Reports"

Thankfully, there is a solution to this problem even though it is not perfect. To workaround around this problem, you simply escape the %20 characters with an additional % sign like so in your VCS Url:

VSO%%20Reports

This should resolve the issue with being able to execute a build with a VCS Url that contains spaces.

However, you may still end up with an error message like this in your build log beneath the Artifact dependencies:

Parameter "20Reports" is undefined

You can ignore this error message in the build log, but hopefully the Jetbrains TeamCity development team will fix this issue completely in the near future!




Tuesday, August 2, 2016

Managing Sprints in Team Foundation Server/Visual Studio Online

When you initially set up the Scrum template in Team Foundation Server/Visual Studio Online, you will get a set of 6 initial Sprints.

However, as you come close to completing your initial set of 6 Sprints, you may be wondering how to create additional Sprints or Iterations!

Well, by following these articles, you can create additional Sprints for your project:

Define sprints

https://www.visualstudio.com/en-us/docs/work/scrum/define-sprints

Sprint planning

https://www.visualstudio.com/en-us/docs/work/scrum/sprint-planning

Customize area and iteration paths

https://www.visualstudio.com/en-us/docs/work/customize/modify-areas-iterations


Stakeholder licenses for Team Foundation Server and Visual Studio Online

Since Stakeholder licenses are FREE for Team Foundation Server/Visual Studio Online users, naturally, many companies/organizations want to understand what features/functionality is provided with this FREE license.

You can find a basic overview of operations the Stakeholder license is allowed to do here: https://www.visualstudio.com/en-us/news/2014-aug-27-vso.aspx

For more detailed information on the exact features and functionality provided to the Stakeholder license, you can check out this handy article provided by Microsoft: https://www.visualstudio.com/en-us/docs/work/connect/work-as-a-stakeholder

Once you read the above article, you will notice that Stakeholder licenses are basically restricted to managing Work Items on a very basic level.  Working in Team Rooms or even doing simple operations such as dragging and dropping Work Items from 1 state to another on the Kanban board are restricted!

Of course, tools such as Trello (https://trello.com/) and KanbanFlow (https://kanbanflow.com/) do not restrict their users from such operations, so it does make much sense why Microsoft would restrict this capability in Visual Studio Online/Visual Studio Team Services.

If you want Microsoft to include drag and drop on the Kanban Board for users with a Stakeholder license, you can vote for this UserVoice item here: https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/12797556-allow-stakeholders-to-drag-and-drop-work-items




Visual Studio Online pricing explained

I was recently investigating Visual Studio Online/Visual Studio Team Services pricing and started reviewing this page: https://www.visualstudio.com/en-us/products/visual-studio-team-services-pricing-vs.aspx

The pricing listed on the screen, however, seemed to be rather confusing in terms of purchasing user licenses.

Initially, you are given a pack of 5 free users, so when you buy 10 users, does that mean you lose the initial 5 free users?

Well, as it turns out, yes, you are ONLY receiving 10 BASIC user licenses!!

Therefore, you will end up with a total of 10 users (including the initial 5 free users)!!

All of these user licenses are Basic user licenses which provides most of the functionality within Visual Studio Online/Visual Studio Team Services.

Of course, these licenses exclude any users which own an MSDN subscriber account as well as any Stakeholder licenses which continue to remain FREE!

This becomes SIGNIFICANTLY more expensive once you move up to 20 users ($110/month)!!  By comparison, licensing a source control system such as BitBucket (https://bitbucket.org/product/pricing) only costs $100/month for 100 users!!

However, Visual Studio Team Services offers significantly more integrated functionality than a tool such as BitBucket, so this should also factor into the decision making process before choosing Visual Studio Online as your source control tool of choice!


Friday, July 29, 2016

Time Tracking for Team Foundation Server/Visual Studio Online

One of the most highly requested features for Team Foundation Server and Visual Studio Online is to add support for a timer or a similar time tracking feature that allows users of TFS and VSO to track the ACTUAL time spent on a particular Work Item Task.

Unfortunately, Microsoft is quite adamant about not providing support for this functionality within the base TFS/VSO product as evidenced by this UserVoice item: https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/4096739-tfs-task-timer-tool-to-measure-working-time-in-a-t

However, this UserVoice item was declined back in 2013, but there is another UserVoice item which is still active that might garner some attention for the either TFS 2015 or the next release of TFS if enough people vote on this UserVoice item: https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8219763-start-work-starts-a-timer

Aside from that, there are a few commercial options for TFS Time Tracking:

http://www.tfs-timetracker.com/

http://www.teamexpand.com/product/tfs-timesheet

http://www.imaginet.com/imaginet-timesheet-for-tfs/#pricing

https://sswtimepro.com/#Pricing

There is also a free project called TFS Working On, but this project seems to no longer being actively developed for recent releases of TFS: http://tfsworkingon.codeplex.com/


Wednesday, July 20, 2016

Managing alerts in Team Foundation Server and Visual Studio Online

If you want to manage Alerts for yourself or your team members, you can set up Alerts by following this article: https://www.visualstudio.com/en-us/docs/work/track/alerts-and-notifications

Basically, when you log into Team Web Access, you have to click on your gear icon in the toolbar to get to the Control Panel:



Once you get into the Control Panel, you will want to click on the Alerts tab:


You can then set up the different types of Alerts for yourself.  I normally configure Alerts for Work Items:


You should then have the Alerts show up as follows:


Friday, July 8, 2016

Customizing Work Items for Visual Studio Online

When it comes to modifying work items for Team Foundation Server, you can do this pretty readily using the Team Foundation Server Power Tools which includes a Process Editor.

However, when you are working with Visual Studio Online, this type of customization is not readily available to you and the options for customization are much more limited.

You can get an overview of the types of customizations that you can complete by taking a look at this article:

Add or modify a work item type

https://www.visualstudio.com/en-us/docs/work/customize/add-modify-wit

But, this article is probably one of the ones you will need to focus on:

Customize a field for a process

https://www.visualstudio.com/en-us/docs/work/process/customize-process-field

On the bright side, if you take a look at the roadmap for Visual Studio Online, you will see that they have quite a few things planned:

https://blogs.msdn.microsoft.com/visualstudioalm/2016/01/11/vsts-process-customization-futures-january-2016/

https://blogs.msdn.microsoft.com/visualstudioalm/2016/06/18/vsts-process-customization-futures-june-2016/

Lastly, if you are stuck on customizing your Visual Studio Online Process, you can always e-mail the Visual Studio Online customization team: vsocustpt@microsoft.com


Monday, June 27, 2016

Integrating TeamCity with Visual Studio Online Work Items

If you want to integrate Jetbrains TeamCity with Visual Studio Online Work Items, unfortunately, TeamCity does not provide this functionality out-of-the-box.

However, you can still link these 2 systems together using a TeamCity plugin as outlined in this article: https://blog.jetbrains.com/teamcity/2014/11/integrating-teamcity-and-visual-studio-online-work-items/

You can obtain the Visual Studio Online Work Items plugin from here: https://confluence.jetbrains.com/display/TW/Visual+Studio+Online+Work+Items

Reading the article is a bit confusing as to where to obtain the plugin, so I am providing the direct link here: https://teamcity.jetbrains.com/project.html?projectId=TeamCityPluginsByJetBrains_VisualStudioOnlineIssueTrackin

You then have to click on the link for "Artifacts" and then download the .zip file appropriate to your version of TeamCity.

 Once you upload the Visual Studio Online plugin and re-start your TeamCity Server and TeamCity Build Agent, you should see a screen similar to the following:




Then, once you go into your Project and select Issue Trackers, you should now have an option for Visual Studio Team Services:


Next, you can simply add your settings for Visual Studio Online:



You should then fill out the screen with information similar to the following:


Finally, you can test the connection to make sure all of your settings are valid and you should get a result similar to the following:



Finally, your newly configured Issue Tracker with Visual Studio Online Work Items should show up in TeamCity like this:


Friday, June 24, 2016

Creating Work Items in Team Foundation Server/Visual Studio Online

I have been working with Team Foundation Server Work Items for quite some time and one of the things that has always been frustrating to me has been the disparity in web-based work item functionality between different views in Team Foundation Server.

For example, if you go into the Home Dashboard of Team Foundation Server, you will be presented with the following view:






This Dashboard view allows you to readily any type of Work Item such as a Bug, Epic, Feature, Impediment, Product Backlog Item, Task or Test Case.

However, as soon as I switch to the Work section of Team Foundation Server, I am presented with these 2 views instead!


In these views, I can only add a Feature, Product Backlog Item or a Bug! 


There is no default view in the Work section that allows me to easily add any of these other Work Items: Epic, Impediment, Task or Test Case.  Instead, if I want to add any of these other Work Item types, I have to add a new Link to an existing Work Item and then create these other types of Work Items from there:





This is especially annoying if you want to create a parent record directly such as an Epic which will include multiple Product Backlog Items or Features.  But, unfortunately, the Epic Work Item type cannot be created directly from the Work section of Team Foundation Server and must either be done this way or through the Home Dashboard!

Of course, if you are managing Work Items through Visual Studio Team Explorer, all Work Item types are immediately available to you!






Hopefully, Microsoft will correct these web-based Work Item usability problems in a future release of Team Foundation Server/Visual Studio Online, but for now, the best solution is to work through the web-based Home Dashboard!!

Wednesday, February 24, 2016

Limitations of using Git with Visual Studio Online

I recently started working on a project that was using Git with Visual Studio Online.  Of course, it was a .NET Development project, so we were naturally using Visual Studio for all of our development.

Unlike Team Foundation Server integration with Visual Studio which Microsoft has been developing for the last 10+ years, Git support with Visual Studio is a relatively new addition based on user demand for DVCS (Distributed Version Control System) support.

However, as I started working with Git in Visual Studio, I quickly learned the number of limitations that existed with using Git through Visual Studio:


  1. Unlike TFS which has a built-in Source Control Explorer, there is no Repository browser or Source Control Explorer integration for the Git repository.
  2. Unlike TFS, which supports configuring external user tools such as Beyond Compare, the Microsoft Git Provider has no such support and developers are left to using the built-in Microsoft compare and merge support within Visual Studio.
  3. Unlike TFS which has support for shelvesets, Git support in Visual Studio does not have the corresponding equivalent of stashes.
  4. Unlike TFS which allows you to easily go into any work item and link up the associated Changesets even after a commit has been performed, Git support in Visual Studio does not have this feature.  Instead, you can only associate the Work Item at the time of committing to Git.  There is no support for adding Work Item association after the commit has been performed!
I am sure there are many, many more limitations that I have not discovered yet, but these are just some of the limitations to be aware of when determining whether to choose Git with Visual Studio Online/Team Foundation Server!


Tuesday, February 23, 2016

Using TortoiseGit with Visual Studio Online

If you are using Git with Visual Studio Online, you may also want to use TortoiseGit as your Git client.

However, as you will soon discover, TortoiseGit does not support Windows Live ID credentials!

Therefore, what do you do in this scenario?

Fortunately, Visual Studio Online supports a scenario called "Alternate Credentials" as described here: https://www.visualstudio.com/en-us/integrate/get-started/auth/overview

You need to set up these alternate credentials in Visual Studio Online in order to be able to use an alternative client such as TortoiseGit in conjunction with Visual Studio Online Git.

You will first need to log into Visual Studio Online and then under "My Profile"-->Security, you will be able to enter your Alternate Credentials as shown below:



Once you have done that, you will be able to log into TortoiseGit using these Alternate Credentials rather than your Windows Live ID credentials!

That is all there is to it!!

Monday, February 22, 2016

We can't sign you in using Visual Studio Online

I was recently attempting to connect to Visual Studio Online on a brand new development server that I built when I kept on getting incessant unauthorized error messages.

Well, I went into the "Register Product" menu and attempted to add a Microsoft account:



When I clicked on "Add an account" to attempt to add my Microsoft account, I got the following error message:


Once I saw this error message, I decided to check out my cookie settings in Internet Explorer and sure enough, I found this!


I lowered the cookie security and also added visualstudio.com to my list of Trusted Sites:




Finally, when I attempted to log into Visual Studio Online once more, I could successfully get into the system!


Thursday, September 3, 2015

NuGet Package Management coming to Visual Studio Online!

If you currently have a Visual Studio Online account, you will be excited to know that NuGet Package Management will soon be coming to Visual Studio Online!

In the past, you would have had to host your own local NuGet Server or pay for an external NuGet service such as ProGet or MyGet, but now Visual Studio Online will be offering that same service as part of your Visual Studio Online service!

How cool is that??

http://blogs.msdn.com/b/visualstudioalm/archive/2015/08/27/announcing-package-management-for-vso-tfs.aspx