Monthly Archives: September 2010

Loading files from other places than the XAP package with Balder

One of the more common feature request of Balder has been to be able to load files from anywhere. Although it is a commonly requested feature, there are a whole set of other features that is constantly getting more priority than this. Until tonight.

I had 30 minutes to spare and was able to get it done, at least so anyone can start extending on this themselves.

Balder is using something its calling a FileLoader, defined through the interface IFileLoader. Till tonight, there could only be one FileLoader, and it was defined by the Platform. What I’ve implemented tonight is the ability to define your own FileLoaders.

All you need to do is to implement the interface IFileLoader anywhere in any assembly of your application, just make the implementation public. Balder will discover anything that implements IFileLoader and add it as a potential loader.

In the interface you’ll find one very important property you need to implement; SupportedSchemes. It returns an array of strings that represents the URI schemes that the loader supports. Nevermind the Exists() method for now, it is not being used yet – but will in the near future, so mind it again at a later stage. 🙂

The schemes you return should only be the name of the scheme, without the “://” part of the URI. When you then want to assets into Balder, either in your Xaml or programatically, you just create the assetname as follows : “://”. For instance, if you were to create a WCF loader :

[code:c#]
public class WcfFileLoader : Balder.Content.IFileLoader
{
public Stream GetStream(string fileName)
{
// Do magical WCF calls and return a stream
}
public bool Exists(string fileName)
{
// Do some more magical WCF calls and return wether or not the file exists
}
public string[] SupportedSchemes { get { return [] { “wcf” }; } }
[/code]

The filename would then be something like : “wcf://my3DModel.ase”.


Loading files from other places than the XAP package with Balder

One of the more common feature request of Balder has been to be able to load files from anywhere. Although it is a commonly requested feature, there are a whole set of other features that is constantly getting more priority than this. Until tonight.

I had 30 minutes to spare and was able to get it done, at least so anyone can start extending on this themselves.

Balder is using something its calling a FileLoader, defined through the interface IFileLoader. Till tonight, there could only be one FileLoader, and it was defined by the Platform. What I’ve implemented tonight is the ability to define your own FileLoaders.

All you need to do is to implement the interface IFileLoader anywhere in any assembly of your application, just make the implementation public. Balder will discover anything that implements IFileLoader and add it as a potential loader.

In the interface you’ll find one very important property you need to implement; SupportedSchemes. It returns an array of strings that represents the URI schemes that the loader supports. Nevermind the Exists() method for now, it is not being used yet – but will in the near future, so mind it again at a later stage. 🙂

The schemes you return should only be the name of the scheme, without the “://” part of the URI. When you then want to assets into Balder, either in your Xaml or programatically, you just create the assetname as follows : “://”. For instance, if you were to create a WCF loader :

[code:c#]
public class WcfFileLoader : Balder.Content.IFileLoader
{
public Stream GetStream(string fileName)
{
// Do magical WCF calls and return a stream
}
public bool Exists(string fileName)
{
// Do some more magical WCF calls and return wether or not the file exists
}
public string[] SupportedSchemes { get { return [] { “wcf” }; } }
[/code]

The filename would then be something like : “wcf://my3DModel.ase”.


Book review : Microsoft Silverlight 4 and SharePoint 2010 Integration

MicrosoftSilverlight4AndSharepoint2010I’ve been reading a book on a subject that is halfway interesting to me; at least the Silverlight part of it. 🙂 Its written by Gastón C. Hillar, you’ll find it here.
The book is not a beginners guide to Silverlight or SharePoint, you are required to have some background with both technologies to be able to get full joy from the book.

Even though, SharePoint is not something I normally do or find that exciting, I must admit that after reading it, Gastón has triggered me a little bit. I like the way he writes, and how he introduces things at the right pace.

What I found great about the book is that if you’re a SharePoint developer, you’ll get a lot great value from this book – you’ll learn a lot about the new concepts in SharePoint 2010, and also get a pretty good introduction to Silverlight development. Holding Silverlight closer to heart, I must admit I paid more attention to this.

From a Silverlight developer point of view, with little experience in SharePoint, I felt I could have had more details about SharePoint. But then again, the goal of the book is not to make you learn either of the technologies, but to actually learn how to use them together.

The book goes into detail about how to use the new object model for SharePoint, and how you can programmatically take advantage of all the features of SharePoint through this model. It explains in detail from the beginning how to get started to more advanced subjects. It goes into details about scalability, asynchronous UI capabilities in Silverlight and how to take the best advantage of the model.

The only two things I really find a bit negative in the book is that some concepts felt that could have a bit more explaining, plus I personally could have used a bit more indepth on some of the SharePoint things. But all in all, I think it was worthwhile reading it and would recommend it for anyone who wants to learn more about using Silverlight inside Sharepoint.

Rolling the dice for this one, gives the following:

 

Jumping the gun on 0.8.8.9 of Balder

Its over a month ago I announced 0.8.8.9 of Balder coming along. That after having 2 week iterations on releases. Its the case of “just want to get that feature done”, “just want to fix that bug”, combined with a lot of other work, non-Balder related, thats causing a delay.

Meanwhile, the source is in constant move and a lot has happened since 0.8.8.8.

Hopefully, next week will see the release of the new version.


Windows Azure – Introduction course

This fall I've been asked by Microsoft to hold a free introduction course in Windows Azure. Its a subject I find very interesting and really looking forward to be talking about.

The date is 5th of October and will be held at Microsoft Norway in Oslo.

I'll also have deep dive courses later this fall and winter, but I'll have to get back with details on when that will happen.

Anyways, save the date and register online already today here.