Category Archives: Announcements

Glimpse 1.3.1 released

Isn’t it amazing that these days we have the luxury of time to have a release where all we do is fix issues and take great pull requests. It turns out that this is one of those times with the release of 1.3.1.

This release sees updates to following packages:

  • Glimpse.Core – Welterweight release

    • Majorish fix that addresses the new Glimpse.axd page telling you that a new update is available even though you just updated
    • Majorish update which switches cache busting control from client with query string to the server using the correct headers
    • Majorish fix for users getting duplicate resource error message
    • Minor fix where popup window not resizing viewable area for timeline
    • Minor update to allow FileResource to be used outside of Glimpse.Core
    • Minor fix for NuGetAttribute which ignores constructor arguments
    • Minor fix for multi-threaded tracing regression
  • Glimpse.AspNet – Flyweight release

    • Minorish update to Session Tab to support for objects which override the ToString method
  • Glimpse.Ado – Flyweight release

    • Minor update to added documentation link to SQL tab

In terms of pull requests, I have to say a big thanks to:

And for the great issue reports, I want to thank:

Lastly, in this release timeframe we have some much appreciated updates to the site documentation:

Let us know if you have any thoughts or comments and I hope you enjoy this release.

Glimpse 1.3 released with a new glimpse.axd page & N+1 detection

Well its that time again and we have another Glimpse release out the door. Since releasing v1.0, we have managed to drop a fairly major feature release every 13.5 days. At some point we will have to take a break, but with all the support we have been getting, I don’t see us slowing down anytime soon.

Package versions
For those with a keen eye, you might have noticed that not every package reved to 1.3.0. Traditionally, it has worked out that all the Glimpse packages have had similar changes which has resulted in the version numbers jumping in step. But from today onwards, it looks like they will be destined to be different.

New glimpse.axd page
With this release we decided to totally overhaul the glimpse.axd page we have all come to love and adore. But progress demands that we move with the times and we thought that the page deserved much more love that we have given it since going live with v1.

For those who don’t remember what we had before I’ve taken the liberty of including some screen shots and highlighting some problems that stuck out – bonus points if you can spot the problems:

Moving quickly on, I would like to introduce the future Glimpse.axd page – note, you might spot that it’s feeling very proud of itself:

Besides a total UI overhaul, keep an eye out for the following changes:

  • Tell the users in big letters when the cookie is on/off.
  • Notify users when Glimpse detects a newer updates available.
  • Tell users exactly what tabs/inspectors/resources/etc are registered.
  • Notify users when duplicated resources are registered.

Here are some screen shots to keep an eye out for:

  • Glimpse now try’s to tell you loud and clear whether its on or off
  • Not only do we show you what tabs and policies Glimpse has found, we we try and make sure people know that Glimpse will only work locally by default
  • Glimpse now shows you all the configuration information it has (note this is probably most useful for those creating extensions, hence why its toggle hidden by default)

If you have any feedback or ideas on the above, please let us know.

N+1 detection for ADO queries
This was a feature that we dropped from the initial ADO/EF release but felt strongly should be there. Most of the work in this release has gone into the backend detection of N+1 events, so you will have to forgive us if you agree the UI needs a bit more work.

Client support rendering arrays of objects
Traditionally when you had list data, you would have had to transform your objects into an array of arrays for Glimpse to display the data as you would expect. This has been updated in this release so that you can return a normal array of objects and have it rendered as you would expect.

For an example of how this works, head over to the protocol test page and have a look at Scenario 28 and 29. We really hope that this will make returning your data even easier.

Other changes to watch for
You might have noticed the readme that opens when you install or update Glimpse. This page exists to try and let people know how to use Glimpse and what changes to keep an eye out for. Previously this page only showed changes that occurred for Glimpse.Core, we have now opened this up so that it will work with any 3rd party Glimpse package that wants to add their release details to the page. Look for a follow up post on how to update your packages for this.

Final words
Well I think that is a wrap. For a full list of changes, issues and commits see below:

As always if you have any thoughts or comments, just let us know and I hope you enjoy this release!

Glimpse Town Hall #2

As promised, the Glimpse team is back with another Town Hall meeting!

Our last meeting was quite successful, so we’re really hoping to continue with that momentum. We’re looking to have even more content (the last Town Hall was a bit of a “party”), and we are working through an agenda now. If there is something you’d like to share, see or hear about, please add a comment to this post.

The meeting will be Tuesday, April 16th at 3:00 PM (UTC-5:00). We’ll be on Google Hangout again, so bring along your microphone and web cam if you can! (Or just text chat with us…)

Hope to see you there!

PS – No animated GIFs were harmed in the making of this message.

Glimpse 1.2 Released With Support for Entity Framework & ADO

Well, its taken us awhile with everything going on, but we finally have support out for EF and those using “raw” ADO.

New Packages
As usual, to get up and running simply go to Nuget and download the relevant package:

OR if you are just using ADO directly:

If you just download the ADO package, but you are running Entity Framework you will have an exception raised. We have tried our best to make this not the case, but this is a limitation enforced on us by Entity Framework. So good rule of thumb, if you are using Entity Framework download the relevant EF package not just the ADO package.

Also, just because you have a Glimpse.MVC package installed doesn’t mean you automatically get these packages. You need to download the Glimpse.EF (or Glimpse.ADO) packages separately.

What we show
From within the plugin you can expect to see:

  • Connections and how long each connection is opened for
  • Commands associated with those Connections, number of records affected, how long the command took to execute and any errors that may have occured
  • Transactions and which commands are associated with those Transactions and end status

Additionally, the connection and command timing information is feed into the timeline, filling previously undefined gaps:

Technical Details
As you might now, most of the EF’s infrastructure ends up leveraging ADO’s DbProviderFactory infrastructure. As such, this is the where we tap in and from this, we get a fair amount for free (this what also happens to be how we get the build of our raw ADO support).

We also tap into the DbConnectionFactory and in Entity Framework 6 we tap IDbProviderFactoryService and DbProviderServices via the new IDbDependencyResolver infrastructure the EF team has provided. With this I believe we catch the majority of use cases.

For those using Entity Framework or using DbProviderFactory already you shouldn’t have to change any of your code.

Important note
If you happen to use EF in you App_Start, EF gets initialized before Glimpse has a chance to set up. In this case, you will need to include the following lines before your first query runs (an example of how this is used can be found here):

    Glimpse.Settings.Initialize.Ado();
    Glimpse.Settings.Initialize.EF();

We need your help
Obviously it has taken a significant effort to get to this point. But in order to produce this release in a timely fashion we had to drop 2 main features:

  • N+1 detection, and
  • Execution context (i.e. indicating to the user where the query was triggered from)

We would love some help getting these features in. The first shouldn’t be that hard to implement, the second, might involve a bit more work.

Additionally, Entity Framework 6 has a bunch more information that would be great to expose:

  • Conventions
  • Registered Providers
  • Model Mappings
  • Manifest Details
  • etc

If you are interested in helping out with any of the above, please let us know and we will be more than happy to help – either on the mailing list or via twitter (@anthony_vdh and/or @nikmd23).

Special thanks
Support for Entity Framework and ADO has been a long time coming. An initial prototype for these plugins was written around a year ago, but with everything going on, we never got it to a point where we felt comfortable producing a full release. But since going live with v1 and with some encouragement from K Scott Allen of OdeToCode fame, we have this release. Here is the list of people who helped make this release:

More details will be coming out soon and I will show some more interesting usage scenarios. In the meantime thanks for all your help and let us know what you think.

What else in 1.2
Trying to make sure that the rest of the release isn’t overshadowed by EF/ADO, here is the rest of what is in this release:

  • Core: Fixed issue in timeline which affected sub 1 ms events.
  • Core: Fixed trailing comma that causes problems with some browsers/browser modes.
  • Core: Minor refactoring of MessageCategory classes.
  • Core: Minor update to Nuget transform to show how to turn on logging.
  • Core: Minor update to config page to make sure you always get latest logo.
  • ASP.NET: Fixed issue where config tab would fail to show connection string for connection strings with no provider defined.
  • MVC4: Major fix which adjusts the .NET version that Glimpse.MVC4 is running as (previously was .NET 4.5)

For the above, big shout out to the following people for the great bug reports:

For a full list of changes, issues and commits see below:

  1. Issues in this milestone – https://github.com/glimpse/glimpse/issues?milestone=4&state=closed
  2. Individual commits made in this milestone – https://github.com/glimpse/glimpse/compare/1.1.0…1.2.0
  3. Enjoy!

Glimpse 1.1 Released With Support for MVC 4

Since we released Glimpse 1.0 several weeks ago, we’ve been inundated with questions about and requests for full ASP.NET MVC 4 support. We’ve heard your feedback and are happy to announce that as of today, in addition to our Glimpse.Mvc2 and Glimpse.Mvc3 packages, we are shipping a Glimpse.Mvc4 package with full support for Task<T> based async actions and Display Modes.

In addition to support for ASP.NET MVC 4, we’ve also made several small improvements to our ASP.NET and Core packages. You can see the list of everything we’ve done in our GitHub Issue Tracker.

As always, we can’t do this without our users and contributors. Special thanks to those who reported issues:

Note: Glimpse.Mvc4 does not yet support ApiControllers (or WebAPI at all). We simply ignore requests to your web API’s for now.

Glimpse Town Hall #1: Virtual Release Party

We finally did it! Glimpse 1.0 is out and things are working relatively smoothly. It took a little longer than anticipated, but we are generally pleased and happy with ourselves.

To celebrate, on Tuesday March 12th, at 3:30 PM (UTC-5:00), the Glimpse team is going to be throwing a (slightly late) virtual release party.

What does a virtual release party entail, you may ask? Well, I’ll probably at least buy myself a cupcake. You can do that too, but I find that eating cupcakes alone can be a little sad – so lets do it together.

I’ll tweet out a link to a Google Hangout a few minutes before 3:30 (is there really no way to schedule these things?!?) and we can celebrate together. Thanks to Cecil, I now know how to schedule a Google Hangout and here’s the direct link the the party. Of course, it won’t all be self congratulations and high-fives, we’ll demo new features of Glimpse, answer any questions you may have and discuss what’s on the road map for vNext.

We want this to be the first in a series of monthly town hall meetings which will provide an outlet for plugin authors to demonstrate what they have built, discuss challenges with the Glimpse platform and gather user feedback. We’ll experiment with times and technologies until we find the right fit to include the most number of users.

So please come and join us on Tuesday. No RSVP necessary.

Bug Fixes: Glimpse 1.0.1

In our effort to update Glimpse at a regular cadence, we have dropped Glimpse 1.0.1 tonight.

This update affects all of our main packages: Glimpse, Glimpse.AspNet, Glimpse.Mvc3 and Glimpse.Mvc2.

You can see the list of fixed bugs in our GitHub Issue Tracker as well as the full list of changes between 1.0.0 and 1.0.1.

Special thanks to those who reported issues:

Glimpse 1.0 Ships!

The Glimpse team is proud to announce that we have shipped Glimpse 1.0. (Stable, RTW, final – call it what you’d like, but it’s certainly good!)

Glimpse 1.0 supports more frameworks and runtimes than any previous version of Glimpse. We’ve fixed a ton of bugs and added many new features since the last beta.

In addition, we’re proud to announce a new website design at getGlimpse.com. We’ve re-built the site to leverage a GitHub repository and Azure Websites to allow for contributions and simplified deployment. This will allow us to add documentation, samples and improved content much more quickly. Keep an eye on the site for changes and please feel free to contribute.

This release follows a successful second release candidate (RC2), and contains few changes, the most notable of which is the rename of IPipelineInspector to IInspector. This change will only affect a small percentage of external plugin authors and has been discussed on the Glimpse developers list.

As usual all four packages (Glimpse, Glimpse.AspNet, Glimpse.Mvc3 and Glimpse.Mvc2) can be downloaded via NuGet.

Please report any issues or suggestions to our GitHub issues tracker.

In addition, we’ll be having a virtual release party/townhall meeting in the near future to show off some of the new features and answer any questions you may have live. We’ll announce more details as soon as they become available.

Glimpse RC2 now available!

The Glimpse team is proud to announce the availability of our second 1.0 release candidate (RC2).

This release incorporates a ton of great feedback we received after the first release candidate, resulting in over 31 bug fixes and improvements to Glimpse.

A few of the highlight changes include:

As usual all four packages (Glimpse, Glimpse.AspNet, Glimpse.Mvc3 and Glimpse.Mvc2) can be downloaded via NuGet. The only thing to remember is that the RC2 packages are “prerelease” packages so be sure to have NuGet configured to allow for that.

Our hope is that RC2 will be short lived and that we will be able to release these packages as our “stable” 1.0 release very soon.

As usual, please report any issues to our GitHub issues tracker.

Retrospective: Decision to rearchitect

Its now going on a week sense we got the RC release out for v1. So far the response has been extremely positive. Since that time we have been fixing a couple of the bugs and spiking on some new ideas we have had – if you want to see, checkout the branches on github ;). We have also taken the time to step back and reflect on our last release.

As these things go, it was never our intent that the gap between beta and RC would be as long as it was. In an effort to be transparent, this gap has probably slowed down the momentum that we had gained. Some of this was due to Nik and I needing to spend more time with our families, wanting to ensure that we didn’t burn out, international moves and wanting the project to remain fun for us to work on.

Additional, many smart people have questioned the sanity of completely re-architecting your system, but we felt compelled to do so to ensure that project could move forward. Ideally we would have taken a more evolutionary tack here, but being a framework that people build on, as well as a product people use, this made the decision difficult.

The need to do any of this work comes back to the origins of Glimpse and some fundamental decisions we made on day one of the project. The biggest problem we had was the decision to take a dependency on System.Web. Prior to OWIN and self-hosting movement gaining momentum, this would have been a safe decision, but we have had many requests from various interested parties to remove this dependency. Unfortunately, this was not a straight forward task, but by making the change it meant that Glimpse could work in many more situations and be moving in the same direction as the industry trends – we now have the ability to add support for self-hosted WebAPI and frameworks like NancyFX.

Furthermore, the initial development work for Glimpse was done in a period of 5 weeks between the hours of 10pm and 2am in the lead up to Mix11. Even though many of the abstractions have held up over time, given a better eye to where we could go in the future and more time we probably would have made different decisions and taken different routes. Hence abstracting away System.Web represented a great opportunity to set things up moving forward.

In posts to come, we will talk about the various changes on the client and server, and the details of what went into the underlying changes.