Øredev wrapup, part 1

I needed to condense all the impressions from four days at Øredev into writing, so I decided to take the opportunity to re-start my blog.

 

Here is part 1:

 

This was my first Øredev conference. Before that, I have only attended TechEd conferences.  Øredev is quite different: smaller, much broader in scope and with a different crowd of attendees. By itention, it is not focused on a specific technology or vendor. There were tracks on Agile, architecture, programming languages, cloud computing, Java, .NET, mobile, testing and even more. This years headline was efficiency.

 

Tuesday:

 

This was a pre-conference day, with two half-day sessions. I think there were 5-6 sessions to choose from in both timeslots. My picks were:

 

Morning: Building Applications with ASP.NET MVCK. Scott Allen is among many other things working for Pluralsight. He was an excellent presenter, and he knew his stuff.

 

Notes from the presentation:

 

  • ASP.NET MVC as an alternative to WebForms. Implemented on top of ASP.NET using HttpModules that intercept the http processing pipeline. Just like ASP.NET WebForms and ASP.NET WebServices are.
  • A central component is the routing engine living in System.Web.Routing. It parses the url of the http request and calls the appropriate Controller.
  • You implement Controllers either by inheriting from ControllerBase and overriding the Action method, or by implementing IController from scratch.
  • Actions methods return ActionResults, that contain the data for the view, which is supposed to be very simple. Obviously a different approach that the one in WebForms, where the view, ie. the Page object is the driver of things.
  • ASP.NET MVC also doesn’t try to fit a stateful programming model resembling WinForms into the stateless world of the web. There is no ViewState blob in the emitted Html. Actually, total control over the emitted Html is a central point of the ASP.NET MVC.
  • It is often used with the JQuery Javascript library on the clientside. JQuery has some basic controls.
  • Everything is designed to be very pluggable and unit-testable. For example, there are alternate view engines out there (Spark and others), and the built-in IoC container can be replaced with StructureMap or other containers.
  • Get the MVCContrib code on Codeplex!

Afternoon: NHibernate: From Principle to Practice

 

Steve Bohlen. Steve is a Microsoft MVP and ALT.NET guy from New York. He was super well-prepared, and was able to cover a lot of material in three hours. His blog is here

 

Notes from the presentation:

 

Motivation/background: The impedance mismatch. Persistence is a solved problem!  Time spent writing data-access code is waste of clients/employers money.

 

Then, Steve walked through:

 

  • Building the Xml mapping file from scratch. Tip: don’t forget to associate the mapping file with the mapping schema file. This provides Intellisense and validation in VS. The mapping assiciates class properties or members with table columns.
  • Adding the nescessary NHibernate assemblies.
  • Sessions, Transactions.
  • Modelling relations.
  • Picking one of three available dynamic proxy implementations available for lazy load support. Dynamic proxies allow NHibernate to intercept property access.
  • The different options for querying:
  1. HQL: full featured. But ‘lives’ in strings.
  2. Criteria API: Typesafe API for building up a query.
  3. Example queries. Query based on an object instance: Generates a where clause based on the not-null values of the object.
  4. Coming: LINQ to NHibernate.

Wednesday

 

First real conference day:

 

Interactive Visualizations from Microsoft Research,

Eric Stollnitz, MS Research:

 

Eric demoed some of the mind blowing visualization software that has emerged lately:

 

  • Photosynth – composes a 3d navigable model of a scene by analyzing photos of different parts of the scene.
  • HD view – compose gigapixel images by stitching thousands of photos.
  • www.worldwidetelescope.org. Navigate the known universe! Guided tours. An incredible amount of content.
  • Project Tuva. A series of Richard Feynman physics lectures put online and annotated with loads of additional educational material.

Some of the demos suffered from an unstable Wifi and a struggling laptop, so we never got to see Project Tuva. Note to self: Remember to check that out!

 

Debugging .NET Applications with WinDbg: Tess Fernandez, Microsoft

 

Tess is an Escalation Engineer at Microsoft. Her blog is a great resource: http://blogs.msdn.com/tess/

 

She demoed process dump analysis using WinDbg and SOS. Examples: Tracing memory leaks by tracking object references back to the root. Tracing locking issues by looking at a combination of the locks held in the process and the call stacks of the threads holding locks. Cool stuff!

 

Of course, no one except Tess and John Robbins remembers all the commands of WinDbg/SOS. Enter the .cmdtree command, which opens a helper window containing preconfigured commands. See here for details. Or alternatively, as Scott Hanselman put it: ‘Google it with Bing’ :-)

 

Another useful tool is DebugDiag. Apparently it is somewhat overlapping with WinDbg. I need to look further into that.

 

A great piece of news is, that VS2010 will probably include a whole new graphical dump analysis tool for .NET4. It will not (yet) be as full featured as WinDbg though.

 

Pracmatic, Real world Scala

 

This was part of an interesting Programming Languages track. I only managed to see this session.

 

Scala was together with Erlang the language I heard the most people buzz about. It runs on the JVM, has libraries for parallel computing, is a mix of OO and FP, and has a lot of the functional constructs that have been added to C# 3.

 

It is claimed to be used by companies like eBay, Twitter and many others.

 

There is an implementation running on the CLR, so it is an interesting candidate for investigation of a new language without going too far away from the comfort zone.

 

Exploration of the NHibernate Extensions EcoSystem

 

Steve Bohlen gave a whirlwind tour of many of the extensions to NHibernate out there. Among many others, there are

 

  • Fluent NHibernate: A fluent API to do the mapping configuration programmatically instead of in XML
  • A Validation Framework.
  • The Castle ActiveRecord implemensation works on top of NHibernate and makes it very simple to use.
  • A framework for web session state management across requests.
  • Linq to NHibernate

I will update the post with relevant links later.

 

Data in the Cloud: Accessing Azure

 

 Julia Lerman made a presentation that was focused on practice: How does the stuff actually work, look and feel from a programmer perspective. A simple walkthrough of the process of using Visual Studio and the emulated Azure environment on the local machine, to implement and test a website. Then publish it to the cloud.

It was nice to get the cloud down to earth… 

C++, Java and .NET: Lessons Learned from the Internet Age

Cameron Purdy is Vice President of Development at Oracle. He gave a very entertaining overview of pros and cons of C++ versus managed languages, and why they almost instantly replaced C++ for enterprise development. Then he gave his take on what the future of programming languages will look like. As I heard him, languages  with deeply integrated support for parallel programming will win. Scala was one candidate that he mentioned.

 

 

 

 

 

 

 


 


 

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s