Plug-ins and composite applications in Silverlight

Building an application based on discrete pieces (plug-ins) isn’t a new thing. It has been around for ages. Loads of applications support a plug-in model. So, obviously you can do the same using Silverlight. There are even a lot of different ways of doing it. They all have benefits and cool tricks up their sleeve, but they also come with bad things as well. I have decided to take a look at three of the more common ways of handling this whole thing. The first attempt I’m going to show is using the good old “I’ll do it myself” approach. I want to start out in this end, and then compare two other common approaches to the custom built one. This way I feel that you can thorough comparison.

The other two approaches I will show are Managed Extensibility Framework, commonly known as MEF, and Composite Application Guidance, also known as CAG or Prism. And to be honest, I don’t know if the third option should be CAG/Prism or CAL (Composite Application Library), but who cares. You know what I mean…

More...

Software development, action hero style

That is the name of a blog post I have written for Intergen’s blog. And since there is a competition going at the office about who can get the most hits on their post, I would love it if you could head over there and take a look at it. It isn’t as technical as I normally write, but should still give some developers a few things to think about… So head over there and take a look - http://www.intergen.co.nz/blog/chris-klug/dates/2010/3/software-development-action-hero-style/

And yeah…don’t forget to vote… if you like it that is…

Thoughts about the Windows Phone 7 Series

First off, I need to say that these are my personal thoughts. They might contain erroneous information, they might be way off mark and they might be missing out on a lot of things, but this is what I am thinking of the platform at the moment. I also have to mention that however this post will sound, I have VERY high hopes for the phone, and I think that it will be very successful. One should also remember that it is not yet released so a lot can happen, and also that it is the first release of a whole new thing…

Please read the whole thing, don’t just take out small parts of the post. I will try to put down as much of my thoughts as I can in this post, and if you just read parts of it, you will probably get a somewhat distorted view…

More...

MIX10 round-up day 2 – the day after

So…as you may or may not have noticed, I haven’t been posting as aggressively today as I did yesterday…(Well…it wasn’t actually yesterday… I started writing this post when it was yesterday, but got sidetracked and had to continue today, Wednesday). There are a couple of reasons for this. First of all, I have meet WAY too many people I knew to just sit in a corner and write blog posts. Second, I went to the official party last night…which was interesting with about 4000 people attending and only about 50 girls except for the staff…

But anyhow, the yesterday progressed as it should, a great keynote and lots of interesting sessions about the WP7. And even though I have found some gaps in the platform, I still find it VERY interesting. Not to mention that the UI is the cleanest looking UI I have ever seen on a phone. I guess I want to try it before saying it is the best UI, but it looks very promising…

More...

Proof of thought

After my last session, which was about designing applications so that it fits in to Microsoft’s Metro layout, somebody asked why the tiles on the home page of the phone was off center with a gutter at the top and right. The answer was awesome and shows how much thought the design team has put into the layout. Or the guy on stage knows how to bullshit convincingly without any preparation. The answer was simply that the gutters where there for the touch gestures. By having a gutter the user won’t unintentionally start an application when it was supposed to be a drag to move around the screen. The right gutter simplifies scrolling vertically while the top one simplifies horizontal scrolling… As I said, either VERY well thought through or really good BS…

More WP7 info

I have just attended the 2nd WP7 session. This was another 100 level, which means that it just just another run through of the vision and platform and stuff. No dev stuff yet. It did produce some new information though. First, the Silverlight environment on the phone will be a superset of Silverlight 3. That is SL 3 with some SL 4 features and some “custom” stuff. This first surprised me, but it is pretty obvious to be honest. A lot of the new features in v4 extended the offline feature of SL, which won’t be available on the phone anyway.

More...

MIX10 is under way

As some of you might now, I have left Wellington and gone to Las Vegas for the MIX10 conference. I just saw an interesting keynote. However, I felt it being somewhat boring. There were no big surprises. A lot of Windows Phone 7 Series talk, which was to be expected. One of the news that did come up however, is that the dev platform will be made available for free. This is an awesome step. It will enable a lot of devs to try it out without having to commit too much. This will in turn hopefully give us a lot of interesting applications and maybe even lure some non .NET devs into the Microsoft space. One can at least hope…

More...

Codeplex bonanza… OpenXML library hits Codeplex…

As I mentioned in my previous post, the CommandManager has been moved over to Codeplex. But I have actually created 2 Codeplex projects. I decided to also move the OpenXML code, that I blogged about previously, to Codeplex. It is available at http://agopenxml.codeplex.com/. Initially it is no more than a rewritten version of the code I blogged about, but my goal is to extend it as time goes by. Either by creating extensions of my own, or if I am lucky, by including extensions created by other users.

I am currently working on an article for http://www.openxmldeveloper.org/, which will be about implementing Excel functionality using the library. This article will result in code that will be merged with the current code and extend the Codeplex project with basic SpreadsheetML functionality. I will try to get this up on Codeplex as soon as possible, but I am currently on vacation and will go to Mix10 just after coming back to work. So, if I am lucky, it will go online just before Mix10. If not, it will go online just after…

Quick little update…

I just found out that commenting has not been working for a while. Not that I think more than 1 or 2 people have noticed it, but that’s the case anyway. I have now fixed that problem and commenting should be up and running again… Sorry about that!

On another note, I know I have not posted a lot lately, but I have been on vacation and when I got back to work I had a pile of things to take care of. The good thing is that there will hopefully be a bunch of posts going online soon as I am heading to the MIX conference in Las Vegas on Saturday. I start off by helping out on the Azure lab (or watch Chris Auld in action…) on the Sunday and then follow that up with LOADS of Windows Phone 7 Series !@&%£* that is long…It will probably turn into WP7 real quick) sessions. I will also attend a “train the trainer” thing for the Windows Phone 7 Series. So hopefully I will be able to tell you all about how it is developing for Windows Phone 7 Series devices real soon.

The CommandManager that never dies…and ends up on Codeplex…

The other day, a reader called MAX pointed out to me that the CommandManager has a major flaw. It stores all commands in a static list. This keeps the garbage collection from working as it should, as the commands are always referenced. The commands in turn reference the controls that use them. So the CommandManager actually keeps any control that uses commanding from being GC:ed. So, because of this, I have changed the CommandManager code once more. This time however, I have not just added some information here and posted the new code for download. Instead, since the CommandManager seems to never die, I have put it on Codeplex making it available at http://agcommandmanager.codeplex.com.

The CommandManager never dies? …have I forgotten about Silverlight 4? No, not at all. Silverlight 4 has a bit of commanding built into it. It supports binding ICommands to Command properties on some controls, such as Buttons. This is great and will definitely limit the need for the CommandManager. The CommandManager has one thing that Silverlight 4 does not have. It supports binding ICommands to more or less any event. So if anyone needs this kind of flexibility, the CommandManager is the way to go…