![Page 1: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/1.jpg)
Three web frameworks All .NET
One hour Go
Christian Horsdal@chr_horsdal
horsdal.blogspot.com
![Page 2: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/2.jpg)
Thanks to the sponsors
![Page 3: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/3.jpg)
• Lead Software Architect @ Mjølner Informatics• Denmark• Husband and Father• Some who enjoys– Clean code– TDD’ing– When Denmarks wins at football– Simplicity– Whisky
Who Am I?
![Page 4: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/4.jpg)
• There are alternatives to ASP.NET – Even on .NET– Know them!
• Style matters
• Tradeoffs, tradeoffs, tradeoffs– Conventions <-----> explicitness– DRY <-----> separation of concerns– Abstract <-----> concrete
Why?
![Page 5: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/5.jpg)
• Run anywhere
• IoC/DI to the bone
• Embrace HTTP
• OSS and community driven
Why?
![Page 6: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/6.jpg)
A taste of some alternatives
• FubuMVC
• OpenRasta
• Nancy
What will you learn?
![Page 7: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/7.jpg)
Sample
![Page 8: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/8.jpg)
• One Model In One Model Out– Aka OMIOMO– Aka Russian Doll
• Convention over Configuration
• Really cool built-in diagnostics
• Everything is POCOs
FubuMVC – At a glance
![Page 9: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/9.jpg)
GET “/” • No params
HomeController.get_Home
• Returns HomeViewModel
HomeView.cshtml • Takes HomeViewModel
FubuMVC – ShortUrl Overview
![Page 10: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/10.jpg)
FubuMVC – ShortUrl Overview
POST “/” • UrlShorteningModel
HomeController.post_Home
• Takes UrlShorteningModel• Returns UrlShorteningViewModel
post_url_result.cshtml • Takes UrlShorteningVM
![Page 11: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/11.jpg)
FubuMVC – ShortUrl Overview
GET “/42” • ShortenedUrlModel
HomeController.get_Url• Takes ShortenedUrlMode• Returns FubuContinuation
![Page 12: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/12.jpg)
FubuMVC
Show me the code!
![Page 13: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/13.jpg)
• Three things:– Resources– Handlers– Codecs
• Automatic conneg
• Everything is POCOs
OpenRasta– At a glance
![Page 14: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/14.jpg)
• Resource:– “/”– “/{shortenedUrl}”– Home
GET “/” POST “/” GET “/42”
OpenRasta – Shorturl Overview
![Page 15: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/15.jpg)
• Handler– HomeHandler
Home resourceHomeHandler
OpenRasta – Shorturl Overview
![Page 16: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/16.jpg)
• “Codecs”– WebForms viewengine– Form data
Home resourceHomeHandler
GET “/” POST “/” GET “/42”
OpenRasta – Shorturl Overview
![Page 17: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/17.jpg)
OpenRasta
Show me the code!
![Page 18: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/18.jpg)
• Lightweight, low ceremony– Just works– But easily swappable– DSLs
• Built in diagnostics
• Automatic conneg
• Testability is first class
Nancy– At a glance
![Page 19: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/19.jpg)
• Modules– ShortUrlModule
HTTP request Routes Handler
function Response
Nancy – Shorturl Overview
![Page 20: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/20.jpg)
HTTP request Routes Handler
function Response
Nancy – Shorturl Overview
• Routes– Get[“/”]– Post[“/”]– Get[“/{shortenedUrl}”]
![Page 21: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/21.jpg)
• A lambda for each
HTTP request Routes Handler
function Response
Nancy – Shorturl Overview
![Page 22: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/22.jpg)
Nancy
Show me the code!
![Page 23: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/23.jpg)
Why, again? There are alternatives to ASP.NET
Know them!
Style matters
Tradeoffs, tradeoffs, tradeoffs
![Page 24: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/24.jpg)
• FubuMVC– OMIOMU
• OpenRasta – Resources, Handlers, Codecs
• Nancy– DSL
What might you have learned?A taste of some altenatives
![Page 25: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/25.jpg)
WHEN, WHAT, WHERE?FubuMVC, OpenRasta, Nancy
![Page 26: Three Other Web Frameworks. All .NET. All OSS. One Hour. Go](https://reader034.vdocuments.net/reader034/viewer/2022042509/557d3c3bd8b42af30d8b4c19/html5/thumbnails/26.jpg)
Please rate this sessionScan the code, go online, rate this session
Christian Horsdal@chr_horsdal
horsdal.blogspot.com