Wizards of Smart

Author Archive

Prism Digg/Twitter Search Client on Channel 9

by riles on Jun.08, 2009, under News

The Microsoft Patterns & Practices team have posted links to the Channel 9 Prism digg/twitter search application on their CodePlex site. Check it out: patterns & practices: Composite WPF and Silverlight – Home

Comments :, , , , , more...

F# PowerPack for VS2010 Released

by riles on Jun.07, 2009, under News

I am very excited to note that the F# PowerPack has been released for VS2010. So what are you waiting for? Go grab it!

Also, I had performed some tests comparing F# with C# data access and was surprised by the results. Once I get the PowerPack installed for VS2010, I want to re-run it and see if it runs any differently in .NET 4.0, then I’ll post what I found.

Comments : more...

ViewModel Futures

by riles on May.12, 2009, under Patterns

Glenn Block asked two questions on Twitter tonight that were too good to pass up. First, do you want better tooling, more testable data binding, or a ViewModel base class? I agree with whoever said patterns exist to make up for faults in a language; however, in this case, I think I would choose enhancements to data binding. It’s a little too magical, imho.

I would like to see a ViewModel base eventually, though, as that would be one less thing to wire up myself, and it hopefully silence all the people complaining about the lack of a model in MVC. (Yes, I am thinking the backend models should be sharable among WPF, Silverlight, and MVC.)

Glenn’s second question related to tv target audience. I am always a fan of simple explocicity, to borrow a word from JB. I think that’s what the experts use. Also, I don’t know many who want to me mediocre some day, so going for the best and letting it trickle down is a great idea.

Just my $.02.

Comments :, , , , more...

YAGNI–Whose Definition of Simple?

by riles on May.12, 2009, under Patterns, Projects, Tips

I have read a lot about YAGNI lately, especially regarding TDD. The thing that keeps bugging me is the definition of “simple.” Who defines simple? For instance, wouldn’t static methods be simpler than building objects? You could then write more functionally. Or is that not simpler to you? If you follow command-query separation, wouldn’t building everything as either pure functions or commands be simplest? JB and I have found this set of patterns immensely easy to create and test of late, especially in comparison to the ever-increasing-in-complexity procedural/OO code in place before.

So I guess my question is this: Is it really so bad to start with some basic patterns that will let you refactor more easily? I think the desire to make things as simple as possible–especially when you know you will need it–can be a waste of time and a good way of getting bad code into your source.

I know I will hear it from the Agile community that I just don’t get it, but I think I do. I really like starting simple and keeping things in nice, bite-sized testable chunks. And yes, I’m still learning. However, without a consistent and meaningful definition of “simple,” we’re likely to end up with a follow-up movement of making things complex for the sake of extensibility again.

So what do you think: is CQS too complex a starting point, or is it a nice, “simple,” and testable approach for YAGNI?

Comments :, , , , more...

CQS – A Literary Perspective

by riles on Apr.15, 2009, under Patterns

If you have been following the DDD and DDDD waves, you’re sure to have come across the CQS pattern. When I first heard of this, I immediately liked it but thought it was surely a pattern for very, very large systems. Most systems probably don’t need CQS, but this morning over breakfast, a discussion with my wife on child learning patterns made me rethink this.

We have a friend whose children have grown at very different rates of reading comprehension and writing skill. The interesting part is that the rates are nearly opposite from one another. The one with excellent reading comprehension does not excel at writing while the other is and excellent writer but has trouble reading. I found this somewhat strange. After all, logically, I would think that the one who reads should be able to write better. But that’s not the case. No one can do everything best. The same is true of databases.

This is such a true statement that in the Collective Intelligence session at the Houston ALT.NET Open Spaces, four distinct database tiers were promoted for proper separation of concerns to allow each tier to most effectively perform its task. Is this necessary for every application? Probably not, but as we move toward a more virtualized server world, the cost is really swinging in the favor of using multiple databases for reading and writing concerns. This may break the YAGNI principle, but I think we may often find that simplest may really be the best, simplest, smallest part that can fit the bill. (I’m sure that last statement will really ruffle feathers, but that’s where I am atm.)

Comments :, , , , more...

Free WPF-LOB Training

by riles on Apr.02, 2009, under News

Karl Shifflett and Jaime Rodriguez will be traveling to Los Angeles, London, New York, Chicago, and Phoenix to teach WPF MVVM for line-of-business apps. If you are interested, you can read more on their training event information and registration page.

Comments :, , , more...

Collective Intelligence with F#

by riles on Apr.01, 2009, under Resources

I’m quite interested in Matthew Podwysocki’s application of F# (and functional programming) to collective intelligence. Have any of you worked in the collective intelligence space? If so, with what languages, and what was your experience?

Comments :, , more...

Jaime Rodriguez on MIX 09 Silverlight News

by riles on Apr.01, 2009, under News

I enjoyed reading Jaime Rodriguez’s thoughts on the Silverlight news from MIX 09. Very good info; however, I still think that most WPF apps will begin moving to Silverlight unless those additional features are needed. In most layered architectures, workflows, et. al. are created and used in the service layer, not the presentation layer. Silverlight as Moonlight is also the only option for Mono compiled apps, and I don’t believe the Mono Project plans on adding WPF in full. So for complete cross-platform re-use, you’ll need to stick to Silverlight.

Comments :, , , more...

Enterprise Library 5

by riles on Mar.31, 2009, under News

Curious about the next version of Enterprise Library? Why not vote on what you want to see? Grigori Melnik has posted the link to a poll where you can help Microsoft prioritize the features you want in Enterprise Library 5. Vote today!

Comments :, , more...

Correctly Naming Patterns

by riles on Mar.28, 2009, under Patterns

JB and I were discussing some of the patterns we were using on our current project today while working on merging some of our disparate (but completely related) code. I had created several classes named XyzBuilder with the intention of actually following the Builder pattern. My final classes are really just Strategies, but I never changed the name (though I’ve meant to do so).

This hasn’t lead to confusion, however, as (a) the “builder” is in fact “building” an object for me so the name is still meaningful and (b) most of my team members aren’t that familiar with using patterns on a daily basis (or they at least say they don’t). I’ve a thought, though, that objects with pattern-ish names should be renamed to either non-pattern names or the name of the pattern they use.

Should the name match the pattern or does it really matter?

Comments :, , , more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...