The State of the Art on .NET 12 Months of Things To Learn Amanda Laucher amanda.laucher@thoughtworks.com @pandamoniel Josh Graham joshua.graham@grahamis.com @delitescere Sunday, December 5, 2010
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
Languages Sunday, December 5, 2010
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
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
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
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
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
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
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
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
Tools Sunday, December 5, 2010
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
6. TDD Enablers • NUnit • xUnit.net • MSTest • RhinoMocks • Moq • TypeMock • Cucumber / Cuke4Nuke Sunday, December 5, 2010
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
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
6. RhinoMocks • Geeks • Oren Eini (Ayende Rahien) • Resources • Website http://www.ayende.com/projects/ rhino-mocks.aspx • Book http://en.wikibooks.org/wiki/ How_to_Use_Rhino_Mocks Sunday, December 5, 2010
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
7. IoC Containers • Unity • NInject • Spring.NET • Structure Map • Windsor Sunday, December 5, 2010
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
7. Windsor • Geeks • Ayende Rahien, Jonathon Rossi, et al • Resources • Website http://www.castleproject.org/ container • http://dotnetslackers.com/community/ members/simoneb.aspx Sunday, December 5, 2010
7. Structure Map • Geeks • Jeremy D. Miller (Dovetail Software) • Resources • Website http://structuremap.net/ structuremap/ • Chad Myers http://dotnetslackers.com/ articles/designpatterns/ IntroductionToStructureMap.aspx Sunday, December 5, 2010
Infrastructure Sunday, December 5, 2010
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
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
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
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
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
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
Recommend
More recommend