26
Feb

Cloud computing redefines Enterprise Computing in ways beyond client-server model and web computing and is a talk of the town recently. Cloud computing extends beyond the concepts of distributed, grid and utility computing abstracting the infrastructure and technological expertise needed for common day to day services.

Cloud computing is an emerging trend in IT world seeking to change the concept of personal computing and taking it to a new level of computing available as a service. Services available for computing are broadly categorized into Software as a Service (SaaS), Utility computing, Web services, Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). It is being estimated that spending on the cloud would increase three fold in next three years

Knowingly or unknowingly, each of us have used cloud computing from last few years with almost every Internet user using public email services, storing personal photographs for sharing with friends and families, socializing via the cloud and many more.

Obvious benefits that the Cloud brings are

· Low initial investments. Pay as per usage model lets one get started without any initial investment.

· No maintenance. Cloud Vendors would bear the complexities of maintenance.

· Instant resource expansion. Firms could easily scale from little to huge resource consumption in few minutes.

Am I ready to jump on Cloud bandwagon?

Key considerations are:

· Architecture and Design overview

· Cost Effective analysis.

· Capacity Planning

· Operational Issues

· Security

· Data ownership governing laws

· Green IT

Determining ROI on Cloud Computing

Architecture and Design overview

Current software architecture and design needs to be reviewed to check if it scales to allow computing on the cloud. This includes determining data security isolations with access controls; trust boundaries and identifying business critical data. It also caters to understanding data operations and storage trends within an organization.

Cost Effective analysis.

Software licensing charges, data center costs, infrastructure needs and maintenance, high availability of mission critical data determine the costs. Cloud computing does bring in cost benefits; however it also brings in additional costs in terms of bandwidth needs.

Capacity Planning

Identifying utilization of various resources like CPU, data storage capacity, network bandwidth and evaluating if they are optimally used. There is no need to jump to the cloud if the existing resources are under used.

Operational Issues

High availability depends on the expected uptime defined for system requirements. The cost of each additional nine of availability can grow exponentially.

SLAs are the negotiated terms that outline the obligations of the two parties involved in delivering and using a system, like:

· System type (virtual or dedicated servers, shared hosting)

· Levels of availability

· Uptime

· Serviceability

· Performance and metrics

· Billing

Understanding the risks involved in downtime of the system may critically impact the business and mission critical systems need to be mitigated by tight SLAs.

Security

Data security is determined by Cloud vendor’s security policies. Data security is measured in terms of:

· Physical access to data

· Backups

· Network security

· Access and Authentication procedures.

· Data encryption techniques.

Data ownership governing laws

There are currently no clear International laws governing the privacy and security of the data posted over the cloud. Governments tend to preview stored data to gather intelligence under national security laws.

Green IT

The Green Grid consortium estimates that most data centers have a power usage effectiveness (PUE) ratio of between 1.3 and 3.0.5 A PUE of 3.0 means for every 3.0 watts of electricity entering the facility, only 1.0 watts is used to support computing activities (i.e. servers) while the other 2.0 watts support other infrastructure (i.e. cooling).

Cloud computing promises efficient energy consumption and appropriate utilization of resources.

Key Cloud Vendors:

Amazon’s cloud – Amazon Web Services (AWS) provides Simple Storage Service (S3) as a Storage Virtualization solution in IaaS model, Elastic Compute Cloud (EC2) as a Platform Virtualization in PaaS model and Simple Queuing Service and SimpleDB as software solutions in the SaaS model.

Google’s Google App Engine is a solution in the PaaS model allowing developers to float Python based applications and host them at Google’s infrastructure.

IBM Computing on Demand (CoD) offers Infrastructure services with variety of Operating Systems and Networking solutions and Storage Services in IaaS model.

- Anand Ved (Team Member – Cloud Computing Project)

28
Dec

Industry Needs

In today’s world of economic upturns and downturns, IT world is seeking tight financial control over organization needs for infrastructure management and would want to move out of investment in assets that would deprecate in terms of value in the near future.

Currently any IT organization invests into hardware and software that would turn obsolete in few years down the line. More over it involves costs to maintain these hardware with upgrades, cost of supporting infrastructure like electricity, coolers, high availability needs, scalabity, faster processing speeds, data center costs, bandwidth costs, RAID and backup needs adds to the expenditure wallet. Other maintenance costs involves upgrades and updates of softwares – licensing and patching, protection of data loss and anti-viral solutions.

Inspite of investing, the utilization of the infrastructure varies and usually does not reach the optimal levels of cost-effectiveness.

The Solution

As there is an old saying - Necessity is the mother of all inventions. Big players in the corporate world came up with an answer – Virtualization; to cap down the costs of small and middle level organizations and still run the competitive marathon.

With solutions like VMware, Sun VirtualBox, MS virtual server, it became easier to address these issues.

What is virtualization?

Virtualization is a cost-effective solution to high maintenance and infrastructure costs, demands to scale and upgrade hardware and software horizontally and vertically to meet the ongoing dynamic needs of infrastructure.

How is the game played?

The big players like Amazon, Microsoft, IBM provide virtual infrastructure in the cloud. They have the capability to bulk invest in hardware with high end servers, huge data centres, bulk licenses and cost-effective utilizations of infrastructure. The investment costs thus are reduced and distributed in quantity. They take over the headache of patching, upgrading, fixing, scaling, software and hardware managing data security and backup and adhere to SLAs.

This gives organizations to focus right on the business needs and not to worry about the needs of infrastructure. The infrastructure costs are reduced to minimum with almost any infrastructure available on demand in a span of minutes.

Virtualization Technologies

Server Virtualization

With high end servers supporting capabilities of running multicores and memory in TB, they are capable of running multiple apps in the same box. Server virtualization helps manage different environments parallely with reduction in administration and maintenance costs to a single box. It helps quick system recoveries, lesser physical space occupancies, power and cooling requirements.

Server Virtualization makes it easy for the server to be migrated from one virtual machine to another irrespective of the hardware capabilities of the machine provided they use the processor from the same manufacturer.

The physical server is called the host server and the servers running virtually are called guest servers.

There are 3 ways to create virtual servers:

  • Full virtualization: Thisis a virtualization technique in which each guest server is unaware of the other on the same host providing complete independent running server capability with it’s own OS.
  • Para virtualization:  In this technique the guest servers are aware of each other and the entire set of servers work as cohesive unit.
  • OS-level virtualization: In this technique the guest servers do not require any software to run and the virtualization is managed by host OS. However, here all the servers need to be running the same OS.

Virtualization is achieved with software called Hypervisor

Storage Virtualization -Storage Virtualization separates the logical storage of data from physical storage.

With increase in data capacities reaching up to Peta Bytes, organizations face the dilemma to whether accrue more storage space or to store data in the cloud. Storage services are available from Amazon and Yahoo and online backup services available from Egnyte, XDrive, Adrive, Box.Net, Sky drive at a very cheap costs, it is becoming increasingly easy to move data over the cloud. Moreover, the data is easily accessible from anywhere over the internet and backing up of data, data protection and security and scaling of data storage is passed over to the service provider.

Networking Virtualization - Combination of hardware and software network resources into single software-based administrative entity is network virtualization. Network virtualization involves External and Internal virtualization.

External Virtualization involves connecting physical networks in different locations over VLAN and on a same network switch such that resources in each network can interact with resources of the other.

Internal Virtualization involves in creating a network in the box. Network Virtualization software provides pseudo interfaces such as VNIC and Virtual switches.

This allows isolating each application in it’s own sandbox improving efficiency of the overall system.

Desktop Virtualization - Desktop Virtualization is a concept of separating a personal computer desktop environment from the physical machine. These virtual desktops are stored on a remote server and accessible via remote client technologies. This allows all programs, applications and data stored separately thus allowing access to desktops from any capable client.

Deciding to Virtualize or not

Operational Issue

OS upgradations like fixes, patches, anti virus updates, spyware scanning etc are operational day to day tasks that need to be taken care of on each VM.

CPU Usage

Servers requiring high processing power should be left in their own world. Virtualizing them would mean disaster while a high end server with very less CPU usage may be considered for virtualization.

Disk space usage

Multiple servers on host system means sharing of resources including disk space.

Migration

Ease of migration of virtual server should be considered to reduce downtime and allow server maintenance.

Data Security

The level of data security that is needed would be a major factor in deciding to go for virtualization. Isolation of business critical and private data should be considered.

SLA

There are SLAs for virtualization services provided by hosting organizations. However, there are lot of factors that drive the SLAs and the onus of responsibilities like bandwidth, network connectivity etc.

Legal Bindings

Laws binding data privacy are still not in black and white and legal rights are bounded by the laws of the respective countries where the data is physically stored.

Summarizing, there are various pros and cons in virtualization technologies. To virtualize storage and desktop on the clouds is a wait and watch game at a moment until few of the major issues are addressed. Virtualization is definitely here to stay though and it would be great to use it in your own private organizational cloud.

Players in Virtualization Software

VMWare, Sun VirtualBox, FreeVPS, Microsoft Virtual Server, Parallels, Qemu, SWSoft, Virtual Iron, Virtuozzo, Xen

- Anand Ved (Team Member – Cloud Computing Project)

11
Dec

The speed with which mobile technology is evolving is beyond remarkable. So much, that you may in fact, be viewing this post on your mobile. Gone are the days when you would have a mobile phone solely for the purpose of connecting with your friends & family. Now, you can connect with 300 million+ users on Facebook, listen to the latest music from Last.fm, view videos on YouTube etc. all using your ‘handheld’ device. The list of can-do’s is endless. What goes on behind the scenes is the collaboration of developer minds, striving to stretch technology, constantly redefining benchmarks to create services & applications that make life a whole lot easier.

While the success of social networking is undeniable, lifestyle & Location Based Services (LBS) have helped users to simplify their needs & achieve them; locally & globally. However, the process of satisfying user needs in a constantly changing environment requires a thoughtful understanding & analysis of the changing trends which has been successfully catered to. There is no doubt that there exists a challenge of providing quality applications to a variable audience with innumerable preferences. We have accepted this challenge, acknowledged the pros & cons & delved into bringing out the best solutions.

The iPhone is known to deliver ‘eye candy’ experience with its UI, having the user to touch & pinch to use applications. Having said that, many applications fail to utilize the potential of the iPhone, unable to handle development challenges. Given below is a little insight into some of these challenges.

Developer’s Eye View:

  • The iPhone runs only one foreground application at a time, so launching any other application requires terminating the currently running app.
  • Responding to interruptions like incoming calls, messages etc. is important because if the user decides to take a call or reply to an SMS message, the system proceeds to terminate the application.
  • Low-memory warnings are critical. If not enough memory is released – perhaps because the application is leaking or still consuming too much memory – the system may terminate the application.
  • Being a touch driven device, the controls of the application need to be placed with some thought.
  • The iPhone screen is precious as it is the component with which users interact. An application with a crowded screen may deviate the user’s attention much like in a real life market place.
  • An applications UI view differs when the iPhone is held in portrait or landscape mode. Tap’s drags, and swipes are simple gestures, typically involving only a single touch. Handling a touch event consisting of two or more touches is a more complicated affair. In addition, the iPhone generates motion events when users move the device in a certain way, such as shaking it. It is necessary to prevent the application from responding in an unexpected (and unwanted) manner in response to such events

Now let’s take a look at how one can avoid getting into the possible sticky situations given above:

  • It is imperative that an application should terminate as usual, saving any needed contextual information to return the user to the same place (if required) in the application upon next launch (or re-launch).
  • Adhering to Apple’s Human Interface Guidelines saves a lot of confusion & gives well designed interfaces.
  • Handling events, implementing event cancellation etc. correctly, prevents the app from being left in an inconsistent state.

These & many more underlying intricacies can very well determine the chances of an app being realized. Adapting to this one button device, we have delivered attractive, feature rich applications that meet App Store standards & have satisfied users looking to be part of changing lifestyle trends.

-Anup D’souza

24
Nov

Enterprise software is now going mobile. More and more work, which needed your presence in office/home, can be done on-the-go. With introduction of addictive UIs on smart phones, the market for Mobile based Software has grown into a new niche.

Smart phone applications can be categorized in to Native Applications and Web Applications. Native apps are downloaded on the device may or may not require internet connectivity. Most of the games and utilities like calculator, unit-converter fall in this category. Web Apps are applications that run on the device’s inbuilt browser. It does not need downloading, but requires continuous internet connectivity in most cases.

Both types of applications on Mobile can be developed by following these interdependent life cycle stages:

1. Design: A typical smart phone dimensions of 320×480 gives a very limited real estate to stuff-in the amazing functionalities they can support. Designers really need to master the art of small.

Native

The design needs to be in alignment with various UI standards and can closely follow Human Interface Guidelines(HIG) from Apple. Though they have defined it for iPhone, many of them in my opinion are pure common sense. Hence, HIG is applicable for all devices, specifically for the Native apps. The smart-phone vendors (RIM, Apple etc.) have gone a long way in providing standard and useful applications to their users via their own app-stores.

Web Based

In web based application development, for multiple devices for e.g. for iPhone and Blackberry Bold, design issues need to be taken care at the CSS level. For lower versions of Blackberry though UI has to be generated by a different code set.

2. Server side: APIs not only cater to web based mobile applications, native applications too need to shift the data intensive computation to server side. So there is not much difference between the server side programming for Web and Native apps. Bringing website functionality to mobile is not mere reuse of APIs. It involves optimization of existing APIs for performance. It may also involve revisiting the code for adding device specific checks, abstraction and exception handling etc.

3. Client side: iPhone, Blackberry, Android, Windows Mobile, Symbian have their own SDKs for development of Native Apps. While iPhone requires experience on Objective C and Mac OS, Blackberry and Android can be handled by Java developers while Windows mobile application can be created using Visual Studio 2008.

Native

Advanced hardware like inbuilt camera, accelerometers etc can also be harnessed for making the mobile application feature-rich – like Auto-orientation, motion based gaming etc. The inbuilt GPS and assisted GPS can be leveraged for creating location based services. Though a plethora of applications are already providing LBS, I find it to be a tip of the iceberg. Adding LBS can make a lot of applications information rich, for end users as well as for vendors, distributors and advertisers.

Web Based

Web based applications on almost all devices, sparing iPhone in some cases; do not need specified SDKs for development. The major issue for web based apps is handling the large number of device-browser combinations that a user may use. What works for IE on BB may not work for FF on the same device. To resolve the issue of developing and maintaining code for different devices XHTML-MP is gaining wide popularity among developers.

4. Testing: Other than functionality and UI related testing, Mobile app QA requires testing for performance and connectivity related issues.

Native

Mobile software requires to be tested in real (non-simulated) Wi-Fi, GPRS, 3G etc. with different service providers. Something that works on AT&T may be blocked by T-Mobile. Also, an internet savvy application may behave differently in different geographies. Based on expected usage, the application should be tested for all the geographies. One may take assistance from www.deviceanywhere.com.

Web Based

Web apps always need to be tested on variety of browsers (Mobile browsers) for rendering issues. iPhone supports Safari, while BB supports IE and Firefox and also has it’s own browser. Rigorous manual testing can reveal functionality glitches and alignment issues. Generally for all types of browsers, testing and debugging using Firebug and HTTP watch can be quite helpful.

One should plan the development of mobile applications with these distinct yet interdependent processes in mind. It should really help in developing a standard application in minimum time.

-Ujjwal Trivedi

17
Nov

Over the past decade the explosion of Social Networking sites like Facebook, MySpace and Twitter has drastically changed the way how people interact socially. Social sites are playing a key role in building social graphs, sharing information and fostering innovation. The spectrum of its usability has grown widely since its inception, from users just building profiles and making friends to businesses using it for branding & interacting with their consumers, recruitment firms to find potential employees, science communities for exchange of ideas, non-profits for spreading social good and by students & teachers as a communication tool.This growth in its usability is due the hundreds of millions of active users together spending billions of minutes everyday on these sites building profiles, making status updates, uploading photos and building social graphs making them information rich.

While these sites have built some of the best tools on the world wide web, the opening up of their product to developers via APIs in the past 3 years have spawned “developer ecosystems” that build applications over popular services like Twitter and Facebook that help a person do everything from network with travelers to play social online games. Given below is a brief of 3 Social Networking Developer Ecosystems that would help you to better understand your options.

1.    Facebook
Facebook launched the Facebook platform in May 2007 for application developers that provides a framework to develop applications that would render within facebook.com and interact with core Facebook features.  Simultaineously a markup language called the Facebook Markup Language(FBML) was also introduced that is used to give applications the Facebook “look and feel”  and hook into several Facebook integration points, including the profile, profile actions, Facebook canvas, News Feed and Mini-Feed.  Since then, tens of thousands of applications have been built on top of the Facebook platform. Later on, Facebook Query Language (FQL) was introduced that allows you to use a SQL-style interface to  query Facebook social data without using the API. While most platforms force developers to use iFrames if they want to embed javascript within the application, Facebook answered this question with the introduction of FBJS that allowed developers to manipulate markup on the fly, animation and AJAX making applications more dynamic. Today, Facebook has over 350,000+ applications that play a critical role in maximizing Facebook’s active user base. Being the most popular application on Facebook, “Farmville” currently has over 60 million monthly active users.

In late 2008, Facebook announced Facebook Connect that allows developers to let users login to their websites with their Facebook credentials. It even allows other Facebook features, like your friend list and friend invite features to be implemented on your website, which can in turn send data back to Facebook as News Feeds. With over 15K websites already utilizing Facebook Connect, it has now become a must have feature for every social website for 2 main reasons : (1) Users do not have to go through the process of registering on your website if they are a Facebook user, your website can directly pull info from the users Facebook profile and (2) Your web site gets tons of exposure on Facebook as the users actvities on your site get posted to his Facebook profile.

Facebook has even gone a step further in encouraging developers by introducing the fbFund where developers can submit their applications to qualify for investments to grow their venture.

2.    Twitter
Twitter is one of the best examples of an very Open API and has provided developers a opportunity to build a full-fledged business by using it. Within a short span of time this ecosystem has transformed into a mainstream phenomenon with the development of Twitter apps that do everything from managing your twitter profile to analyzing tweets for real world trends. The Twitter API is nothing but a simple service that provides RESTfull access to the Twitter database and activity streams. Twitter initially started of with the basic authentication by which developers send the users credentials in the header of the HTTP request. But this being insecure and difficult to track hence in early 2009 they integrated the OAuth pattern of integration into the REST API permitting users a seamless experience of login into a 3rd party website using their Twitter account.

Twitter lacks many features in its pursuit of for simplicity and this gives openings to developers to fill the holes. Currently around 80% of Twitter’s usage is via 3rd party apps. and the Twitter API has 10x the traffic of its website. Twitter does not have 300+ million active user but it has momentum, excitement and virility which can cause your application to go from zero to a million users in a matter of days or weeks. Twitter is fast growing and new features are getting added regularly, requiring your application to adapt to it at the same time. A major problem with the Twitter ecosystem is its stability, so you have to make sure that your application doesn’t break and throw heaps of code when the API is down.

3.    MySpace
MySpace first got into the platform party by teaming with Google and a number of other social networks against the Facebook platform and releasing OpenSocial in November 2007, which were a set of API’s that would make applications interoperable with any social network system that supports it. The patnership spearheaded an initiative to standardize and simplify the development of social applications. Later on in early 2008 MySpace  independently launched the MySpace Developer Platform(MDP) that supports the OpenSocial model to enhance the overall experience of users through the development of Social Applications.

MySpace has undertaken a recent expansion of their platform through the MySpaceID project. MySpaceID provides Developers the opportunity to access user identities within the context of third-party environments. The main components of the MySpace platform are pretty similar to that of Facebook, but since MySpace supports the OpenSocial model the same application can be ported to any other social network with just a few minor tweaks to the code. With just around 15k apps in the MySpace apps Gallery and just a few websites integrating with MySpaceID, the Facebook ecosytem emerges as the clear winner in this case.

No doubt that these 3 ecosystems are the best and most established but they aren’t the only ones. Networks like Bebo, Yahoo, Friendster and the recently launched Google Wave have opened up their set of API’s that would allow you to reach millions of users through your applications. All these platforms are fast-growing and frequently-changing for the good, so as a developer even though you have a lot of choice with the ecosystems, it is suggested that you pick one ecosystem that you are a big fan of and program for it as keeping pace with all the ecosystems would be a real challenging task.

- Royston Olivera

13
Nov

The process of learning continues forever. It’s a process that we undergo every day. When this process of learning gets engaging, innovative & informative, the outcome often serves as a springboard into the knowledge pool.

One such learning process, rather, program was Springboard conducted by Xoriant. The initiative that began to impart knowledge to individuals during testing times culminated in Springboard.

Springboard is conducted over a period of 6 weeks, the sessions being held on weekends for 7 hours each day. The session is divided into two parts, a decent break separating them. Different topics are covered in each part, but, if required, in depth teaching on important topics occupies the entire session. Topics covered range from Architecture, Implementation, QA, Software Engineering etc. to those that are quite nascent in the software industry and not actively covered by various educational/coaching institutes but important at the same time such as mobile application development.

The session is unique in its own right as the process of knowledge transfer from the faculty of professionals; to students who want to make a good head start in their careers is conducted in a manner very much differentiable from conventional teaching methods. Practical sessions are conducted as required to ensure a firsthand experience of the technical & programmatic skills needed to encourage & sustain a good thought process in software development. The student-tutor interaction is given special attention & that has helped the students make the most out of the learning process.

Bundled with effective teaching & good practical training is a short project at the end of it all; assigned to the students to put to use all that they have learnt whilst giving full freedom to their creative thinking. On completion; the project is assessed by a technical panel & important informative feedback is given to the students as a helping hand to fill the voids that are known as “room for improvement”. Feedback in the form of suggestions, etc is also sought from the students so this program evolves and becomes better with each session. Certificates are given out to the students on successful completion of the program.

Overall, the program is handled with utmost professionalism, without the thought of it being a social initiative acting as a launch pad for many young IT professionals.

– Anup D’souza

29
Oct

Adobe Flash vs. Silverlight 3

Till now ‘Adobe Flash’ has been the de-facto standard for most streaming activity be it CNET, You Tube or BBC. We find that most of the times Adobe Flash player fails to deliver speed, audio capability, and video consistency. Microsoft promises to break these shackles by introduction of Microsoft Silverlight 3.0. Some advantages of Silverlight 3.0 over Adobe Flash

· Silverlight supports the WPF animation model, which is not only time based instead of frame based, but lets you define the start and end conditions , it will figure out how to get there for you. No need to deal with matrixes like in flash. Also no need to calculate positions on various frames. It just works.

· Silverlight lets you embed true type font information directly into your projects, and download that information with the downloader object.

· In addition to supporting a rich set of development languages (VB.Net, C#), debugging too has become relatively simpler.

· XAML is declarative while ActionScript is imperative. Using imperative languages to build UIs goes back to the early days of DOS and Windows, when developers had to manage all of the API nuances when interacting with graphical panes.

· Silverlight does not require video codec to run industry standard videos like .WMV

· Silverlight supports scalable video formats from HD to mobile and Hardware-assisted editing and encoding solutions. It also supports Scalable full screen video.

· Silverlight provides End-to-end server and application platform.

Moonlight = Open Source Silverlight 3

After coming to spotlight recently for donating around 20,000 lines of code to open source community, Microsoft has started with the open source foundation called ‘CodePlex’ (not to confuse this to their open source code sharing website of the same name).

This being the driving force behind an open source implementation of the Silverlight browser plug-in called Moonlight. Moonlight which is based on Mono (an open source implementation of .Net) is being jointly developed by Microsoft and Novell to:

  • Allow Silverlight applications to run on Linux
  • Offer a Linux SDK(software development kit) for Silverlight applications
  • Use the existing Silverlight engine to develop desktop applications.

Like Silverlight, Moonlight manifests as a runtime environment for browser-based rich Internet applications (RIAs) and, similarly, adds to animation, video playback and Vector Graphics capabilities. Developers are also creating desktop Widgets called “dekslets” to extend Moonlight applications beyond the browser.

Silverlight is not only emerging as competition to Flash, but is also revolutionizing browser plug ins with continual changes. 

Watch this space for more ……..

— Pranav Deo

23
Oct

Microsoft Silverlight 3 is a cross-browser, cross-platform, and cross-device plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. It extends the web development experience far beyond the limitations of plain HTML and JavaScript. Silverlight with its short hist ory of three versions now also includes many new features and functionality.

Silverlight has definitely raised the bar for browser plug-ins and development environments. Unlike Flash, Silverlight offers us a real IDE, true separation between design and development (the best designer isn’t necessarily the best programmer, and vice versa), real programming languages, and an efficient, high-performance, almost infinitely versatile browser plug-in.

Interesting features of Silverlight 3

· Fully supported by Visual Studio and Expression Blend

This massively changes the way a programmer looks at the code. There is negligible learning required with regard to programming language. A C# programmer can certainly write a code behind and easily create a XAML. Visual Studio 2008 incorporates designing a Silverlight application up to a certain limit, but designers looking for profound ‘looks’ can definitely seize help of an advanced IDE like ‘Expression Blend 3’ to create a attractive looking Plug-in.

· Out of Browser support allowing web applications to work on desktop

The Out of Browser support in Silverlight 3 enables developers to create Silverlight applications which can run both inside and outside of the browser.  By making some minor level changes to APPMANIFEST.XML, an application can be successfully run out of browser.

· Significant graphics improvements including 3D graphic support

Perspective 3D support in Silverlight will now allow developers to use 2D elements to create a 3D experience.  Perspective 3D is also a great way to better utilize screen real estate making the application user interface immensely attractive.

· Smooth video Streaming

Silverlight Streaming are services that allows users and developers to host their Silverlight content and apps with Microsoft, taking advantage of their extensive global network of datacenters and their content delivery network. Best of all, this service is free, and while currently it is only in alpha it allows users to upload up to 4GB of content, and to stream up to 1 million minutes of online video delivery at 700kbps of around DVD quality.

· Improvement in RIA development productivity

Silverlight 3 has over 60 high-quality, fully skinnable and customizable out-of-the-box controls such as charting and media, new layout containers such as dock and viewbox, and controls such as autocomplete, treeview and datagrid. Attention-grabbing element being that these controls come with nine professional designed themes and the source code can be modified/recompiled or utilized as-is. This means less development time and better looking app.

Silverlight has certainly made RIA simpler & as Microsoft puts it, it can surely “Light up the Web”

— Pranav Deo