A few weeks ago Johannes Jauch (one of the CEOs of Axinom – the leading .NET solution provider in Germany) asked me if I would like to do a workshop on Windows Media Center development in Romania. Nothing special, since this is what I do mostly – supporting corporations as well as individuals – I aggreed and started to prepare for the workshop – actually I did need to check whether I need a visa for Romania… sounds easy right? But I tell you, if somebody is complaining about the opening hours of german departments, take a look at the opening hours of the romanian consulates! They open at 9.00AM and close the doors at 12AM – how nice is that?
However, their email responses are pretty good – so I after days of trying to reach somebody at the consulate, I dropped an email and surprisingly I received and very informative response – telling me that I don’t need a visa – woohoo!
I informed the necessary people and booked my flight – a few days later I was on the road to Brasov (Romania).
Arriving in Bukarest after a short flight (2:20hrs), I thought I could pass the passport check quickly – but unfortunately the federal police had a few questions.
However, I was still good in time – of course I had only hand baggage.
But because I could pass through so quickly, I couldn’t find the ordered driver (Victor) - however he arrived at the airport a few minutes later and we started our trip to Brasov. Victor picked me up with a nice car - a ~2007 Mercedes Benz E-Class. On the road we talked about politics, cars, women, the industry in Romania, the second world war and corruption - of course a wide range of topics but if you sit in the car for more than 2 hours, you need something to talk about.
After arriving in Brasov and checking in at the hotel, I visited the company and met the developers – a group of smart guys with a lot of vitamin C#. We talked about Windows Media Center in general and their current project for the IFA trade show in Berlin (Germany). The IFA trade show is important – it’s the worlds leading trade show for the general public – major consumer electronics brands present themselves at this unique event. A showcase for innovation and the technology of tomorrow – coupled with a spectacular programme of entertainment events. I was however, suprised how much they already got up and running – which in fact was good, because we could than move to specific questions and try to solve those or find the right direction to go.
There were some questions or topics that I face very often when talking with developers… let’s list a few of them:
- Light samples - Z and Q applications are nice but in addition of complete samples, customers want encapsulated samples to learn one specific feature (like the Repeater or the VirtualList). One solution per sample/feature would be nice.
- Model/View seperation - Projects have proven that it makes sense to have a ViewModel between your View (MCML) and Model (.NET/Data your application will “use”). Why? -> encapsulated responsibilities, ability to test UI behavior (unit testing), clean code structure, etc. Inside the ViewModel you can prepare your data from the Model for easy access from the UI (MCML), keep UI related states and more.

- UI design guides – customers want samples to learn how to implement an UI concept they have received from a Designer.
- Promote exisitng UI classes (Choice, ArrayListDataSet, etc) - This is what I see very often… developers don’t notice these great exisiting classes, like the Choice or VirtualList class – instead they use generic lists or even worst they start writing own classes because generic lists don’t cover their needs (ChosenIndex, …). Those classes are very handy (even more if used in the ViewModel).
- Place your “prepared” data in your (View)Model and try to handle everything inside your .NET code… especially state related data - Having helper classes for UI related things in your ViewModel instead pumping up the <Locals> section in MCML documents is much cleaner and of course accessable for unit testing. Also you can handle specific events already in your ViewModel instead of taking an extra round (.NET -> MCML -> .NET).
Overall, regarding the project, I am happy that we could get trough a lot of things or found the direction to go on topics that did need further investigation – hope to see the solution at the IFA when I attend - end of august this year.
Thanks!
Olcay