XBAP Contest! Deadline: March 12, 2007
Josh Smith (formerly of Infragistics) is putting on an XBAP contest! Submissions are required by March 12th. I can’t wait to see what people create!
Josh Smith (formerly of Infragistics) is putting on an XBAP contest! Submissions are required by March 12th. I can’t wait to see what people create!
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.
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!
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 …
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 …
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.
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 …
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 …
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 …
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 …