NGTweet Silverlight learning series
Some time back I started working on the Silverlight client for Twitter. This was named NGTweet. Here is a collection of all the posts related to NGTweet series.
Part 1 – TweetSharp. This is the first part of the series which starts with the groundwork of using a third party API called TweetSharp to connect to Twitter. We display the tweets from the public timeline.
Part 3 – Theames. A simple way of standardizing user interface using the concept of theme. I am using the Themes provided by Silverlight Toolkit. I am using the ExpressionBlendDark theme.
Part 4 – Control Templates. A very important feature of Silverlight which allows the controls to be extended and enhanced as per the user requirements. An example of extending the Listbox control.
Part 5 – Refactoring NGTweet. A step towards restructuring things. I refactored the code with a set of unit tests, abstracted the IsolatedStorage, integrated MVVMLight toolkit, deployed application to IIS, unit tested View Model and added test data using NBuilder.
Part 6 – Value converter. This is an example of separating the concerns related to the view and representation of the data. A convertor can be used to elegantly display data whose representation is different from what is presented to the user in the view or the presentation layer. In this demo, I have shown how to display a date time value in relative time i.e. internally the value is stored as a date time object itself. While representing it on the GUI, I am showing time relative to the current time in terms of seconds, minutes, hours, days etc.
Part 7 – Decoupled communication between View Models. MVVM Light is one of the very lightweight framework. Its very simple to use and it offers some of the powerful features. One such feature is to decouple the communication between view models. This post demonstrates the use of Messenger class from MVVM Light toolkit.
Part 8 – Data Validation using IDataErrorInfo. In any Line of Business (LOB) application validating input is a very integral part. Silverlight offers IDataErrorInfo interface which is very straight forward to use. A small demo of using IDataErroInfo to validate user input.
Part 9 – Data Triggers. This post demonstrates the use of Data Triggers using Microsoft.Expression.Interactions dll. There is no default support for Data Triggers as of Silverlight 4.
Part 10 – Data Templates. Data Templates offers us a way of centralizing styles in one place similar to the CSS Styles in HTML. Data Templates are equally powerful as CSS.
Part 11 – Silverlight 5 PropertyChanged when using UpdateSourceTrigger. This post demonstrates the new feature available in Silverlight 5 with regards to Data Binding. This is an extension to the data validation post done earlier in Part 8 of the same series.
Part 12 – Styles in Silverlight. Styles are similar to data templates. They are used for styling the visual elements in the user interface.
Part 13 – Implicit Styles. In part 12 we saw how to apply common settings to visual elements using Styles. Silverlight also supports implicit styling which can be applied to all the controls across the application. We do not provide a key for the style which results in the style being applied implicitly to all the target elements. This features is used by the Themes provided by Silverlight Toolkit like the Expression Blend Dark Theme which I have been using in this series.
Part 14 – Extend styles using BasedOn. Many times we want to apply the same style in two different places with just a minor change like in case of a normal textbox and a read only text box. We might need almost the same settings except for one or two values. In such cases we can create a style with the common settings and extend it for specific cases using the BasedOn approach.
Part 15 – Silverlight Tooltip Service. Tooltips are a common way to display context based information. They are supported in all types of graphical user interfaces. This post shows how we can make use of the Silverlight Tooltip service to display tooltips.