50 Important Silverlight Question/Answers

Posted by imomins on April 2, 2013 at 7:50 AM

1. What is Microsoft Silverlight?
• Silverlight is a web based technology, launched by Microsoft in April 2007. Silverlight is considered as a competitor to Adobe's Flash. 
• Silverlight is Microsoft's implementation of a cross-browser, cross-platform client framework that allows designers and developers to deliver Rich Internet Applications (RIA) embedded in Web pages. 
• Silverlight is a browser plug-in approximately 6MB in size; it is client-side free software, with an easy and fast (less than 10 sec) one time installation available for any client side browser. 
• It supports advanced data integration, multithreading, HD video using IIS Smooth Streaming, and built-in content protection. Silverlight enables online and offline applications for a broad range of business and consumer scenarios. 
• One of the design goals of the Silverlight technology is to fill the gap between Windows applications and Web applications in terms of creating Graphical User Interfaces (GUI). 
• Silverlight applications are run as client-side applications without the need to refresh the browser to update the UI. However, because of the built-in .NET framework, Silverlight applications can easily integrate with server-side controls and services. Using Silverlight's implementation of the .NET framework, developers can easily integrate existing libraries and code into Silverlight applications. 

2. Why use Silverlight?
• Support for the .NET Framework – if you are already a .NET developer, it is easy to start programming on Silverlight. 
• Support for managed code – you can write programs in your favorite language which .NET CLR supports like C#, VB.NET, dynamic languages (IronPython, IronRuby). 
• Better development tools -Visual Studio 2010, Expression Blend. 
• Large community- More learning resources available compared to Flash. 
• Integration with Enterprise based technologies like WPF, LINQ etc… 
• Silverlight integrates the XAML declarative language with the .NET framework. 
• It is a cross-browser, cross-platform technology which provides a consistent user experience everywhere it runs. 
• The Silverlight plug-in installs in seconds, and leaves a very small footprint. 
• After you install the plug-in, users no longer need to install anything on their workstations to run Silverlight applications. The applications are available to them from whatever browser they are accessing. 
• It runs a client-side application that can read data and update the UI without interrupting the user by refreshing the whole page. 
• It can run asynchronous communications with the server, allowing the UI to continue to function while waiting for the server response. 
• It delivers rich video, audio, and graphics. 

3. Which platforms does Silverlight support?
• Mac OS 
• Windows Vista 
• Windows XP SP2 
• Windows 2000 
• Windows Server 2003 
• Linux (Moonlight) 

4. Which browsers does Silverlight support?
• Microsoft - Internet Explorer 6, 7, 8 
• Mozilla - Firefox 2 and 3 
• Apple - Safari 3 and 4 
• Google - Chrome 

5. What are the system requirements for Silverlight?
The system requirements for Microsoft Silverlight and associated technologies are listed below.
• Operating System: Windows 7, Windows Vista, Windows XP Service Pack 2 
• Intel® Pentium® III 450MHz or faster processor (or equivalent) 
• 128MB of RAM 
Mac OS
• Operating System: Apple Mac OS X 10.4.8 or above 
• Intel Core™ Duo 1.83GHz or faster processor 
• 128MB of RAM 

• Moonlight 
6. What is Moonlight?
Moonlight is an Open Source implementation of Silverlight, primarily for Linux and other Unix/X11 based Operating Systems. In September of 2007, Microsoft and Novell announced a technical collaboration that includes access to Microsoft's test suites for Silverlight and the distribution of a Media Pack for Linux users that will contain licensed media codecs for video and audio.
Moonlight 2 was released December 17, 2009

7. What are the goals of Moonlight?
• To run Silverlight applications on Linux. 
• To provide a Linux SDK to build Silverlight applications. 
• To reuse the Silverlight engine built for desktop applications. 

8. Is Silverlight free?
Yes, Microsoft has made the Silverlight browser plug-in freely available for all supported platforms and browsers.

9. What is the difference between Silverlight 1.0 and 2?
• Silverlight 1 is purely AJAX and JavaScript based. All the code has to be written in JavaScript and XAML. 
• Silverlight 2 supports managed code. When the Silverlight 2 runtime is installed, it installs a limited version of the .NET runtime on the client machine. This allows .NET programmers to write managed code to be executed on the client PC, and provides a better user experience to users. Of course, there is security restrictions built in to it so that the code has limited access to the client computer. 
• The biggest change is the implementation of the .NET Framework. If you are familiar with Silverlight 1.0, then you will be used to coding the application functionality in JavaScript. You can still implement functionality using JavaScript; however, you can now also implement functionality using C#, Visual Basic, Python, Ruby, and managed JavaScript. 
• Another major change is the introduction of the XAP package. In Silverlight 1.0, the XAML code was referenced directly by the Silverlight object embedded in the browser. In Silverlight 2, however, the embedded object references an XAP package that contains the XAP file, assemblies, and resources necessary to run the Silverlight application.

10. What is the Silverlight plug-in?
• The Silverlight plug-in is a very lightweight component that is necessary for users to access Silverlight applications. The plug-in download and install takes only a few moments, and do not take up much hard drive space. 
• The Silverlight plug-in is responsible for accessing the Silverlight object in the Web page, downloading and accessing the XAP package, setting up the program environment, and beginning execution of the application. 
• When a Web page containing a Silverlight application is displayed, the user should be given a link to download the plug-in from Microsoft if the plug-in is not already installed. 

11. What is Silverlight Runtime?
Silverlight Runtime is a browser plug-in to support Silverlight enabled applications. If the Silverlight runtime is not installed, browsers will not be able to run Silverlight elements in the browser. You can set up your Silverlight tags in such a way that your browser will automatically prompt the user to download and install the Silverlight plug-in when your application is launched in the browser.
Installing the run time is a onetime operation on the client. Once installed, it will be automatically launched when any Silverlight application is loaded in the browser.
Note: Silverlight plug-in and the runtime, both are the same; however, I am giving two definitions here.

12. What is Silverlight SDK?
Silverlight SDK is a set of tools, documentation, samples, and templates for web developers to enable them to easily develop Silverlight enabled applications. The SDK is not really mandatory to develop Silverlight applications; however, the SDK will make development much easier.

13. What are the tools required to develop Silverlight applications?
To run Silverlight applications in a web browser, you need to have the Silverlight runtime installed on the client browser as a plug-in. This is a light-weight version of the .NET runtime.
However, to develop a Silverlight application, you need something more.
Silverlight SDK: This includes a set of tools required to compile and build Silverlight controls.
If you are comfortable writing HTML using Notepad and compiling .NET applications from console tools, then you just need the Silverlight SDK to develop Silverlight applications.
However, most people use some kind of IDE to develop applications faster.
Microsoft offers two separate tools to develop Silverlight applications:
• Microsoft Expression Studio - This tool is meant for web designers to create rich visual elements for Silverlight applications. Expression Studio is recommended for web designers who create rich internet applications with enhanced visual content and graphics. There are several features provided for creating enhanced graphics elements, with lot of options to pick color, font, etc. 
• Microsoft Visual Studio - This is the integrated development environment from Microsoft to develop .NET applications. Programmers can use Visual Studio to develop Silverlight applications which require programming. Visual Studio allows programmers to develop sophisticated Silverlight applications in any .NET language (like C#, VB.NET etc). 
Here are some other tools that you can use:
• Install Deep Zoom Composer - This tool allows you to prepare your images for use with the Deep Zoom feature in Silverlight 3. 
• 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. 
• Download .NET RIA Services - Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. 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. 

14. Which tool to use - Expression Studio or Visual Studio?
If your Silverlight application includes just graphics and visual elements, then you can use Expression Studio. However, if you are a programmer and if your Silverlight application includes programming logic, then you might want to choose Visual Studio.

15. What are the Silverlight versions available so far?
• Silverlight 1.0: Silverlight 1.0, which was developed under the codename Windows Presentation Foundation/Everywhere (WPF/E), consists of the core presentation framework which is responsible for the user interface (UI), interactivity, and user input, basic UI controls, graphics and animation, media playback, Digital Restrictions Management (DRM), and DOM integration 
• Silverlight 2: Silverlight 2 (previously referred to as version 1.1) includes a version of the .NET Framework, implementing the same full Common Language Runtime (CLR) version as .NET Framework 3.0. The XAML markup as well as the code is compiled into .NET assemblies which are then compressed using Zip and stored in a .xap file. 
• Silverlight 3: Silverlight version 3 was released in July 9, 2009, which is an extension to Silverlight 2.0, and mainly provides improvements in graphics capabilities, media management, application development areas (additional controls, enhanced binding support, and out-of-browser functionality), and integration in the designers' Expression Blend 3 tools. 
• Silverlight 4: Silverlight version 4 was released on April 15, 2010 (along with Silverlight 4 tools for developers). 

16. What is a .xap file?
A .xap file is a Silverlight-based application package (.xap) that is generated when the Silverlight project is built. A .xap file is the compressed output file for a Silverlight application. The .xap file includes AppManifest.xaml, the compiled output assembly of the Silverlight project (.dll), and the resource files referred to by the Silverlight application:
• Web pages like .aspx files and .html files use Silverlight components by loading .xap files using the tag in HTML or by using the tag in ASP.NET pages. 
• ".xap" files (pronounced "zap") use the standard Zip compression algorithm to minimize client download size. Rename this file to SilverlightTest.zip and open it using any decompression tool. You can see that this is just like any other zip file, and it includes the project's output DLL and another file called "AppManifest.xaml". 

17. How does XAP work? 
Once you have created the .xap file , the Silverlight 2 plug-in downloads the file and runs it in a separate work space. 

18. How do I use a .xap file? 
A .xap file is used to contain and transfer the assemblies and resources of a managed code application. This managed code application must be run within the Silverlight 2 browser plug-in. 

19. Can we add a reference to a Class Library project in a Silverlight application project? 

No, you can't add a reference to a Class Library project to a Silverlight application project. You can only add the reference of another Silverlight application project inside a Silverlight application project. However, you can add a reference to a Web Service or WCF Service. 

20. What is a Silverlight.js file? 
Silverlight.js is a helper file which enables websites to create advanced Silverlight installation and instantiation experiences. You can call the createObject and createObjectEx functions defined in this file to embed the Silverlight plug-in in a web page. 

21. What is the use of the ClientBin folder? 
The ClientBin folder is used to place the .xap file of a Silverlight application. You can keep it anywhere in your web application, but this is the default location used by Silverlight. 

22. How to change the default page of a Silverlight application? 
To change the default page of a Silverlight application, you need to set the RootVisual property inside the Application_Startup event of the App.xaml file. Collapse private void Application_Startup(object sender, StartupEventArgs e) { this.RootVisual = new MainPage(); } 

23. What is XAML? 
XAML stands for eXtended Application Markup Language. XAML contains XML that is used to declaratively specify the user interface for Silverlight or WPF applications. For example, if you need to display a rectangle, this is the XAML you need to use.

XAML stands for eXtensible Application Markup Language, and is a declarative markup language that follows the XML rule and is used for developing User Interfaces in WPF and Silverlight technology. XAML files are XML files that generally have the .xaml extension, and separates the UI definition from the run-time logic by using code-behind files, joined to the markup through partial class definitions. XAML has a set of rules that map object elements into classes or structures, attributes into properties or events, and XML namespaces to CLR namespaces. XAML elements map to Microsoft .NET types as defined in referenced assemblies, and the attributes map to members of those types. 

24. What is the AppManifest.xml file? 
First, let’s look at an example AppManifest.xaml file: Collapse The first element in AppManifest.xaml is a Deployment node. This node defines the application, and contains the child AssemblyPart nodes. As you can see the AssemblyPart nodes define what assemblies (DLLs) are contained within the .xap file, and give each of them a name. Now, if you look back up to the top, you'll see the Deployment node has the EntryPointAssembly and EntryPointType attributes. The EntryPointAssembly attribute defines which assembly defined below (as a child AssemblyPart node) is the main assembly (DLL) for the application. And, the EntryPointType attribute specifies the class contained within the assembly (DLL), defined in the EntryPointAssembly attribute, is the main class that will be instantiated to start the application. The Deployment node also has a RuntimeVersion attribute that defines the version of Silverlight the application is built for. 

25. What files are contained within the .xap file? 
The .xap file contains an application manifest (AppManifest.xaml) file and all the necessary DLLs that are required by the application. The first DLL contained is the compiled version of your application and has the same name of your application. In my test, I created an application named "SilverlightApplication1", so the DLL is named "SilverlightApplication1.dll". The rest of the DLLs are the dependencies the application requires. 

26. What is app.xaml? 
App.xaml is a file used by Silverlight applications to declare shared resources like brushes, various style objects, templates etc. Also, the code-behind file of app.xaml.cs is used to handle global application level events like Application_Startup, Application_Exit, and Application_UnhandledException (similar to the Global.asax file for ASP.NET applications). When Visual Studio creates the app.xaml file automatically, it creates a few event handlers with some default code. You can change the code appropriately. Collapse private void Application_Startup(object sender, StartupEventArgs e) { } private void Application_Exit(object sender, EventArgs e) { } private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) { } For ASP.NET developers, the above code will look familiar. This is similar to the application level event handlers in Global.asax. 

27. What is the Silverlight official name? 
Silverlight was formerly code-named "WPF/E". 

28. What are the main features and benefits of Silverlight? 
• Compelling cross-platform user experiences. 
• Flexible programming model with collaboration tools. 
• High-quality media, low-cost delivery. 
• Connected to data, servers, and services. 

29. What is MainPage.xaml? 
When you create a Silverlight project using Visual Studio, it creates a default XAML file called "MainPage.xaml". This is just a dummy start page created by Visual Studio, and it does not contain any visible UI elements. The default contents of the MainPage.xaml file looks like this: Collapse 

30. Which language is Silverlight developed in? 
It was developed using a combination of C# and C++. 

31. Can I consume WCF and ASP.NET Web Services in Silverlight? 

Categories: Silverlight

Post a Comment


Oops, you forgot something.


The words you entered did not match the given text. Please try again.

You must be a member to comment on this page. Sign In or Register