the state of the art on net
play

The State of the Art on .NET 12 Months of Things To Learn Amanda - PowerPoint PPT Presentation

The State of the Art on .NET 12 Months of Things To Learn Amanda Laucher ThoughtWorks Josh Graham Hashrocket (overview) Negative connotations about the ecosystem A lot of innovation from other platforms being applied Very


  1. The State of the Art on .NET 12 Months of Things To Learn Amanda Laucher ThoughtWorks Josh Graham Hashrocket

  2. (overview) • 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

  3. (overview) • Languages • NHibernate • F# • Castle • M • Windsor • Boo • NVelocity • Tools • Infrastructure • NUnit • Guerilla WCF • RhinoMocks • Azure • Moq • MEF

  4. 1. F# • What it is • Microsoft’s official functional language on the CLR • Static type inference, multi-paradigm: FP + OO • OCaml-esque • Geeks • Don Syme (MSR)

  5. 1. F# • Why look at it? • Business asking for “faster”, “concurrent”, “parallel”? • Different way of thinking • Helps you understand LINQ and functional abstractions in C# • Functional languages “buzz” • Real World Functional Programming (Petricek, Skeet)

  6. 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) • F# In Action (Laucher) • F# for Scientists (Harrop)

  7. 2. M • What it is • Declaratively build data models • Declaratively and interactively build external DSLs • Geeks • Don Box (MS) • Clemens Szyperski (MSR)

  8. 2. M • Why look at it? • Higher abstraction for schemata • Easier grammar creation • DSL “buzz” • Resources • MSDN Library http://msdn.microsoft.com/en-us/library/ dd129519(VS.85).aspx • Creating DSLs in Oslo video http://www.infoq.com/ presentations/Creating-DSLs-in-Oslo-Amanda-Laucher • InfoQ http://www.infoq.com/articles/natural-language-date- dsl-oslo • Oslo Team http://blogs.msdn.com/mlanguage/

  9. 3. Boo • What it is • Python syntax • Static, infered, duck, macros, functional • Geeks • Rodrigo B. De Oliveira (Unity Technologies) • Why look at it? • Language extensibility • DSLs: bake, UnityScript • Resources • Website http://boo.codehaus.org/

  10. 4. NUnit • What it is • State-based automated unit testing • Idiomatic C#, constraint-based assertion DSL • Geeks • Charlie Poole, Jamie Cansdale, Gary Feldman • Jim Newkirk, Alexei Vorontsov, Mike Two, Philip Craig

  11. 4. NUnit • Why look at it? • It’s the tool to use for this style of testing on .NET • Standalone, VS integrated, 3rd-party builds • Resources • Website http://nunit.org/ • Books • Test-Driven Development in Microsoft .NET (Newkirk, Vorontsov) • Pragmatic Unit Testing in C# with NUnit (Hunt, Thomas)

  12. 5. RhinoMocks • What it is • Automated unit testing • Verify interactions amongst collaborators • Geeks • Oren Eini (Ayende Rahien) • Why look at it? • Working with legacy code • Driving out DI-based designs • Resources • Website http://www.ayende.com/projects/rhino-mocks.aspx • Book http://en.wikibooks.org/wiki/How_to_Use_Rhino_Mocks

  13. 6. Moq • What it is • Automated unit testing • Linq expression trees and lambdas • Mocks interfaces and classes • Geeks • Daniel Cazzulino (kzu) • Why look at it? • A fresh approach to mocks and stubs on .NET • Simple testing DSL • Resources • Website http://code.google.com/p/moq/ • kzu’s blog (http://www.clariusconsulting.net/blogs/kzu/)

  14. 7. NHibernate • What it is • O/RM persistence framework • Geeks • Fabio Maulo, Ayende Rahien, Sergey Koshcheyev • Why look at it? • Complex object domain model mapping to complex relational model • Reduce persistence abstractions leaking into business logic layer • Resources • Website https://www.hibernate.org/ • http://www.fincher.org/tips/Languages/NHibernate.shtml • NHibernate in Action (Kuaté, Bauer, King, Harris)

  15. 8. Windsor • What it is • IOC Container for .NET • Part of the castle project • Geeks • Ayende Rahien, Jonathon Rossi, et al • Why look at it? • Dependency Injection • Helps to decouple project dependencies • External configuration • Interceptors • Non-intrusive logging, transaction management and auditing • Resources • Website http://www.castleproject.org/container • http://dotnetslackers.com/community/members/simoneb.aspx

  16. 9. NVelocity • What it is • Template engine • Geeks • Cort Schaefer, Hamilton Verissimo, Mike Bridge • Why look at it? • Abstract views away from other architectural layers • Web designers can work in parallel with .NET programmers to develop web sites according to the Model- View-Controller (MVC) model • Resources • Website http://sourceforge.net/projects/nvelocity/

  17. 10. Guerilla SOA • What it is • Geeks • Jim Webber (ThoughtWorks) • Why look at it? • Lightweight, iterative, incremental SOA • Avoid bloated middleware • Messages • Resources • Patric Fornasier’s SOYA http://soya.sourceforge.net • Jim Webber’s blog http://jim.webber.name/ • Savas Parastatidis • Ian “Consumer-driven Contracts” Robinson’s blog http:// iansrobinson.com/

  18. 11. Azure • What it is • Microsoft’s cloud service • Platform for development • Geeks • David Cutler (MS) • 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/

  19. 12. 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 • 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/

  20. Notable Mentions • MassTransit • MSpec • NBehave • NServiceBus • RavenDB • RhinoESB • RhinoPHT/DHT • Testlint • Typemock

  21. The State of the Art on .NET 12 Months of Things To Learn Amanda Laucher amanda.laucher@thoughtworks.com ThoughtWorks Josh Graham josh@hashrocket.com Hashrocket

Recommend


More recommend