SlideShare a Scribd company logo
There is more than just easy
webservices
All the boring stuff you will forget after the slides have passed
•   Stefan Daugaard Poulsen
•   @cyberzeddk
•   AP in Computer Science
•   Developer/Architect at Atea Denmark
    • Currently working on Atea Tele


• .NET developer since 2002
• Silverlight developer back in 2011 with high use of WCF
• “Caught” in a discussion about webservices in November
  2011
• Got annoyed by RPC style, code-gen webservices
Digging deeper into service stack
Digging deeper into service stack
Is it needed? Does it solve anything?
• Code-gen
  • It fails…too often
• Archaic Xml configuration
  • Distribution, misspelling…or even horrible merges
• Defaults that is bound to make you cry
  • Why do I need to set values that should be default!
• Fixed serialization
  • Could be nice to talk to more systems no matter who they are
• RPC style services
  • Maintenance hell
• Chatty services
  • Bulk it!
Digging deeper into service stack
Digging deeper into service stack
• Official subtitle:
    • Web Services done right, REST services done easy :)
•   Simple and model-driven
•   Endpoint ignorant
•   Authentication built-in
•   IoC based
•   Easy access to HTTP
•   Fast as lightning
•   Cross platform
•   Extendable
•   Oh!... And clients are in the box
This is where the most wheels are turning in your development
• IService
• Service
• And a lot more…
•   Conventionbased registrations
•   Throw exceptions and have magic httpstatuscodes
•   Strong typed returns
•   It’s more than CRUD
    • PATCH etc.
• Restrict access to your services
•   JSON
•   Xml
•   JSV
•   CSV
•   SOAP
    • 1.1
    • 1.2
• Custom
Digging deeper into service stack
•   Funq
•   OrmLite
•   ICacheClient
•   MiniProfiler
•   Validation
•   Custom responses
•   Headers
•   It’s dead simple
•   Fullfills the basic needs
•   It’s fast
•   If you don’t like …add an adaptor
•   Do you really need EF?
•   Do you trust your developers to know SQL?
•   Want to get closer to the server?
•   Pragmatic over academic
• You added caching so now you have more problems
• Cachekey generation
• It’s so darn hard!!!
•   Estimates and guesses leaves you nowhere
•   Easy to give response to the average Joe
•   Thank you mr. Saffron and Dixon
•   Don’t reinvent the wheel!!!
• if( request.Id != default(int) )
   • It’s getting boring!
• Leverage the same validation in several places
• Fine grain it where needed
• If you want another content type
• If you need to return an image
• If you want to be a joker?
• CORS
  • Please don’t use AddHeader
• If you want to you can do it
• Location
• …Link?
  • Not sure you want to go that way ;)
Digging deeper into service stack
…unless you want to go all JS on me :)
• Client interfaces
  • IServiceClient
  • IRestClient
  • IRestClientAsync
• Implementations
  •   Soap11ServiceClient (only for IServiceClient)
  •   Soap12ServiceClient (only for IServiceClient)
  •   JsonServiceClient(Async)
  •   JsvServiceClient(Async)
  •   XmlServiceClient(Async)
• Or you can hookup to the XSDs or WSDLs as well
  • Might be handy when delivering services to external partners
If you order now you will get … for only $19.99
• OrmLite                     • Caching
  •   MySQL                     • Memcached
  •   PostgreSQL                • Azure
  •   Sqlite 32 & Sqlite 64   • Protobuf
  •   Firebird                • MessagePack
  •   Oracle
                              • Logging
• Authentication                •   NLog
  •   MongoDB                   •   Log4Net
  •   Nhibernate                •   ELMAH
  •   OpenId                    •   Eventlog
  •   RavenDB
                              • Swagger
• Razor
Digging deeper into service stack
Grab your whiskies and smile
• Fastest JSON serializer
• Burning Monk JSON Benchmarks (19/11/2012)
• Supports ASP.NET and HttpListener hosts
• Runs on Windows with .NET 3.5 and 4.0
  •   IIS 5/6/7 (uses IHttpHandler)
  •   VS.NET WebDev Server (Cassini)
  •   IIS Express
  •   Console App, Windows Gui, Windows Service
• Linux/OSX with Mono
  •   Apache + mod_mono
  •   Nginx + MonoFastCGI
  •   XSP
  •   Console App
• A demo have been done inside iOS with MonoTouch
Hetzner           Windows Azure
•   2.67 GHZ         •   1.67 GHZ
•   2GB RAM          •   1.75GB RAM
•   80GB HDD         •   100GB HDD
•   4TB Traffic      •   2TB Traffic

• €19.90             • €219.50
• €238.80            • €2634
Digging deeper into service stack
Well where I am going I don’t need roads!!!
• Source: https://github.com/ServiceStack
• Wiki: https://github.com/ServiceStack/ServiceStack/wiki
• More docs: http://www.servicestack.net/docs/

• Community resources:
  https://github.com/ServiceStack/ServiceStack/wiki/Comm
  unity-Resources
• Links to InfoQ articles:
  http://www.servicestack.net/mythz_blog/?p=860
• Main contributor: Demis Bellot (@demisbellot)
  • Currently creating awesomeness at StackExchange
• It’s been around for a while
• First commit Dec 21, 2008
• It is well maintained
  •   Currently at version 3.9.37
  •   Jun 6 2012 – 3.9.2
  •   Jan 8 2012 – 3.2.0
  •   Jun 11 2011 – 2.2.0
Digging deeper into service stack
•   Twitter: @cyberzeddk
•   LinkedIn: http://www.linkedin.com/in/cyberzed
•   Blog: http://cyberzed.dk
•   Email: cyberzed@sleddog.dk
•   GitHub: http://github.com/cyberzed/

• Tutorials will be published soon at Tech.Pro
• Book will be started of as an OS project this year

Feel free to contact me with any questions, or if you want
me to come talk more about ServiceStack

More Related Content

What's hot

Put Your Thinking CAP On
Put Your Thinking CAP OnPut Your Thinking CAP On
Put Your Thinking CAP On
Tomer Gabel
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
Reuven Lerner
 
SFJS 6-19-2012
SFJS 6-19-2012SFJS 6-19-2012
SFJS 6-19-2012
Adam Christian
 
JavaScript State of the Union - Jan 2013
JavaScript State of the Union - Jan 2013JavaScript State of the Union - Jan 2013
JavaScript State of the Union - Jan 2013
Ronald Northrip
 
mongodb-brief-intro-february-2012
mongodb-brief-intro-february-2012mongodb-brief-intro-february-2012
mongodb-brief-intro-february-2012
Chris Westin
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
Fabian Jakobs
 
[Start] Playing
[Start] Playing[Start] Playing
[Start] Playing
佑介 九岡
 
Ruby Midwest 2010 jRuby by Charles Nutter
Ruby Midwest 2010 jRuby by Charles NutterRuby Midwest 2010 jRuby by Charles Nutter
Ruby Midwest 2010 jRuby by Charles Nutter
Steven Chau
 
2013 spider - LibreOffice QA Community
2013 spider - LibreOffice QA Community2013 spider - LibreOffice QA Community
2013 spider - LibreOffice QA Community
Rob Snelders
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
LetsConnect
 
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Actors and Microservices - Can two walk together? - Rotem Hermon, GigyaActors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Codemotion Tel Aviv
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5
scdn
 
Playing with playgrounds
Playing with playgroundsPlaying with playgrounds
Playing with playgrounds
Eurico Doirado
 
DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
Rob Reynolds
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Valeri Karpov
 
6 reasons you should program in go
6 reasons you should program in go6 reasons you should program in go
6 reasons you should program in go
Michael Banzon
 
Magento 2 - Meet Magento 2014 DE
Magento 2 - Meet Magento 2014 DEMagento 2 - Meet Magento 2014 DE
Magento 2 - Meet Magento 2014 DE
Tobias Zander
 
2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp
Victor Hurdugaci
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara Micro
Payara
 
Javascript now and in the future
Javascript now and in the futureJavascript now and in the future
Javascript now and in the future
Denis Stoyanov
 

What's hot (20)

Put Your Thinking CAP On
Put Your Thinking CAP OnPut Your Thinking CAP On
Put Your Thinking CAP On
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
SFJS 6-19-2012
SFJS 6-19-2012SFJS 6-19-2012
SFJS 6-19-2012
 
JavaScript State of the Union - Jan 2013
JavaScript State of the Union - Jan 2013JavaScript State of the Union - Jan 2013
JavaScript State of the Union - Jan 2013
 
mongodb-brief-intro-february-2012
mongodb-brief-intro-february-2012mongodb-brief-intro-february-2012
mongodb-brief-intro-february-2012
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
 
[Start] Playing
[Start] Playing[Start] Playing
[Start] Playing
 
Ruby Midwest 2010 jRuby by Charles Nutter
Ruby Midwest 2010 jRuby by Charles NutterRuby Midwest 2010 jRuby by Charles Nutter
Ruby Midwest 2010 jRuby by Charles Nutter
 
2013 spider - LibreOffice QA Community
2013 spider - LibreOffice QA Community2013 spider - LibreOffice QA Community
2013 spider - LibreOffice QA Community
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
 
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Actors and Microservices - Can two walk together? - Rotem Hermon, GigyaActors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5
 
Playing with playgrounds
Playing with playgroundsPlaying with playgrounds
Playing with playgrounds
 
DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?DevOps: What is This Puppet You Speak Of?
DevOps: What is This Puppet You Speak Of?
 
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
Nimrod: MongoDB Shell in NodeJS (JSConfUY 2015)
 
6 reasons you should program in go
6 reasons you should program in go6 reasons you should program in go
6 reasons you should program in go
 
Magento 2 - Meet Magento 2014 DE
Magento 2 - Meet Magento 2014 DEMagento 2 - Meet Magento 2014 DE
Magento 2 - Meet Magento 2014 DE
 
2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp
 
Badass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara MicroBadass Microservices - deploy, build & scale your apps with Payara Micro
Badass Microservices - deploy, build & scale your apps with Payara Micro
 
Javascript now and in the future
Javascript now and in the futureJavascript now and in the future
Javascript now and in the future
 

Similar to Digging deeper into service stack

Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
Tony Tam
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 20185 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
Matthew Groves
 
Node and Azure
Node and AzureNode and Azure
Node and Azure
Jason Gerard
 
RubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipelineRubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipeline
Florian Dutey
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
Vladislav Bauer
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
Paul Withers
 
Planidoo & Zotonic
Planidoo & ZotonicPlanidoo & Zotonic
Planidoo & Zotonic
David de Boer
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
ekb.py: KISS REST API
ekb.py: KISS REST APIekb.py: KISS REST API
ekb.py: KISS REST API
Yury Yurevich
 
ekbpy'2012- Юрий Юревич - Как сделать REST API на Python
ekbpy'2012- Юрий Юревич - Как сделать REST API на Pythonekbpy'2012- Юрий Юревич - Как сделать REST API на Python
ekbpy'2012- Юрий Юревич - Как сделать REST API на Python
it-people
 
Migration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET CoreMigration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET Core
Miroslav Popovic
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisions
Trent Hornibrook
 
Rails 3.1
Rails 3.1Rails 3.1
Rails 3.1
Lori Olson
 
Node.js
Node.jsNode.js
Node.js
Matt Simonis
 
Node
NodeNode
Rapid Evolution of Web Dev? aka Talking About The Web
Rapid Evolution of Web Dev? aka Talking About The WebRapid Evolution of Web Dev? aka Talking About The Web
Rapid Evolution of Web Dev? aka Talking About The Web
PINT Inc
 
5 Popular Choices for NoSQL on a Microsoft Platform
5 Popular Choices for NoSQL on a Microsoft Platform5 Popular Choices for NoSQL on a Microsoft Platform
5 Popular Choices for NoSQL on a Microsoft Platform
All Things Open
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
Matthew Groves
 
Your backend architecture is what matters slideshare
Your backend architecture is what matters slideshareYour backend architecture is what matters slideshare
Your backend architecture is what matters slideshare
Colin Charles
 
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
daylerees
 

Similar to Digging deeper into service stack (20)

Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
 
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 20185 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
5 Popular Choices for NoSQL on a Microsoft Platform - Tulsa - July 2018
 
Node and Azure
Node and AzureNode and Azure
Node and Azure
 
RubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipelineRubyConf China 2015 - Rails off assets pipeline
RubyConf China 2015 - Rails off assets pipeline
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and Domino
 
Planidoo & Zotonic
Planidoo & ZotonicPlanidoo & Zotonic
Planidoo & Zotonic
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
ekb.py: KISS REST API
ekb.py: KISS REST APIekb.py: KISS REST API
ekb.py: KISS REST API
 
ekbpy'2012- Юрий Юревич - Как сделать REST API на Python
ekbpy'2012- Юрий Юревич - Как сделать REST API на Pythonekbpy'2012- Юрий Юревич - Как сделать REST API на Python
ekbpy'2012- Юрий Юревич - Как сделать REST API на Python
 
Migration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET CoreMigration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET Core
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisions
 
Rails 3.1
Rails 3.1Rails 3.1
Rails 3.1
 
Node.js
Node.jsNode.js
Node.js
 
Node
NodeNode
Node
 
Rapid Evolution of Web Dev? aka Talking About The Web
Rapid Evolution of Web Dev? aka Talking About The WebRapid Evolution of Web Dev? aka Talking About The Web
Rapid Evolution of Web Dev? aka Talking About The Web
 
5 Popular Choices for NoSQL on a Microsoft Platform
5 Popular Choices for NoSQL on a Microsoft Platform5 Popular Choices for NoSQL on a Microsoft Platform
5 Popular Choices for NoSQL on a Microsoft Platform
 
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
5 Popular Choices for NoSQL on a Microsoft Platform - All Things Open - Octob...
 
Your backend architecture is what matters slideshare
Your backend architecture is what matters slideshareYour backend architecture is what matters slideshare
Your backend architecture is what matters slideshare
 
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
An Introduction to the Laravel Framework (AFUP Forum PHP 2014)
 

Recently uploaded

Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
BrainSell Technologies
 
The Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - CoatueThe Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - Coatue
Razin Mustafiz
 
Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
Bhajan Mehta
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
ldtexsolbl
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
Jimmy Lai
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
David Wilson
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
DianaGray10
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
maigasapphire
 
Gen AI: Privacy Risks of Large Language Models (LLMs)
Gen AI: Privacy Risks of Large Language Models (LLMs)Gen AI: Privacy Risks of Large Language Models (LLMs)
Gen AI: Privacy Risks of Large Language Models (LLMs)
Debmalya Biswas
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
Priyanka Aash
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
SynapseIndia
 
Camunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptxCamunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptx
ZachWylie3
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
AmandaCheung15
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
ankush9927
 
Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024
siddu769252
 
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
alexjohnson7307
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
shyamraj55
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
Matthias Neugebauer
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
Ivanti
 

Recently uploaded (20)

Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdfAcumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
Acumatica vs. Sage Intacct vs. NetSuite _ NOW CFO.pdf
 
The Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - CoatueThe Path to General-Purpose Robots - Coatue
The Path to General-Purpose Robots - Coatue
 
Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17Mule Experience Hub and Release Channel with Java 17
Mule Experience Hub and Release Channel with Java 17
 
Types of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technologyTypes of Weaving loom machine & it's technology
Types of Weaving loom machine & it's technology
 
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python CodebaseEuroPython 2024 - Streamlining Testing in a Large Python Codebase
EuroPython 2024 - Streamlining Testing in a Large Python Codebase
 
Mastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for SuccessMastering OnlyFans Clone App Development: Key Strategies for Success
Mastering OnlyFans Clone App Development: Key Strategies for Success
 
How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...How UiPath Discovery Suite supports identification of Agentic Process Automat...
How UiPath Discovery Suite supports identification of Agentic Process Automat...
 
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
Girls Call Churchgate 9910780858 Provide Best And Top Girl Service And No1 in...
 
Gen AI: Privacy Risks of Large Language Models (LLMs)
Gen AI: Privacy Risks of Large Language Models (LLMs)Gen AI: Privacy Risks of Large Language Models (LLMs)
Gen AI: Privacy Risks of Large Language Models (LLMs)
 
Redefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI CapabilitiesRedefining Cybersecurity with AI Capabilities
Redefining Cybersecurity with AI Capabilities
 
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptxUse Cases & Benefits of RPA in Manufacturing in 2024.pptx
Use Cases & Benefits of RPA in Manufacturing in 2024.pptx
 
Camunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptxCamunda Chapter NY Meetup July 2024.pptx
Camunda Chapter NY Meetup July 2024.pptx
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
Zaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdfZaitechno Handheld Raman Spectrometer.pdf
Zaitechno Handheld Raman Spectrometer.pdf
 
Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10Computer HARDWARE presenattion by CWD students class 10
Computer HARDWARE presenattion by CWD students class 10
 
Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024Generative AI Reasoning Tech Talk - July 2024
Generative AI Reasoning Tech Talk - July 2024
 
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
 
Opencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of MünsterOpencast Summit 2024 — Opencast @ University of Münster
Opencast Summit 2024 — Opencast @ University of Münster
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
 

Digging deeper into service stack

  • 1. There is more than just easy webservices
  • 2. All the boring stuff you will forget after the slides have passed
  • 3. Stefan Daugaard Poulsen • @cyberzeddk • AP in Computer Science • Developer/Architect at Atea Denmark • Currently working on Atea Tele • .NET developer since 2002 • Silverlight developer back in 2011 with high use of WCF • “Caught” in a discussion about webservices in November 2011 • Got annoyed by RPC style, code-gen webservices
  • 6. Is it needed? Does it solve anything?
  • 7. • Code-gen • It fails…too often • Archaic Xml configuration • Distribution, misspelling…or even horrible merges • Defaults that is bound to make you cry • Why do I need to set values that should be default! • Fixed serialization • Could be nice to talk to more systems no matter who they are • RPC style services • Maintenance hell • Chatty services • Bulk it!
  • 10. • Official subtitle: • Web Services done right, REST services done easy :) • Simple and model-driven • Endpoint ignorant • Authentication built-in • IoC based • Easy access to HTTP • Fast as lightning • Cross platform • Extendable • Oh!... And clients are in the box
  • 11. This is where the most wheels are turning in your development
  • 12. • IService • Service • And a lot more…
  • 13. Conventionbased registrations • Throw exceptions and have magic httpstatuscodes • Strong typed returns • It’s more than CRUD • PATCH etc. • Restrict access to your services
  • 14. JSON • Xml • JSV • CSV • SOAP • 1.1 • 1.2 • Custom
  • 16. Funq • OrmLite • ICacheClient • MiniProfiler • Validation • Custom responses • Headers
  • 17. It’s dead simple • Fullfills the basic needs • It’s fast • If you don’t like …add an adaptor
  • 18. Do you really need EF? • Do you trust your developers to know SQL? • Want to get closer to the server? • Pragmatic over academic
  • 19. • You added caching so now you have more problems • Cachekey generation • It’s so darn hard!!!
  • 20. Estimates and guesses leaves you nowhere • Easy to give response to the average Joe • Thank you mr. Saffron and Dixon • Don’t reinvent the wheel!!!
  • 21. • if( request.Id != default(int) ) • It’s getting boring! • Leverage the same validation in several places • Fine grain it where needed
  • 22. • If you want another content type • If you need to return an image • If you want to be a joker?
  • 23. • CORS • Please don’t use AddHeader • If you want to you can do it • Location • …Link? • Not sure you want to go that way ;)
  • 25. …unless you want to go all JS on me :)
  • 26. • Client interfaces • IServiceClient • IRestClient • IRestClientAsync • Implementations • Soap11ServiceClient (only for IServiceClient) • Soap12ServiceClient (only for IServiceClient) • JsonServiceClient(Async) • JsvServiceClient(Async) • XmlServiceClient(Async) • Or you can hookup to the XSDs or WSDLs as well • Might be handy when delivering services to external partners
  • 27. If you order now you will get … for only $19.99
  • 28. • OrmLite • Caching • MySQL • Memcached • PostgreSQL • Azure • Sqlite 32 & Sqlite 64 • Protobuf • Firebird • MessagePack • Oracle • Logging • Authentication • NLog • MongoDB • Log4Net • Nhibernate • ELMAH • OpenId • Eventlog • RavenDB • Swagger • Razor
  • 30. Grab your whiskies and smile
  • 31. • Fastest JSON serializer • Burning Monk JSON Benchmarks (19/11/2012)
  • 32. • Supports ASP.NET and HttpListener hosts • Runs on Windows with .NET 3.5 and 4.0 • IIS 5/6/7 (uses IHttpHandler) • VS.NET WebDev Server (Cassini) • IIS Express • Console App, Windows Gui, Windows Service • Linux/OSX with Mono • Apache + mod_mono • Nginx + MonoFastCGI • XSP • Console App • A demo have been done inside iOS with MonoTouch
  • 33. Hetzner Windows Azure • 2.67 GHZ • 1.67 GHZ • 2GB RAM • 1.75GB RAM • 80GB HDD • 100GB HDD • 4TB Traffic • 2TB Traffic • €19.90 • €219.50 • €238.80 • €2634
  • 35. Well where I am going I don’t need roads!!!
  • 36. • Source: https://github.com/ServiceStack • Wiki: https://github.com/ServiceStack/ServiceStack/wiki • More docs: http://www.servicestack.net/docs/ • Community resources: https://github.com/ServiceStack/ServiceStack/wiki/Comm unity-Resources • Links to InfoQ articles: http://www.servicestack.net/mythz_blog/?p=860
  • 37. • Main contributor: Demis Bellot (@demisbellot) • Currently creating awesomeness at StackExchange • It’s been around for a while • First commit Dec 21, 2008 • It is well maintained • Currently at version 3.9.37 • Jun 6 2012 – 3.9.2 • Jan 8 2012 – 3.2.0 • Jun 11 2011 – 2.2.0
  • 39. Twitter: @cyberzeddk • LinkedIn: http://www.linkedin.com/in/cyberzed • Blog: http://cyberzed.dk • Email: cyberzed@sleddog.dk • GitHub: http://github.com/cyberzed/ • Tutorials will be published soon at Tech.Pro • Book will be started of as an OS project this year Feel free to contact me with any questions, or if you want me to come talk more about ServiceStack

Editor's Notes

  1. Remember titles aren’t important…passion tightly coupled with curiosity is the important part here