Skip to content

Meeting 24 May 2012

commodifusion edited this page May 25, 2012 · 2 revisions

Thursday 24th, 11am pacific

Agenda

Roadmap planning

Shape the planning roadmap

https://github.com/owin/owin/wiki/Planning

Proposals for possible timeline

Implementation planning

Review inventory of potential implementations

https://github.com/owin/owin/wiki/implementations

Proposals for adding or removing items needed to flush out OWIN problems

Call to action – put names next to items where there is time and interest in committing code

Sandbox repo

Look at owin-sandbox repo

https://github.com/owin/owin-sandbox

Is this an effective tool to drive out common scenarios

Proposals for additional case studies

Call to action – put names next to items where there is time and interest in committing code

OWIN delegates and Gate base utilities

Walk through the delegate signature as it stands

https://github.com/owin/owin/blob/master/src/main/Owin/Owin.cs

Proposals for changes and concerns to be resolved in delegates

Discuss role of Gate.Request and Gate.Response utility classes

https://github.com/owin/gate/blob/master/src/Main/Gate/Request.cs

https://github.com/owin/gate/blob/master/src/Main/Gate/Response.cs

Discuss possible benefit of “internal class” code-only Gate.Sources nupkg

Proposals for changes and concerns to be resolved in Gate utility classes

Minutes

Agenda item - roadmap planning

Roadmap sounds fine

Need to dial in scope of and qty of implementation before seeing what timeline would look like

Agenda item - implementation planning

Highest priority implementation for "critical mass" are Microsoft intrinsics

Examples like ASP.NET and WebAPI are key for general adoption rates

ASP.NET, HttpListener, and to some extent IIS Native Module are key for general adoption rates

First class Mono support

Sake is a good step in that direction

Maintaining a "green-light" on teamcity for .net and mono is key

Being able to run c# web apps on mac w/out parallels would be fantastic

Out-of-box middleware isn't something you can really pin down in advance

Incubating middleware in gate contribs would be good.

Knowing how to discover middleware on nuget would be good.

A test harness for http correctness, stress, performance and stability would be key

Running the harness against any hosting option would be fantastic

Autobahn is an example of that kind of thing that tests correctness of any WS server implementation

Followup: does such a thing exist for http correctness? [loudej]

Call to action on implementations

put time on ms-specific tech [loudej]

put time on http test harnesses [loudej]

Agenda item - sandbox repo

github / owin / owin-sandbox contains a series of case studies to explore end-user experience in various mini scenarios

static file server is a good case study to add [loudej]

signalr + nancy is another to add [loudej]

chunked data forever is another [loudej]

websockets is yet another [loudej]

brief note - anyone can feel free to jump in on adding code as well, if they like :)

Agenda item - current status of OWIN in owin.cs

brief walk through the delegates and iappbuilder interface

topic 1: BodyDelegate transmit calls (joined vs split)

option a - draft 5

  • isasync = write(data, ()=>continue);

option b - in code

  • isbuffering = write(data); isasync = flush(()=>continue);

topic 2: request & response headers (concat vs enumerable vs array)

option a - draft 5

  • IDictionary<string,string>

option b - in code

  • IDictionary<string,IEnumerable<string>>

option c - for consideration

  • IDictionary<string,string[]>

topic 3: AppTaskDelegate return value (tuple vs value-type)

option a - in code

  • Task<Tuple<string, IDict<string,IEnum<string>>, BodyDelegate>>

option b - for consideration

  • Task<OwinResponse>; struct OwinResponse { string Status, IDict headers, BodyDelegate body }

topic 4: AppDelegate's ResultDelegate arguments (args vs value-type)

option a - in code

  • result(string, IDict<string,IEnum<string>>, BodyDelegate)

option b - for consideration

  • result(response); struct OwinResponse { string Status, IDict headers, BodyDelegate body }

topic 5: Startup context (do nothing vs builder.Properties)

option a - in code

  • nothing, context at startup is application-specific solution

option b - for consideration

  • IDictionary<string,object> IAppBuilder.Properties for intra-component (host/middleware/fwk/site) context at startup

some ad-hoc discussion of IAppBuilder's role

brief look at owin-sandbox to illustrate use of IAppBuilder in end-user code

time ran out and the meeting was kicked from the conference room with the speaker-phone