MVVM Light Toolkit Pitfalls on Windows Phone 7 and How to Avoid Them

mvvm-light I’ve been leaning heavily on Laurent Bugnion’s MVVM Light Toolkit framework in the course of learning Windows Phone 7[footnote:If you're interested in developing for Windows Phone 7, you can download all of the development tools for free from http://developer.windowsphone.com/] development for my work as a developer evangelist at Microsoft. It’s a fantastic framework and it does an excellent job of enabling SOC in Windows Phone 7 application development.

However, during some of my experimentation with the framework I’ve run into some initially puzzling development pitfalls that I wanted to share and demystify.

These pitfalls might also apply to vanilla Silverlight and WPF in general, but my experience has been with Windows Phone 7 development so I’ll qualify these pitfalls accordingly:

Pitfall #1...

Read More

MVVM Light Toolkit Example on Windows Phone 7: Twitter Search

I wrote this example in conjunction with the lightning talk I gave at SHDH #40 on MVVM for Noobs, and I thought that developers who are new to developing in Silverlight or for Windows Phone 7 might benefit from it.

One of the major issues I had in moving from ASP.NET MVC to MVVM in Windows Phone 7 was learning how to let go and let Silverlight do a lot of the heavy lifting for me, particularly in the area of data binding and managing the life cycles of your business objects.

Please take a look at the attached source – I’ll be writing up a follow-up post with some specific learnings in the near future.

mvvm wp7 twitter search.zip (471.88 kb)

Read More

SuperHappyDevHouse Lightning Talk: MVVM for Noobs

I'm at Microsoft's Silicon Valley Campus this weekend where we're hosting SuperHappyDevHouse #40 - I'm going to be giving a lightning talk on MVVM for Noobs in the next hour or so and I wanted to post my presentation online as I think some of you might find it to be of some use. My presentation is largely focused on the MVVM Light Toolkit for Windows Phone 7, and I really struggled to grasp MVVM when I first started developing for WP7 largely because of some long-held views I brought over from ASP.NET MVC and tried to force upon Silverlight and MVVM.

This presentation should help shed some light on how to get some of the...

Read More

Quick Interview about BizSpark at DEMO 2010

I'm attending DEMO 2010 this week up in (somewhat) sunny Santa Clara, and during the early parts of last night's social media lounge event some members of DEMO's social media team shot a quick interview with me regarding Microsoft's BizSpark program. If you're not familiar with BizSpark then you should watch my interview as it gives a pretty good overview of what the program is about, in my humble opinion :p

If you're interested learning more about Microsoft BizSpark or if you'd like to get involved, you should message me on Twitter or send me an email!

Read More

Powered by Microsoft

I alluded to a change in my employment circumstances in my previous blog entry, and now that I'm an official Microsoft employee as of Monday I feel extremely comfortable making this information public.

My role is Developer Evangelist for the BizSpark program; Microsoft recruited me for this position after they read .NET Culture Shock: Why .NET Adoption Lags Among Startups and the rest, as they say, is history. I've relocated to the Santa Monica area and my immediate task is to work on increasing goodwill towards Microsoft and the .NET platform among the startups in southern California; it's a prospect that is exciting, daunting, challenging, and mind-blowingly awesome all at once.

If you're involved with startups in SoCal then I will make it my mission to meet you and find a way to help you should you require it. If there's anything I can do to help you, please feel free...

Read More

How to Attract Ambitious Employees to Your Company

Today was my last official day at SmartDraw – I’ve worked for this great company for two years and saying all of my goodbyes was bittersweet.

Were it not for the fact that my new employer graciously dropped an irresistible opportunity at my feet[footnote:I'll make a public announcement about it after I start, which is soon.] I would have been happy putting in another couple of years there and I would have loved to watch it continue to grow into the large company that it will be some day.

You don’t expect to get trophies for leaving a company and moving onto a different job, but oddly enough that’s what literally happened today. My boss took it upon himself to host a happy hour at a local chain restaurant to wish me farewell along with my co-workers. Thirty minutes into the celebration he stood up next to myself and...

Read More

10 Harder-to-find-than-they-should-be Answers for Silverlight Beginners

I’ve been teaching myself WPF / Silverlight as part of my next big project at StannardLabs: a line of trivia games for WinMo7 / Android / iOS phones. It’s mostly an exercise for learning how each of those platforms work, how they differ, and some of the application marketing differences on each platform.

In the process of learning Silverlight 4, the most recent version of Silverlight for which few guides or books exist, I’ve built a list of the top ten answers I wish were easier to find when I started learning Silverlight.

I was unable to quickly find answers on these subjects perhaps because I was using the wrong lexicon or perhaps these are things that professional Silverlight / WPF developers consider to be too “obvious” to be worthy of inclusion in any of their books or blog entries.

Well to make it easier for all of you,...

Read More

My Talk at BarCamp San Diego: How to Create Applications People Love

I showed up at BarCamp7 this morning and saw that absolutely no presentations were up on the board whatsoever, so me being me I spent most of the day putting together a presentation at the last minute.

I spoke for an hour about How to Design Applications People Love. I’ll add more to this post later after I decompress with some TV, but here’s my PowerPoint:

All in all, it turned out really well – I’ll try to update this post with some more detail tomorrow.

Update 7/13/2010

Ok, here’s the run-down of my talk:

...

Read More

BlogEngine.NET Extension: Footnotes

I finished this extension up last night but I was reluctant to deploy it to my own blog given that there was a major flamewar in progress on my recent post about Why .NET Adoption Lags Among Startups. Having actually tested this extension on that very post, I feel confident sharing my latest BlogEngine.NET extension with you: Footnotes![footnote:A lot of credit is due to Ruslan Tur for his awesome blog post on How to Create a Custom Plugin for TinyMCE. I used his code as a basis for developing my own plugin and he's quite masterful with both C# and JavaScript.]

Once you've installed it, all you have to do to add a footnote is to click on the new "footnote" button visible on your TinyMCE text editor:

Once you click it you'll see a pop-up window - just type in whatever you want[footnote:Actually, not WHATEVER you...

Read More

.NET Culture Shock: Why .NET Adoption Lags Among Startups

One of the other things I took away from Code Camp was a bit of .NET culture shock. As you can tell by glimpsing around on this blog, I am somewhat enamored with the idea of starting my own business. I’m a natural entrepreneur and it is my wont to think about startups constantly.

That being said, I’ve always wondered why a platform as widely adopted and supported as .NET isn’t more visible in startup culture. Many major open source  platforms and languages have very visible and vocal presences in the startup community, everything from mainstays like Python and PHP to even the more obscure and specialized ones like Clojure and Hadoop.

.NET on the other hand is conspicuously absent from the startup conversation despite the fact that it is a singularly larger platform than any of the others.

It’s like there’s a silent majority among the development...

Read More

P.S. Get the latest from Aaronontheweb

Have my most recent essays and articles delivered directly to your mailbox.