« Mort or Elvis | Main | Pipeline Testing Library - Part 1 »
While reading Chris Sell's and Ian Griffith's Programming Windows Presentation Foundation book, I ran across the following tidbit on chapter 9 on custom controls: "One of the main reasons for writing custom controls in older user interface technologies is to modify the appereance of a control, but as we've seen in earlier chapters, the content model and templates mean this is often unnecessary."
From what little I've experienced of WPF, the whole templating mechanism seems extremely powerful, particularly given the content model for UI Elements and the layout mechanism. Certainly, very impressive things can be achieved this way. That said, it does seem the whole templating mechanism can be just as easily abused (just like everything else in every other technology). So, where does the line get drawn between templating and creating new custom controls? Obviously, the second option takes more work (or so it seems to me, at this time), while the first can be more convenient.
Thing is, in my experience working with other smart-client technologies (WinForms, MFC, Win32), I found myself creating custom controls not just because it was the only possibility to affect behavior or custom draw a control (it isn't), but because it really helped make the code more modular and mantainable and make it self-contained (which helps reusability a lot, by the way). So, when I look at the templating mechanism in WPF, I find myself thinking that, while very cool and powerful, it could easily turn into a mantainance nightmare. In other words, I find myself asking "How is this different from, say, handling the Paint event for a child control in a Windows Forms and doing custom drawing there?" (from a code estructure point of view). At least from my little knowledge of WPF, I'd dread hundreds-of-lines XAML files with tens of templates and resources, just as much as I'd dread the corresponding windows forms code with hundreds of lines of embedded presentation, drawing and business logic.
I've been pondering about this for a while, and would love to hear the opinion of those of you that have been doing real-world WPF applications out there on the topic of reusability, templates and custom controls on WPF. Please, please convince me I'm wrong
Tomas Restrepo is a software developer located in Colombia, South America. His interests include .NET, Connected Systems, PowerShell and lately dynamic programming languages. More...
email: tomas@winterdom.com msn: tomasr@passport.com
Copyright © 2002-2008, Tomas Restrepo.
Powered by: newtelligence dasBlog 2.2.8279.16125