how c# save my marriage, enhanced my career, and made me an inch taller, scott hanselman
DESCRIPTION
TRANSCRIPT
![Page 1: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/1.jpg)
Giant Disclaimer I’m here as me, doing my thing. These opinions are mine, Scott Hanselman. If I say something stupid and you’re a journalist, make sure to quote me as “Scott Hanselman, Stupid Guy.” I’m not the manager of anything important at Microsoft. I am a member of the .NET Community. I care.
![Page 2: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/2.jpg)
How C# Saved My Marriage,
Enhanced My Career, and Made Me An Inch Taller
Scott Hanselman@shanselman
![Page 3: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/3.jpg)
How C# Saved My Marriage,
Enhanced My Career, and Made Me An Inch Taller
Scott Hanselman@shanselman
![Page 4: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/4.jpg)
_ _ _____ _ _ | | | | / __ \ _| || |_ | |_| | ___ __ __ | / \/|_ __ _| | _ | / _ \ \ \ /\ / / | | _| || |_ | | | || (_) | \ V V / | \__/\|_ __ _| \_| |_/ \___/ \_/\_/ \____/ |_||_| _____ _ ___ ___ ___ ___ _ / ___| | | | \/ | | \/ | (_) \ `--. __ _ __ __ ___ __| | | . . | _ _ | . . | __ _ _ __ _ __ _ __ _ __ _ ___ `--. \ / _` |\ \ / / / _ \ / _` | | |\/| || | | | | |\/| | / _` || '__|| '__|| | / _` | / _` | / _ \ /\__/ /| (_| | \ V / | __/| (_| | | | | || |_| | | | | || (_| || | | | | || (_| || (_| || __/ _ \____/ \__,_| \_/ \___| \__,_| \_| |_/ \__, | \_| |_/ \__,_||_| |_| |_| \__,_| \__, | \___|( ) __/ | __/ | |/ |___/ |___/ _____ _ _ ___ ___ _____ | ___| | | | | | \/ | / __ \ | |__ _ __ | |__ __ _ _ __ ___ ___ __| | | . . | _ _ | / \/ __ _ _ __ ___ ___ _ __ | __| | '_ \ | '_ \ / _` || '_ \ / __| / _ \ / _` | | |\/| || | | | | | / _` || '__| / _ \ / _ \| '__| | |___ | | | || | | || (_| || | | || (__ | __/| (_| | | | | || |_| | | \__/\| (_| || | | __/| __/| | _ \____/ |_| |_||_| |_| \__,_||_| |_| \___| \___| \__,_| \_| |_/ \__, | \____/ \__,_||_| \___| \___||_| ( ) __/ | |/ |___/ _ ___ ___ _ ___ ___ | | | \/ | | | | \/ | __ _ _ __ __| | | . . | __ _ __| | ___ | . . | ___ / _` || '_ \ / _` | | |\/| | / _` | / _` | / _ \ | |\/| | / _ \ | (_| || | | || (_| | | | | || (_| || (_| || __/ | | | || __/ \__,_||_| |_| \__,_| \_| |_/ \__,_| \__,_| \___| \_| |_/ \___| ___ _____ _ _____ _ _ / _ \ |_ _| | | |_ _| | || | / /_\ \ _ __ | | _ __ ___ | |__ | | __ _ | || | ___ _ __ | _ || '_ \ | | | '_ \ / __|| '_ \ | | / _` || || | / _ \| '__| | | | || | | | _| |_ | | | || (__ | | | | | | | (_| || || || __/| | \_| |_/|_| |_| \___/ |_| |_| \___||_| |_| \_/ \__,_||_||_| \___||_|
Scott Hanselman @shanselman
![Page 5: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/5.jpg)
_ _ _____ _ _ | | | | / __ \ _| || |_ | |_| | ___ __ __ | / \/|_ __ _| | _ | / _ \ \ \ /\ / / | | _| || |_ | | | || (_) | \ V V / | \__/\|_ __ _| \_| |_/ \___/ \_/\_/ \____/ |_||_| _____ _ ___ ___ ___ ___ _ / ___| | | | \/ | | \/ | (_) \ `--. __ _ __ __ ___ __| | | . . | _ _ | . . | __ _ _ __ _ __ _ __ _ __ _ ___ `--. \ / _` |\ \ / / / _ \ / _` | | |\/| || | | | | |\/| | / _` || '__|| '__|| | / _` | / _` | / _ \ /\__/ /| (_| | \ V / | __/| (_| | | | | || |_| | | | | || (_| || | | | | || (_| || (_| || __/ _ \____/ \__,_| \_/ \___| \__,_| \_| |_/ \__, | \_| |_/ \__,_||_| |_| |_| \__,_| \__, | \___|( ) __/ | __/ | |/ |___/ |___/ _____ _ _ ___ ___ _____ | ___| | | | | | \/ | / __ \ | |__ _ __ | |__ __ _ _ __ ___ ___ __| | | . . | _ _ | / \/ __ _ _ __ ___ ___ _ __ | __| | '_ \ | '_ \ / _` || '_ \ / __| / _ \ / _` | | |\/| || | | | | | / _` || '__| / _ \ / _ \| '__| | |___ | | | || | | || (_| || | | || (__ | __/| (_| | | | | || |_| | | \__/\| (_| || | | __/| __/| | _ \____/ |_| |_||_| |_| \__,_||_| |_| \___| \___| \__,_| \_| |_/ \__, | \____/ \__,_||_| \___| \___||_| ( ) __/ | |/ |___/ _ ___ ___ _ ___ ___ | | | \/ | | | | \/ | __ _ _ __ __| | | . . | __ _ __| | ___ | . . | ___ / _` || '_ \ / _` | | |\/| | / _` | / _` | / _ \ | |\/| | / _ \ | (_| || | | || (_| | | | | || (_| || (_| || __/ | | | || __/ \__,_||_| |_| \__,_| \_| |_/ \__,_| \__,_| \___| \_| |_/ \___| ___ _____ _ _____ _ _ / _ \ |_ _| | | |_ _| | || | / /_\ \ _ __ | | _ __ ___ | |__ | | __ _ | || | ___ _ __ | _ || '_ \ | | | '_ \ / __|| '_ \ | | / _` || || | / _ \| '__| | | | || | | | _| |_ | | | || (__ | | | | | | | (_| || || || __/| | \_| |_/|_| |_| \___/ |_| |_| \___||_| |_| \_/ \__,_||_||_| \___||_|
Scott Hanselman @shanselman
What? No RETINA version?
![Page 6: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/6.jpg)
![Page 7: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/7.jpg)
![Page 8: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/8.jpg)
![Page 9: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/9.jpg)
![Page 10: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/10.jpg)
![Page 11: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/11.jpg)
I work here.
![Page 12: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/12.jpg)
![Page 13: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/13.jpg)
I work here. Remotely, actually.
![Page 14: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/14.jpg)
We work in open source.
![Page 15: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/15.jpg)
Before Microsoft
![Page 16: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/16.jpg)
After Microsoft
![Page 17: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/17.jpg)
My Story
![Page 18: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/18.jpg)
![Page 19: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/19.jpg)
![Page 20: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/20.jpg)
![Page 21: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/21.jpg)
![Page 22: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/22.jpg)
![Page 23: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/23.jpg)
![Page 24: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/24.jpg)
![Page 25: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/25.jpg)
![Page 26: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/26.jpg)
When your hammer is C++ everything begins to look like a thumb.
![Page 27: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/27.jpg)
![Page 28: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/28.jpg)
![Page 29: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/29.jpg)
![Page 30: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/30.jpg)
![Page 31: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/31.jpg)
![Page 32: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/32.jpg)
![Page 33: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/33.jpg)
![Page 34: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/34.jpg)
![Page 35: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/35.jpg)
![Page 36: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/36.jpg)
![Page 37: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/37.jpg)
Got some certifications…MC*.*
![Page 38: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/38.jpg)
Got some certifications…MC*.*
![Page 39: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/39.jpg)
Got some certifications…MC*.*
![Page 40: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/40.jpg)
“Knock, knock.” “Who’s there?”
“Java.”
![Page 41: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/41.jpg)
![Page 42: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/42.jpg)
Java Programmer
![Page 43: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/43.jpg)
Write Once Debug Anywhere • The Promise of Java has finally arrived!
![Page 44: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/44.jpg)
Write once, Look like crap everywhere
![Page 45: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/45.jpg)
![Page 46: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/46.jpg)
My Language
![Page 47: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/47.jpg)
; Use a simple lookup table created in a complicated way. :)
(defmacro ext(a b) `(setq tab (append tab (loop for x from ,a to ,b
collect x)))) (let (m (tab nil)) (ext 0 64) (ext 78 90) (ext 65 77)
(ext 91 96) (ext 110 122) (ext 97 109) (ext 123 255) (loop (setq m
(read-char)) (write-char (int-char (elt tab (char-int m))))))
Lisp
![Page 48: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/48.jpg)
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))
)))))))))))))))))))))))))
))))))))))))))))))))))
))))))))))))))))))))
))))))))))))))))
)))))))))))))))
)))))))))))
))))
)))
))
))
)
![Page 49: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/49.jpg)
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))
)))))))))))))))))))))))))
))))))))))))))))))))))
))))))))))))))))))))
))))))))))))))))
)))))))))))))))
)))))))))))
))))
)))
))
))
)
“These are your father's parentheses; Elegant weapons, for a more… civilized age.” xkcd.com/297/
![Page 50: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/50.jpg)
; Do fu so it can be turned into a binary or something
main:
.loop:
; function calls are slow ;-)
mov eax, 3 ; magic number for read()
xor ebx, ebx ; file handle
mov ecx, buffer ; buffer to fill
mov edx, 4096 ; how many bytes to read
int 0x80
; if the program doesn't work, replace ebx with a 0
cmp eax, ebx ; ebx is 0 from the filehandle (we hope)
jle .done
; now eax contains the # of bytes read.
.rot_buffer:
mov edx, buffer;
mov ecx, table X86 ASM
![Page 51: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/51.jpg)
HAI! IM IN YR Northwind HOW DUZ I ListProducts YR id PRODUCTS = GETPRODUCTS id OMG FOUND YR PRODUCTS IF U SEZ IM OUTTA YR Northwind
LOLCode
![Page 52: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/52.jpg)
C#
![Page 53: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/53.jpg)
null-coalescing
var res = obj ?? new MyObject();
![Page 54: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/54.jpg)
checked and unchecked class Test { static readonly int x = 1000000; static readonly int y = 1000000; static int F() { return checked(x * y); // Throws OverflowException } static int G() { return unchecked(x * y); // Returns -‐727379968 } static int H() { return x * y; // Depends on default } }
![Page 55: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/55.jpg)
Evolution of async Asynchronous Programming Model (APM) var request = HttpWebRequest.Create("http://www.microsoft.com"); request.BeginGetResponse(result => { try { using (var response = (HttpWebResponse)request.EndGetResponse(result)) { //now it’s STREAM READER TIME SO SUCK IT UP AND GET TO WORK using (var stream = new StreamReader(response.GetResponseStream())) { // ZOMG have to write an async read loop.... } } } catch (Exception ex) { } //THERE IS MORE CODE DOWN HERE OVERFLOWING INTO ANOTHER TALK ANOTHER DAY }, null);
![Page 56: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/56.jpg)
Evolution of async Just Get’er Done and Block Model (synchronous) WebClient client = new WebClient(); client.DownloadFile("http://microsoft.com", "index.html");
![Page 57: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/57.jpg)
Evolution of async Event-‐based Asynchronous Pattern (EAP) var wc = new WebClient(); wc.DownloadStringCompleted += (sender, e) => { // do it here, be aware of what thread you’re on }; wc.DownloadStringAsync("http://microsoft.com");
![Page 58: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/58.jpg)
Evolution of async Async and await
var client = new HttpClient(); string data = await client.GetStringAsync(mscomuri);
![Page 59: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/59.jpg)
Lambdas public IList<Album> FindAlbumsToGiveAway(IList<Album> albums) { var badAlbums = new List<Album>(); foreach (Album album in albums) { if (album.Genre == "Country") badAlbums.Add(album); } return badAlbums; }
![Page 60: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/60.jpg)
Lambdas public IList<Album> FindAlbumsToGiveAway(IList<Album> albums) { return albums.Where(album => album.Genre == "Country").ToList(); }
![Page 61: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/61.jpg)
The Anders Operator public IList<Album> FindAlbumsToGiveAway(IList<Album> albums) { return albums.Where(album => album.Genre == "Country").ToList(); }
=>
Don’t forget the “Resig!” ${}
![Page 62: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/62.jpg)
I’m a phony
![Page 63: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/63.jpg)
pho·ny also pho·ney (fō'nē) adj. pho·ni·er, pho·ni·est 1. a. Not genuine or real; counterfeit: a phony credit card. b. False; spurious: a phony name. 2. Not honest or truthful; deceptive: a phony excuse. 3. a. Insincere or hypocritical. b. Giving a false impression of truth or authenticity; specious.
![Page 64: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/64.jpg)
![Page 65: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/65.jpg)
C# keeps getting better
C#, once high level, can be pretty darn low level Share code across mobile and cloud Native native native NuGet is love! Generics, Linq, async/await You have skills/tools/code
Thanks, Stu!
![Page 66: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/66.jpg)
Thanks, Stu!
![Page 67: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/67.jpg)
I fix stuff
![Page 68: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/68.jpg)
![Page 69: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/69.jpg)
![Page 70: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/70.jpg)
![Page 71: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/71.jpg)
Mobile
![Page 72: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/72.jpg)
1993
![Page 73: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/73.jpg)
2013
![Page 74: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/74.jpg)
Image via Josh Helfferich @digerati http://twitter.com/Digeratii/status/165324320179109888
Before the iPhone After the iPhone
![Page 75: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/75.jpg)
1 billion mobile subscriptions
Source: InternaGonal Telecom Union (hJp://www.itu.int/ITU-‐D/ict/staGsGcs/at_glance/KeyTelecom.html)
![Page 76: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/76.jpg)
that‘s one for every 7 people on earth
![Page 77: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/77.jpg)
For many, a mobile device IS their computer.
![Page 78: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/78.jpg)
Mobile only Web Users
![Page 79: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/79.jpg)
“The avalanche has already started. It is too late for the pebbles to vote.”
![Page 80: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/80.jpg)
“The avalanche has already started. It is too late for the pebbles to vote.” Kosh - Babylon 5
![Page 81: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/81.jpg)
Mono and Xamarin and Community
![Page 82: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/82.jpg)
This is the MVVM Framework you’re looking for
![Page 83: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/83.jpg)
(OK, it’s in the social thing, and the Xbox game is crap, but the framework is lovely.)
![Page 84: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/84.jpg)
![Page 85: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/85.jpg)
![Page 86: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/86.jpg)
MonoGame!!! Bastion!
![Page 87: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/87.jpg)
Cool Libraries
MVVM MVVM Light Toolkit portable fork MvvmCross UpdateControls
IoC Autofac Ninject portable fork PortableIoC XPlatUtils (IoC and Messenger)
Other Json.NET MetroLog Simple.Odata OxyPlot PushSharp ZXing Barcode MonoCross
![Page 88: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/88.jpg)
Portable Library for Azure Mobile Services
![Page 89: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/89.jpg)
Portable Class Libraries
LOOK AT ALL THIS WHITESPACE
![Page 90: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/90.jpg)
![Page 91: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/91.jpg)
![Page 92: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/92.jpg)
PCLs keep getting better!
Raising the “Lowest Common Denominator” Shipping new functionality as cross-platform
Async Targeting Pack HttpClient Microsoft.Composition (MEF) TPL Dataflow Immutable Collections
![Page 93: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/93.jpg)
Code Sharing
![Page 94: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/94.jpg)
Model-View-ViewModel (MVVM) Views How to display information Written in XAML
View Models What information to display Flow of interaction
Models Data objects Business logic Etc.
Platform-specific
Portable-ish (DRY) References
Databinds
![Page 95: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/95.jpg)
Cross Platform App Architecture
Startup
Views
Windows Store App
Platform specific functionality
View Models
Models
Portable Class Library
Platform functionality abstractions
Startup
Views
Windows Phone App
Platform specific functionality
References References
![Page 96: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/96.jpg)
Cross Platform Apps
Cloud
Windows Windows Phone
All in C# Cloud, too!
Xamarin.Android Xamarin.iOS
![Page 97: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/97.jpg)
![Page 98: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/98.jpg)
iPad, iPhone, Android Phone, Android Tablet, WP8, WP7
![Page 99: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/99.jpg)
Disentanglement Demo
![Page 100: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/100.jpg)
You are Powerful
![Page 101: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/101.jpg)
C# - It’s everywhere you want to be
Embedded Windows Mac Linux
Phones Consoles Server Cloud
![Page 102: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/102.jpg)
C# and .NET on the Open Source Micro Framework in as little as 64k!
![Page 103: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/103.jpg)
C# and .NET on the Azure Cloud with
Open Source SDKs
![Page 104: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/104.jpg)
![Page 105: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/105.jpg)
We aren’t nearly as organized as we would need to be
to be half as evil as you think we are.
![Page 106: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/106.jpg)
There’s two operating systems shipping on every phone. Native and JS. Target the one that meets your needs.
![Page 107: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/107.jpg)
HTML is a great portability layer but it lags behind native functionality by definition
![Page 108: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/108.jpg)
![Page 109: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/109.jpg)
We are in control of our future.
![Page 110: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/110.jpg)
We love .NET. Let’s go kick some butt.
![Page 111: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/111.jpg)
Encourage Open Source. Encourage Community.
![Page 112: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/112.jpg)
In fact, C# is the only language
that gets you into every App Store
on the planet.
![Page 113: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/113.jpg)
We support you. We love .NET. Let’s go kick some butt.
![Page 114: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman](https://reader033.vdocuments.us/reader033/viewer/2022051610/5485f398b4af9fb37a8b468a/html5/thumbnails/114.jpg)
Be well, write good code,
and stay in touch
@shanselman