This month’s issue of MSDN Magazine leads off with Howard Dierking’s exploration of the Microsoft Katana Project (“ Getting Started with the Katana Project”), an intriguing effort to turn the old framework-based model of application development on its ear. Based on the open source Open Web Interface for .NET (OWIN) project that defines an interface to decouple Web applications from Web servers, Katana presents a set of OWIN components—including infrastructure and functional components—that are provided by Microsoft.
As Dierking, a program manager on the Windows Azure Frameworks and Tools team, explains in his article this month, Katana enables developers to orchestrate different frameworks together into a single Web application. Katana defines interactions among Web servers and application components, Dierking writes, by reducing “all interactions to a small set of types and a single function signature known as the application delegate, or AppFunc.”
It’s an important effort in the arena of cloud-enabled Web application development, where monolithic frameworks such as the Microsoft .NET Framework simply cannot evolve quickly enough to address emergent challenges. The release of ASP.NET MVC and ASP.NET Web API by Microsoft helped decouple key Web application development frameworks from the long cycles of the .NET Framework. Katana takes things an important step further, by allowing developers to mix and match application components from different frameworks.
“The thing that’s exciting about Katana is that it goes beyond frameworks and libraries and enables a tremendous amount of agility for releasing core infrastructure components like servers and hosts,” Dierking explained in an interview, noting that the Katana OWIN pipeline model gives developers control over what constitutes the framework.
“Practically, this means that developers don’t end up paying a performance cost for framework features that aren’t in use. It also means that gone are the days of waiting for a new framework release in order to take advantage of a new capability,” Dierking said. “With Katana, simply install the new capability via NuGet and add it to the OWIN pipeline.”
Dierking said developers are sometimes confused about the role of Katana in the Web application stack. Applications, he said, don’t need to be rewritten, because Katana isn’t an application development framework. “It’s a way to compose one or more application development frameworks together. If you write ASP.NET Web APIs today, you’ll continue to do so when they’re hosted with Katana host and server components,” Dierking said.
Dierking said that developers he talks to are most excited about being able to compose different frameworks together into a single Web application and to take a Web application and easily switch servers and hosts. The componentized stack, he said, enables a “rich component ecosystem that can innovate faster than any traditional framework could ever hope.”
But that same availability of choice also poses a challenge. As developers shift away from big frameworks that do everything in favor of componentized stacks, they’ll have to seek out the middleware to accomplish their goals. “I think that in the OWIN world—like with Node.js and Ruby—the biggest challenge will be around the paradox of choice,” Dierking said, referencing Barry Schwartz’s book exploring the stress produced by broad choices (“The Paradox of Choice: Why More Is Less” [Harper Perennial, 2005]).
Katana will continue to improve. Dierking said post-Katana 2.0 features will address functionality that remains locked up in the System.Web assembly such as caching and session management. Future versions will also make it easier to enable ASP.NET MVC, which remains tied to System.Web, to run in an OWIN self-hosted pipeline. There’s also an effort to release new, ultra-fast servers and hosts.
Has your organization looked into adopting OWIN and Katana for Web application development? E-mail me at firstname.lastname@example.org and tell me what you think.
Michael Desmond is the Editor-in-Chief of MSDN Magazine.