NOTE: Glimpse/Config is now deprecated, use Glimpse.axd instead.
--------------------------------------

Using Glimpse
-------------
Thank you for NuGetting Glimpse, A client side Glimpse into what's going on in your server.

Glimpse is currently in Beta.

If you experience any issues, or have feature requests, please report them to https://github.com/Glimpse/Glimpse/issues

To get started with Glimpse, visit [http://yoursite.com]/Glimpse.axd This page hosts the Glimpse bookmarklets, useful for quickly turning on Glimpse.

The following configuration values are allowed for Glimpse in your web.config:

<glimpse enabled="true" 
	requestLimit="5" 
	loggingEnabled="false"
	ipForwardingEnabled="false"
	cacheEnabled="true"> 
	<!-- 
		set enabled to false to completely turn off Glimpse. 
		requestLimit specifies the max number of requests Glimpse will save. 
		enableLogging (false by default) if you experience problems with Glimpse 
		ipForwardingEnabled (false by default) will force Glimpse to validate IP addresses based on the value in the HTTP_X_FORWARDED_FOR header. Useful if your server is behind a proxy or load balancer.
		cacheEnabled (true by default) Glimpse will tell browsers to cache static files by default
	-->
    <ipAddresses> <!-- List of IP addresses allowed to get Glimpse data. Optional. localhost (IPv4 & IPv6) by default -->
        <add address="127.0.0.1" />
        <add address="::1" />
    </ipAddresses>
    <contentTypes><!-- List of content types Glimpse will provide data for. Optional  text/html and application/json by default -->
        <add contentType="text/html"/>
    </contentTypes>
    <pluginBlacklist><!-- List of plugins for Glimpse to ignore. Optional. By default all plugins will load -->
		<add plugin="Glimpse.Core.Plugin.Request"/>
		<add plugin="Glimpse.Core.Plugin.MetaData"/>
	</pluginBlacklist>
	<environments><!-- List of environments your application runs in. Used for the new environment switcher feature. Optional. By default environment information will no be shown -->
        <add name="Dev" authority="localhost:33333" />
        <add name="Prod" authority="getglimpse.com" />
    </environments>
	<urlBlacklist><!-- Glimpse will ignore all requests made to URI's that match any regular expression in this list. Optional. By default all URI's will be considered for Glimpse inspection. -->
		<add url="{regex}"/>
		<add url="{regex}"/>
	</urlBlacklist>
</glimpse>


For more info, visit the homepage at http://getGlimpse.com or follow #glimpse on Twitter.


Overview
--------
At its core Glimpse allows you to debug your web site, and get diagnostics information right in the browser. Glimpse allows you to "Glimpse" into what's going on in your web server. In other words what Firebug is to debugging your client side code, Glimpse is to debugging your server within the client.

Fundamentally Glimpse is made up of 3 different parts, all of which are extensible and customizable for any platform:

* Glimpse Server Module 
* Glimpse Client Side Viewer 
* Glimpse Protocol


How it Works
------------
On the Server:

1. Server collects all server side information that will aid in debugging (i.e. application settings, routes, session variables, trace data, etc)
2. It does this by running through a pipeline of server side data providers that can be dynamically controlled and added to under our plugin architecture
3. Before the response is sent, the server formats this data in accordance with the Glimpse Protocol and serializes it as JSON
4. Depending on whether it is an Ajax request or not, the server embeds the JSON in the content of the page

On the Client:

5. Depending on whether it is a Ajax request or not, the client picks up the JSON data and displays the it by executing a pipeline of client side data providers that can be dynamically controlled and added to under our plugin architecture
6. The client side module then dynamically renders a client side UI (similar to Firebug Lite) that lets you view this data

Glimpse can be turned on or off by a series of different mechanisms, but at its core if the Glimpse cookie is present the server will provide the "debug" data - as a security measure, the request for debug data is "authenticated".

 
Server Implementations 
----------------------
Given the scope of the project and what it can do, the concept isn't restricted to any one platform. Hence, once mature, Glimpse Server Module will be available on all major web platforms. 

Platforms currently supported:

* ASP.Net MVC 3 (via Glimpse.Mvc3 package)
* ASP.Net Web Forms 4 (via Glimpse package)

Platforms target to be supported:

* PHP
* Ruby on Rails 

NOTE - If you would like help develop a Glimpse Server Module for a given platform please let us know.


Client Implementations 
----------------------
To start with the Glimpse Client Side Viewer is simply a light weight JavaScript "plugin" that understands the Glimpse Protocol and knows how to render the data. From a technology standpoint we currently use jQuery as the client side framework.

Eventually, we would like to have actual browser plugins that provide richer functionality and experience, but the JavaScript version of the Glimpse Client Side Viewer is surprisingly well featured, intuitive and provides a high fidelity experience. We also hope to have a version for mobile ready soon which customizes the viewing/usage experience when using a mobile device.

Protocol
-------- 
Details coming soon.

Release Notes
-------------
11/18/2011 - 0.87
- Bug fix for content duplication bug by dpen2000
- Bug fix for blank content bug by jeffora

11/01/2011 - 0.86
- Added Timeline plugin
- Added simplified support for redirected requests
- Support for IPv4 range matching
- Added paging support for plugins

08/16/2011 - 0.85
- Full overhaul of the AJAX hooks the glimpse uses, which fixes several bugs
- Fixed issue in history handler that caused all results to be returned and added caching to single client history requests.
- Small rendering bug when in preview mode array of arrays could be treated as array of objects
- Small rendering bug when in full mode an object could be treated as array
- Glimpse now only adds XHTML compliant markup to the response
- Refactored proxy generation hooks

07/22/2011 - 0.84
- urlBlacklist validator contributed by hahndorf
- Support for IP validation when server is behind a proxy/load balancer contributed by rho24
- Glimpse <script> tags now render inside <body> tags
- Glimpse no longer uses inline javascript, fixing bugs reported for developers with content security policy enabled in firefox
- Added exception information to glimpseLog when enabled
- UI facelift, including update to glimpse icon
- Static glimpse files are now cached in browser, improving performance (can be disabled via web.config)
- Fixed NullReferenceException problem on session tab
- Javascript client performance improvements

06/29/2011 - 0.83
- 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 - <glimpse enabled="true" loggingEnabled="true">...</glimpse> - used for debugging glimpse
- Fixed bug with users in non en-Us cultures
- Fixed issue some users were getting with PowerShell install file
- Started the Glimpse blog: http://blog.getglimpse.com/
- Vastly improved Glimpse documentation (with more on the way!), HUGE thanks @hahndorf

05/30/2011 - 0.82
- Added default values to all config elements to clean up web.config entries
- Refactored "responder" framework to leverage IHttpHandlers
- Separated out MVC3 dependencies, now in Glimpse.Mvc3 nupkg
- Added timing info to Trace tab
- Added support for WebForms tracing
- Added additional request data to Request tab
- Added RootUrlPath config option
- Added jQueryGlimpse
- Fixed jQuery missing from popup for people who didn't have jQuery 1.4.4
- Fixed JSON missing from older browsers
- Increased the z-index of glimpse to be a bit higher by default
- Added ability to "clear" results from both Ajax and Remote tabs
- Fixed problem where hidden tabs are added back into glimpse after a data change/refresh
- Changed the ajax tab so new items are added from the top instead of the bottom
- Added environment switcher for easier debugging across environments
- Extended plugin system to allow for per tab help
- Added version checker, Glimpse will now tell you if it is out of date
- Auto open readme file on install
- Fixed bug in C# sanitizer, thanks @schotime!

05/08/2011 - 0.81
- Changed plugin initialization so that SetupInit is only called once.
- Added list of loaded plugins to Glimpse/Config
- Added node to configuration to allow for blacklisting unwanted plugins. Configuration takes the form <glimpse><pluginBlacklist><add plugin="[Type.Name.Including.Namespace]"/></pluginBlacklist></glimpse>
- Updated Binding plugin to have actual view data
- Fixed bugs with getting NotImplemented exceptions on trace tab
- Fixed bugs with users who were extending DefaultModelBinder
- Added ability to set glimpseState (cookie) to Hidden, which allows Glimpse to record and track remote client requests without rendering UI/Data to their response. (Useful for use with the remote tab)
- Added GlimpseTrace static facade to simplify tracing
- Updated icons to be less pixelated
- Added client side meta data plugin
    - Glimpse warning and UI button added
    - Glimpse information and UI button added
- Client bug fixes for popout window
- Glimpse close button added to conifg
- Glimpse logo added as an embedded asset
- Refactoring of Glimpse JS to avoid possibility of conflict with hosts code 
- Warnings when you don't have jQuery or JSON available 

04/28/2011 - 0.80
- Removed dependency on System.Drawing
- Fixed bugs related to projects that used custom ControllerActionInvokers
- Fixed bugs related to projects using custom FilterProviders
- Added MetaData tab which gives details of primary View Model and primary View Models properties (note this is not recursive at the moment)
- Environment tab now shows site trust level
- Performance improvments for supporting virtual directories
- Glimpse should now work in jQuery noConflict mode 
- Added Glimpse Warnings tab, used to help debug Glimpse problems going forward

04/20/2011 - 0.79
- Client bug fixes for popout window
- Client bug fixes for virtual directories
- Various javascript fixes

04/16/2011 - 0.78
- Breaking change is you created custom plugins.  Plugin interface moved from Glimpse.Protocol to Glimpse.Net.Extensibility namespace
- Fixed bug which threw ReflectionTypeLoadExceptions by using custom SafeDirectoryCatalog (Special thanks to Craig Wagner for helping us track this down!)
- Fixed pathing issues experienced by users hosting from virtual directories
- Added Request tab to show form, query string and cookies as the server saw them
- Added ViewData/ViewBag and TempData info to the details column of the Views tab
- Added Area support to Routes tab
- Added Glimpse Warnings tab, which will only appear when a MEF loading issue is thrown
- Added ability to open Glimpse in popup mode (alpha)
- Added symbols package to symbolsource.org for simplified debugging by the community

04/14/2011 - 0.77
- Fixed issues with most InvalidOperationException's/Circular references. Now if there is an issue, handle it more gracefully, and it only affects one tab. (More complete fix coming soon!)
- /Glimpse/Config is no longer case sensitive, and certain reports of 404�s to this page have been fixed. In addition, this page has been improved to be more understandable.
- As of right now, Glimpse only supports MVC3.  We have identified the issues with MVC2, and are working to correct them. Special shout out to @rugvedvaidya for providing the (long!) workaround to get Glimpse running on MVC2.

04/13/2011 - 0.76
- Added "Time Elapsed" column to the Execution tab.
- Fixed 2 bugs with IE9 client rendering.
- Fixed bug with CSS text-alignment.
- Changed to Apache 2 license.

Attribution
-----------
Some Icons are Copyright � Yusuke Kamiyamane. [http://p.yusukekamiyamane.com/]