Wednesday, June 9, 2010

Day 3, 4 - MS Tech Ed - Deep dive into WP7 to the Entity Framework/LINQ to SQL/Stored Proc what's best? argument

The last two days of tech ed for me haven't been nearly as great from a sessions perspective. Maybe it's because I got pulled out of the conference to deal with some work related issues, but I also think the content wasn't as powerful. Or mabye it's that the sessions are getting more and more technical focused and I'm a big picture kinda technologies.

There was a quick overview of the WP7 architecture, the building blocks of how WP7 came to be. Some amazing nuggets that came out of the presentation:
  • State Model of WP7 runtime enables applications to be suspended. However, suspended application that take up too many resources with Shell will kill. So assume suspended aps will be killed when programming. Aka save your state!
  • Always store the last request locally (isolated storage) it's a best practice and with the use of the back button helps user's navigate to and from your app.

Joval was back with his Zen of Architecture sesison - He nearly filled an auditorium with developers and architects. I'm not sure they were ready for what he was going to say. What he's done here is very ingenious. He's continuing his argument about the evolution of Software Engineering and feeding off the Civil, Mechanical, and Electrical Engineering fields to come up with a notation and a mechanism for designing software systems. The key to his design is WCF as it encapulates his layers. The notation is pretty enginious and he brings up a good argument about the death/decay of UML - UML was invented to teach C dinosaurs how to do C++ (Object Oriented). Furthermore, for those of us who did some form of electrical engineering courses, we all know that the notation for electrical circuits are simple and to the point. This is the basis of his notation/technique which he calls the Method.


This tiny picture from iDesign's website actually is a small rendering of his method's notation. It's simple, smart, and looks very effective. I plan on sharing this with the architecture team at Macadamian very soon.

Finally, this morning an excellent session was put on by Bob Beauchemin aptly named: "A Database Developer and DBA Perspective: LINQ to SQL and Entity Framework vs. Stored Procedures". I think that summarizes it well. He went over some of the fundamental (and I think little known) issues of LINQ2SQL and Entity Framework (he calls these the 'frameworks' which I like and will now steal). He showed real world examples of how LINQ2SQL uses parameterized queries and how it's just about as fast as Stored Procs, persist in cache like stored procs etc... The only major downside to either - Direct Table Access. DBA's hate giving up this kind of control and for good reason - it's the fundamental rule for locking down a DB and securing it. His final say - the frameworks work well, use them were they make sense, but with the latest releases of the frameworks it's even easier then before to tie them into stored procs, meaning both camps can be happy.

Oh and Bob's final note - LINQ is SQL, just written ever so slightly differently.

Finally I spent 3 hours in the Hands On Labs - this is a great idea that MS has. Right smack dab in the middle of the conference are labs with instructors around to help you. They have set up coding examples (you can cut and paste them until you feel you've actually programmed something) or experiment with the code a wee bit like I did and have a final product that doesn't really match the course material but still captures the spirit of it. What did I learn? That Push Notification Services for WP7 are actually fairly straight forward minus the byte streaming and a few deligates/event handlers here and there, rely heavily on WCF and are consumed pretty easily.

Final thoughts - After spending a little more time in expression blend, I really think this tool makes Silverlight/WPF that much more compelling. If you haven't started to learn expression blend, start now. That and azure or some kind of cloud computing!!!

1 comment: