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

Other Decks in Programming


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

  2. Why are we even investigating this?

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

  5. Windows licenses are expensive!

  6. Why stick with C#?

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

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

  10. Who else is doing this?

  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. In-depth information is lacking

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

  19. But which one?

  20. High Volume + Low Impact = Perfect Test Environment

  21. The User Events service prevents our desktop and mobile apps

    from having to do this all day
  22. Always build with Mono. You’ll find the dark corners more

  23. <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <SourceAnalysisTreatErrorsAsWarnings>false</SourceAnalysisTreatErrorsAsWarn> <UseHostCompilerIfAvailable>false</UseHostCompilerIfAvailable> - <TargetFrameworkProfile>Client</TargetFrameworkProfile> <IsWebBootstrapper>false</IsWebBootstrapper>

  24. None
  25. None
  26. None
  27. .NET Forms Authentication Cookie 2FAEFB705C9272307D5A58E8FCD5662A283943A8A630896B3 37A186356EE5DC1789760BC302C1256E0B2C65E8F0D08908A D336CBBAE1656D4A6E709056E610ABC525FE6D7EEF7304F9 D64B03A6B0B543901C04BC0A3D30CB7CBF54BD65792BD07 4BB0F816A685DDACA556A07E569B114D6A43ADC8EF7425C D75A0E8922378ACE

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

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

  30. None
  31. Trying to interface with a version of SQL Server newer

    than 2005? You might have to do a bit of spring cleaning…
  32. Lesson: Mono’s support for MS SQL Server > 2005 is

    spotty. Be prepared to improve its support or migrate to another DB provider.
  33. How do we tell what’s going on?

  34. New Relic is awesome, except for this

  35. None
  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
  37. Registry hacking? Shouldn’t we be past that by now?

  38. None
  39. None
  40. (Sorry)

  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.
  42. None
  43. Lesson: If you’re having difficulty with HTTPS, make sure that

    you’ve run mozroots and/or certmgr.
  44. What was I doing, again?

  45. Disclaimer: Benchmarks are pretty arbitrary. Don’t assume that my results

    will be anything like your results.
  46. User Events on Windows

  47. User Events on Ubuntu with Nginx

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

  49. …Until we have to GC

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

  51. None
  52. Mono web services are a lonely space because no one

    is talking about them

  54. @theDMitchell www.fallingcanbedeadly.com