Frameworks Are No Substitute for Understanding

Frameworks Are No Substitute for Understanding

Old forum URL: forums.lhotka.net/forums/t/9871.aspx


mehgerbil posted on Wednesday, December 15, 2010

I'm atttempting to make the transition from Windows Forms applications to Silverlight 4.0.  The transition is overwhelming on good days.  On bad days I find myself asking the question:  Is flipping hamburgers at McDonald's really that bad?   Not only are there new technologies to learn but the whole underlying approach seems radically different.  Somehow I'm supposed to master CSLA 4.0.1, XAML, Web Services, MVVM, BXF and a host of other new things. It's a big puzzle with no obvious starting point.

Despite the difficulty, I'm already in love with the technology.  The ability to deliver rich applications over the internet while avoiding the morass that is HTML is a big win for this developer.  I hate HTML with the heat of a thousand suns.  I thought a new age had dawned with XHTML but that standard was abandoned before it got off the ground.  I don't think HTML 5 will fix any of the issues we've been complaining about for years (compatibility between browsers) because too many cooks ruin the soup.  New controls?  Richer Internet? Sure thing - but with all of the same headaches. 

Let's be honest, serious attempts at constructing a standard don't take until 2020 to finalize.  Learn to recognize committees composed of navel gazers overcome with their own superiority and move on already.  If people were serious about compatibility between browsers we would have had the problem licked 10 years ago. 

I do get some blowback at my place of employment over the idea of downloading the Silverlight plugin.  I don't say much about it but I do laugh inside.  It's from Microsoft haters that think nothing about writing applications that require the JVM, Flash, PDF Reader, or a host of other plugins.  Given the choice between constant page postbacks and single 2 min install I'd take the 2 min install any day of the week.  Too many people forget that Silverlight can replace a desktop application which would have to be distributed in some form or another.  At the very least a web based application requires a browser - who uses the web without some custom installations?  Seriously.

The ASP/AJAX paradigm has always struck me as a really big hack.  I appreciate the fact that you can create a beautiful website with this approach but I'd hate to have to maintain it through browser versions, HMTL changes, and Javascript evolution.  It's okay if you love it - it's always looked like bailing wire/chewing gum/duct tape approach to me.

Anyways back to the topic at hand: The BXF isn't going to save me time if I don't understand what it accomplishes for me.   It will give me a good start on a new project but as soon as something is required which requires a quick detour off the beaten path I'll be totally lost.  Worse, without understanding what is going on behind the scenes I'm likely to architect a hack that will only make things very ugly.  I've done this before in Windows Forms code and as I look back over the messes I've created it makes me die a little bit inside.   Frameworks are no substitute for understanding.

I've said all of that to get to my question.

I'm working on understanding Silverlight in relation to CSLA/BXF/MVVM.  What I'm doing is attempting to write small test applications without using MVVM/BXF so that I can get an idea as to what problems these technologies solve.  For example, I'm spending a couple of days playing around with Commands by first writing a Command from scratch, then writing a base class from which all my Commands may be derived and then examining it in the BXF Framework.  I've done similar things with Dependency Properties and Binding.

In regard to Silverlight, what other 'raw knowledge' would you suggest before moving onto understanding a MVVM framework such as BXF? 

Recommendation: I'm finding Silverlight 4 In Action by Pete Brown to be a fantastic resource.  I'd recommend it to any Silverlight 4 noobs. :D

Jaans replied on Sunday, December 19, 2010

I agree, the whole new WPF/Silverlight paradigm was a big shift but one I'm now with hind sight, happy to have worked through. It is just soo much better!!

I have found Adam Nathan's book "WPF Unleashed" (Sams Publishing) exceedingly valuable. Admittedly it's a bit dated and not focussed on Silverlight, but I give me an under-the-hood understanding of XAML (which is more important to "Get it" than the technology to which it's applied). I see it as a fundamentals book.
http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917

It explains soo much of what happens magically without people knowing about it, and it essential when things go wrong.

I think you are right to get WPF/Silverlight and it's associated technologies under the belt, before looking at UI Frameworks/Design patterns like MVVM, but that's me.

Good luck and hang in there,
Jaans

mehgerbil replied on Tuesday, December 21, 2010

I have the book you recommend.  It has one of the better explanations of dependency properties I've read.  

Jaans replied on Wednesday, December 22, 2010

This recent blog post summarising free WPF learning resources might also be very helpful!

http://mynerditorium.blogspot.com/2010/12/learn-wpf-for-free.html

mehgerbil replied on Wednesday, December 22, 2010

Excellent links.

I've been wanting some material that explains the why behind some of the decisions.  It's much easier to understand code when I know the why beind some of the decisions.    Many thanks.

Copyright (c) Marimer LLC