Author Archives: nikmd23

Introducing Project Glimpse: Node Edition

It was just over six years ago that Anthony and I first released Glimpse. Since then it’s been a wild ride where we’ve learned a lot, seen a lot and met a lot of great people.

Nearly two years ago Anthony and I joined Microsoft. It was a very exciting time to join, particularly where web development is concerned. Since we’ve been here, Microsoft shipped a new and evergreen browser in Edge. ASP.NET has been completely reimagined into a leaner, more modular, cross-platform and cloud optimized framework/runtime. Azure is growing at a breakneck pace while continuing to support and embrace the open source technologies that so much of the web community thrives on. We really couldn’t be more proud of the work that’s happening here.

In addition, web development paradigms have changed and matured a lot since the early days of Glimpse. Front-end engineering is now a full-fledged practice, and systems leveraging microservices built in cross-platform, polyglot environments are the norm.

Amid all these changes, innovation and excitement, we began to ask ourselves “What does Glimpse, and web diagnostics in general, look like in this new world?” Part of the reason you haven’t heard much from us recently is because we’ve purposefully stepped back to explore how we’d answer this question. However, we’re now at a point where we feel ready to begin sharing more about what we’ve been doing.

In our explorations, we’ve see a lot of Node.js usage for “API glue layers”, along with several challenges with server-side diagnostics in those use cases. We believe we can help solve those problems. As such, our first public announcement is the release of an experiment called “Project Glimpse: Node Edition”. In Project Glimpse: Node Edition we’ve tried to maintain the original spirit of Glimpse as you know it, but we’ve reimagined it as something entirely new that more closely aligns with current web development trends and solves the problems we’ve seen.

Project Glimpse: Node Edition

Project Glimpse: Node Edition

Project Glimpse: Node Edition is now live on npm. We can’t wait for you to try it and to hear your feedback. We hope that this experiment will quickly become an indispensable tool for you. As is the nature of an experiment, we expect that we still have a lot to learn and will be pivoting quickly and often based on your feedback, which you can submit at the Glimpse/Home repo.

You may be wondering, “What about Glimpse for .NET?” While we don’t have any announcements to make, I am happy to say that we have been making progress on that front as well. Anthony and I have been quite involved with Diagnostic Source and Activity since their inception, and we see them as cornerstones for a future Glimpse for .NET version. We’ve got a way to go with our Glimpse for Node experiment, but you can rest assured that no matter what happens with it, Microsoft will ship world class diagnostics and debugging tooling for .NET Core.

We appreciate all the support you’ve given us over the years, and are looking forward to our next chapters together making functional, reliable and performant web applications easier to build.

Don’t hesitate to reach out with any questions.

Application Insights Telemetry in Glimpse

The following is a guest post from Beckylin Orooji, detailing a cool community built Glimpse plugin that exposes Application Insight’s telemetry. You can find out more about it on Beckylin’s post on the Azure Blog.

Glimpse is a great tool for profiling and debugging your web applications during development.  Application Insights is a tool for diagnosing issues and monitoring performance in live production. Because developers need both a great tool during development and a great tool in production, an integration of these products was created.

What is Application Insights?

Application Insights monitors your web application in production for performance, availability, and usage. It helps you understand what your users do with your app, diagnose failed requests and exceptions, and find performance issues in browser, web server or backend services.

What does the integration provide?

Application Insights items are now accessible alongside the other data collected by Glimpse. One place where Application Insights data is shown is in the Glimpse timeline tab. Application Insights automatically collects client and server-side telemetry about requests, outbound calls to dependencies such as http calls, as well as business metrics.

In Glimpse’s Trace tab, log traces and exception reports collected by Application Insights are shown.

The new Application Insights tab shows all the Application Insights telemetry from the client and server that you will be gathering after your application is deployed to production. Looking at the Application Insights tab, you can see exactly what data will be collected for specific pages as you browse through your application. Doing this during development enables you to ensure you have implemented your telemetry collection in the way you intended. After you release your application, this telemetry will be your source of business and diagnostic insights.

Try it now

See this integration in action and try it on your own application by installing one of our two NuGet packages.

Installing the Glimpse Application Insights Web package will turn on Application Insights for your application and enable a basic set of Glimpse packages. This package includes dependencies to other packages you will need for web applications making this a simple solution for everyone. If you have not onboarded to Application Insights, you should use this package. Glimpse Application Insights Web will support .NET web applications without any additional work from you.

Note: If you already onboarded Application Insights and Glimpse, you can consider using the Glimpse Application Insights NuGet package. If you want additional features, you can manually install the ADO.NET, ASP.NET and EnityFramework, or any other extension.

Glimpse v2 Beta1 Released!

This morning at the Connect(); event in New York city, Scott Hanselman announced some exciting news: Glimpse v2 Beta1 is now available!

Glimpse v2 is a major evolution of the platform. We’re extremely proud of what we’ve accomplished thus far, and we think you’ll like what you see. You’ll find lots of new bells and whistles that make Glimpse better than it ever has been, but I’d like to outline four key improvements to the Glimpse v2 experience.

Curated UI

Glimpse has always been about getting the diagnostics you need, when and where you need them. However, one of the most overwhelming pieces of feedback we have received over the years is that beyond the Heads-Up-Display, those diagnostics were not necessarily well presented and were sometimes difficult to parse.

In v2 we’ve strived to solve these issues by curating disparate data points from across multiple tabs and pulling them together into one cohesive story. We’ve also allowed diagnostics to become the real star, freeing them from the cramped space you’re used to seeing them in, and giving them the full window treatment they deserve; which coincidently makes switching between requests much easier than it was in v1. Take a look for yourself:

Cross Platform

Glimpse v2 is built completely upon ASP.NET 5 API’s, concepts and the CoreCLR. This means that Glimpse v2 automatically inherits all of the benefits of ASP.NET 5, including its ability to run cross platform on Windows, Linux and OSX.

Now everywhere you can run your site, you’ll be able to use Glimpse v2 to debug and diagnose it as well.

Full Stack

Since its inception, Glimpse has been known as “F12 tools for your server”. But as you’ll no doubt know, web development doesn’t happen only on the server.

With this in mind, Glimpse v2 has begun to leverage new browser diagnostic API’s to tell a more complete, full stack story. You’ll now be able to glean insight into some of the processing happening in the browser, right in the context of your server side diagnostics, for many request.

architecture

Production Ready

Glimpse really shines during development time. Its ease of installation and use is what’s made Glimpse v1 a favorite among web developers for years. Unfortunately, in many situations Glimpse did not work well once your application was pushed to production.

In Glimpse v2, this all changes. A much larger class of applications will now be able to use Glimpse in production environments to debug and diagnose problems in real time.

In the coming weeks we’ll devote more of this blog to covering the ins and outs of these four key features, as well as other changes, and cover exactly what they mean for you.

βeta Beware

Of course, it wouldn’t be responsible for me to cover all of the greatness that is Glimpse v2 without also reviewing its current limitations and known issues.

First of all, what we’re releasing today is an early beta build meant for gathering feedback from users and extension authors. It may have a few rough edges, the user interface is a work in progress and it certainly isn’t feature complete. Look for more stable builds, improved UX and the re-introduction of beloved features such as Timeline and the Trace tab in the future.

It’s also worth noting that Glimpse v2 Beta1 only runs on ASP.NET 5. While using the latest and greatest does have its own perks, for existing applications you’ll need to stick with Glimpse v1. That also means that Glimpse v1 extensions are incompatible with Glimpse v2. In the future we’re going to bridge this gap so that everyone, including .NET 4.5 and .NET 4.0 users will be able to benefit from the new features of Glimpse v2.

Next Steps

Over the next several weeks, keep an eye on this blog and our GitHub repository where we’ll continue to improve Glimpse v2, support and update along with ASP.NET 5 and march towards a full, final 2.0 release.

In the mean time, install Beta1 and give it a try.

We really hope that you enjoy this release and are excited about the direction Glimpse is going, but more than anything else, we’re excited to hear your feedback.

Glimpse ASP.NET 1.7 Released – Cache Tab

The community around Glimpse is continuing to swell as each release includes the effort of more and more people. This release is comprised almost entirely of contributions from outside the “founders team” of Anthony and I (who have been focusing much of our effort on the forthcoming release of version 2.0).

Caching Tab
The big feature in this release is the new Cache tab, which provides insight into the state of the application’s usage of data caching via the HttpRuntime.Cache object.

Cache Screen Shot

Async Patch
Additionally we have release a patch fix for a small number of users which have experienced problems with the Async support we released in 1.8.0 and crossing AppDomain boundaries. This has come up for users when they navigate to a page that contain a ReportViewer control, or using VS2010/12 Dev Web Server (instead of IIS Express or full IIS), or a couple of other edge cases.

A full fix for this will come in v2 but if you run into an exception that reads something similar to:

Type 'System.Web.HttpContextWrapper' in assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable.

you simply need to add the following as an app setting element:

<appSettings>
    ...
    <add key="Glimpse:DisableAsyncSupport" value="true" />
    ...
</appSettings>

If this affects you and you are interested in reading more details on it, head over and take a look at issue #632.

Lastly, we’re also releasing Glimpse.Core 1.8.1 and version 1.5.2 of our MVC packages, each which with several bug fixes. Here’s the full details:

Release Notes

  • Glimpse.ASP.NET – Middleweight release 1.7.0
    • New data caching tab for HttpRuntime.Cache
    • Improved handling of connection strings in Configuration tab including the ability for a user to define which keys/values inside a connectionString which should be obfuscated
  • Glimpse.Core – Featherweight release 1.8.1
    • Fixed style issue which forced Glimpse tables to be full width
    • Added new client events around HUD init process
    • Fixed encoding issue in the AJAX HUD ticker
    • Fixed issues with certain CORS requests failing due to unexpected header modifications
    • Fix to HUD’s poor wrapping on small screens
    • Fixed possible in-memory persistence store thread issue
    • Update structured layouts so titles can have the new casing logic applied
    • Updates to make Glimpse.axd compliant with content security policies
    • Allow users to disable use of Logical Call Context via Glimpse:DisableAsyncSupport AppSettings switch
  • Glimpse.MVC* – Featherweight release 1.5.2
    • Fixed bug with model binding tab and some complex models

Special Thanks
As mentioned above, this release was a big team effort. In particular we’d like to thank:

  • Christophe Gijbels
    • #676 Made in-memory persistence store thread-safe
    • #658 Update Glimpse.axd to CSP compliant
    • #671 Improved handling of connection strings in Configuration Tab
    • #655 Updated complex models processing to work correctly in the model binding tab
  • Bryan Hogan
    • #675 Update the Cache Tab ready for release
    • #649 Removing commented out from request tab
    • #648 Update resource result to not generate null reference exception when dealing with QueryString
  • Steve Ognibene
    • #641 Improve WebForms viewstate smoke tests
    • #636 Addition coverate for improving WebForms viewstate smoke tests
  • Andrew Ma
    • #104 Prototype implementation for caching tab
  • Dorin Manoli
    • #677 Update HUD wraps to fix incorrectly on small screens

And for the great issue reports, we’d also like to thank:

Release Details
For a full list of changes, issues and commits you can use any of these links into GitHub:

Thanks to everyone who helped out with this release and the Glimpse team would like to wish you and yours a happy holiday and bug-free New Year!

dj

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 Extensions Gallery

Just yesterday I was feeling pretty happy with the current pace at which Glimpse has been releasing:

We’ve got full MVC4 support now, support for Entity Framework version 4.3 and above and more good things coming.

The community around Glimpse is also firing on all cylinders recently, with several source code and documentation contributions and the creation of many Glimpse extensions. There is a Glimpse extension for Couchbase by John Zablocki, and Sean Gilbert has been on an Inversion of Control tear releasing plugins for both Ninject and StructureMap.

All of this activity is really great for Glimpse and the Glimpse community, but it can make finding the right Glimpse components for your project a bit daunting. (Although the NuGet team has recently improved the search syntax to help this problem along, it still isn’t enough.)

So today, standing on the shoulders of the giants over at MyGet.org, we are releasing the Glimpse Extension Gallery and Extension Gallery Feed.

The Glimpse Extension Gallery is simply a listing of available Glimpse extension on our site. It’s still early days with the gallery, but it should get better and better in the coming months.

What I’m really excited about is the Extension Gallery Feed which allows users to get a special package source of just Glimpse extensions, which looks like this:

Whats more, we’ve made adding this package source to Visual Studio a breeze by leveraging the Package Source Discovery specification on getGlimpse.com. This specification allows you to easily add our feed to Visual Studio by issuing the following two commands from the Package Manager Console:

Install-Package DiscoverPackageSources
Discover-PackageSources -Url "http://getGlimpse.com"

Intrigued? Full documentation on the Extension Gallery is available on our site.

Maarten and Xavier made creating the extension feed very simple with a few of the advanced feature of MyGet.org – namely package source proxies and package source filters.

Please do try out the feed and as always send over your feedback!

Note to extension authors: Don’t see you extension listed in the gallery? Shoot us a note on the developers list and we’ll get that rectified right away.

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: