I attended the Minnesota Developers Conference (MDC 2010) yesterday in Bloomington, MN. A nice dose of conference-motivation–some good speakers talking about great technologies. In the FWIW category, here are my lists of takeaways for the talks that I attended.
1. Keynote – Rocky Lhotka (Magenic)
General overview of development landscape today, especially focused on cloud computing and the use of Silverlight. Takeaways:
- We’re finally getting to a point where we can keep stuff in “the cloud”, access anywhere, from any device
- Desire to access application data in the cloud, from any device, applies not just to consumer-focused stuff, but also to business applications
- Smart client apps, as opposed to just web-based, are important/desired – intuitive GUI is how you differentiate your product and what users now expect
- HTML5 is on the way, will enable smart client for web apps
- Silverlight here today, enables smart clients on most devices (not iPhone/IOS)
- Silverlight/WPF is ideal solution. You write .NET code, reuse most GUI elements on both thick clients (WPF) running on Windows, and thin clients (Silverlight) running web-based or on mobile devices
- I didn’t realize that I have in common with Rocky: working on teletypes, DEC VAX development, Amiga development. :O)
- http://www.lhotka.net/weblog/ , @RockyLhotka (Twitter)
2. WPF with MVVM From the Trenches – Brent Edwards (Magenic)
Practical tips for building WPF applications based on MVVM architecture. What is the most important stuff to know? Excellent talk. Takeaways:
- MVVM excellent pattern for separating UI from behavior. Benefits: easier testing, clean architecture, reducing dependencies
- MVVM is perfect fit for WPF apps, very often used for WPF/Silverlight
- MVVM perfect fit for WPF/Silverlight, makes heavy use of data binding
- Details of how to do data binding in MVVM, for both data and even for command launching
- How to use: data binding, DataContext, Commanding, data templates, data triggers, value converters. (Most often used aspects of WPF)
- Showed use of message bus, centralized routing of messages in typical MVVM application. Reduces coupling between modules. (aka Event Aggregator). Used Prism version.
- Slide deck – http://www.slideshare.net/brentledwards/wpf-with-mvvm-from-the-trenches
- http://blog.edwardsdigital.com/, @brentledwards (Twitter)
3. Developer’s Guide to Expression Blend – Jon von Gillern (Nitriq)
Demoing use of Expression Blend for authoring UI of WPF/Silverlight apps. Also demoed Nitriq/Atomiq tools. Takeaways:
- Blend not just for designers; developers should make it primary tool for editing GUI—more powerful than VStudio
- Lots of tricks/tips/shortcuts – he handed out nice cheatsheet – http://blog.nitriq.com/content/binary/DevelopersGuidetoBlend.pdf
- Very easy to add simple effects (e.g. UI animations) to app elements to improve look/feel, just drag/drop
- Nitriq – tool for doing basic code metrics, summaries, visualize code, queries that look for style stuff. (Free for single assembly, $40 for full )
- Atomiq – find/eliminate duplicate code, $30
- http://blog.nitriq.com/, @vongillern (Twitter)
4. Introduction to iPhone Development – Damon Allison (Recursive Awesome)
Basic intro to creating iPhone app, showing the tools/language/etc. From a .NET developer’s perspective. Takeaways:
- You have to do the dev work on a Mac—no tools for doing the work on Windows
- The tools are archaic, hard to work with, much lower level than .NET. (E.g. no memory management)
- In many cases, consider creating web-baesd mobile app, rather than native iPhone. But then you wrestle with CSS/browser issues
- Worth considering creation of native iPhone app for the best user experience
- Lots of crestfallen-looking .NET developers in the audience
- http://www.recursiveawesome.com/blog/ , damonallison (Twitter)
5. A Lap Around Prism 4.0 – Todd Van Nurden (Microsoft)
Showing Prism—a free architectural framework written by Microsoft, came out Patterns and Practices group. Good for creating extensible apps, with plug-in model. Takeaways:
- Leverages MEF (Microsoft Extensibility Framework)
- Good for apps where you have the idea of a lot of “tools” that plug into main application architecture. Or for applications made up of various building blocks.
- You write application modules that are decoupled from main app framework, loaded on demand.
- Prism on Codeplex – http://compositewpf.codeplex.com/
- http://www.spoke.com/info/p5rAVze/ToddVanNurden