Tag Archives: release

Glimpse 1.8.4 released

Another month has gone by since our last release and this time round its a smallish one. Mostly bug fixes and a couple of usefully additions, but most of our time lately has been focused on v2.

By way of a small update on v2, we have almost finished the work we want to do on the backend and starting to look at the UI of v2. If you are interested in seeing exactly where things are at or seeing where you can get involved, feel free to take a look.

Getting back to the release, here is what we have this time around:
Release Notes

  • Glimpse.Core – Featherweight release 1.8.4
    • Fix up edge case where UI would not be resizable
    • Extending the ContentTypeElement to include optional RuntimePolicy
  • Glimpse.ASP.NET – Bantamweight release 1.8.1
    • Update to RouteInspector to ignore non AspNet routes doesn’t work for WebHosted WebAPIs
  • Glimpse.EF* – Bantamweight release 1.6.1
    • Fixed bug when using DbGeography type in some edge cases

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

  • Paul Atkins
    • #736 The update to RouteInspector to ignore non AspNet routes doesn’t work for WebHosted WebAPIs
  • Björn Holdt
    • #746 Migrate Build to use Automatic Package Restore
  • James Chambers
    • Update to contributing documentation

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

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

Thanks to everyone involved and enjoy the release!

Putting WebForms DataBinding front and centre

The previous release of Glimpse saw the introduction of first class WebForms support, bringing with it a contextualized view of both the Control Tree hierarchy and the Page Life Cycle. Glimpse WebForms development has been continuing apace and with this new release we’re delighted to shed some light on the previously dark art of WebForms DataBinding.

WebForms ‘DataBlinding’
DataBinding is to WebForms what ModelBinding is to MVC and is an essential ingredient in building maintainable and testable WebForms code. But until now, understanding when a DataBind occurs has been pretty much a mystery. For example, a change to the Page’s PostBack status or a Control’s ViewState mode can have dramatic effects on when DataBinds are triggered. Changing a DataBound Parameter value is another way to fire a DataBind, the Text of a TextBox for example, but keeping track of these values as the Page moves through its Life Cycle hasn’t been easy.

Glimpse to the rescue
We’ve added a new DataBinding section to the Control Tree tab. Alongside each DataBound Control we list the Page Life Cycle Events during which a DataBind was triggered for that Control. The screenshot below shows that the categoryList was DataBound once during the Page PreRender Event.

DataBinding Event

You may be thinking this information can only be displayed if you’re using the latest .NET 4.5 DataBinding approach, more akin to the ModelBinding architecture of MVC. But you’d be wrong. The Event information is displayed for all Controls inheriting from DataBoundControl, for example the ListView and FormView (but not the DataGrid or DataList), irrespective of how they were DataBound.

We haven’t stopped there. Together with the Event we also display the Parameters in play at the time the DataBind happened. The screenshot below shows the breakdown of the Parameters used when the productList was DataBound in the PreRender phase. The first Parameter looked for, but didn’t find, the id field in the QueryString; the second Parameter found a value of ‘Cars’ in the RouteData categoryName field.

DataBinding Parameters

Once again, this Parameter display isn’t limited to .NET 4.5 DataBinding. Provided the Parameters are registered using an ObjectDataSource, LinqDataSource or SqlDataSource the information can be extracted just the same.

Glimpse 1.8.2 released

Its a new year and we have a new release ready to go out the door. This time around, we have a ton of bug fixes and a few new features here and there. This release represents the most contributions Glimpse has ever had in a single release, as well as having the greatest number of contributors.

WebForm support for DataBinding
Since our initial support for WebForms was released, the response from the community has been amazing. Not only have we discovered that WebForms developers have been seeking innovations in the space, but have been wanting to get involved. This has lead to Graham Mendick and Steve Ognibene stepping forward to make sure the WebForms package keeps moving forward.

This has lead to DataBinding visualization being added to the Control Tree tab within Glimpse. More details will com in a future blog post, but the short version is that we can now see all the actions that WebForms takes to bind your controls.
WebForms_DataBinding

ASP.NET Server tab
In a previous release, we removed the old version of the Server tab. This was removed as a lot of the data we where displaying was being shown elsewhere. Since then, we have found that some users missed the data that wasn’t being displayed elsewhere. Hence, the Server tab has made a come back and has received a bit of a facelift thanks to Bryan Hogan.
ServerTab

Glimpse Insights support
Along with this release, we are putting out Glimpse Insights. As discussed in the post, this is the means by which we hope to better understand how people use Glimpse and where we should be focusing out efforts.

As much as we need these insights to make better decisions and ultimately a better product, if its something that you don’t want to take a part in, you can completely opt-out. Simply update the Glimpse section in your web.config to have the following addition:

    <clientScripts>
      <ignoredTypes>
        <add type="Glimpse.Core.ClientScript.Insight, Glimpse.Core"/> 
      </ignoredTypes>
    </clientScripts>

If you do opt-out, there will be no traces of Insights in your code base. Insights was designed not simply to be a switch on or off, but to be a complete removal. Meaning no traces of the Insights code will remain if you choose to opt out.

Release Notes

  • Glimpse.Core – Featherweight release 1.8.2
    • Update to disabled Glimpse when request init is bypassed
    • Update client to only modify local ajax requests
    • Add initial support for Glimpse.WindowsAzure and Glimpse.WindowsAzure.Storage
    • Update to show friendly message if current async implementation is not supported
    • Added initial Insights support to client
    • Update client to delayed tab rendering till glimpse open
    • Update client to added more blacklist items for target chars that should be ignored by case processor
  • Glimpse.ASP.NET – Welterweight release 1.8.0
    • Update Route Inspector to ignore non AspNet based routes (this fixes problems with Glimpse and WebAPI)
    • Added updated Server Tab which shows common server variables
    • Clean up web.config transform to remove volume of commented out config in the glimpse section
    • Update Request Tab serialization to handle request validation failures
  • Glimpse.MVC* – Flyweight release 1.5.3
    • Added updated support for IUnvalidated and IEnumerable ValueProviders
    • Fixed problem where Response.RedirectToRoute() in Global.asax could throw a NullReferenceException
  • Glimpse.WebForms – Lightweight release 1.1.0
    • Added visualization for DataBinding in the ControlTree Tab
    • Improve basic ViewState processing for SqlDataSource, LinqDataSource and ObjectDataSource

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

  • Christophe Gijbels
    • #704 Disabled Glimpse when request init is bypassed
    • #702 Update Request Tab serialization to handle validation failures
    • #701 Added update for IUnvalidated and IEnumerable ValueProviders
  • Keith Dahlby
    • #688 Show friendly message if current async implementation is not supported
  • Paul Atkins
    • #723 Update Route Inspector to ignore non AspNet based routes
  • Bryan Hogan
    • #712 Adding updated Server Tab which shows common server variables
  • Graham Mendick and Steve Ognibene
    • #716 Update WebForms Control Tab to visualize DataBinding

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

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

Thanks to everyone involved and enjoy the release!

Glimpse 1.8.0 released – Async Support

In an effort not to leave too much time between releases, we happy to announce that as of today, Glimpse now supports capturing details that occur within Async operations. With the advent of .NET 4.5 it is easier than ever to take advantage of Async tasks to perform out-of-process or long running tasks.

Before now, Glimpse hasn’t been able to see the details of what occurs within these tasks, but with the help of the community, now we can! Unless you have specific needs, chances are the biggest difference you will see in your day-to-day usage of Glimpse, is that we can see everything that happens in Async queries that ADO/EF perform.

Release Notes

  • Glimpse.Core – Welterweight release 1.8.0
    • Support for capturing data on Async operations
    • Added Status Code to ajax and history tabs
    • Client now sensibly interpret friendly titles out of object keys
    • Client updated to render array lists as array of objects rather than array of arrays
    • Fixed bug where timeline couldn’t cope with long strings as the event title
  • Glimpse.ASP.NET – Welterweight release 1.6.0
    • Total rewrite of the Request tab to include additional request info
    • Removed Server tab as it’s now obsolete given the Request tab update
  • Glimpse.MVC* – Featherweight release 1.5.1
    • Fix version number inconsistency between MVC packages
    • Fix version information in MVC5
  • Glimpse.WebForms – Featherweight release 1.0.2
    • Greater support for many more control ViewState’s
    • Fixed circular reference bug that could be caused by some controls ViewState
    • Fixed bug which could cause trace output to be rendered in the page
  • Glimpse.ADO – Welterweight release 1.7.0
    • Support for Async queries
    • Added async indicator column to the SQL tab
    • Minor adjustment to the width of the transaction title column in SQL tab
  • Glimpse.EF* – Welterweight release 1.6.0
    • Support for Async queries
    • Added async indicator column to the SQL tab

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

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

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

Thanks to everyone involved and enjoy the release!

Glimpse 1.6.1 released

Release 1.6.0 has been out for a little over a month now and so far so good. Generally speaking, our stability over the past few months has been pretty good and as a result we are starting to feel that Glimpse v1 is nearing an end and v2 is on the horizon! but more to come on that in the future 😀

In the mean time we noticed that the issue backlog has been building up and wanted to go on a bug bashing excises. Hence, we have been spending time knocking down out issues. We managed to get out outstanding issue count down from around 110 to under 40. As you might imagine, this has resulted in some updates and hence this release.

Hence, this release is a service update to fix a variety of issues. This release sees updates to following packages:

  • Glimpse.Core – Welterweight release 1.6.1
    • Switch images on Glimpse.axd page to their DataUri representations to avoid mixed content requests
    • Switch href over from using “#” to “javascript:void(0)”
    • Remove trailing commas in client
    • Switch logo on the About tab over to the new logo
    • Removed IpAddress as its not used anywhere
  • Glimpse.AspNet – Lightweight release 1.4.1
    • Removed IpAddress as its not used anywhere
    • Fixed possible null refernce exception when access clientId
    • Removed unused AspNet.Net35 Net35Backport
  • Glimpse.Ado – Flyweight release 1.5.1
    • Switched GlimpseDbTransaction over to be public
  • Glimpse.Ef* – Middleweight release 1.4.0
    • Added groundwork support for EF6

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

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

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

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

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 0.86 Released

We know its been a while but we have been busy.

Ironically, we have had this release pretty much ready to go now for over a month. But we have both been busy working on some major work which will get us out of beta and into 1.0. Until that happens thought, this release is ready to go and we have some really cool new features to share!

Timeline Support

This is a huge feature for us and where we spent a significant chunk of time. Basically we had the realization that as a side effect of the inspection we are doing, we had a heap of timing information available to us. The question then was how to best show this timing information.

We tossed and turned on this one for a while, and with a little inspiration from how tools like FireBug solve this problem, we finally settled on having an interactive timeline to show the data.

Additionally, we provide a table view for those who would prefer the data in that fashion.

Lastly, I am happy to announce that along with this we allow you to add your own data to the timeline. This will not only be useful for your own applications, but for plugin authors. Given the way that the Timing API has been added into Glimpse, any plugin can submit data and it will show up in the timeline. Here is an example of what it looks like:

//For duration events
using (GlimpseTimer.Start("Event Name", "Event Category", "Description"))
{
//...
}
//For snapshot events
GlimpseTimer.Moment("Event Name", "Event Category", "Description")

More samples and details will come soon. If anyone has any feedback make sure you let us know.

CALL TO ACTION:

We want to make the information we show as useful as possible. What we are showing in this release is just what we think people are interested in seeing. Hence if you have any ideas, reach out to us or hop on the dev list.

PRG Support

As defined by Wikipedia, PRG is Post/Redirect/Get (PRG) is a common design pattern for web developers to help avoid certain duplicate form submissions and allow user agents to behave more intuitively with bookmarks and the refresh button.”

This is important, as when a PRG occurs, the majority of interesting data (as far as Glimpse is concerned) is associated with the original “post” and hence is missing from the redirected “get” that the developer sees in Glimpse after the PRG.

This was always possible with Glimpse, but the UX experience was not good. Knowing that a PRG had occurred, one would have to go to the Remote tab, find the session and then selected or the appropriate result set.

Now, Glimpse can automatically detect the PRG pattern, and will display the URI as a dropdown allowing you to easily switch contexts between the original POST and the resultant GET.

IP Range Support

We took on a great pull request from rho24 (aka Richard Oliver) which has added the long requested IP Range support for Glimpse. This support has taken the form of CIDR Notation. To enable this within your system, simply add this following to your Glimpse config:

<ipAddresses>
<add address="127.0.0.1" /><!-- OR -->
<add addressRange="127.0.0.1/24" />
</ipAddresses>

In this case, it would allow all IP’s from 127.0.0.0 – 127.0.0.255. Hopefully this will allow for a lot more flexibility when it comes to setting up Glimpse on any remote servers.

New Glimpse.EF Package

Just look at this screen shot, need we say more?

WARNING: This new Glimpse plugin is highly experimental, is not yet complete and currently only supports EF 4.0 and 4.1. This adds support that we have wanted from day 1 but has taken some time to get out the door. We would love it if you would give it a try and let us know if you have any trouble or find any bugs.

You can download and add Glimpse.EF to your project as usual via Nuget.

That’s it!

Wow that seems like a lot! But hopefully it has been worth the wait and we have some more existing stuff coming in the next release. We hope that if all goes well here, our next release will be a Release Candidate build!

You can download Glimpse 0.86 from NuGet.org or CodePlex.com

Thanks again for your support!

Glimpse 0.83 Released!

We know its been a long time coming but Glimpse 0.83 is finally up and ready to go.

We have a bunch of fixes and features in this build including the infamous 404 fix and a heap of other changes, some of which are listed below:

  • Switch from /Glimpse/Config to /glimpse.axd, including temporary automatic redirect and warning message
  • Notification on at top of screen when Glimpse is turned on
  • Glimpse/glimpseClient.js has been shifted to /Glimpse.axd?r=client.js to support certain server configurations
  • Glimpse/glimpseSprite has been shifted to /Glimpse.axd?r=sprite.png to support certain server configurations
  • Added a bunch of new fields to the Environment tab and re-arranged the layout
  • Added application/json as a default content type
  • Simple fix for a bug where ajax requests can occur before Glimpse is rendered
  • Shifting placement of expand/collapse data icon in the UI
  • Changed font of text in Glimpse panel to something more readable
  • Made IGlimpsePlugin implementations more testable by replacing HttpApplication with HttpContextBase
  • Introduction of logging – … – used for debugging glimpse
  • Fixed bug with users in non en-Us cultures
  • Fixed issue some users were getting with PowerShell install file
  • Vastly improved Glimpse documentation (with more on the way!), HUGE thanks @hahndorf

To update simply head over to http://nuget.org/List/Packages/Glimpse or http://nuget.org/List/Packages/Glimpse.MVC3.

Also, keep an eye out for the automatic update notifier that we have built into the Glimpse UI that will tell you when an update is available. This was released with Glimpse 0.82 but this will be the first time it is able to be used.

Note, we also are officially providing a copy of the Glimpse dll’s on Codeplex for people not using Nuget – http://glimpse.codeplex.com/.

Please give us feedback and let us know how it goes! Thanks again for all your support.