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.
One of the posts listed in the index provides a full source download
for the application. Introduction
This is the first in a series of blog posts based around an application called Task-It that I have developed in Silverlight 4. Task-It is real-world application designed for people that need a simple way to manage the numerous tasks that we all strive to accomplish on a daily basis. Figure 1: Task-It Tasks page Figure 2: Task-It Dashboard page
I have developed this application for several reasons:
- There are many task management applications out there, and I have used quite a few of them, but I haven’t found one that really ‘grabbed’ me. Many of these applications had their strong points,but some were overly complex, some lacked key features, some cost too much money, and so forth. I thought it would be nice to identify the best parts of each, and take my stab at building my own.
- During my evaluation of task management applications, I have not yet found one built in Silverlight.
- Building this application in Silverlight 4 is good way to showcase some best practices in the areas of technology and user experience design, leverage the latest that Microsoft has to offer, and leverage the richness and power of Telerik RadControls for Silverlight.
- To provide guidance to other developers that are interested in Silverlight and Telerik’s Silverlight control set, as well as those that are already using both. Having said this, Task-It is far from perfect. It is a version 1 release developed by a single developer. It will continue to evolve over the coming months, as will the techniques I use to make it tick.
Whether you are new to Silverlight or you have been dabbling with through each of its major releases, you are probably either very intrigued with the technology, or you are convinced (as I am) that this is the future of web application development. However, it is almost impossible to not be intimidated by the fact that this technology is moving very quickly, and that there is a boatload of information out there that surrounds it. A simple Google search on ‘Silverlight’ is proof of that. Just keep in mind that this is not a bad thing. If there was very little information, you’d be wise to choose another technology…right?
My first experience with Silverlight was at Tech Ed 2007. At that time it wasn’t much more than a media player, but already I could ‘see the light’. I knew that Microsoft had plans to grow this into a rich platform for the development of web applications…and I was hooked!
So, if you are going to dive deeper into Silverlight (or even if you already have), you’ve undoubtedly had numerous questions around what the best way is to implement a LOB (line-of-business) application? You can spend weeks and months plowing through hundreds of blog posts, videos, webcasts, etc. trying to figure out the answers. What you will find is that there are a myriad of different opinions and approaches to various problems that you want to solve (and a lot of information that is already very out-of-date). You’ll also come across mention of numerous frameworks, open source projects, and things like MVVM, Prism, MEF, WCF RIA Services, DI (Dependency Injection), IOC (Inversion of Control), TDD (test-driven development) and so on. Wow, this is a lot of stuff to grasp, and there is more and more every day! Is this a mistake? Should you turn back to whatever technology you are currently using and hope that this technology fails? Yikes, but what if this technology takes off and you’re caught behind the times? As we all know well, keeping up is one of the keys to staying employed in this industry.
I’d be willing to bet that just about every person has experienced these thoughts…I know I certainly have, and to be honest, occasionally still do. But as I mentioned before, I truly believe that Silverlight is the future of web application development, and as my level of comfort with these frameworks and terms has increased, my level of excitement continues to grow. I know that I am riding a very exciting wave into the future…and it’s a very good thing.
The Road to Silverlight
Just to give you a little background, I have been developing web-based applications for 13+ years in technologies such as ColdFusion, JSP, Java Swing, ASP, ASP.NET, and now Silverlight. Over these years I have worked a lot of hours, and to be honest, wasted a lot of time battling things that I felt should’ve been a lot easier to accomplish than they were. Along the way the development team I was a part of often had a product release coming up that was running behind schedule, and management was asking the developers to put in ‘that extra effort to get us over the finish line’. If you haven’t been there, you probably just graduated last week.
So, does anyone really enjoy being in that position? I can’t say that I have, and over those years what usually stood in my way was the technology I was working with. Things that seemed like they should be easy just weren’t. I’d be in a situation where the web application I was producing seemed like it was really coming along well, when all of a sudden the next version of IE came along, or the next version of Firefox, or Google came out with their own browser…and suddenly everything went south. The app that looked great now looked horrible, and it was back to working weekends. More time was spent fixing bugs than actually developing new features. Been there, done that?
Only two languages…really?
“How would you feel if you could develop rich, compelling web applications with cool user interaction like you see on those iPhone commercials, and you only have to know 2 development languages? Oh, and what if you could build these apps without having to spend months making them look the same in IE8 on Windows, IE7, IE6, Firefox 3 on Mac, Google Chrome, etc., etc.?”
Intrigued? Yeah, you should be. This is the way life should be. You build a cool application, your boss and your customers are happy, and you can actually go home and spend time with your family at night. Almost sounds too good to be true doesn’t it?
With Silverlight, you can develop an application in 2 languages. XAML is the language used for layout (this is the Silverlight equivalent of HTML). When it comes to the other language you have a choice, but the one most commonly chosen is either C# or VB.NET. You can certainly introduce more languages to your application, but in many cases 2 languages will do just fine. Of course, most applications will require database access and will require skills surrounding that layer (SQL, stored procedures, etc.), but that may or may not be part of your job as a developer.
Can it really be that easy?
Well, truthfully, not entirely. Nothing is perfect, and every technology has its shortcomings and challenges. However, Silverlight is not a version 1 product. Version 4 is fast approaching…and love ‘em or hate ‘em, nobody has more experience with putting this stuff together than Microsoft. I know, some folks don’t trust them, but this is a new generation, and Silverlight is not a Window-only technology. It produces applications that can run on multiple platforms and browsers. We’re not just talking IE on Windows here .The times, they are a changing.
Silverlight is not perfect, and as with any technology there are some things that you wish could be a little easier to pull off than they are, but nothing in this world is perfect, and Microsoft is moving at breakneck speed with this technology. Things are getting better every day, and we as developers can truly reap the benefits. Good software will never write itself, if it did you and I would be looking for a new line of work, but I honestly believe that with each day that approaches the time spent on developing applications will be focused more around producing a rich, compelling user experiences than battling cross-browser CSS issues and bug fixes.
I’m not just an employee…
By the way, I became an employee of Telerik in early January of 2010, but prior to that I had been a Telerik customer for more than 4 years. I have used Telerik controls in ASP.NET, ASP.NET AJAX, Silverlight and WPF projects for 4 different employers over that period. Along the way I evaluated and utilized several 3rd party .NET control sets and chose Telerik because of their quality, support, and features. So as I continue to blog about the use of Telerik controls in the products I am developing it is not simply because the company is signing my paycheck, it is because I honestly believe that incorporating Telerik controls allow me to produce applications that are better and richer in a shorter period of time.
Keep an eye out for MEF
One of the frameworks that I did choose to leverage in the development of Task-It is MEF (Managed Extensibility Framework). I’ll be posting some blogs later this week about how I used it for dynamic XAP loading and maintaining state in Task-It, so please keep an eye out for those posts.