SlideShare une entreprise Scribd logo
1  sur  39
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
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!
• 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
•   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 ;)
…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
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
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
•   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

Contenu connexe

Tendances

Put Your Thinking CAP On
Put Your Thinking CAP OnPut Your Thinking CAP On
Put Your Thinking CAP OnTomer Gabel
 
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 2013Ronald Northrip
 
mongodb-brief-intro-february-2012
mongodb-brief-intro-february-2012mongodb-brief-intro-february-2012
mongodb-brief-intro-february-2012Chris Westin
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsFabian Jakobs
 
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 NutterSteven Chau
 
2013 spider - LibreOffice QA Community
2013 spider - LibreOffice QA Community2013 spider - LibreOffice QA Community
2013 spider - LibreOffice QA CommunityRob 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, GigyaCodemotion 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 HTML5scdn
 
Playing with playgrounds
Playing with playgroundsPlaying with playgrounds
Playing with playgroundsEurico 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 goMichael Banzon
 
Magento 2 - Meet Magento 2014 DE
Magento 2 - Meet Magento 2014 DEMagento 2 - Meet Magento 2014 DE
Magento 2 - Meet Magento 2014 DETobias 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 CampVictor 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 MicroPayara
 
Javascript now and in the future
Javascript now and in the futureJavascript now and in the future
Javascript now and in the futureDenis Stoyanov
 

Tendances (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
 

Similaire à Digging deeper into service stack

Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swaggerTony 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 2018Matthew Groves
 
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 pipelineFlorian Dutey
 
Social Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoSocial Connections 2015 CrossWorlds and Domino
Social Connections 2015 CrossWorlds and DominoPaul Withers
 
ekb.py: KISS REST API
ekb.py: KISS REST APIekb.py: KISS REST API
ekb.py: KISS REST APIYury Yurevich
 
ekbpy'2012- Юрий Юревич - Как сделать REST API на Python
ekbpy'2012- Юрий Юревич - Как сделать REST API на Pythonekbpy'2012- Юрий Юревич - Как сделать REST API на Python
ekbpy'2012- Юрий Юревич - Как сделать REST API на Pythonit-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 CoreMiroslav Popovic
 
Greenfields tech decisions
Greenfields tech decisionsGreenfields tech decisions
Greenfields tech decisionsTrent Hornibrook
 
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 WebPINT 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 PlatformAll 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 slideshareColin 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
 

Similaire à 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)
 

Dernier

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Dernier (20)

Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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
  • 4.
  • 5.
  • 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!
  • 8.
  • 9.
  • 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
  • 15.
  • 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 ;)
  • 24.
  • 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
  • 29.
  • 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
  • 34.
  • 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
  • 38.
  • 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

Notes de l'éditeur

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