Developing on Staxmanade

What do when Silverlight is missing some Base Class Library (BCL) functionality?

If you're doing any Silverlight development you've probably run into the problem "some method/property/functionality I'm used to using doesn't exist in the core framework" provided by Microsoft.

What are your options?

  1. Write the logic yourself (you just might have to)
  2. Use reflector on the full framework to see how it's done and attempt to (go back to step 1. )
  3. Or one I've been using lately. Take a look at the Mono project.

DISCLAIMER: I'm not very familiar with much of the legal side of this option, so I highly recommend understanding Mono's licensing before going too far with their source.

However it's still a great source for learning how to implement something that was tucked away in the full framework's BCL.

And, with the power of Google, you can easily find what you're looking for...

Let's give an example:

Say, for instance, you need the IsNested property off of the System.Type object. The Silverlight version doesn't have that property, so let's go find out how it's implemented in Mono.

enter in a google serch: (we'll limit the search to the mono project's exposed svn site)

 

site:anonsvn.mono-project.com System.Type IsNested

The second link down is the one we want.

image

Then you can click on "View" in the "Links to HEAD"

image

And you end up looking at the .cs file source for System.Type. Just look in the page for the IsNested property and presto...

 

I'm beginning to love open source and the advantages it provides to the community as a whole. Thanks Mono.