Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Server-side Mono: How ready is it?

Server-side Mono: How ready is it?

Slides for a talk that I gave at MonkeySpace 2013, lightly edited to make more sense by themselves.

Image credits and additional notes are available at http://www.fallingcanbedeadly.com/posts/monkeyspace-talk-slides-and-notes/

David Mitchell

July 25, 2013
Tweet

Other Decks in Programming

Transcript

  1. Server-Side Mono
    How ready is it?
    David Mitchell
    @ThedMitchell
    www.fallingcanbedeadly.com

    View Slide

  2. Why are we even investigating this?

    View Slide

  3. View Slide

  4. Rational humans don’t want to use
    GUIs to configure their servers

    View Slide

  5. Windows licenses are expensive!

    View Slide

  6. Why stick with C#?

    View Slide

  7. View Slide

  8. We’ve been using ASP.NET for a long time

    View Slide

  9. And we love developers almost as much as this guy does

    View Slide

  10. Who else is doing this?

    View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. In-depth information is lacking

    View Slide

  18. I know!
    Let’s try porting a service!

    View Slide

  19. But which
    one?

    View Slide

  20. High Volume + Low Impact =
    Perfect Test Environment

    View Slide

  21. The User Events service prevents our
    desktop and mobile apps from having
    to do this all day

    View Slide

  22. Always build with
    Mono. You’ll find the
    dark corners more
    quickly

    View Slide

  23. v4.0
    false
    false
    - Client
    false

    View Slide

  24. View Slide

  25. View Slide

  26. View Slide

  27. .NET Forms Authentication Cookie
    2FAEFB705C9272307D5A58E8FCD5662A283943A8A630896B3
    37A186356EE5DC1789760BC302C1256E0B2C65E8F0D08908A
    D336CBBAE1656D4A6E709056E610ABC525FE6D7EEF7304F9
    D64B03A6B0B543901C04BC0A3D30CB7CBF54BD65792BD07
    4BB0F816A685DDACA556A07E569B114D6A43ADC8EF7425C
    D75A0E8922378ACE

    View Slide

  28. Mono Forms Authentication Cookie
    4adTElGQ
    +cLVBQUVY5OaHiGVUIkIYJIwHTVhfBgBVgeEL6QVp8TZxMeT
    3eoW2Ka0iEpxDE75U7bdHjn3Utd6LqGRmIs+8AxrPMNUnrNH
    +9w=

    View Slide

  29. Lesson:
    Sharing Forms Authentication between .NET and Mono is a pain.

    View Slide

  30. View Slide

  31. Trying to interface with a version of SQL Server newer
    than 2005? You might have to do a bit of spring
    cleaning…

    View Slide

  32. Lesson:
    Mono’s support for MS SQL Server > 2005 is spotty. Be prepared to improve its
    support or migrate to another DB provider.

    View Slide

  33. How do we tell what’s going on?

    View Slide

  34. New Relic is
    awesome, except
    for this

    View Slide

  35. View Slide

  36. You are surrounded by a herd of yaks.
    > inventory
    You are carrying:
    a razor,
    the last shred of your sanity.
    > drop sanity
    https://twitter.com/carlfish/status/357289566866120705

    View Slide

  37. Registry hacking?
    Shouldn’t we be past that by now?

    View Slide

  38. View Slide

  39. View Slide

  40. (Sorry)

    View Slide

  41. Disclaimer:
    When I say that the code isn’t done, I mean it. You’d be insane to run this in
    production without watching it very carefully.

    View Slide

  42. View Slide

  43. Lesson:
    If you’re having difficulty with HTTPS, make sure that you’ve run mozroots and/or
    certmgr.

    View Slide

  44. What was I doing, again?

    View Slide

  45. Disclaimer:
    Benchmarks are pretty arbitrary. Don’t assume that my results will be anything like
    your results.

    View Slide

  46. User Events on Windows

    View Slide

  47. User Events on Ubuntu with Nginx

    View Slide

  48. Look, it’s working as well as Windows!

    View Slide

  49. …Until we have to GC

    View Slide

  50. …and then we have to do a lot of GC

    View Slide

  51. View Slide

  52. Mono web services are a lonely space because no
    one is talking about them

    View Slide

  53. TO PUBLISH YOUR RESULTS

    View Slide

  54. @theDMitchell
    www.fallingcanbedeadly.com

    View Slide