Project status?

27 views
Skip to first unread message

Andreas Håkansson

unread,
Jun 29, 2011, 12:56:38 PM6/29/11
to net-http-a...@googlegroups.com
Hey,

I've not monitored this group for a while now and know that I am pretty out of the loop at the moment. So, could someone perhaps give me an update on the current status of OWIN? Last time I asked I was told it was pretty close to being final and that was a couple of months ago. Please do not think I am bashing the project or the people involved, because I'm definitely not. Genuinely interested in this project =)

That said .. I is quite important to have it move forward so that ppl do not loose interest in contributing because nitty gritty things is discussed to death (no ideas if this is the case since I've not been monitoring it) or get tied up in other obligations and unable to contribute anymore. 

Lastly, have the group talked about how to make OWIN penetrate the community? Like identified candidates for OWIN adapters (Kayak and IIS being the obvious ones) once the spec if finalized? Having servers talk OWIN is going to be important for it to capture abroad audience and for that I think there will be a need to be pro-active and go out and hunt for implementations in interesting places, opposed to wait and hope the community finds its way to OWIN

Just my thoughts and questions =)

Benjamin van der Veen

unread,
Jun 30, 2011, 1:37:16 PM6/30/11
to net-http-a...@googlegroups.com


2011/6/29 Andreas Håkansson <and...@selfinflicted.org>

Hey,

I've not monitored this group for a while now and know that I am pretty out of the loop at the moment. So, could someone perhaps give me an update on the current status of OWIN? Last time I asked I was told it was pretty close to being final and that was a couple of months ago. Please do not think I am bashing the project or the people involved, because I'm definitely not. Genuinely interested in this project =) 

I've mentioned some work on Twitter but it's definitely worth reiterating here. I've done some refactoring to simplify the public API in the Gate.dll project and clean things up a bit, and that's reflected in the master branch. There ares still a few 'helpers' in there right now, but I'd like to see Gate.dll just be enough for hosts and applications to 'bootstrap' themselves with respect to one another.

From a host side, that means taking a dependency on Gate and calling:

var theUsersApp = AppBuilder.BuildConfiguration(configurationString);

The configuration string arg refers to an assembly/type/method that takes a single AppBuilder parameter. The BuildConfiguration method takes care of poking through assemblies, finding a match, and instantiating the type, and calling the configuration. The return value is an OWIN-compatible delegate that can be run by the host's OWIN support.

From the application side, it looks like this:

class Startup {
    public void Configuration(AppBuilder builder) {
        builder
            .Map("/api", b => b
                .Use(RequireAuthenticationMiddleware.Create)
                .Run(NancyFx.Create))
           .Use(GzipCompressMiddleware.Create)
           .Run(StaticSite.Create);
    }
}

(These middleware are just conceptual examples.)

Note that frameworks do not need to take a dependency on Gate. Gate is just a way for users to get their OWIN-compatible delegates loaded up into a hosting scenario.

As far as the OWIN spec itself, I consider it finalized.
 
Lastly, have the group talked about how to make OWIN penetrate the community? Like identified candidates for OWIN adapters (Kayak and IIS being the obvious ones) once the spec if finalized? Having servers talk OWIN is going to be important for it to capture abroad audience and for that I think there will be a need to be pro-active and go out and hunt for implementations in interesting places, opposed to wait and hope the community finds its way to OWIN

Personally, I've been holding off on doing a big push within the community until I have something to demo. ;) I do have a day job and have a lot of other stuff going on in life, but I've been working hard most weeknights and every weekend for several months to get that demo together. 

There are already OWIN adapters within the Gate project for ASP.NET and WCF.

In addition to recently releasing on NuGet and continuing to iterate and tightening up Kayak, I've made an OWIN/Kayak adapter under the Gate project: https://github.com/owin/gate/tree/kayak_host/src/Hosts/Gate.Kayak I'll probably merge it into master in the next few days.

I've also mentioned to Andreas over Twitter that I have a spike of an OWIN stack consisting of Kayak, Gate, and Nancy on my machine. It uses a Kayak CLI which I'm hoping to push into master Kayak next week.

So, my roadmap looks like this:

- Create NuGet packages for Gate.dll and Gate.Kayak.dll. 
- Write tests for and push up Kayak.Cli.exe project, create NuGet package 
- Get Andreas/Steven to make a NuGet package for Nancy.Hosting.Owin ;)
- Publish screencast on pulling in the deps from NuGet, building, and running a Nancy/Gate/Kayak project.
 
Just my thoughts and questions =)

Hope this helps. I'm very excited about the project. Unfortunately working on it is not my day job, but I'm moving as quickly as I can with the limited time I have for it. I will be presenting the stack at Monospace in late July (really need to write a blog post about that) so presumably it will be done by then. ;)

Andreas Håkansson

unread,
Jun 30, 2011, 1:41:46 PM6/30/11
to net-http-a...@googlegroups.com
Awesome update Benjamin! Thank you

Can't wait for this to get some real exposure. I will definitely blog about it from the Nancy perspective.

I can probably create a Nancy.Hosting.Owin package in ~15 minutes when we need to, along with a symbol package, and have it up on nuget

A lot of people have been asking about self-hosting for Nancy, much like Manos does, and I definitely see a potential for this with Kayak + Owin host
Reply all
Reply to author
Forward
0 new messages