Upload
fabian-vilers
View
238
Download
2
Embed Size (px)
DESCRIPTION
As Web application development takes its next evolutionary step into the world of cloud computing, project Katana provides the underlying set of components to ASP.NET applications, enabling them to be flexible, portable, lightweight, and provide better performance – put another way, project Katana cloud optimizes your ASP.NET applications.
Citation preview
OWIN & KatanaFabian Vilers
@fvilershttp://www.linkedin.com/in/fvilers
Who am I ? Entrepreneur
.NET Software Craftsman
Role Play Gamer
Music Addict
Basket-Ball Fan
Poker Player
Who are you ?
Motivations Challenges raised by the historical model Classic ASP (1996) ASP.NET (2002)
Evolutionary steps ASP.NET MVC (2009) & ASP.NET Web API (2012)
The future A nimble framework Equally simple as starting with Node.js
Classic ASP
Classic ASP Dynamic and data-driven
Server-side scripts
Abstraction of HTTP protocol and web server
Challenging as growing in size and complexity
Lack of structure
Duplication of code
ASP.NET
ASP.NET Object-oriented
Similar design time experience for WinForms developers
Rich set of user interface controls and infrastructure features
Server-side event model
Hide as much as possible the web’s stateless nature
Tighly coupled with System.Web.dll and IIS
Included as part of the .NET framework
ASP.NET MVC
ASP.NET MVC Small, focused and pluggable components
Greater control over application and markup
Not included in .NET framework and released as an independant download
Static markup with dynamic sections
Client scripting and AJAX friendly
ASP.NET Web API ASP.NET MVC helped the rise of Web APIs
Evolved from ASP.NET MVC as a more modular framework
Released via NuGet packages and iterated more indenpendently
No dependencies to System.Web.dll thus, no dependencies to IIS
Capable to run in a custom host
OWIN Open Web Interface for .NET
Decouple server and application to create an abstraction
As few as possible dependencies on other framework types New components could be more easily developed and consumed Applications are more easily ported between hosts, plateforms and operating
systems
Stimulate the open source ecosystem
Inspired by the benefits achieved by Rack (Ruby community)
OWIN Two core elements Environment dictionary populated by the OWIN web server Application delegate that accepts the environment dictionary as input and
output a task
Very small number of dependencies
Asynchronous design
Atomic unit of execution
OWIN PipelineHost
• IIS• Owin
Host.exe
• Custom
Server
• System.Web
• HttpListener
• WebListener
Middleware
• Authentication
Middleware
• Logging
Project Katana Building and hosting OWIN-based web applications
Portable Components should be substituable for new components
Modular, flexible Components should be small and focused
Lightweight, performant, scalable Components are explicitly added to the pipeline Consume fewer resources and handle more load
Let’s write some code!
Links OWIN Specification: http://owin.org/spec/owin-1.0.0.html
Katana Project: http://katanaproject.codeplex.com
Code from the demo: https://github.com/fvilers/OWIN-Katana