Task-It Series
This post is part of a series of blog posts and videos about the Task-It (task management) application that I have been building with Silverlight 4 and Telerik's RadControls for Silverlight 4. For a full index of these resources, please go here.
Finally...the code
I've received many questions about when the source code for the Task-It
application will be released. Well, the time has finally come.
I
haven't been able to release this sooner due to the flurry of releases that
have been coming out lately. Silverlight 4, WCF RIA Services, and even
our Q1 Rad Controls. Each time I got the latest bits I ran into issues
(either bugs or visual issues) in the Task-It that needed to be fixed.
Having said that, the app is far from perfect. There are still some
bugs lurking and things that need to be fixed up visually (especially
the RadGridView filtering popup), but the main purpose of this app is
to show the RadControls for Silverlight 4 in the context of a
real-world application, and I don't want to keep delaying the release
of the source code.
Minimum requirements
To run
the app you will need the latest Silverlight bits. Silverlight 4 RTM,
VS2010 and the Silverlight Tools for VS2010. I've also tried to make
things lay out properly at a minimum resolution of 1024x768, but to be
honest I get pretty used to laying them out on my monitor...which runs at
1920x1080. If you run it at 800x600 there are some things that may not
lay out so well.
Custom styling
One thing you'll
notice is that I've created a custom 'look' for the application. You
may not be a fan of user interfaces that involve primarily black
backgrounds, but my plan is to eventually have multiple skins
available. What I have found in the last year of working with
Silverlight app development though is that custom skinning is not for
the faint of heart. It can be extremely time consuming getting things
to look just as you'd like, and just when you have it right, a new
release comes out that blows everything out of the water.
This is a
piece of Silverlight that I think could be made a lot easier, and I
have had some conversations with the Silverlight development team about
this. Hopefully it'll get easier in the future. Oh, and one other
thing, the custom skinning that I did is by no means a 'complete' skin.
I didn't test things like control appearance in the disabled state, I
didn't skin every control in the Telerik suite, etc., etc....so please
don't take this as a new Telerik skin! :-)
I'll admit that most of my development is done in VisualStudio, so if you open things in Blend you won't always get the correct appearance (most strings will not show up). A lot of this has to do with the fact that the view model classes that are the brains of the app are created dynamically by the MEF framework. I'm still working on this piece, and hopefully John Papa's View Model Locator pattern will be answer. I'm just trying to figure out how to implement it in the context of an app that includes multiple Silverlight Applications (the Tasks, Settings, Dashboard and Help project are each a separate Silverlight App that are dynamically loaded via MEF).
By the way, I'm not opposed to Blend, I just haven't had much luck with custom styling in it. For some reason I always seem to get a little ways into it, get stuck, and have to jump out to VisualStudio to examine the control template and understand how it is put together. One of these days hopefully I'll have time to really sit down with the latest version of Blend and get to the point where I am as comfortable in it as I am in VisualStudio.
The database
Unlike my previous posts the database lives in the App_Data folder under the .Web project. The web.config connection string is currently set to use .\SQLEXPRESS, so you may need to update that if your database instance name is different.
DLL security issues?
If by any chance you get warnings about security issues with dll's that were downloaded from another machine, go to the Libs directory under the Task-It project (on your file system, not in VisualStudio), right-click each of the 3 dll's in that directory and click the Unblock button in the bottom right section of the dialog.
More blogs to come...
Please
keep an eye on my blog or follow me on Twitter (@rwozniak) as I will
continue blogging about techniques and technologies used in Task-It.
Please let me know if there are any particular topics you would like me
to blog about. Oh, and please let me know what you think of the app and
the code (and if you find bugs...I may or may not be aware of them). I'm always open to suggestions for improvement!