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
In the last post I talked about the concept of what IntelliTrace is used for. In this article I thought it would be a good idea to visit where you would want to use this feature. I’m really trying to knock out another set of misconceptions here. On those occasions when people are shown IntelliTrace they tend to see it in one place while never realizing that is can be used almost everywhere. It’s part of the reason I entitled my workshop materials “IntelliTrace Everywhere Deep Dive.” (http://sdrv.ms/UPUEE3) I want to preface everything you are about to see with the following: We will be looking at each of these items in turn with future posts. The point, right now, is to make sure you know where this stuff can be used and, hopefully, get excited about a scenario that applies to you.
Inside Visual Studio 2010 / 2012
The most obvious place you will find yourself using IntelliTrace is inside the IDE. During any debugging session you can easily jump into the IntelliTrace window and go through the history:
Ironically, the first time most people see IntelliTrace is when we show it with Microsoft Test Manager. Using it to help reduce the amount of back-and-forth that needs to happen before the developer can start working on an issue raised from the testing folks. This is a huge improvement that allows developers to really get to the heart of an issue quickly.
Internet Information Server
IntelliTrace can be used to troubleshoot ASP.NET applications that are running in production or anywhere else. A special assembly with PowerShell commands. In a later post we will explore the details of how this works:
Any Machine Running .NET Applications
You can use IntelliTrace on any computer running .NET 2.0 - 4.5 (for the application) and 3.5 (for IntelliTrace to run). You collect logs using the command line:
In System Center 2012 Service Pack 1 (SP1), Operations Manager has the ability to capture historical snapshots (traces) directly from the Operations Manager console and to receive IntelliTrace snapshots from .NET Application Performance Monitoring (APM) exception events. They provide a view into application execution history without needing to access the servers where the problems occurred. I’ll try to demo this with the new Brian Keller VM that has System Center so folks can do it themselves as well. If you want more information on SCOM / IntelliTrace integration you can go here: http://technet.microsoft.com/en-us/library/jj883935.aspx
As it turns out the ONLY way to debug Windows Azure applications in production is with IntelliTrace. For more information you can go here: http://msdn.microsoft.com/en-us/library/windowsazure/ff683671.aspx
Even though you “could” use IntelliTrace with SharePoint applications before, it was pretty difficult to get certain types of information. Beginning with Visual Studio Update 1 you can now use IntelliTrace to debug SharePoint apps with plenty of information. On a related note if you haven’t looked at Update 1 you really should if you are a SharePoint developer as the team has added a ton of great stuff. If you want more information on IntelliTrace with SharePoint right away you can go here: http://blogs.msdn.com/b/visualstudioalm/archive/2012/12/11/debugging-sharepoint-apps-with-intellitrace-in-visual-studio.aspx
We have covered the “what” and the “where” so beginning with the next post we will start in with the “how” of IntelliTrace. Before that happens I would encourage you to go back and find a scenario that appeals to you so you can visualize where you might get the most impact from this feature. I can honestly say the only thing I’m more passionate about than IntelliTrace is Visual Studio. Even then it’s pretty close. IntelliTrace is an incredible tool for developers.