32
The State of the Art on .NET 12 Months of Things To Learn Amanda Laucher [email protected] @pandamoniel Josh Graham [email protected] @delitescere Sunday, December 5, 2010

The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

The State of the Art on .NET12 Months of Things To Learn

Amanda [email protected]

@pandamoniel

Josh [email protected]

@delitescere

Sunday, December 5, 2010

Page 2: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

Negative connotations about the ecosystem

A lot of innovation from other platforms being applied

Very smart people using the platform as it’s the best choice for their circumstance

Not just the “alt” .NET community

Daunting for new developers

High signal-to-noise

Sunday, December 5, 2010

Page 3: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

Languages

Sunday, December 5, 2010

Page 4: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

1. F#

• What it is

• Microsoft’s official functional language on the CLR• Static type inference, multi-paradigm: FP + OO

• OCaml-esque• Source now publicly available!

• Geeks

• Don Syme (MSR)

Sunday, December 5, 2010

Page 5: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

1. F#

• Why look at it?• Business asking for “faster”?• Different way of thinking• Helps you understand LINQ and functional

abstractions in C#• Functional languages “buzz”

Sunday, December 5, 2010

Page 6: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

1. F#

• Resources• Matt Podwysocki http://weblogs.asp.net/podwysocki/• Planet F# http://feeds.feedburner.com/planet_fsharp• Hub FS http://cs.hubfs.net• Phillip Trelford http://www.trelford.com/blog/• Books:

• Programming F# (Smith)• Expert F# (Syme, Granicz, Cisternino)• Beginning F# (Pickering)• Real World Functional Programming (Petricek, Skeet)• F# for Scientists (Harrop)

Sunday, December 5, 2010

Page 7: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

2. HTML5

• What it is• The next version of HTML, still in review• More semantic markup

• <small>, <header>, <footer>, <article>, <section>, <nav>, <aside>, <summary>, …• built-in validation (new types, required), regex patterns• groupings: <hgroup>, <figure>,

• Audio / Video• Canvas• Drag and drop• Local storage

• localstorage• contenteditable

• Quotes not needed on attributes

Sunday, December 5, 2010

Page 8: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

2. HTML5

• Why look at it

• Many browsers supporting parts of it• See the deprecated elements that will be obsolete

• Resources• W3C• Web Hypertext Application Technology Working

Group (WHATWG)

• HTML 5 Doctor http://html5doctor.com/

Sunday, December 5, 2010

Page 9: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

3. C# 5 “await”

• What it is• Continuation Passing Style• Syntactic sugar for specifying what happens when an asynchronous task is

complete• Creates continuation for execution by the task after it completes• Doesn’t actually “wait” or block the current flow

• Geeks• Eric Lippert (MS)

• Why look at it• More easily express event sources and chains of events• Easier to create a better user experience

• Resources• Eric’s blog http://blogs.msdn.com/b/ericlippert/archive/tags/async/

Sunday, December 5, 2010

Page 10: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

4. Reactive Extentions(Rx)

• What it is

• Declarative glue for event processing and asynchronous computation

• Filters, LINQ expressions

• Subscribe to sequence and error• .NET, Silverlight, JavaScript

• Geeks

• Erik Meijer (MS)

Sunday, December 5, 2010

Page 11: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

4. Reactive Extentions(Rx)

• Why look at it

• Vastly simplified abstraction for handling events and dealing with asynchrony

• A “list” of event messages, a success or failure event• Rx manages sequencing of events, exceptions, callbacks,

timeouts

• Resources

• Rx team blog http://blogs.msdn.com/b/rxteam/• Rx design guidelines http://go.microsoft.com/fwlink/?

LinkID=205219

Sunday, December 5, 2010

Page 12: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

Tools

Sunday, December 5, 2010

Page 13: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

5. Fluent NHibernate

• What it is• “Fluent interface” DSL (http://martinfowler.com/bliki/FluentInterface.html)• Declare mappings in code, not XML!

• Geeks• James Gregory (Proof of Concept)• Paul Batum (F1 Solutions)

• Why look at it• Simpler configuration of ORM• Many conventions not requiring config• XML is a turd for this type of work

• Resources• Website http://fluentnhibernate.org/

Sunday, December 5, 2010

Page 14: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

6. TDD Enablers

• NUnit

• xUnit.net

• MSTest

• RhinoMocks

• Moq

• TypeMock

• Cucumber / Cuke4Nuke

Sunday, December 5, 2010

Page 15: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

6. TDD Enablers

• What it is• Automated tests• Executable specifications• Unit and acceptance tests• Mocks, stubs

• Why look at it?• Application layers• Organize your code• Customer collaboration• “Professional” thing to do

Sunday, December 5, 2010

Page 16: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

6. NUnit

• Geeks

• Charlie Poole, Jamie Cansdale, Gary Feldman

• Jim Newkirk, Alexei Vorontsov, Mike Two, Philip Craig

• Resources• Website http://nunit.org/

• Books

• Test-Driven Development in Microsoft .NET (Newkirk, Vorontsov)

• Pragmatic Unit Testing in C# with NUnit (Hunt, Thomas)

Sunday, December 5, 2010

Page 18: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

6. Moq

• Geeks

• Daniel Cazzulino (kzu)

• Resources

• Website http://code.google.com/p/moq/

• kzu’s blog (http://www.clariusconsulting.net/blogs/kzu/)

Sunday, December 5, 2010

Page 19: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

7. IoC Containers

• Unity

• NInject

• Spring.NET

• Structure Map

• Windsor

Sunday, December 5, 2010

Page 20: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

7. IoC Containers

• What it is• Automate dependency injection• Interceptors, AOP• Non-intrusive logging, transaction management and

auditing• Why look at it?

• Helps to decouple project dependencies• Application layering• Simplify testing across layers

Sunday, December 5, 2010

Page 23: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

Infrastructure

Sunday, December 5, 2010

Page 24: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

8. Azure

• What it is• Microsoft’s cloud service• Platform for development

• Geeks• David Cutler (MS)• Simon Raik-Allen (MYOB)

• Why look at it?• Platform to more simply manage scalability and reduce startup costs• Loads of facilities for .NET devs to get into the cloud

• Resources• Azure in Action (Hay, Prince)• Team blogs http://blogs.msdn.com/windowsazure• Brian Prince http://brianhprince.com/

Sunday, December 5, 2010

Page 25: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

9. MEF

• What it is• Managed Extensibility Framework• Component and plugin architecture• DI as a strategy for composing the different extensions

• Geeks• Glenn Block, Wes Haggard (MS)

• Why look at it?• Application extensibility• Avoiding monolithic software• Dynamically composing an application’s feature set at runtime

• Resources• Website http://www.codeplex.com/MEF• Bill Kratochvil http://www.global-webnet.net/BlogEngine/• Jason Olson http://www.managed-world.com/• Magnus Mårtensson http://blog.noop.se/• Sidar Ok http://www.sidarok.com/

Sunday, December 5, 2010

Page 26: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

10. RavenDB

• What it is

• Document database for .NET

• Stores schema-less JSON

• Geeks

• Oren Eini (Hibernating Rhinos)

• Why look at it?

• Documents are a simple but useful abstraction (cf key/value)

• Fields that are optional or of dynamic type

• Optional or varying sized “child” collections

• Low impedance with object graphs

• Very easy entry into NoSQL on .NET

• Resources

• Website http://ravendb.net/

• Code of Rob http://codeofrob.com/

Sunday, December 5, 2010

Page 27: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

11. Windows 7 Mobile

• What it is• Mobile development using .NET tools• VS2010, Silverlight, XNA, Expression Blend, Emulator

• Geeks• Dragos Manolescu

• Why use it• Mobile development using familiar tools• Extend the reach of you application

• Resources• Website http://create.msdn.com/• http://wp7guide.codeplex.com/•

Sunday, December 5, 2010

Page 28: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

12. Guerilla SOA

• What it is• An agile approach to implementing distributed

computing, system integration, and web-based services• Messages, Events, Consumer-Driven Contracts• Lightweight WCF, templates, parsing

• Geeks• Dr Jim Webber (Neo Technology)• Ian S. Robinson (ThoughtWorks)• Dr. Savas Parastatidis (MS)

Sunday, December 5, 2010

Page 29: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

12. Guerilla SOA

• Why look at it?

• Successful SOA

• Avoid bloated middleware

• Loosely-coupled, cohesive, efficient services• REST, in practice

• Resources

• REST in Practice http://restinpractice.com/• Patric Fornasier’s SOYA http://soya.sourceforge.net

• Jim Webber’s blog http://jim.webber.name/

• Ian “Consumer-driven Contracts” Robinson’s blog http://iansrobinson.com/

Sunday, December 5, 2010

Page 30: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

Notable Mentions

• Boo (Python-like language)• C# Sqlite (Lightweight SQL

engine)• git, mercurial (Distributed

source code management)• MassTransit (Service bus)• Mono (Open source CLR)• MSpec (BDD)• NBehave (BDD)• Noda Time (Date / Time)

• NServiceBus (Service bus)• NuGet (Package management)• NVelocity (Template engine)• RhinoESB (Service bus)• RhinoPHT/DHT (Key/value)• Sandcastle (MSDN-style docs)• Sones (Graph database)• Testlint (Unit test code

advisor)• Typemock (Interaction tests)

Sunday, December 5, 2010

Page 31: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

Geeks You Should Watch

• Ayende Rahien (Oren Eini)• Ben Hall• Eric Meijer• Joel Pobar• Jon Skeet• Mark Needham• Matt Podwysocki• Paul Batum• Roy Osherove• Tomáš Petříček

Sunday, December 5, 2010

Page 32: The State of the Art on - GOTO Bloggotocon.com/dl/jaoo-brisbane-2010/slides/AmandaLaucher... · 2010-12-08 · Negative connotations about the ecosystem A lot of innovation from other

The State of the Art on .NET12 Months of Things To Learn

Amanda [email protected]

@pandamoniel

Josh [email protected]

@delitescere

Sunday, December 5, 2010