SlideShare a Scribd company logo
Three web frameworks
       All .NET
      One hour
          Go


                       Christian Horsdal
                          @chr_horsdal
                   horsdal.blogspot.com
Thanks to the sponsors
Who Am I?
•   Lead Software Architect @ Mjølner Informatics
•   Denmark
•   Husband and Father
•   Some who enjoys
    –   Clean code
    –   TDD’ing
    –   When Denmarks wins at football
    –   Simplicity
    –   Whisky
Why?

• 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?

• Run anywhere

• IoC/DI to the bone

• Embrace HTTP

• OSS and community driven
What will you learn?
A taste of some alternatives




                    • FubuMVC

                    • OpenRasta

                    • Nancy
Sample
FubuMVC – At a glance
• One Model In One Model Out
   – Aka OMIOMO
   – Aka Russian Doll


• Convention over Configuration

• Really cool built-in diagnostics

• Everything is POCOs
FubuMVC – ShortUrl Overview
GET “/”   • No params




          HomeController
                            • Returns HomeViewModel
            .get_Home




                           HomeView.cshtml   • Takes HomeViewModel
FubuMVC – ShortUrl Overview
POST “/”    • UrlShorteningModel




           HomeController     • Takes UrlShorteningModel
            .post_Home        • Returns UrlShorteningViewModel




                            post_url_result.cshtml   • Takes UrlShorteningVM
FubuMVC – ShortUrl Overview

GET “/42”
            • ShortenedUrlModel




                                     • Takes ShortenedUrlMode
            HomeController.get_Url
                                     • Returns FubuContinuation
FubuMVC



Show me the code!
OpenRasta– At a glance
• Three things:
  – Resources
  – Handlers
  – Codecs


• Automatic conneg

• Everything is POCOs
OpenRasta – Shorturl Overview
• Resource:
  – “/”
                        GET “/”   POST “/”   GET “/42”
  – “/{shortenedUrl}”
  – Home
OpenRasta – Shorturl Overview


• Handler
  – HomeHandler

                      Home resource
                      HomeHandler
OpenRasta – Shorturl Overview


                          GET “/”     POST “/”      GET “/42”




• “Codecs”
                                    Home resource
  – WebForms viewengine             HomeHandler
  – Form data
OpenRasta



Show me the code!
Nancy– At a glance
• Lightweight, low ceremony
   – Just works
   – But easily swappable
   – DSLs

• Built in diagnostics

• Automatic conneg

• Testability is first class
Nancy – Shorturl Overview

• Modules
 – ShortUrlModule

                     HTTP              Handler
                              Routes              Response
                    request            function
Nancy – Shorturl Overview


• Routes
  – Get[“/”]
  – Post[“/”]               HTTP              Handler
                                     Routes              Response
                           request            function
  – Get[“/{shortenedUrl}”]
Nancy – Shorturl Overview




                       HTTP              Handler
                                Routes              Response
                      request            function

• A lambda for each
Nancy



Show me the code!
Why, again?
 There are alternatives to ASP.NET
    Know them!



 Style matters



 Tradeoffs, tradeoffs, tradeoffs
What might you have learned?
  A taste of some altenatives

                • FubuMVC
                    – OMIOMU


                • OpenRasta
                    – Resources, Handlers, Codecs


                • Nancy
                    – DSL
FubuMVC, OpenRasta, Nancy

WHEN, WHAT, WHERE?
Please rate this session
Scan the code, go online, rate this session


                                                  Christian Horsdal
                                                     @chr_horsdal
                                              horsdal.blogspot.com

More Related Content

PPTX
Nancy - A Lightweight .NET Web Framework
Christian Horsdal
 
PPTX
Campus days 2014 owin
Christian Horsdal
 
ODP
SockJS Intro
Ngoc Dao
 
PPTX
Automating Zabbix with Puppet (Werner Dijkerman / 26-11-2015)
Nederlandstalige Zabbix Gebruikersgroep
 
PDF
Document Locking with Redis in Symfony2
Tom Corrigan
 
ODP
Developing high-performance network servers in Lisp
Vladimir Sedach
 
KEY
About Clack
fukamachi
 
PDF
Node.js 101 with Rami Sayar
FITC
 
Nancy - A Lightweight .NET Web Framework
Christian Horsdal
 
Campus days 2014 owin
Christian Horsdal
 
SockJS Intro
Ngoc Dao
 
Automating Zabbix with Puppet (Werner Dijkerman / 26-11-2015)
Nederlandstalige Zabbix Gebruikersgroep
 
Document Locking with Redis in Symfony2
Tom Corrigan
 
Developing high-performance network servers in Lisp
Vladimir Sedach
 
About Clack
fukamachi
 
Node.js 101 with Rami Sayar
FITC
 

What's hot (20)

PDF
Introduction to Node.js: What, why and how?
Christian Joudrey
 
PDF
Writing a fast HTTP parser
fukamachi
 
PDF
Node.js essentials
Bedis ElAchèche
 
PDF
Deploying WO on Windows
WO Community
 
PDF
Dexador Rises
fukamachi
 
PDF
Apache Camel in the belly of the Docker whale
Henryk Konsek
 
PPTX
Lightweight Approach to Building Web APIs with .NET
Christian Horsdal
 
PDF
Basic Understanding and Implement of Node.js
Gary Yeh
 
ODP
Rex - Lightning Talk yapc.eu 2013
Jan Gehring
 
PDF
SVN essentials
Bedis ElAchèche
 
PPT
Neutrondev ppt
marunewby
 
PDF
Introduction to Node.js
Richard Lee
 
PPTX
Java script at backend nodejs
Amit Thakkar
 
PDF
Setting up a local WordPress development environment
Zero Point Development
 
PDF
Building GUI App with Electron and Lisp
fukamachi
 
KEY
Dcjq node.js presentation
async_io
 
PDF
The Parenscript Common Lisp to JavaScript compiler
Vladimir Sedach
 
PDF
Non-blocking I/O, Event loops and node.js
Marcus Frödin
 
ODP
WebSockets with PHP: Mission impossible
Yoan-Alexander Grigorov
 
PPT
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Introduction to Node.js: What, why and how?
Christian Joudrey
 
Writing a fast HTTP parser
fukamachi
 
Node.js essentials
Bedis ElAchèche
 
Deploying WO on Windows
WO Community
 
Dexador Rises
fukamachi
 
Apache Camel in the belly of the Docker whale
Henryk Konsek
 
Lightweight Approach to Building Web APIs with .NET
Christian Horsdal
 
Basic Understanding and Implement of Node.js
Gary Yeh
 
Rex - Lightning Talk yapc.eu 2013
Jan Gehring
 
SVN essentials
Bedis ElAchèche
 
Neutrondev ppt
marunewby
 
Introduction to Node.js
Richard Lee
 
Java script at backend nodejs
Amit Thakkar
 
Setting up a local WordPress development environment
Zero Point Development
 
Building GUI App with Electron and Lisp
fukamachi
 
Dcjq node.js presentation
async_io
 
The Parenscript Common Lisp to JavaScript compiler
Vladimir Sedach
 
Non-blocking I/O, Event loops and node.js
Marcus Frödin
 
WebSockets with PHP: Mission impossible
Yoan-Alexander Grigorov
 
Introduction to node.js aka NodeJS
JITENDRA KUMAR PATEL
 
Ad

Similar to Three Other Web Frameworks. All .NET. All OSS. One Hour. Go (20)

PPTX
Spider进化论
cjhacker
 
KEY
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
PDF
«Scrapy internals» Александр Сибиряков, Scrapinghub
it-people
 
PDF
Best practices for highly available and large scale SolrCloud
Anshum Gupta
 
PDF
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
DataStax Academy
 
PPTX
title
michalsap
 
PPTX
Performance out
Sergey Bran
 
PPTX
Performance out
Jack Huang
 
PPTX
Performance out
test account
 
PPTX
Performance out
Jack Huang
 
PPTX
Performance out
Jack Huang
 
PPTX
Performance out
Dragan Kolarevic
 
PPTX
2 7
Oleg Petrov
 
PPTX
Performance out
Moderator_kursa
 
PPTX
Performance_Out.pptx
sanjanabal
 
PPTX
Performance out
Jack Huang
 
PPTX
Performance out
Jack Huang
 
PPTX
Performance out
Andrea Martinez
 
PPTX
RESTful modules in zf2
Corley S.r.l.
 
PPTX
Realtime web2012
Timothy Fitz
 
Spider进化论
cjhacker
 
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
it-people
 
Best practices for highly available and large scale SolrCloud
Anshum Gupta
 
Cassandra Day SV 2014: Spark, Shark, and Apache Cassandra
DataStax Academy
 
title
michalsap
 
Performance out
Sergey Bran
 
Performance out
Jack Huang
 
Performance out
test account
 
Performance out
Jack Huang
 
Performance out
Jack Huang
 
Performance out
Dragan Kolarevic
 
Performance out
Moderator_kursa
 
Performance_Out.pptx
sanjanabal
 
Performance out
Jack Huang
 
Performance out
Jack Huang
 
Performance out
Andrea Martinez
 
RESTful modules in zf2
Corley S.r.l.
 
Realtime web2012
Timothy Fitz
 
Ad

More from Christian Horsdal (11)

PPTX
Testing microservices.ANUG.20230111.pptx
Christian Horsdal
 
PDF
Scoping microservices.20190917
Christian Horsdal
 
PPTX
Event sourcing anug 20190227
Christian Horsdal
 
PPTX
Consolidating services with middleware - NDC London 2017
Christian Horsdal
 
PPTX
Intro to.net core 20170111
Christian Horsdal
 
PPTX
Middleware webnextconf - 20152609
Christian Horsdal
 
PPTX
ASP.NET vNext ANUG 20140817
Christian Horsdal
 
PPTX
Four .NET Web Frameworks in Less Than an Hour
Christian Horsdal
 
PPTX
Nancy + rest mow2012
Christian Horsdal
 
PPTX
DCI ANUG - 24th November 2010
Christian Horsdal
 
PPTX
DCI - ANUG 24th November 2010
Christian Horsdal
 
Testing microservices.ANUG.20230111.pptx
Christian Horsdal
 
Scoping microservices.20190917
Christian Horsdal
 
Event sourcing anug 20190227
Christian Horsdal
 
Consolidating services with middleware - NDC London 2017
Christian Horsdal
 
Intro to.net core 20170111
Christian Horsdal
 
Middleware webnextconf - 20152609
Christian Horsdal
 
ASP.NET vNext ANUG 20140817
Christian Horsdal
 
Four .NET Web Frameworks in Less Than an Hour
Christian Horsdal
 
Nancy + rest mow2012
Christian Horsdal
 
DCI ANUG - 24th November 2010
Christian Horsdal
 
DCI - ANUG 24th November 2010
Christian Horsdal
 

Recently uploaded (20)

PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PPTX
The Future of AI & Machine Learning.pptx
pritsen4700
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Get More from Fiori Automation - What’s New, What Works, and What’s Next.pdf
Precisely
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Doc9.....................................
SofiaCollazos
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
The Future of AI & Machine Learning.pptx
pritsen4700
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 

Three Other Web Frameworks. All .NET. All OSS. One Hour. Go

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