British Library – 3D Rare Books Experience as an XBAP

As Tim Sneath announced earlier in his blog today, the British Library has released a just awesome XBAP.  I’ve been giddy about this app since I saw the first prototype.  Here’s an example of technology really opening doors and offering new experiences.  The public can see these Da Vinci’s notebooks, Mozart’s compositions, and many other (usually locked up) rare books in a fuller fidelity, richer environment than ever before. Tim goes in to all the specific coolness of the app in his post.  I definitely recommend the read. Try out “Turning the Pages” here.  

TOTALLY TOTALLY cool xbap: Doninoken

Hats off to the Japanese design agency Bascule for this excellent xbap.  The funky 3D & music is just awesome.  A great watch.   Notice the little camera in the lower left hand corner? Click on it to control the camera position and zoom in/out. Sweetness.   Thanks Karsten for the tip!

XBAP & Trust Levels

XAML Browser Applications (XBAPs) in this version are promptless in-browser experiences.  This has many implications: clean experience when navigating to an XBAP.  (There is no Information Bar or security warning before launching the app.)  cached (not installed) on the user’s machine. security sandbox.   Sandboxed Applications The third bullet above is especially important for XBAP developers.   XBAPs obey the security contract of being in the browser: they are sandboxed according to their deployment zone.  Today, there is no way to seamlessly “elevate” and prompt the user for additional permissions.  (This is an often-requested feature and something we are investigating for …

WPF Internet Sandbox Feature List (XBAPS & Loose XAML)

Two main types of WPF content is sandboxed today: XAML Browser Applications (XBAPs).  XBAPs are online-only ClickOnce applications that are cached & run in the browser. Loose XAML.  Loose XAML are XAML-only files that can be navigated to in the browser. I’ve gotten questions about the specific feature list for the WPF sandbox.  Below is the high level list.   Other great resources about the sandbox include: Windows Presentation Foundation Security Sandbox Whitepaper Windows SDK: WPF Partial Trust Security Security Notes on individual API reference pages If you’re interested in why something was including/excluding from the sandbox, check the above whitepaper.  If …

Healthcare Application – Source Code Posted!

Source code for the Contoso Healthcare Application is now posted on the community site! (Thanks Karsten!) This is a great app. (I demoed it at TechEd Southeast Asia & its been shown at many other events as well).  It showcases, among other things: 3D fliptransitions.  (This UX paradigm is similar to a doctor’s real world experience of flipping through a patient chart.) Data visualization on a 3D surface for fast comparison. Listbox styling dependent on level of information desired. Annotations on video. Patient diagnosis in flow document format. Get the code here.

FontPlayer XBAP

I thought it would be fun to update the UI (and some functionality) for the FontPlayer SDK sample. This app lets you to play with the fonts installed on your the machine. It also shows off the OpenType features of specific fonts. Some of the interesting features that I added to this app: Embedded fonts in XBAP ComboBox bound to system fonts, displayed using font New CheckBox template Text “reflection” effect FontPlayer works with RC 1. Run it here. Code found here. Screen Shots – Details custom font font ComboBox new CheckBox template Embedded fonts in XBAP Custom fonts are …

Loose XAML, XBAPs & Hyperlink Images

As Mark Alaczar points out in his WPF sandbox whitepaper, sandboxed top level navigation requires user initiation. Some definitions to help this make sense: Top level navigation: Navigations that target the hosting web browser. For instance, navigating the entire browser, or a specific HTML <iframe>, to http://netfx3.com. User initiated: Direct result of an explicit user action. In the case of top level navigation, this is most likely the user clicking on a hyperlink. “Programmatic”, on the other hand, is the direct result of a dev action, like NavigationService.Navigate(…). In this version of WPF, top level navigations in sandboxed apps require …

XBAPs: OnDemand & ClickOnce

If your XBAP has some “heft” to it (large resource files, large assemblies, etc), it may make sense to architect your app to use ClickOnce’s OnDemand APIs. OnDemand APIs enable developers to delay download parts of the application. This can result in a friendlier end-user UX. Note: OnDemand files can be traditional resource files (e.g. images, xml files, etc) or assemblies. Architecture Tips & Tricks Got satellite assemblies or large resource files? Slim down your primary EXE to the bare minimum needed to start the app. Then, when the XBAP is launched, only the application manifest, deployment manifest, and primary …

Caching & XBAPs

When relying on resources living on a server, you can increase client app perf & decrease network traffic by storing local versions. When trying to build a sandboxed XBAP, however, you cannot create your own local cache store in the file system beyond the space available in isolated storage (512KB). Fortunately, WPF resource loading uses System.NET’s HttpWebRequest and its “Default” caching policy. In addition, depending on your resources’ sizes and your scenario, it may make sense to use a non-default caching policy when issuing your own HttpWebRequest. This post aims to give you a little bit of caching context, an …