Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

Why are we even investigating this?

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

Windows licenses are expensive!

Slide 6

Slide 6 text

Why stick with C#?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

And we love developers almost as much as this guy does

Slide 10

Slide 10 text

Who else is doing this?

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

In-depth information is lacking

Slide 18

Slide 18 text

I know! Let’s try porting a service!

Slide 19

Slide 19 text

But which one?

Slide 20

Slide 20 text

High Volume + Low Impact = Perfect Test Environment

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

v4.0 false false - Client false

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

How do we tell what’s going on?

Slide 34

Slide 34 text

New Relic is awesome, except for this

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

(Sorry)

Slide 41

Slide 41 text

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.

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

What was I doing, again?

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

User Events on Windows

Slide 47

Slide 47 text

User Events on Ubuntu with Nginx

Slide 48

Slide 48 text

Look, it’s working as well as Windows!

Slide 49

Slide 49 text

…Until we have to GC

Slide 50

Slide 50 text

…and then we have to do a lot of GC

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

TO PUBLISH YOUR RESULTS

Slide 54

Slide 54 text

@theDMitchell www.fallingcanbedeadly.com