New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Glimpse v2 - Instance based framework provide, code configuration, OWIN and more #738

Open
wants to merge 184 commits into
from

Conversation

Projects
None yet
6 participants
@avanderhoorn
Member

avanderhoorn commented Feb 14, 2014

Version 2 Tracker

This branch represents the sum of all work done on Glimpse v2. Any work from v2 should be branched from here and ultimately brought back in.

Here is a list of work items that need to be completed for v2 release.

Done and merged into the version-2 branch:

  • Infrastructure abstraction to help support more platforms (i.e. OWIN, NancyFX, etc) #266 @nikmd23
  • Global access to common constructs for plugin/extension authors (i.e. logger, message bus, etc) #266 @nikmd23
  • Finding end body tag under all conditions #555 @CGijbels
  • Message bus events across async task being picked up (becomes important for async ADO, etc) #709 @CGijbels
  • Global access to configuration for end users (i.e. to enable/disable glimpse/tabs, etc) #741 @nikmd23
  • Custom event API for registering general and/or timeline events #745 @nikmd23
  • Allows metadata for tabs to be extended #750 @avanderhoorn
  • Allow instance/request specific metadata 4222513 @avanderhoorn
  • Add PRG support back into the system 269b3d5 @avanderhoorn
  • Dynamic configuration sections within web.config #686 @CGijbels

Done and yet to be merged

*none currently*

Work in progress

  • How does XML config live side by side with code config @CGijbels
  • Improved serialization process to safely process more object types #457 @CGijbels
  • Bundle registered client scripts #753 @MisterJames
  • Review of persistent store interface #790 @nikmd23
  • How do we correctly inject the client/script correctly #791 @CGijbels is finishing this up

Yet to be looked at

  • Review of timeline/trace relationship/api
  • How to deal with large objects/data payloads
  • Sort out how messaging moving forward (extension methods, inheritance, etc)
  • Templating stagey for client and server
  • UI/UX refresh (involves - Review of existing plugins to ensure they are focused and on task, improve history semantics within client and review information architecture of plugins and the relationship between HUD and tabs)
  • Tab "profiles" that allow different sets of tabs to be shown for different reasons (e.g. data access tabs for DBA's, all tabs for devs or web API tabs for web API handled requests and mvc tabs for MVC handled requests)
  • Disk based persistence store. SqlLite or something similar?

Integration with 3rd parties

(acts as a sanity check for our Infrastructure abstraction implementation)

Core people driving this work are as follows:
@avanderhoorn @nikmd23 @CGijbels @csainty @darrelmiller @thecodejunkie @jeremydmiller @markrendle @dahlbyk @PaulAtkins

Sorry in advance for all the code comments below. There is a fair amount of work and discussion that has done into this work, hence the length of this PRs content.

nikmd23 and others added some commits Aug 2, 2013

Removed IFrameworkProvider from Configuration - but feel a bit dirty …
…since I commented out a few tests than need deeper review.
Got ASP.NET project working with new Init model.
Skipped a bunch of tests that were hanging the test runner.
Implemented the rest of Glimpse.Owin. Glimpse now operates in OWIN re…
…quests as middleware, but there is a few hacks along the way that need to be cleaned up before this is ready for RC release
Fixed a few broken artifacts of major rebase, including commenting ou…
…t a few tests 😞

There are a few comments with the token V2Merge that need to be reviewed still

CGijbels and others added some commits Jul 19, 2014

Merge pull request #810 from Glimpse/cgijbels-onflush-spike
Glimpse v2 - Reworked script tag generation and injection
Update MiddlewareWrapper to use correct naming convention
WrapperMiddleware instead of MiddlewareWrapper
@nikmd23

This comment has been minimized.

Show comment
Hide comment
@nikmd23

nikmd23 Oct 28, 2014

Member

I intentionally called the class GlimpseMiddleware because it is client facing in scenario's where the user doesn't have/use an extension method on the app builder.

In those scenarios, I don't think they will know what RuntimeMiddleware is - but the name Glimpse means something.

Given that, do you still like this change @avanderhoorn?

I intentionally called the class GlimpseMiddleware because it is client facing in scenario's where the user doesn't have/use an extension method on the app builder.

In those scenarios, I don't think they will know what RuntimeMiddleware is - but the name Glimpse means something.

Given that, do you still like this change @avanderhoorn?

This comment has been minimized.

Show comment
Hide comment
@avanderhoorn

avanderhoorn Oct 28, 2014

Member

@nikmd23 Great point. I was going with the trying not to name everything a Glimpse prefix. I'll change that back.

Member

avanderhoorn replied Oct 28, 2014

@nikmd23 Great point. I was going with the trying not to name everything a Glimpse prefix. I'll change that back.

@nikmd23

This comment has been minimized.

Show comment
Hide comment
@nikmd23

nikmd23 Oct 28, 2014

Member

I did not choose to use the word "wrapper" here because we don't actually wrap a piece of middleware (since that can lead to casting problems).

Instead, we inject, like bookends, pieces of marker middleware. Head is what goes in the front, and there will most likely be a Tail to end the whole thing as well. The chain would basically look like this:

  1. Head
  2. UserMiddleware
  3. Head
  4. UserMiddleware
  5. Head
  6. UserMiddleware
  7. Tail

We don't have to stick to the head/tail names - but wrapper is inaccurate. Thoughts?

I did not choose to use the word "wrapper" here because we don't actually wrap a piece of middleware (since that can lead to casting problems).

Instead, we inject, like bookends, pieces of marker middleware. Head is what goes in the front, and there will most likely be a Tail to end the whole thing as well. The chain would basically look like this:

  1. Head
  2. UserMiddleware
  3. Head
  4. UserMiddleware
  5. Head
  6. UserMiddleware
  7. Tail

We don't have to stick to the head/tail names - but wrapper is inaccurate. Thoughts?

This comment has been minimized.

Show comment
Hide comment
@avanderhoorn

avanderhoorn Oct 28, 2014

Member

@nikmd23 Great feedback! Is the Head also used as the Tail?

Member

avanderhoorn replied Oct 28, 2014

@nikmd23 Great feedback! Is the Head also used as the Tail?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment