Thursday, February 18, 2010

Dot Net Spider . Com


How are you doing?

I recently visited, which is a very good site for knowledge sharing. The most attractive feature of the site is, it has a revenue sharing program in association with Google. When you post any content or share your knowledge through various sections like Discussion Forums, 90% of the revenue generated from Google Advertisement in those pages are shared with the authors.

Since the revenue sharing program is approved by Google and the revenue is paid to members directly by Google when it reaches certain minimum limit, this is a very reliable program to earn some pocket money during your free time.

If you plan to join this site, please use my user id (nishikant945) as the referrer since I will get paid for the referral as well.


Saturday, February 13, 2010

Happy Valentine's Day !

 "A man reserves his true and deepest love not for the species of woman in whose company he finds himself electrified and en-kindled, but for that one in whose company he may feel tenderly drowsy."
- George Jean Nathan
 "I was about half in love with her by the time we sat down. That's the thing about girls. Every time they do something pretty... you fall half in love with them, and then you never know where the hell you are. "
- J. D. Salinger
Tomorrow is Valentine's Day. So, I just want to wish you all Happy Valentine's Day. Love is in the air. njoy this special day with your special one !

Nishikant K

Google Wave Preview

Hi All,
Preview of Google Wave is available. The preview is available thorough invitation only. So, If anyone wants to preview Google Wave they can leave their Mail ID and Name in the comments. I will send you the invitation to preview Google Wave

Nishikant K

New 'Buzz' word from GOOGLE

Everyone must be knowing about the new 'Buzz' word from Google.It's an awesome add-on from Google. It's similar to twitter. In addition you can 'Buzz' about the places on Google maps, plus you can add websites like 'Twitter', 'Flickr', 'Blogger', 'Picasa' etc so that your updates on this sites are also available on one central location 'Buzz'. I have not explored it fully just started using it today and it's really cool. Another good add-on  from Google.
" Happy Buzz-ing "

Friday, February 12, 2010

My first encounter with Silverlight

I joined TCS on November 2008 as a Fresher. We had to undergo two months ‘Initial Learning Program’ (ILP) training. The phase I of my ILP (basic training) was at Trivandrum and the second phase (technology training) was at Pune on Java/J2EE. The phase I of my ILP was awesome, had never been before to Kerala. It is really ‘God’s own country’ and I thanks TCS for conducting my first phase of my training at Trivandrum :-). After completion of first phase of training, we had 15 days time [paid holiday :-)] to join the base branch (Pune) for second phase of training. The second phase of training was also good. After successfully completing both the phases of ILP, we were now ready to join the project. My mind was flooded with thoughts like will I get a project (as it was recession time), will I get a billable project [I joined as a Fresher :-)], will my friends also get the same project etc. Finally, after waiting for a period of 7 days [yes, I know 7days of bench period is very less and that too at the time of recession it’s negligible, but for a ‘Fresher’ it’s considerable period ;-) ] I got a call for a project [and new thoughts started to flood my mind :-) ]. I was eager to hear about the project, my role in the project etc. Soon there was an end to my eagerness, when I heard that there is one project on Microsoft Office SharePoint Server (MOSS), one on IBM DB2 and one on Microsoft Silverlight. We had a choice to select our project. I was confused on which project should I choose as there was no project on Java/J2EE on which I was trained and If I don’t select any project then I had to be on bench for indefinite time [I was hearing all this technologies for the first time MOSS, Silverlight and DB2 :-) ]. We were given an overview of each project and our role in the project and one day’s time to give our choice. Therefore, I had just one day to select my technology from MOSS, Silverlight and DB2. I had discussion with my senior’s, my college professor’s and even with my sister. The conclusion of all the discussion was to go for MOSS but my heart was saying to go for Silverlight. I do not know why I was attracted towards Silverlight and I end up giving my name for the Silverlight project. After I gave my name for the project, I was regretting a lot why I opted for Silverlight when everyone had suggested me MOSS. Soon this regression ended when I meet my supervisor Harikumar Pillai [I did not meet him actually, as he was working in TCS-Mumbai office, so we had a conversation over call] and my team. Along with me were Aarti, Charika and Vidit as my colleagues and Harikumar as our supervisor, in the Silverlight project. We called our team as RIA team. This is how I got encountered and started with Silverlight.

I feel happy when I think about those days when I used to regret for not choosing MOSS and going for what my heart said.

Thursday, February 11, 2010

Learning Resources for Silverlight

Learning Resources for Silverlight

1. Watch the Getting Started Video
Tim Heuer introduces the concepts and tools needed to get started with Silverlight development from a developers perspective.
2. Read Tim Heuer’s 8-part blog series on getting started
Tim’s blog posts will walk you through the fundamentals of Silverlight and will help you build a sample application along the way. Each step includes source code as well as C# and Visual Basic code for the completed application.
3. Read Scott Guthrie's Blog Post: "First Look at Using Expression Blend with Silverlight"
Read Scott's blog post to understand the key features of Expression as you build a sample application, or watch Jesse Liberty's 3-part video series on the same subject.
4. Read Jesse Liberty's Tutorials
Learn more about Silverlight with the regular tutorial series from Jesse.
5. Silverlight Videos
6. Read Scott Guthrie's Silverlight 3 Announcement and Learn what's new in Silverlight 3

Ge Started - Build Silverlight 3.0 Applications

To get started builing Silverlight 3.0 applications you would need the following softwares,
1. Install the developer tools for Silverlight. If you don't have Visual Web Developer, download both using Web Platform Installer. This will install the SDK, developer runtimes, and Visual Studio project templates. If you already have Visual Studio, download the tools directly (the Silverlight 3 SDK is also available as a standalone download).
2. Install Microsoft Expression Blend 3 + SketchFlow Trial

Expression Blend 3 + Sketchflow allows designers to graphically create UI’s for Silverlight 3 applications.
3. Install Deep Zoom Composer
This tool allows you to prepare your images for use with the Deep Zoom feature in Silverlight 3.
4. Download Silverlight Toolkit
This Toolkit is a Microsoft project containing Silverlight controls, components and utilities that can be downloaded and used in your Silverlight applications. It includes full source code, samples and tests.
5. Download .NET RIA Services
Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. The RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations.

Silverlight Versions

~ Silverlight 1.0
The first version of Silverlight is Silverlight 1.0, which was developed under the codename ‘Windows Presentation Foundation / Everywhere’ (WPF/E) and released in September 2007. It consist of the core presentation framework which is responsible for the UI, interactivity and user input, basic UI controls, graphics and animation, media playback, Digital Rights Management and DOM integration. It consists of the following components:
Input – handling input from devices like keyboard, mouse etc.
UI core – managing rendering of bitmap images (including compressed raster images like JPEG), vector graphics, text and animations.
Media – playback of MP3, WMA Standard, WMV7, WMV8 and WMV9/VC-1 streams.
XAML – to allow the UI layout to be created using XAML markup language.

The first version of Silverlight did not include .Net framework. Therefore, to modify the UI programmatically, we need to make use of scripting language supported by Silverlight, which was JavaScript. Silverlight provides various shapes like line, eclipse and rectangle. It also provides support for text, images, media and animations. In addition, you can make your custom shapes using the basic shapes provided by Silverlight.

~ Silverlight 2.0
Silverlight 2.0 (previously known as Silverlight 1.1) was released in October 2008. Silverlight 2.0 includes a version of .Net framework implementing the same Common Language Runtime version as .Net framework 3.0, so it can execute programs written in any .NET language. Therefore, from Silverlight 2.0, Silverlight supports managed language like C#, VB.NET. The XAML (pronounced as ‘ZAMEL’), which is responsible for defining the UI for the Silverlight application, can now be augmented by a code behind file. The following figure shows the Silverlight Architecture,

The Silverlight platform as a whole consists of two major parts, Core Presentation Framework and .Net Framework for Silverlight, plus an installer and update component.
Core Presentation Framework : Components and services oriented toward the UI and user interaction, including user input, lightweight UI controls for use in Web applications, media playback, digital rights management, data binding, and presentation features, including vector graphics, text, animation, and images. Also includes the Extensible Application Markup Language (XAML) for specifying layout.
.Net Framework for Silverlight : A subset of the .NET Framework that contains components and libraries, including data integration, extensible Windows controls, networking, base class libraries, garbage collection, and the common language runtime (CLR).

~ Silverlight 3.0
Silverlight 3.0 was released in July 2009. Silverlight 3 includes an increased number of controls – including but not limited to DataGrid, TreeView, various layout panels, DataForm for forms-driven applications and DataPager for viewing paginated data. Some of these controls are from the Silverlight Toolkit. In addition, Silverlight 3 includes a navigation framework to let Silverlight applications use the hyperlinked navigation model as well as enabling deep-linking (linking directly to specific pages) within Silverlight applications.
Silverlight 3 supports perspective 3D which enables 3D transformations of 2D elements. These transformations, as well as many 2D operations like stretches, alpha blending etc are hardware accelerated. Custom animations, including transforms and blends, can be created on Silverlight elements using HLSL to make use of pixel shaders. A Bitmap API is provided to let Silverlight 3 applications manipulate bitmaps
UI elements in Silverlight 3 supports element-to-element binding – which allows one element to be bound to the state of another element, as well as a validation mechanism for data binding. Unlike Silverlight 2, which allowed the applications to save files only to the local isolated storage, Silverlight 3 applications can save to any location on the file system via the system Save File dialog. However, the path where the file is saved will still be hidden from the Silverlight application
Silverlight 3 supports Out-of-Browser experiences, i.e., Silverlight applications can be installed to the system for offline access (provided the application manifest is designed to allow local installation) where they run outside the browser. They are launched using the Start Menu or desktop shortcuts, and run without the browser window. Applications can check whether they are running inside a browser or not. When running outside of a browser, HTML interop is disabled. In addition, access to the Function Keys is enabled. Locally installed Silverlight applications still run in a sandbox.
Installed Silverlight 3 applications automatically check for updates asynchronously on every launch and updates are automatically installed. Running instances of the applications are informed when updates are available.

~ Silverlight 4.0
Silverlight 4.0 beta was released in November 2009. The updates in Silverlight 4.0 include,
Tooling - New IDE Visual Studio 2010 and Expression Blend 3.0
Printing API - The most awaited feature in Silverlight. With Silverlight 4.0, you can now provide printing from your Silverlight application.
Localization - Silverlight 4.0 now supports 30+ languages.
Webcam and Microphone support - Silverlight now provides support for Webcam and microphone.
Local File Access - Now you can access the user's local file system (with the user's permission offcourse).
Right to Left Support - Silverlight 4.0 supports right to left display of text.
Other features include Com-Interop, Toast API, MEF etc.

Wednesday, February 10, 2010

What is Silverlight ? Part III

In the Part II, we looked into the presentation and programming model for the web and the need that gave rise to a new technology Silverlight. So Silverlight is a technology that is used to develop RIA (web applications that are similar to desktop application) delivered through the way of browser plug-in. With Silverlight (and AJAX), the goal is to create web applications that are more like desktop applications, and ultimately, to create applications that are indistinguishable from the desktop applications.
"Silverlight is  Cross-Browser, Cross-Platform programmable plug-in for delivering richer user experiences on the net." definition of Silverlight :-) Silverlight was previously known by its code name, Windows Presentation Foundation Everywhere (WPF/E). It runs on all popular browser like IE, Firefox, Safari, Opera, Chrome (Silverlight 4.0) and on various OS such as Windows, Mac OS etc. 

Fig: Silverlight Application event and method handling

Applications that run in the browser typically are made up of HTML.This markup contains the calls to instantiate the Silverlight plug-in. As users interact with the Silverlight application they raise events that can be captured by either JavaScript or .Net framework functions. In turn, program code can make method calls against the elements in the Silverlight content to manipulate it, add new content, or remove existing content. Finally, XAML can be read by the plug-in and rendered. The XAML itself can exist inline in the page, externally as a static file or as dynamic XAML returned from the server.

The main programming interface is the JavaScript DOM API.XAML parsing engine. The parser creates the in-memory XAML DOM for use by the presentation core, which handles the rendering of the graphics and animations defined by the XAML.In addition, the runtime contains the codecs necessary for playback of WMV, WMA, and MP3 multimedia content.Finally, the runtime contains the presentation core, which manages the rendering process. This presentation runtime is built into a browser plug-in that supports several flavors of Windows as well as Mac OS X, using any of several browsers.
After the 3 parts of "What is Silverlight?", hope so that you got an idea about What Silverlight is ?

Tuesday, February 9, 2010

What is Silverlight ? Part II

In the Part I, I talked about RIA. In this part we will look for the need that gave rise to a new technology "Silverlight". The following figure shows the presentation and programming model for the web.
fig: Presentation and Programming model for the web

You can see in the figure, to develop desktop application XAML is used for presentation and .Net framework for programming. The desktop applications have the power of .NET framework. On the other hand, to develop desktop application CSS/DHTML/HTML is used for the presentation and JasvaScript/AJAX/ASP.NET for programming. Although AJAX brings the feel of RIA to the web applications, it is purely browser-server communications i.e it helps to eliminate the flicker [flicker is when you click on some link the page is blank for some time till the data is received from the server.Not the photo sharing site ;-) ] but it does not provide rich User Interface (UI), high multimedia content etc (as XAML does in desktop applications).
Silverlight combines the best of both worlds (desktop and web). XAML is used for presentation and AJAX/.Net framework(from Silverligt 2.0 onwards) for programming. There is a particular value in the combined set of tools, technologies, and services included in the Silverlight platform: They make it easier for developers to create rich, interactive, and networked applications. Although it is certainly possible to build such applications using today's Web tools and technologies, developers are hindered by many technical difficulties, including incompatible platforms, disparate file formats and protocols, and various Web browsers that render pages and handle scripts differently. A rich Web application that runs perfectly on one system and browser may work very differently on another system or browser, or may fail altogether. Using today's large array of tools, protocols, and technologies, it is a massive and often cost-prohibitive effort to build an application that can simultaneously provide the following advantages:
• Ability to create the same user experience across browsers and platforms, so that the application looks and performs the same everywhere.
• Integration of data and services from multiple networked locations into one application using familiar .NET Framework classes and functionality.
• A media-rich, compelling, and accessible user interface (UI).
• Silverlight makes it easier for developers to build such applications, because it overcomes many of the incompatibilities of current technologies, and provides within one platform the tools to create rich, cross-platform, integrated applications.
I think, we are now clear on why there was need for another technology and the reason for the existence of Silverlight.
In the part III we will actually see what is Silverlight?

Monday, February 8, 2010

What is Silverlight ? Part I

The first question that arises when you hear about Silverlight "What is Silverlight?"
It's a new technology from Microsoft to develop next generation Rich Internet Applications (RIA's). Having said that, gives rise to another question "What is RIA ?" The name says it all, Rich Internet Applications. 
Wikipedia definition on RIA,
"Rich Internet Applications (RIAs) are web applications that have most of the characteristics of desktop applications, typically delivered either by way of a standards-based web browser, via a browser plug-in, or independently via sandboxes or virtual machines."
The definition can be summarized as "Web applications that have the features and functionality of traditional desktop applications." Features of RIA include :
High Performance
Advanced Communications

Advantages of RIA include :
Every user interaction does not require request/web server response.
Data can be obtained from server without redrawing entire page.
Combines the best of desktop, web and communications.
Efficiently utilize network bandwidth by transmitting only portion of the data that is changed.

Read more at Wikipedia on RIA.

There are different technologies from different vendors to develop RIA's like AJAX,JavaFX, Adobe Flex/Flash/AIR, Silverlight etc. So Silverlight is a technology from Microsoft to develop RIA. When a user interacts with your site, he should be in control of the site and not the vice-versa. Let me explain, When you click on a link on some web page, the page is blank for some time [ the browser (client) sends the request to the server, the server process the request and sends the data back to the browser (client), this process takes some time ]. For this time the user has to wait until the data is displayed (called as 'Flicker' ). With the help of AJAX, you can reduce the 'flicker'. AJAX is not a new technology but a new way to do the same old things. AJAX is purely a browser - server communication i.e it helps to eliminate the flicker but it does not provide rich UI, high multimedia content etc. To accomplish this, RIA technologies were introduced (JavaFX, Flash/Flex, Silverlight etc). We will discuss this further in Part II.

Welcome !

Hi. First of all let me thank you for visiting my blog.

For a long time I've been trying to start my own blog. But was not able to materialize this plan. But today I am posting my first post on my blog. As the name suggest I will mainly write about Silverlight (as I am strong supporter of Silverlight :-) ) but I can write about anything which interest me. It would be some technical stuff, some CHEAPS [ means 'BAKWAS', offcourse not better than Hardik ;-) ] and some philosophy of life [ not better than Ashish ;-) ].

So I will sign-off now with the hope that you will visit again for the next post (hope so that this is not the last post :-) just kiding )
Nishikant K