Please join us on August 28th for another Austin ALM User group meeting.
Presentation: TFS 2015 Panel - New Features and Installation/Upgrade Experiences
Join us on 28th of August to review the new features of TFS 2015, share your installation/upgrades experiences and talk about any topics that would help you get ready for an upgrade.
The Austin ALM User Group Leadership will compose the panel, plus a couple of Microsoft ALM Specialists.
Microsoft Technology Center: Austin
Quarry Oaks Atrium
Bldg. 2 - 2nd Fl.
10900 S. Stonelake Blvd.
Austin, TX 78759
To ensure a seat and lunch, please register at: https://www.eventbrite.com/e/tfs-2015-panel-new-features-and-installationupgrade-experiences-tickets-18159555720
11:30 - Noon:
Noon - 1PM: Presentation and Discussion
Paul Barham from Microsoft wrote an article about how Visual Studio Online Supports True Cross-Platform Development. As I had mentioned in a previous blog post, this has been a nice new trend coming from Microsoft as they expand cross-platform capabilities, enhancing the usage of VSO for big enterprise with heterogeneous environments. Notice the list of available service hooks:
The article does a brief summary of the many ways that VSO enables cross-platform development, from using git as the source control format, and thus supporting, for instance, XCode, to allowing different build systems such as Jenkins to enable Continuous Integration to getting it all tied together and traceable using a Team web backlog.
In the last couple of months I have been working with the ALM Rangers on investigating how to deal with Technical Debt, and particularly how to use SonarQube with existing TFS 2013 environments.
The current result of this research is a short but to-the-point guide on how to do a SonarQube installation for an existing team foundation server 2013 single server environment. You can get it from Codeplex at http://vsarguidance.codeplex.com/releases/view/614602.
Being proactive in adapting SonarQube to be used with TFS and VSO is yet another example of Microsoft’s change of positioning, after achieving one of the leadership positions in the Gartner report, to become an even more open ALM platform which now allows seamless cross-platform development, including all kinds of mobile applications.
Update: This guide has been moved to github.
I got this question from a user: Does anyone know how I can display the burn down chart in full screen mode? A scenario for this would be to show the burndown (with auto refresh, if possible) in a team area on a big screen TV.
The only way, out of the box, that I know to do this is indirectly using using Chrome:
- Click the chart. It will open as a pop-up window.
- Right click the chart image. Choose "Open Image in New Tab". Choose the new tab with the chart image.
- Press F11 to put the browser in full screen mode
- Use the browser zoom options to increase the size of the image
- Notice that the image is a URL to an API call, so you should be able to refresh it by pressing F5. I don't know how to easy way to auto refresh other than using some kind of Coded UI or Selenium script. Also look for "Auto refresh" in Chrome extensions.
If you know a better way, please send me an email and I will add it here.
Friday, February 6, 2015 from 11:30 AM to 1:00 PM (CST)
TFS Process Template Customizations
During this presentation you will learn about customizing the process configuration and work item templates for TFS 2013.
Areas covered will be configuring a backlog page, map metastates, assign fields used in agile planning, specify weekend days, and changing the color of a work item type.
Work Item Template: Programmability
TFS work items do not allow scripting or code to run however there are dynamical capabilities such as rules, actions, and certain form controls that can be used to simplify or even automate activities in a work item. We will look closely at these capabilities and explore how they can be used.
George is an ALM Architect/Project Manager/Scrum Master with 20 years of experience working with companies such as Deloitte Consulting, Trilogy/pcOrder, Coremetrics, and Dell. He has managed software development projects for state governments in California, Washington, Kentucky and Texas and companies such as Ingram Micro, Bay Networks, and Volvo. George helped Dell implement TFS as the complete ALM solution for the IT and product development groups. He combined the Scrum and CMMI TFS 2010 templates to model the Dell SDLC and then managed and implemented the TFS Process Template changes to keep abreast of Dell's dynamic development methodology.
George has a B.S. in Computer Science from Indiana University of Pa. and an MBA from Carnegie Mellon University's Tepper School of Business. He is married to Kathy and has 3 beautiful daughters. In his spare time he is a Porsche Club driving instructor and is the President of the Northwest Pony Softball League.
Tim is an ALM Architect/TFS Administrator/Scrum Master currently working for Dell in Round Rock, Texas. He retired from the U. S. Navy in 1996 where he was a nuclear technician and supervisor aboard submarines, as well as a certified navy instructor and instructor trainer. He has been working in the computer industry since 1996 as a developer, build master, and ALM Architect for various companies including Dell, Microsoft, and his own consulting company. Tim holds multiple certifications including Master Training Specialist, Scrum Master, and Universal Refrigerant Technician. He is a member of the Austin TFS User Group leadership team and is a TechNet Guru. Tim has been married for over 30 years and has 4 adult children and 5 grandchildren. In his spare time he resolves issues for his TFS customers, plays with his grandkids, and occasionally sleeps.
Microsoft Ignite seems to be attracting a lot of attention from enterprise folks focused on Azure, Office, and now Skype for business.
Typical sessions (among 273 others) that caught my attention were the ones related to legal compliance in general. I had not yet seen so many interesting sessions on the topic all put together in one place. That’s the kind of topic that really differentiates a conference for the general public from something really targeted at enterprise customers. For instance:
From the horse's mouth: learn how the legal personnel from within Rogers Communication and Microsoft IT started using hold and eDiscovery instead of third party products, and hear best practices learned in real-world scenarios.
Going through a process of legal discovery is a nightmare situation for those who have ever lived it, and it would be interesting to see what technologies can do to make it easier. Microsoft is calling that “eDiscovery for Microsoft Office 365” and “in-Place eDiscovery”.
There are also about 53 sessions on the “Enterprise Developers” category, mostly dealing with Office 365, Skype, and Azure. However for me the crown jewels on this category are:
This session demos using Desired State Configuration (DSC) with Release Management for Microsoft Visual Studio 2013 to tackle real-world deployment challenges. We start by presenting an overview of the key concepts, architecture, and configuration of the various components. We discuss the out-of-the box deployment actions available to compose automations for common deployment scenarios and how to use extensibility to cover the not-so-common scenarios. In more detail, we discuss adding custom DSC resources, how to trigger release as part of a build and how to leverage logs to diagnose failed releases. These are presented through specific scenarios encountered in the field.
With Release Management for Microsoft Visual Studio you can achieve true continuous delivery on any platform. This session demos how to use Release Management for continuous delivery in cross-platform environments including Windows and Linux. We cover how to leverage Desired State Configuration (DSC) and ASP.NET core to create a release pipeline for both Windows and Linux.
I am also curious to see what will be of the Hackathon session:
The cloud-targeted app is failing in production. Competitive time to market advantage is at risk, the business is at an inflection point. "It worked fine in testing!" says the Development Team. "We had no visibility to production infrastructure needs until a week ago!" says the Operations Team. Does any of this sound familiar? Learn firsthand how to embrace a DevOps mindset, evolve your traditional ALM approach regarding people, process and tools, and help your business accelerate its journey to a cloud-first approach! Join us for the DevOps Hackathon @ Ignite where you will team up with fellow attendees from developer and operations roles to apply DevOps practices to a real world challenge. Small teams will be formed at the start of the [session].
I am not sure yet if I will be able to attend, but this if I am then this would be an interesting session to be.
Even if you might not be able to attend, just browsing over the session catalog for Ignite is already a learning experience of what is coming on the Microsoft pipeline.
I had the opportunity of being interviewed by the ALM Rangers core team (Anisha Pindoria) during the 2015 MVP Summit in Redmond. It is at [21:11] - MVP Summit Day 1: Clementino De Mendonca. You can also get perspectives from others in the same video.
Watching the other Rangers provided a glimpse of their different background, activities and focus. It was very enriching, and it felt good to know I am in the company of so many bright people.
Call to a .NET Framework assembly on a network folder fails with error:
"Could not load file or assembly 'file://\\server\path\file.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
In this particular case, I wanted to call an assembly with tests which had been deployed using Team Build to a shared folder, then use MSTest in the command line to run them.
MSTest behaved differently depending on whether it is being called from a Windows 2008 R2 Standard server or Windows 8 Client. Using the following command line:
MSTest /testcontainer:\\server\path\file.dll /detail:debugtrace /detail:traceinfo
- From Windows 8 client, user as local administrator: command works as expected. It loads the tests and executes them.
- From Windows 2008 R2 Standard, user as a local administrator: command fails with the following message:
Could not load file or assembly 'file://\\server\path\file.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
Further troubleshooting using 1) a mapped drive 2) PowerShell 3) /testcontainer parameter between quotes show that all these would also fail under Windows 2008 R2 Standard.
The error “Could not load file or assembly” (0x80131515) is a catch-all error. For instance, it is also reported when the exe or dll was downloaded from an unsafe zone. This is fixed by right-clicking the assembly and choosing “Unlock” from the General tab. Sometimes the “Unlock” option won’t show, and in this case it wasn’t.
Blocking is done based on a Zone Identifier alternate stream that is added to a file when it is copied from the Internet. To validate that the file is actually blocked, display this Zone Identifier using the following command (note the direction of the “<” sign – the opposite one would erase the file):
more < file.dll:Zone.Identifer
If ZoneId = 3 or 4, your file is blocked. In our case, the files show no alternate Zone.Identifier stream.
Since copying the files locally to a folder in the Window 2008 R2 Standard server allowed MSTest to execute the tests, this showed that the issue was constrained to some security policy differences between Windows 8 and Windows 2008 R2 Standard. This also confirmed that the files were not blocked.
Next step I looked into the .NET Framework security policy configuration. Using the instructions from this Microsoft blog post I modified the CAS policy settings using the following command prompt:
CasPol.exe -m -ag 1.2 -url file://\\server\path\file\* FullTrust
This added the following record into the CAS policy (CasPol.exe -l):
1.2. Zone - Intranet: LocalIntranet
1.2.1. All code: Same site Web
1.2.2. All code: Same directory FileIO - 'Read, PathDiscovery'
1.2.3. Url - file://\\server\path\file\*: FullTrust
This did not resolve the issue as expected, but the following error started to be reported on the Event log:
Log Name: Application
(MSTest, PID 2000, Thread 1) AssemblyEnumerator.EnumerateAssembly threw exception: System.IO.FileLoadException: Could not load file or assembly 'file://\\server\path\file.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
File name: 'file://\\server\path\file.dll' ---> System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.
By following the link recommended in the log, I got more information on the issue and how to solve it with the configuration switch loadFromRemoteSources.
From MSDN documentation:
“In the .NET Framework version 3.5 and earlier versions, if you loaded an assembly from a remote location, the assembly would run partially trusted with a grant set that depended on the zone in which it was loaded. For example, if you loaded an assembly from a website, it was loaded into the Internet zone and granted the Internet permission set. In other words, it executed in an Internet sandbox. If you try to run that assembly in the .NET Framework version 4 and later versions, an exception is thrown; you must either explicitly create a sandbox for the assembly (see How to: Run Partially Trusted Code in a Sandbox), or run it in full trust.
The <loadFromRemoteSources> element lets you specify that the assemblies that would have run partially trusted in earlier versions of the .NET Framework are to be run fully trusted in the .NET Framework 4 and later versions. By default, remote assemblies do not run in the .NET Framework 4 and later […]. If you set enabled to true, remote applications are granted full trust.
If <loadFromRemoteSources> enabled is not set to true, an exception is thrown under the following conditions:
- The sandboxing behavior of the current domain is different from its behavior in the .NET Framework 3.5. This requires CAS policy to be disabled, and the current domain not to be sandboxed.
- The assembly being loaded is not from the MyComputer zone.”
And, in the same article:
In the .NET Framework 4.5, assemblies on local network shares are run as full trust by default; you do not have to enable the<loadFromRemoteSources> element.
This part of the documentation also shows why it worked on Windows 8: .NET Framework 4.5 is the default for Windows 8.
For validation purposes, I originally applied the recommended setting to machine.config, which is too wide. Later I tested with just MSTest.exe.config and it also worked, which is a smaller recommended scope.
[Verified] Add the following entry to the MSTest.exe.config file (at C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE):
[According to documentation] Use .NET Framework 4.5.
Last month I went to a nice presentation at the Austin TFS User Group on migration from TFVC format to TFS Git, using Git-TFS, a very useful one, the kind that makes you want to research more after it.
However one of the first slides of the talk did a comparison using Google trends which was used as a justification to moving to Git, because according to it, TFVC was going nowhere, whereas Git was exploding in adoption (notice that the numbers are not absolute, that is they are normalized. For instance, if you have just TFS and Mercurial, the number for TFS will be different).
I had in the had past previous encounters with skewed statistics, so I waited until the Q&A at the end to ask a few questions about it.
I pointed out that since we were seeing data that had been filtered through Google search, it did not take into account that most Microsoft tools users however would first go to the MSDN site first and search from there (or just press Help from Team Explorer), so some of the millions of people who have MSDN and use TFVC are not being represented.
Also, git has many client providers, such as Xcode to Tortoise-git. Most of them are also OSS with “best-efforts” support, meaning “if you have an issue, search in the Internet for a solution”. So in a way this trend curve also reflects a bit of where the information sources are for git related topics in general, it is a bit fragmented so you need to go through a search engine to have it all collected for research.
The most important data point I observed is that the TFVC curve (numbers aside) were pretty much stable. So “where is git interest growth coming from?” since the TFVC interest curve seemed pretty stable.
I recalled that around 2001 I had seen something similar about Linux adoption in the desktop: some pointed how it was growing so fast that it would overtake Windows soon. This growth curve was similar, steady but slightly rising for Windows, and steeper for Linux, showing it overtaking Windows in the forecast.
Time showed that the market shares were not changing that much, so where was the Linux growth coming from? Sun took too late to realize that it was their own Unix, Solaris (and for that matter, all of Unix variants) that were being cannibalized as people moved to Linux. Later Sun made Solaris into open source but it was already too late: most Unix users had converted to Linux.
If we could use “searches” as a proxy to “interest”, and that as a proxy for market share: with git growing and TFVC stable, what was the “Solaris” equivalent that was being replaced?
After I explained my point of view, the presenter went online and added Mercurial in the graph… there is surely a downwards trend on Mercurial queries, but that does not explain how git searches were growing:
I mentioned Subversion to him but we didn’t have time to try it out so I continued from home.
I then added Subversion, listed under “Apache Subversion Revision Control System” to the graph, and voilá, the puzzle was solved: the new trend graph, confirmed that the open source community (and for that matter, Microsoft TFS users as well) is readjusting its preferences. Git is now as popular as Subversion was in the 2007-2009 time frame. The growth of interest in git is pretty much explained by the winding down of searches on Subversion and Mercurial, and probably some from TFVC now migrated to TFS git:
I then continued my research looking for the development of Interest in other source control systems, starting by the all-time grandfather of many, CVS. Back-extrapolating its curve, you can see that it was very popular, but was itself run over by Subversion in the 2005 time frame:
I then tried out with others: Rational ClearCase, Rational Jazz Source Control, Perforce. Out of these, only Perforce showed a small but steady curve. ClearCase is now reduced to just a trickle, and Jazz Source Control did not even show up. Finally I had to see if any record of Visual Source Safe still existed after 2005, and as expected it dwindled after 2005:
As a final experiment I tried the “Forecast” feature which seems to trace a simple extrapolation based on the data so far (forecast starts at ABC points below). The extrapolation confirmed the steadiness of the TFVC curve so far, and the ongoing dwindling of Subversion as it gets overtaken by git as all other open source version control systems:
So in conclusion:
- Git will become to open source version control systems what Linux is to open source Unix-like systems;
- TFVC will remain stable for the foreseeable future, with users of TFS-git adding to the number of git adopters;
- You can use statistics to justify any point of view, so be on the lookout for any inadvertently skewed perspectives;
- Do not just accept the data, think about it too – logic will help you in finding the hidden aspects (the “Solaris”) of the question;
If you have read so far and have a different perspective, please let me know what your thoughts are on this.
The SAFE whitepaper + download was just launched today. See the announcement by Greg Boer at the MSDN ALM blog.
This was the result of lots of hours of internal contribution by the ALM Rangers.
The whitepaper provides both a high level view of how SAFe is realized using TFS, as well as detailed configuration/customization details.
In addition to the whitepaper, this release includes a download of the Visual Studio out-of-box process templates, with SAFe related customizations already made: Team Foundation Server 2013 Process Template Samples - Support for Scaled Agile Framework (SAFe).
This pretty much addresses Gartner’s concerns in their latest ADLM state of the industry report, showing a quick turnaround from Microsoft to get these addressed.