The opinions expressed in these materials are my own and are not necessarily those of Microsoft.
Copyright © Microsoft Corporation. All rights reserved. Unless otherwise indicated, all source code provided is licensed under the Microsoft Public License (Ms-PL).
Just came across these the other day and wanted to share below is the information verbatim from http://msdn.microsoft.com/en-us/library/vstudio/ee889983(v=vs.120).aspx
Welcome to the technical articles for Application Lifecycle Management! These technical articles provide additional resources for you to use when supporting your development efforts with Team Foundation Server. Some provide in-depth technical information about unique scenarios that involve Visual Studio Application Lifecycle Management. Others provide insights into development processes and philosophies from industry experts that you might want to consider when developing your software or working as a team on a software project. These articles represent the viewpoints, opinions, and experience of their individual authors.
Agile Principles and Values, by Jeff Sutherland. Jeff Sutherland provides an overview of the Agile principles as defined in the Manifesto for Agile Software Development.
Ten Year Agile Retrospective: How We Can Improve in the Next Ten Years by Jeff Sutherland. Ten years after the publication of the Agile Manifesto, Jeff Sutherland describes the successes of Agile and pinpoints four key success factors for the next ten years.
Done and Undone by Ken Schwaber and David Starr. Delivering a done increment is critical to being successful with agile software development. Using both real-world and theoretical examples, the authors demonstrate the difference between perception of "done" and the reality of "done," and how that affects the success of a project. Using these examples, the authors go on to demonstrate tools and strategies that can help teams start with a definition of done that makes sense for them, and methods to help teams communicate dependencies, status, and the meaning of "done."
Building and Managing the Product Backlog by Mitch Lacey. A good product backlog is at the heart of any well-functioning agile team. In this article, Mitch Lacey explains the importance of a product backlog, describes what makes a good backlog, and provides some best practices for creating and maintaining your backlog.
Prioritization by Mitch Lacey. In this article, Mitch Lacey discusses three methods that have proven very beneficial for many Agile teams: the Kano Model of Customer Satisfaction, a series of Innovation Games by Luke Hohmann, and Karl Weigers’ Relative Weighting model. He describes how any of these methods can help you move from rough prioritization of your backlog to a precise ordering that satisfactorily weighs risk, importance, and customer satisfaction.
Estimating by Mitch Lacey. Mitch Lacey discusses the difficulty surrounding software project estimation, and provides tips and tricks for using two agile software estimation techniques when teams are estimating projects.
Sprint Planning by Mitch Lacey. Sprint planning does not need to be challenging. In this article, the author provides examples and strategies for keeping sprint planning focused and effective, and detail potential solutions to common problems teams encounter when planning a sprint.
Effective Sprint Retrospectives by David Starr. Going beyond techniques, this article offers ways to maintain and improve the practice and results of Retrospectives.
Distributed Scrum by David Starr. Distributed teams often struggle with consistent, timely, and effective communication. In this article, David Starr explains how Scrum offers a container in which different types of distributed teams can improve and succeed.
Enterprise Agile: Using TFS to support portfolio backlogs across multiple teams by Gregg Boer. Learn how TFS can be configured to support a portfolio of backlogs which provides automatic roll-up and management insight into work across multiple teams.
Lean Software Development by David J. Anderson. David J. Anderson describes Lean Software Development, its history, and how it can be used by software development project teams.
CMMI Principles and Values by David J. Anderson. The concept that an organization can be appraised at a particular maturity level and that this is an indicator of capability to deliver reliable work to the government is a matter of ongoing debate. In this article, David J. Anderson makes a case for Capability Maturity Model Integration (CMMI) and describes how it provides valuable insights for managers, process engineers and all external stakeholders including customers, investors, governance bodies and auditors.
The Lean of Scrum by David Starr. In this article, learn about the inherent Lean qualities of the Scrum framework along with various ways to help Scrum Teams improve using Lean Thinking.
Microsoft Solutions Framework (MSF) Overview . In this article, learn about the Microsoft Solutions Framework (MSF), an adaptable approach for successfully delivering technology solutions faster, with fewer people and less risk, while enabling higher quality results.
Application Analytics: What Every Developer Should Know by Sebastian Holst. In this article, Sebastian Holst discusses the objectives and advantages of application analytics.
Exploratory Software Testing by James Whittaker. In this article, an excerpt from his book Exploratory Software Testing: Tips, tricks, tours and techniques to guide test design, James Whittaker discusses goals, advantages, and approaches to exploratory software testing.
Folks I will be on vacation until 8/5. See you all in a couple of weeks :)
p.s. Unfortunately I’m not going to the great place shown in the picture…
You can use Navigate To to search for objects, definitions, or references (symbols) in a solution. If you happen to remember the old Navigate To dialog box then you know it was useful but blocked your view of the code:
The new Navigate To dialog is much less intrusive. Just press CTRL+,[comma] to see the new dialog:
The Navigate To experience will look one of two ways while you are using it. If the symbol is in any open document the relevant line will be highlighted within it:
If the symbol is not in an open document then it will show up in the Preview Tab:
There is only one search option when using Navigate To that will include (or exclude) external items:
At any time you can press ESC to close Navigate To and go back to your original code.
In case you haven’t heard we acquired InCycle’s InRelease Business Unit. Here is information on InRelease from the website (http://www.incyclesoftware.com/inrelease/):
More interesting is the information from Brian Harry (http://blogs.msdn.com/b/bharry/archive/2013/07/10/inrelease-acquisition-is-complete.aspx):
[NOTE: Extra space added by me]
At TechEd, in early June, I announced our agreement to acquire InRelease – a release management product built specifically for Team Foundation Server by InCycle Software. Since then, we’ve received tons of requests for more information, demos, etc. Unfortunately, we’ve only been able to point people at InCycle because the acquisition was not final. I’m happy to say that about a week ago we closed the acquisition and InRelease is now a part of Microsoft.
That doesn’t mean we can start selling it right away. There are a number of things that have to happen in order to enable that – getting it on our price lists, shipping a version that is properly branded, serviceable, etc. All of that will take a few months but there are some good options for you in the interim. Let me share some of them.
Hopefully these two paths will solve everyone’s needs while finish up the changes we need to make.
I also want to say a few words about licensing so you, at least, have a little context on what to expect. We are not ready to announce pricing but I can share a bit about the structure of the licensing.
For now, we are focused on getting InRelease integrated into our on premises product. We will also support our cloud service but that will come a bit later.
Please give it a try and give us any feedback you have. As you might imagine, we are currently working on developing and prioritizing our backlog.
ASP.NET and Web Tools 2012.2 is a tooling refresh of Visual Studio 2012 that extends the existing ASP.NET runtime with new features without breaking existing applications. ASP.NET and Web Tools 2012.2 installs in minutes without altering the current ASP.NET run time components. Click the green button to download and install right now. For a complete description see the Release Notes or watch the video. This .2 update adds a number of new templates and features including:
Download ASP.NET and Web Tools 2012.2 Today!
From the Release Notes at http://www.asp.net/vnext/overview/fall-2012-update/aspnet-and-web-tools-20122-release-notes-rtw
This section describes features that have been introduced in the ASP.NET and Web Tools 2012.2 release.
ASP.NET Web API has been enhanced with several new features:
ASP.NET Web API OData
ASP.NET Web API OData gives you the flexibility you need to build OData endpoints with rich business logic over any data source. With ASP.NET Web API OData you control the amount of OData semantics that you want to expose. ASP.NET Web API OData is included with the ASP.NET MVC 4 project templates and is also available from NuGet (http://www.nuget.org/packages/microsoft.aspnet.webapi.odata).
ASP.NET Web API OData currently supports the following features:
For more information on ASP.NET Web API OData see http://go.microsoft.com/fwlink/?LinkId=271141.
ASP.NET Web API Tracing
ASP.NET Web API Tracing integrates tracing data from your web APIs with .NET Tracing. It is now enabled by default in the Web API project template. Tracing data for your web APIs is sent to the Output window and is made available through IntelliTrace. ASP.NET Web API Tracing enables you to trace information about your Web API when hosted on Windows Azure through integration with Windows Azure Diagnostics. You can also install and enable ASP.NET Web API Tracing in any application using the ASP.NET Web API Tracing NuGet package (http://www.nuget.org/packages/microsoft.aspnet.webapi.tracing).
For more information on configuring and using ASP.NET Web API Tracing see http://go.microsoft.com/fwlink/?LinkID=269874.
ASP.NET Web API Help Page
The ASP.NET Web API Help Page is now included by default in the Web API project template. The ASP.NET Web API Help Page automatically generates documentation for web APIs including the HTTP endpoints, the supported HTTP methods, parameters and example request and response message payloads. Documentation is automatically pulled from comments in your code. You can also add the ASP.NET Web API Help Page to any application using the ASP.NET Web API Help Page NuGet package (http://www.nuget.org/packages/microsoft.aspnet.webapi.helppage).
For more information on setting up and customizing the ASP.NET Web API Help Page see http://go.microsoft.com/fwlink/?LinkId=271140.
ASP.NET SignalR makes it simple to add real-time web capabilities to your ASP.NET application, using WebSockets if available and automatically falling back to other techniques when it isn’t.
For more information on using ASP.NET SignalR see http://go.microsoft.com/fwlink/?LinkId=271271.
ASP.NET FriendlyURLs makes it very easy for web forms developers to generate cleaner looking URLs(without the .aspx extension). It requires little to no configuration and can be used with existing ASP.NET v4.0 applications. The FriendlyURLs feature also makes it easier for developers to add mobile support to their applications, by supporting switching between desktop and mobile views.
For more information on installing and using ASP.NET Friendly URLs see http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms
I’ve had some customers that are experiencing this issue so wanted to get it out more broadly in case you are having similar problems. Buck Hodges has written a blog post on symptoms and resolution here:
The KB article can be found here:
There are several other issues fixed with this TFS Update. Here is the list of issues that are fixed (for more detail go to the KB article):
A customer asked me the other day about excluding different files (or directories) based on the type of build happening. Specifically they wanted to exclude some files for Release builds and others for Debug builds.
Here is the general info on how to exclude files from builds:
Within the article you will want to take a look at the Condition attribute which specifically calls out how to exclude based on build type:
Condition=" '$(Configuration)' == 'Release' " />
I had a customer accidentally delete some test cases in Team Foundation Server the other day and call me in a panic. Fortunately they had good backups and the story ended well but I thought it would be good to review what is needed in case you accidentally delete your work items.
TFS uses databases and, therefore, the key to recovering in TFS is making sure you are backing up and are able to recover the underlying databases. Here is the guidance on how to do just that:
Not all artifacts are easy to recover. Test Plans are particularly fun to get back so my friend Angela wrote an article about how to recover in those special situations:
Being able to recover means having a good relationship with your database administrator. Make sure you are in sync on the TFS install and what pieces of the deployment are high value vs. low value projects, etc… Like in most things communication is the key to success and there is not such thing as over communicating when it comes to your TFS instance…
…Okay there IS such a thing as over communicating so don’t, for example, hire an airplane to fly over your building with your favorite table name from the TFS database.
This is a multi-part series, you can find the other parts here:
Understanding IntelliTrace Part I: What the @#$% is IntelliTrace?
Understanding IntelliTrace Part II: Where Do I Use IntelliTrace?
Understanding IntelliTrace Part III: IntelliTrace Events
Understanding IntelliTrace Part IV: IntelliTrace Calls
Before we get started I want to be absolutely clear: there is nothing “advanced” about the setting we are going to talk about. The word “advanced” in this case could (and probably should) be replaced with “miscellaneous” or, better yet, “stuff you should always have turned on”. I am, of course, talking about the setting found at Tools | Options | IntelliTrace | Advanced:
We will go though each of these in order and make sure you are clear on reasons for usage. Remember we are using the Brian Keller Virtual Machine with the Tailspin Toys sample code for these posts although this specific post can be used with any codebase.
Running IntelliTrace sessions is great but the experience ends when you stop debugging. Try it and see what I mean. Get some IntelliTrace info up doing one of the exercises in the previous post:
Now stop debugging. Notice the IntelliTrace window completely goes away and there is no way to bring it back UNLESS you start a new debugging session or record an IntelliTrace log file. How do we get a log file? Just go to | Options | IntelliTrace | Advanced and select Store IntelliTrace Recordings In This Directory:
You might also want to create a new local directory with a shorter path to hold your logs:
Now you have a place for your IntelliTrace sessions to be stored:
We will dig into the specifics of what the log files contain in a later post however feel free to open one of these up and poke around on your own if you want.
The next decision to make is our log file size. I suggest a minimum of 500MB to 1GB regardless of activity. If in doubt then go with No Size Limit but watch the file closely. Choose your size carefully. Here are the criteria you need to consider when choosing log file size:
The log files are cyclic which means that when it fills up it will begin overwriting the oldest entries in favor of newer ones.
Are you collecting Events Only or Events and Calls? Events Only consumes much less space so you can go with smaller log sizes if needed. Events and Calls will require significantly more space so plan accordingly.
The size of your log file determines, in essence, your time window. Capturing 500MB will capture half the time window that 1GB will. Since the log files are cyclic they will only capture a sliding time window until the trace stops.
We will explore navigation more in another post but, for now, leave this setting selected:
This will give you special navigation features that are useful when troubleshooting IntelliTrace Calls:
Turning it off simply removes the navigation buttons and the gutter:
Selecting the Enable Team Foundation Server Symbol Path Lookup option will enable the system so that when you are using IntelliTrace or an IntelliTrace log file it can use the build information to automatically try and pull down the matching symbol information for the build you are debugging. This option assumes you have a TFS Build server set up.
Selecting the Prompt To Enable Source Server Support option actually will give you a dialog that will automatically turn on another option found at Tools | Options | Debugging | General | Enable Source Server Support:
To clarify what this means I’ll point you to the documentation on this option and what it says:
Tells the Visual Studio debugger to get source files from source servers that implement the SrcSrv (srcsrv.dll) protocol. Team Foundation Server and and the Debugging Tools for Windows are two source servers that implement the protocol.
To expand on this we can go to another source for more information:
When there is no source code on the local machine or the PDB file does not match the source code, you can use Source Server to help debug an application. Source Server takes requests for files and returns the actual files. Source Server runs by means of a DLL file named srcsrv.dll. Source Server reads the application's PDB file, which contains pointers to the source code repository, as well as commands used to retrieve source code from the repository.
This area of IntelliTrace is fairly easy to wrap you head around in terms of decision-making: turn everything on. The only real question is what size your log file needs to be. As I teach you more advanced techniques just make sure you don’t fill up your drive with an unattended IntelliTrace session that is being logged.
Apologies for going dark on you suddenly. I have not stopped writing to the blog permanently. We are in the last quarter of our fiscal year and it’s a bit of a sucker doing customer visits and webcasts and blogging so I’ve suspended the blogging until July. Thanks for reading the blog and I am answering comments as they come up. I will also be finishing the series on IntelliTrace as planned once this fiscal ends. Good times!