how c# save my marriage, enhanced my career, and made me an inch taller, scott hanselman

114
Giant Disclaimer Im here as me, doing my thing. These opinions are mine, Scott Hanselman. If I say something stupid and youre a journalist, make sure to quote me as Scott Hanselman, Stupid Guy.Im not the manager of anything important at Microsoft. I am a member of the .NET Community. I care.

Upload: xamarin

Post on 09-Dec-2014

3.479 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

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

_ _ _____ _ _ | | | | / __ \ _| || |_ | |_| | ___ __ __ | / \/|_ __ _| | _ | / _ \ \ \ /\ / / | | _| || |_ | | | || (_) | \ V V / | \__/\|_ __ _| \_| |_/ \___/ \_/\_/ \____/ |_||_| _____ _ ___ ___ ___ ___ _ / ___| | | | \/ | | \/ | (_) \ `--. __ _ __ __ ___ __| | | . . | _ _ | . . | __ _ _ __ _ __ _ __ _ __ _ ___ `--. \ / _` |\ \ / / / _ \ / _` | | |\/| || | | | | |\/| | / _` || '__|| '__|| | / _` | / _` | / _ \ /\__/ /| (_| | \ V / | __/| (_| | | | | || |_| | | | | || (_| || | | | | || (_| || (_| || __/ _ \____/ \__,_| \_/ \___| \__,_| \_| |_/ \__, | \_| |_/ \__,_||_| |_| |_| \__,_| \__, | \___|( ) __/ | __/ | |/ |___/ |___/ _____ _ _ ___ ___ _____ | ___| | | | | | \/ | / __ \ | |__ _ __ | |__ __ _ _ __ ___ ___ __| | | . . | _ _ | / \/ __ _ _ __ ___ ___ _ __ | __| | '_ \ | '_ \ / _` || '_ \ / __| / _ \ / _` | | |\/| || | | | | | / _` || '__| / _ \ / _ \| '__| | |___ | | | || | | || (_| || | | || (__ | __/| (_| | | | | || |_| | | \__/\| (_| || | | __/| __/| | _ \____/ |_| |_||_| |_| \__,_||_| |_| \___| \___| \__,_| \_| |_/ \__, | \____/ \__,_||_| \___| \___||_| ( ) __/ | |/ |___/ _ ___ ___ _ ___ ___ | | | \/ | | | | \/ | __ _ _ __ __| | | . . | __ _ __| | ___ | . . | ___ / _` || '_ \ / _` | | |\/| | / _` | / _` | / _ \ | |\/| | / _ \ | (_| || | | || (_| | | | | || (_| || (_| || __/ | | | || __/ \__,_||_| |_| \__,_| \_| |_/ \__,_| \__,_| \___| \_| |_/ \___| ___ _____ _ _____ _ _ / _ \ |_ _| | | |_ _| | || | / /_\ \ _ __ | | _ __ ___ | |__ | | __ _ | || | ___ _ __ | _ || '_ \ | | | '_ \ / __|| '_ \ | | / _` || || | / _ \| '__| | | | || | | | _| |_ | | | || (__ | | | | | | | (_| || || || __/| | \_| |_/|_| |_| \___/ |_| |_| \___||_| |_| \_/ \__,_||_||_| \___||_|

Scott Hanselman @shanselman

Page 5: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

_ _ _____ _ _ | | | | / __ \ _| || |_ | |_| | ___ __ __ | / \/|_ __ _| | _ | / _ \ \ \ /\ / / | | _| || |_ | | | || (_) | \ 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
Page 7: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 8: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 9: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 10: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 11: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

I work here.

Page 12: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 13: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

I work here. Remotely, actually.

Page 14: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

We work in open source.

Page 15: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

Before Microsoft

Page 16: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

After Microsoft

Page 17: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

My Story

Page 18: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 19: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 20: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 21: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 22: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 23: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 24: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 25: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 26: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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
Page 28: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 29: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 30: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 31: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 32: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 33: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 34: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 35: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 36: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 37: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

Got some certifications…MC*.*

Page 38: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

Got some certifications…MC*.*

Page 39: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

Got some certifications…MC*.*

Page 40: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

“Knock, knock.” “Who’s there?”

“Java.”

Page 41: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 42: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

Java Programmer

Page 43: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

Write once, Look like crap everywhere

Page 45: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 46: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

My Language

Page 47: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

; 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

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))

)))))))))))))))))))))))))

))))))))))))))))))))))

))))))))))))))))))))

))))))))))))))))

)))))))))))))))

)))))))))))

))))

)))

))

))

)

Page 49: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))))

))))))))))))))))))))))))))))))))))))

)))))))))))))))))))))))))))

)))))))))))))))))))))))))

))))))))))))))))))))))

))))))))))))))))))))

))))))))))))))))

)))))))))))))))

)))))))))))

))))

)))

))

))

)

“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

; 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

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

C#

Page 53: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

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

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

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

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

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

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

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

I’m a phony

Page 63: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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
Page 65: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

Thanks, Stu!

Page 67: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

I fix stuff

Page 68: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 69: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 70: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 71: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

Mobile

Page 72: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

1993

Page 73: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

2013

Page 74: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

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

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

Mobile only Web Users

Page 79: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

“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

“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

Mono and Xamarin and Community

Page 82: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

(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
Page 85: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

 

Page 86: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

MonoGame!!! Bastion!

Page 87: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

Portable Library for Azure Mobile Services

Page 89: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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
Page 91: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman
Page 92: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

Code Sharing

Page 94: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

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
Page 98: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

Disentanglement Demo

Page 100: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

You are Powerful

Page 101: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

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
Page 105: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

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
Page 109: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

Encourage Open Source. Encourage Community.

Page 112: How C# Save My Marriage, Enhanced My Career, and Made Me an Inch Taller, Scott Hanselman

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

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

Be well, write good code,

and stay in touch

@shanselman