I want to give a quick introduction to something I've been working on lately, the TweetZenn client. This is a Silverlight application I've been building to provide access to twitter (and eventually many other social networks). I'm intending it to be a tool that allows you to not just construct tweets, but also to use and browse the various social networks to find information. I've also built it to hone some Silverlight skills ;-)
Far as I know, this will be the first production twitter client in Silverlight. I really think this offers many advantages over other clients in the types of features that it will be capable of providing. The first release will likely just focus on Twitter, but Facebook is in the works, as well as several other social networks. Overall I look at this not as just a Twitter client, but as an overall tool for managing collaboration within multiple social networks.
So, where is this for your access? Well, it's not quite available yet as I'm still working out a couple of kinks in the base implementation, but I'll throw a couple of screen shots out here to whet appetites...
The login screen:

If you look closely, you'll notice that this is Silverlight 2.0, in Flock, on Mac OSX, and it is rock solid. If you know me, I build and run on Mac exclusively (albeit in a Windows 7 VM on OSX).
From this screen you will be able to login using your twitter credentials (and eventually that of other networks). There is a little hint in the picture above of some of the functionality. There are the things that you would expect from a twitter client, such as a tweet stream that updates when new tweets are found, favorites support, searching, making your own tweets, reviewing your created tweets, ... I've gone with a panel / stack metaphor which seems to be the rage, but I expect to provide a bunch more "views" as time goes on.
Here are a few other snapshots of various functions, although I warn that these may change before this goes live:
The following shows the your tweets and recent tweets panel, as well as a little of the browser:

The panels can be moved around, and we also support multiple pages of panels if you would like that.
Once of the features that we have is the ability to form groups. This is quite easy using either a hot link in the tweet, or using the group panel. For example, here I assigned Jeremy Miller to the .NET group, and you can also see he is instantly added to the 'members' of .NET in the group panel.

One of the things TweetZenn has that others don't is the ability to browse the social network to review peoples tweets and potentially follow them.
Here I'm showing the use of the .NET group to show only the people I follow in that group, and to be able to on the spot review their tweets just by clicking on their picture:
If you want to see who Jeremy is following, you can click on a button in a popup (when hovering on his head), and you will be shown that information:

You can view the tweets of any of Jeremy's friends, and if you want to follow them you can just follow them by clicking the appropriate button in the popup. Notice that Jeremy now shows up at the top. It keeps track over where you've been so you can go back there at any time.
This has been just a brief introduction, and as usual I'm writing this while trying to get on a plane (seems I blog the most from airports). I'll explain more over the upcoming days, including explanations of how this works as well as showing some of the code as I'm leveraging all kinds of neat stuff like web services, LINQ to SQL, isolated storage on the client, caching on both the client and server sides, full separation of view from model with XAML, dynamic changing of visual representation through XAML templates, asyncronous everything, and much more....
Stay tuned!
f2667eac-c22e-42af-a2f4-72773cb81e5b|0|.0
If you've ever worked with Silverlight applications that accept user input, you've probably dealt with setting focus to various controls. In that case you may know this already. If you haven't then this should definitely save you some hassles.
There is an issue with Silverlight having their controls receive initial focus. As an example, take a look at the following silverlight application. This is the first page of the application and it has a text box that I would like to have the focus currently in:

I've actually called the TextBox.Focus() method in the load event of this UserControl, but it doesn't have the focus. What gives?
Well, the problem turns out to be that the Silverlight object in the HTML itself has not received the input focus from the browser, and hence the control in the Silverlight app do not receive the focus as it is somewhere else in the browser. As a matter of fact if you click anywhere on the Silverlight app (lets say in the gray areas) the browser will give the Silverlight control the focus, which then gives it to the specified text box.
So how do we enforce that the Silverlight application receive focus from the browser when it is started? That turns out to be quite simple and involves just a couple lines of JavaScript in the web page serving the Silverlight application:

What you do is add the OnPluginLoaded event property on the silverlight control, and put the script shown as in the head tag. Net time (and every time from now on), your control will get the focus when the application starts:

Yeah!
195712ca-4def-4984-89ca-82d0e9f424d1|0|.0