Today I put together some notes around what the main differences are between a Silverlight 4 application running in-browser Vs. out-of-browser (OOB) with elevated trust enabled (elevated trust is new in SL4). After compiling them i realized it would make a good reference blog post, so here it is:
| | SL 4 (in-browser) | SL 4 (OOB + Elevated trust) |
| Summary | Runs in a limited security and feature context, but provides the least requirements on the user in terms of: · What security rights they have to install and promote applications (which is often an issue in the corporate world) · Auto updating (no re-start required) | Runs out-of-Brower and in elevated trust environment providing for the most features and capabilities to interact with web services and local computer resources (Elevated trust is separate from OOB and must be requested via options when configuring your application) |
| Feature: Web Browser | N/A (Third party components do exist to render HTML in SL even when web browser isn’t available, example: HtmlHost from ComponentOne | Available · Display any web-page · Supports plug-ins like Flash (plays back video just fine for example!) · Can display HTML string |
| Feature: COM Objects Interop | N/A | Available (OS dependent) Example: Interop with Excel via COM to create spreadsheet data |
| Features: Auto-updates | Auto updates when the web page loads | You can implement code to auto update and it will be applied on next restart (at least I see no way to do it otherwise) |
| Feature: Full Screen | Requires user interaction | Can go into full screen without user interaction (example: using code to do so at startup) |
| | | |
| Restrictions: Cross-Domain | Requires a clientaccesspolicy.xml or crossdomain.xml file | No restriction, access any URI |
| Restrictions: Access to local files | Via OpenFile / SaveFile Dialog control | No restriction on My Documents, My Pictures, My Music, et Still cannot access any other folders on the computer |
Some additional notes:
If anything above is incorrect please let me know folks, I’d love to improve my own knowledge. In the end which scenario you go after gets down the details and what the developers need to accomplish.