Monthly Archives: December 2012

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.

Glimpse RC Arrives!

Well its been a long time coming but the RC for Glimpse v1 is finally here. This release has almost been a year in the works. It contains a complete architectural overhaul on both the client and server, laying the foundation for the future of Glimpse and many cool things to come.

Looking to the release itself, here is the list of what Glimpse includes:

  • .NET 3.5 and 4.0 support (with the foundations of what we need to do to support 4.5 and above)
  • MVC 2 and 3 support (with the foundations of what we need to do to support 4 and above)
  • Performance improvements across the whole system (with more to come)
  • Ability for tab authors to control layouts (i.e. column widths, positions, etc)
  • Lazy rendering of tab layouts in client to help improve rendering performance
  • Implementation of a module based architecture on the client
  • Higher timing resolutions across the system (sub millisecond)
  • Reworked Security engine (making it easier to create custom policies which determine if Glimpse should be turned on or off)
  • Removed default “restrict IP range” policy
  • Removed use of MEF

Installing the RC

As usual Glimpse can be downloaded via NuGet. The only thing to remember is that the RC package is currently in Prerelease hence you need to make sure you get this version:

Command Line

Install-Package Glimpse.Mvc3 -IncludePrerelease

Manage Packages

Looking forward

Our next step is to confirm that we have a stable release and make any changes that come out of the RC. In parallel to this effort we will be getting .NET 4.5 and MVC4 support out. After that we plan to start looking to get a website refresh out the door and start seeing what we can do for WebAPI and SignalR. In a similar timeframe to these we would love to see what more we can do for Web Forms.

We also want to take this opportunity to thank everyone who made this release possible:

  • @kristofferahl – Helping make the lives of tab authors easier with his kickass fluent API skills
  • @steven_lauwers – Thanks for your continued support and idea bouncing
  • @ElizAyer – For your constant encouragement and telling us to “ship it!!!”
  • @headloose – His problem solving skills are second to none ;)
  • @shanselman – Helping guide us and being a great mentor
  • @TheCodeJunkie and @gblock – Pushing us to support self hosting and OWN
  • @redgate – For sponsoring the project and helping make the dream of Glimpse come true