Friday, September 02, 2011

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 2 – OAuth Authentication. Twitter allows multiple ways to connect to the API. OAuth is one of them and this post is all about how to get OAuth Authentication working using a Silverlight client. This post also demonstrates the use of HTML Bridge to call Javascript function from the Silverlight code. I also make use of the IsolatedStorage to store local data in Silverlight which is used across application start-ups as well as system restarts.

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.

No comments:

Post a Comment

Submit Apache Spark job from Command Line to HDInsight cluster

Background This is the 3rd part of the Step by Step guide to run Apache Spark on HDInsight cluster. The first part was about provisioning t...