Archive for VS 2010
Gibraltar 2.5 – Integration, Notifications, Visual Studio 2010 and More
Posted by: | CommentsWe’ve shipped Gibraltar 2.5, a significant upgrade for both Analyst and the Hub Server. You should check out the full release notes which summarize the new features as well as the defects we’ve resolved. We’re also going to post a series of deep dives into the new functionality on the blog so you can get a feel for the new changes even if you’re not in position to take advantage of everything just now.
We had two primary goals for this release:
- Scale Beyond our Customers: Whether its the number of different computers sending you data or the number of messages you want to log we want to have Gibraltar handle it and more.
- Integrate with Your Processes: Everyone has a process for managing errors and defects, whether it’s a CMMI Level 5 structure or an email folder. Whatever you do, we want Gibraltar to plug into it seamlessly.
How Easy is it to Upgrade?
Drop dead easy. If you’re coming from our last production release Gibraltar 2.1.1 then there are no API changes (just additions) so it’s install & go. If you took advantage of the Gibraltar 2.2 Beta then there is a minor change to the agent API and significant changes to the add in API.
We recommend everyone using Gibraltar 2.1.1 upgrade to 2.5 as soon as possible. There are a number of improvements around how data flows from agents to the Analyst that improve both performance and reliability. There’s a lot more depending on the type of application you have and whether or not you use Hub but everyone needs to move session data to where you can dig into it.
What about Visual Studio 2010?
While our previous releases all work under Visual Studio 2010 there were a few seams that could get in the way. For this release we:
- Are fully compatible with .NET 4.0 Client Profile.
- Provide integrated help for Visual Studio 2010.
- Improved WPF support and added a WPF sample application.
- Provide PostSharp 2.0 support, compatibile with Visual Studio 2010 and .NET 4.0.
We’ve had a lot of interest in Visual Studio 2010 and .NET 4.0, and have several customers that have production applications using these with Gibraltar today. We’re seeing pretty fast adoption of Visual Studio 2010, with about half of the VS 2010 users also using .NET 4.0.
PostSharp 2.0
We’re big fans of using PostSharp as part of your logging strategy. We’ve used it on just about every customer engagement we consult on, including our two largest customers. We also using it internally on parts of Gibraltar itself, like the Hub. If you haven’t given it a try, you really should check it out.
We find the best results combine injected metrics & logging with hand crafted messages. There are many cases where you create the most useful & maintainable messages by adding them in the development process like comments on key areas. On the other hand, you can cover a lot of ground with injected logging which is particularly useful on large projects that don’t have much built in.
Application metrics – like feature usage and performance tracking – can often be done using our Agent for PostSharp as good or better than any other way. These are particularly effective tracking usage and performance between tiers of the application. We’ve published some best practice guidance to get you going quickly.
We’ve licensed PostSharp so that all of our customers can use our aspects for free. If you want to create your own aspects you can get a discount on PostSharp if you’re a Gibraltar customer (contact us for details).
But Wait there’s More
We’ll be publishing drill-in articles on each of these other key features in Gibraltar 2.5:
- Email Notifications from Hub Server: You can set up rules in Gibraltar Analyst to have your Hub generate emails to you when important things happen. This can also be used to integrate with another tracking system that supports intake from email.
- Defect Tracking Integration: Both Gibraltar Analyst and Hub can integrate directly with a few defect tracking systems to take error information from real sessions and get them into your support workflow without lifting a finger.
- Extensibility API: You can extend Gibraltar Analyst and Hub in a number of unique ways to fit your exact needs. The extensibility is so good we used it to create the defect tracking integration we ship in the box.
And much much more. To meet our other primary goal of increasing the scalability of Gibraltar we did a number of changes focused on:
- Larger Sessions: We tested up to 8 million log messages in a single session.
- Thousands and Thousands of Sessions: We’ve worked hand in hand with customers that receive thousands of sessions every day and made a number of improvements to the details of Agent, Hub, and Analyst to make sure you get a great experience regardless of how few or many sessions you have.
- Many Applications: You might have just one web site you’re monitoring with Gibraltar or many applications in multiple product families. We’ve made sure it’s easy to browse for sessions and use the new notification and integration capabilities.
What Happened to Gibraltar 2.2?
Originally this release was intended to be Gibraltar 2.2 and ship a while back. While finalizing it we developed a sample add in that integrated Gibraltar with our internal defect tracking system. This worked surprisingly well. So well that it answered a question we’d had internally about how far Gibraltar should go to manage errors. What we got out of this was that it’s essential for Gibraltar to integrate into your development & support processes, not create yet another one you have to manage.
This is a mission we had to deliver on as fast as possible. We decided to go long so we could bring this to as many of our customers as possible. In the end it was clear to us and the folks that took advantage of our beta program that this wasn’t a minor dot release. But, we have a few things we’re not doing that we’ve pegged as “3.0″ features, so we had to split the difference: 2.5.
Using Gibraltar, PostSharp and Visual Studio 2010
Posted by: | CommentsEditors Note: This article has been updated to reflect the release of Gibraltar 2.5 which addresses the issues raised.
While Gibraltar works well with Visual Studio 2010 and .NET 4.0, one place we’ve gotten caught up is with the Gibraltar Agent for PostSharp. In a nutshell, the current version uses PostSharp 1.5 which isn’t supported (and doesn’t work) with Visual Studio 2010.
To use Visual Studio 2010, you need to update to PostSharp 2.0 CTP5 or later. This requires a new version of the Gibraltar Agent for PostSharp. An additional wrinkle is that the .NET Runtime target of an aspect and the application that’s using it must be the same. This hasn’t been an issue in the past because the .NET runtime was always 2.0 (even if you were using .NET 3.5 because that is just a set of additional libraries on top of .NET 2.0). With the release of .NET 4.0 this changes and you need to have a version of the aspects that specifically targets .NET 4.0, or you get strange errors.
To add to the complexity, there are two versions of Gibraltar that are “current” today: 2.1.1 which is the current release version, and 2.2.0 Beta 1 which is the current Beta version. Many people are using 2.2.0 Beta 1, and if you’re new to Gibraltar you should start there. Because we ship a strongly named binary for our PostSharp aspects it has to match with our Agent version as well. Taken in total, this would means we need a version for .NET 2.0 and 4.0, Gibraltar 2.1.1 and 2.2.0.
If you’re in this situation where you’re using Visual Studio 2010, or for another reason are running PostSharp 2.0, you’ll need to upgrade to Gibraltar 2.5 or later. It includes a version that targets PostSharp 1.5 and .NET 2.0 (like before), another for PostSharp 2.0 and .NET 2.0, and another for PostSharp 2.0 and .NET 4.0. Since the same application could theoretically combine all three they have unique file names to ensure there aren’t any conflicts. The capabilities of all three are basically the same.
.NET 4.0 Client Profile and the Power of Defaults
Posted by: | CommentsNote: The issues raised in this post were addressed in Gibraltar 2.5 which was modified to be fully compatible with the .NET 4 Client Profile.
The good news
The Gibraltar Agent works just great with .NET 4.0. We support the same application environments we support for older versions: WinForms, WPF, Services, and ASP.NET. If you’re looking for Silverlight support, drop us a line – we are working in that direction and would like to hear about your project to see how it fits into our roadmap.
So, if you want to leap forward to VS 2010 the very instant you can download it from MSDN, don’t let us stop you – you can use Gibraltar just like before.
And the not-so-good news
We were doing some broader testing with Visual Studio 2010 RC and ran into the same issue as one of our component vendors, DevExpress: Their CTO covered it well in his article on .NET 4 Client Profile: the Good news and the Bad news. The bottom line problem is this:
- By default, VS 2010 creates new Windows projects with the .NET 4 Client Profile.
- The .NET 4 profiles split up the .NET runtime libraries by application type instead of technology, so the Client Profile doesn’t include any of the System.Web classes that have shipped in the core library since .NET 1.0.
What this means is that if you create a new WinForms .NET application in 2010, then add the Gibraltar Agent to it you can’t load it or use it because internally we reference the System.Web namespace. A user will believe we’re just flat broken right out of the box.
Fortunately, as long as you change the default target (which Visual Studio will prompt you for in a compiler warning) then the Gibraltar Agent works. It’d be nice if that warning was an error – since you get other errors which will lead you in the wrong direction:
It’s easy to miss warnings when you’ve got errors…
Because of this we’re going to have to refactor some of the internals of the Agent and align the agent into separate libraries by .NET 4 Profile. This is unfortunate because we’ve worked hard to have the smallest number of assemblies (usually you just need one) and this is going to create more complexity for our users. These changes will wait for Gibraltar 3.0 because they would be a breaking change from the standpoint that the changes won’t necessarily let you just drop in the same assemblies and go.


