MSDN Magazine - January 2009 - (Page 77) These requirements seem to conflict, but the Silverlight team tackled this by partitioning the Sandbox framework into the layered view shown in FigAppDomain 1 AppDomain n AppDomain 2 ure 2. CoreCLR + Silverlight runtime is called the Silverlight Silverlight Silverlight “plug-in,” which all users will install before they Application 1 Application 2 Application n can run applications. The plug-in is sufficient for most consumer-centric applications. If an appliAppDomain 1 Copy AppDomain 2 Copy AppDomain n Copy cation requires the use of an SDK library (WCF of Static Variables of Static Variables of Static Variables integration or DLR runtimes such as Iron Ruby) Silverlight SDK and Silverlight SDK and Silverlight SDK and or a custom library, the application must package Other Libraries Other Libraries Other Libraries these components into the XAP package so that Silverlight will know how to resolve the necessary types at run time (see Cutting Edge in this issue for Silverlight Runtime Libraries more on XAPs). The Silverlight runtime is approximately 4MB CoreCLR in size and, in addition to CoreCLR libraries such as agcore.dll and coreclr.dll, contains the necessary Web Browser OS Process libraries required by app developers. These include the following fundamental libraries: mscorlib.dll, Figure 2 Each Silverlight App Will Run in Its Own AppDomain System.dll, System.Net.dll, System.Xml.dll, and System.Runtime.Serialization.dll. The runtime that supports the the same time providing rich user interaction as a desktop applibrowser plug-in typically is installed under the C:\Program Files\ cation. Silverlight was the natural choice, as ActiveX is not very Microsoft Silverlight\2.0.30930.0\ directory. This is the directory popular on non-Windows client environments. that gets created when a computer downloads and installs SilverLet’s look at the app’s architectural aspects. You’ll be implementing light as a part of the Web browsing session. push notifications, event integration, business service integration, Developers who build and test applications on the same machine caching, security, and integration with the cloud services. will have two copies of the runtime: one copy installed by the plug- Push Notifications These are required because the system needs in and the other through the SDK install. The latter copy can be to capture the incoming call event and transfer interactive voice located in the directory C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Reference Assemblies. This copy will be used by Visual Studio templates as a part of the compile time references list. The sandbox prevents the Silverlight application from interacting with most of the local resources, which is true for any typical Web application. By default, a Silverlight application can’t access a file system (other than isolated storage), make socket connections, interact with devices attached to the computer, or install software components. This certainly imposes some constraints on the types of applications one could construct on the Silverlight platform. response (IVR) data that was entered by the caller to do a “screen However, Silverlight has all the necessary ingredients for develop- pop,” or populating of the UI screen with the incoming call inforing an enterprise-class, data-driven LOB application that needs to mation. In addition, the user should be given an opportunity to integrate with the back-end business processes and services. accept or reject the call. event Streaming In a typical Web app, the Web server has all The Application Scenario the knowledge of the business events as it performs the bulk of the The LOB application I’ll be building here demonstrates a third- business processes. In the case of a rich Internet application (RIA), party call-control architecture where a centralized server taps into however, the business process implementation will be shared by a private branch exchange (PBX) infrastructure to centrally con- both the application running inside the Web browser and the server trol phones. Since my purpose is to focus on Silverlight as the UI that implements business Web services. This means that the busisurface, I will not be spending too much time on the telephony in- ness events as well as technology events generated within the Siltegration. Instead, I will use a simple call simulator to generate an verlight application need to be sent to the server through a set of incoming call event. The simulator will drop a packet of data that special Web services. represents the call into a waiting queue of the Call Manager, which Examples of business events in this solution case are when the triggers the process that is central to this project. user (rep) rejects the call (“rep rejected the call”) or accepts the call My fictitious scenario requires the call center application to run (“rep accepted the call”). Typical technology events are “Connection inside a Web browser in a platform-independent manner while at to Call Manager TCP server failed” and “Web service exception.” Silverlight applications can’t create their own custom application domains. msdnmagazine.com January 2009 77 http://www.msdnmagazine.com
Table of Contents Feed for the Digital Edition of MSDN Magazine - January 2009 Toolbox CLR Inside Out Basic Instincts Cutting Edge Test Run First Look Geneva Framework Silverlight Windows Mobile Service Station Security Briefs Extreme ASP.NET Foundations .NET Matters { End Bracket } MSDN Magazine - January 2009 MSDN Magazine - January 2009 - (Page Intro) MSDN Magazine - January 2009 - (Page Cover1) MSDN Magazine - January 2009 - (Page Cover2) MSDN Magazine - January 2009 - (Page 1) MSDN Magazine - January 2009 - (Page 2) MSDN Magazine - January 2009 - (Page 3) MSDN Magazine - January 2009 - (Page 4) MSDN Magazine - January 2009 - (Page 5) MSDN Magazine - January 2009 - (Page 6) MSDN Magazine - January 2009 - (Page 7) MSDN Magazine - January 2009 - (Page 8) MSDN Magazine - January 2009 - Toolbox (Page 9) MSDN Magazine - January 2009 - Toolbox (Page 10) MSDN Magazine - January 2009 - Toolbox (Page 11) MSDN Magazine - January 2009 - Toolbox (Page 12) MSDN Magazine - January 2009 - Toolbox (Page 13) MSDN Magazine - January 2009 - Toolbox (Page 14) MSDN Magazine - January 2009 - CLR Inside Out (Page 15) MSDN Magazine - January 2009 - CLR Inside Out (Page 16) MSDN Magazine - January 2009 - CLR Inside Out (Page 17) MSDN Magazine - January 2009 - CLR Inside Out (Page 18) MSDN Magazine - January 2009 - CLR Inside Out (Page 19) MSDN Magazine - January 2009 - CLR Inside Out (Page 20) MSDN Magazine - January 2009 - Basic Instincts (Page 21) MSDN Magazine - January 2009 - Basic Instincts (Page 22) MSDN Magazine - January 2009 - Basic Instincts (Page 23) MSDN Magazine - January 2009 - Basic Instincts (Page 24) MSDN Magazine - January 2009 - Basic Instincts (Page 25) MSDN Magazine - January 2009 - Basic Instincts (Page 26) MSDN Magazine - January 2009 - Basic Instincts (Page 27) MSDN Magazine - January 2009 - Basic Instincts (Page 28) MSDN Magazine - January 2009 - Basic Instincts (Page 29) MSDN Magazine - January 2009 - Basic Instincts (Page 30) MSDN Magazine - January 2009 - Cutting Edge (Page 31) MSDN Magazine - January 2009 - Cutting Edge (Page 32) MSDN Magazine - January 2009 - Cutting Edge (Page 33) MSDN Magazine - January 2009 - Cutting Edge (Page 34) MSDN Magazine - January 2009 - Cutting Edge (Page 35) MSDN Magazine - January 2009 - Cutting Edge (Page 36) MSDN Magazine - January 2009 - Cutting Edge (Page 37) MSDN Magazine - January 2009 - Cutting Edge (Page 38) MSDN Magazine - January 2009 - Test Run (Page 39) MSDN Magazine - January 2009 - Test Run (Page 40) MSDN Magazine - January 2009 - Test Run (Page 41) MSDN Magazine - January 2009 - Test Run (Page 42) MSDN Magazine - January 2009 - Test Run (Page 43) MSDN Magazine - January 2009 - Test Run (Page 44) MSDN Magazine - January 2009 - Test Run (Page 45) MSDN Magazine - January 2009 - Test Run (Page 46) MSDN Magazine - January 2009 - Test Run (Page 47) MSDN Magazine - January 2009 - Test Run (Page 48) MSDN Magazine - January 2009 - Test Run (Page 49) MSDN Magazine - January 2009 - First Look (Page 50) MSDN Magazine - January 2009 - First Look (Page 51) MSDN Magazine - January 2009 - First Look (Page 52) MSDN Magazine - January 2009 - First Look (Page 53) MSDN Magazine - January 2009 - First Look (Page 54) MSDN Magazine - January 2009 - First Look (Page 55) MSDN Magazine - January 2009 - First Look (Page 56) MSDN Magazine - January 2009 - First Look (Page 57) MSDN Magazine - January 2009 - First Look (Page 58) MSDN Magazine - January 2009 - First Look (Page 59) MSDN Magazine - January 2009 - First Look (Page 60) MSDN Magazine - January 2009 - First Look (Page 61) MSDN Magazine - January 2009 - First Look (Page 62) MSDN Magazine - January 2009 - First Look (Page 63) MSDN Magazine - January 2009 - Geneva Framework (Page 64) MSDN Magazine - January 2009 - Geneva Framework (Page 65) MSDN Magazine - January 2009 - Geneva Framework (Page 66) MSDN Magazine - January 2009 - Geneva Framework (Page 67) MSDN Magazine - January 2009 - Geneva Framework (Page 68) MSDN Magazine - January 2009 - Geneva Framework (Page 69) MSDN Magazine - January 2009 - Geneva Framework (Page 70) MSDN Magazine - January 2009 - Geneva Framework (Page 71) MSDN Magazine - January 2009 - Geneva Framework (Page 72) MSDN Magazine - January 2009 - Geneva Framework (Page 73) MSDN Magazine - January 2009 - Geneva Framework (Page 74) MSDN Magazine - January 2009 - Silverlight (Page 75) MSDN Magazine - January 2009 - Silverlight (Page 76) MSDN Magazine - January 2009 - Silverlight (Page 77) MSDN Magazine - January 2009 - Silverlight (Page 78) MSDN Magazine - January 2009 - Silverlight (Page 79) MSDN Magazine - January 2009 - Silverlight (Page 80) MSDN Magazine - January 2009 - Silverlight (Page 81) MSDN Magazine - January 2009 - Silverlight (Page 82) MSDN Magazine - January 2009 - Silverlight (Page 83) MSDN Magazine - January 2009 - Silverlight (Page 84) MSDN Magazine - January 2009 - Silverlight (Page 85) MSDN Magazine - January 2009 - Silverlight (Page 86) MSDN Magazine - January 2009 - Silverlight (Page 87) MSDN Magazine - January 2009 - Windows Mobile (Page 88) MSDN Magazine - January 2009 - Windows Mobile (Page 89) MSDN Magazine - January 2009 - Windows Mobile (Page 90) MSDN Magazine - January 2009 - Windows Mobile (Page 91) MSDN Magazine - January 2009 - Windows Mobile (Page 92) MSDN Magazine - January 2009 - Service Station (Page 93) MSDN Magazine - January 2009 - Service Station (Page 94) MSDN Magazine - January 2009 - Service Station (Page 95) MSDN Magazine - January 2009 - Service Station (Page 96) MSDN Magazine - January 2009 - Service Station (Page 97) MSDN Magazine - January 2009 - Service Station (Page 98) MSDN Magazine - January 2009 - Security Briefs (Page 99) MSDN Magazine - January 2009 - Security Briefs (Page 100) MSDN Magazine - January 2009 - Security Briefs (Page 101) MSDN Magazine - January 2009 - Security Briefs (Page 102) MSDN Magazine - January 2009 - Extreme ASP.NET (Page 103) MSDN Magazine - January 2009 - Extreme ASP.NET (Page 104) MSDN Magazine - January 2009 - Extreme ASP.NET (Page 105) MSDN Magazine - January 2009 - Extreme ASP.NET (Page 106) MSDN Magazine - January 2009 - Extreme ASP.NET (Page 107) MSDN Magazine - January 2009 - Extreme ASP.NET (Page 108) MSDN Magazine - January 2009 - Foundations (Page 109) MSDN Magazine - January 2009 - Foundations (Page 110) MSDN Magazine - January 2009 - Foundations (Page 111) MSDN Magazine - January 2009 - Foundations (Page 112) MSDN Magazine - January 2009 - Foundations (Page 113) MSDN Magazine - January 2009 - Foundations (Page 114) MSDN Magazine - January 2009 - Foundations (Page 115) MSDN Magazine - January 2009 - .NET Matters (Page 116) MSDN Magazine - January 2009 - .NET Matters (Page 117) MSDN Magazine - January 2009 - .NET Matters (Page 118) MSDN Magazine - January 2009 - .NET Matters (Page 119) MSDN Magazine - January 2009 - { End Bracket } (Page 120) MSDN Magazine - January 2009 - { End Bracket } (Page Cover3) MSDN Magazine - January 2009 - { End Bracket } (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.