Digging deeper into servicestack
Sponsored Links
This presentation is the property of its rightful owner.
1 / 39

Digging deeper into ServiceStack PowerPoint PPT Presentation


  • 108 Views
  • Uploaded on
  • Presentation posted in: General

Digging deeper into ServiceStack. There is more than just easy webservices. Who, where, what?. All the boring stuff you will forget after the slides have passed. Why am I here…. Stefan Daugaard Poulsen @ cyberzeddk AP in Computer Science Developer/Architect at Atea Denmark

Download Presentation

Digging deeper into ServiceStack

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Digging deeper into ServiceStack

There is more than just easy webservices


Who, where, what?

All the boring stuff you will forget after the slides have passed


Why am I here…

  • Stefan DaugaardPoulsen

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


Why is ServiceStackinterresting?

Is it needed? Does it solve anything?


What are bad ideas for webservices

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


What is this ServiceStack thing

  • Official subtitle:

    • Web Services done right, REST services done easy :)

  • Simple and model-driven

  • Endpoint ignorant

  • Authentication built-in

  • IoCbased

  • Easy access to HTTP

  • Fast as lightning

  • Cross platform

  • Extendable

  • Oh!... And clients are in the box


Seen from the serverside

This is where the most wheels are turning in your development


Gentlemen, start your engines…

  • IService

  • Service

  • And a lot more…


Quick steps

  • Conventionbasedregistrations

  • Throwexceptions and have magichttpstatuscodes

  • Strongtypedreturns

  • It’s more than CRUD

    • PATCH etc.

  • Restrictaccess to your services


Endpoint ignorant

  • JSON

  • Xml

  • JSV

  • CSV

  • SOAP

    • 1.1

    • 1.2

  • Custom


Whatwas lost in the ”war”

  • Funq

  • OrmLite

  • ICacheClient

  • MiniProfiler

  • Validation

  • Custom responses

  • Headers


Funq – it’salmost to easy

  • It’sdead simple

  • Fullfills the basicneeds

  • It’s fast

  • If youdon’tlike …add an adaptor


OrmLite – whystick to EF or Nhibernate?

  • Do youreallyneed EF?

  • Do you trust your developers to know SQL?

  • Want to getcloser to the server?

  • Pragmatic over academic


Caching – weneed more problems?

  • Youadded caching so nowyou have more problems

  • Cachekey generation

  • It’s so darnhard!!!


Profiling – it’s so darneasy

  • Estimates and guessesleavesyounowhere

  • Easy to give response to the average Joe

  • Thankyou mr. Saffron and Dixon

  • Don’treinvent the wheel!!!


Validation – whateveryonehates to repeat

  • if( request.Id != default(int) )

    • It’sgetting boring!

  • Leverage the same validation in severalplaces

  • Fine grain it whereneeded


Customizedresponses

  • If youwantanothercontent type

  • If youneed to return an image

  • If youwant to be a joker?


Custom headers – this is a hardone...NOT!!!

  • CORS

    • Pleasedon’tuseAddHeader

  • If youwant to youcan do it

  • Location

  • …Link?

    • Not sure youwant to go thatway ;)


Welcome to the clientside

…unless you want to go all JS on me :)


Clients

  • 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


But that’s not all kids…

If you order now you will get … for only $19.99


It’s a freaking swiss army knife!!!

  • OrmLite

    • MySQL

    • PostgreSQL

    • Sqlite 32 & Sqlite 64

    • Firebird

    • Oracle

  • Authentication

    • MongoDB

    • Nhibernate

    • OpenId

    • RavenDB

  • Razor

  • Caching

    • Memcached

    • Azure

  • Protobuf

  • MessagePack

  • Logging

    • NLog

    • Log4Net

    • ELMAH

    • Eventlog

  • Swagger


Show off time…

Grab your whiskies and smile


I’m in the need for speed!

  • Fastest JSON serializer

  • Burning Monk JSON Benchmarks (19/11/2012)


Crossplatform

  • 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


Hosting – it canbecheap or reallyexpensive!

Hetzner

Windows Azure

1.67 GHZ

1.75GB RAM

100GB HDD

2TB Traffic

€219.50

€2634

  • 2.67 GHZ

  • 2GB RAM

  • 80GB HDD

  • 4TB Traffic

  • €19.90

  • €238.80


Where do we go next?

Well where I am going I don’t need roads!!!


Where is it hidden?

  • 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/Community-Resources

  • Links to InfoQ articles: http://www.servicestack.net/mythz_blog/?p=860


Who’s behind this thing…and do I dare use it for production

  • Main contributor: DemisBellot (@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


That’s all folks

  • Twitter: @cyberzeddk

  • LinkedIn: http://www.linkedin.com/in/cyberzed

  • Blog: http://cyberzed.dk

  • Email: [email protected]

  • 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


  • Login