Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Jonathan Allen on Oct 13, 2011
Windows 8 Metro is bringing with it a lot of changes and printing is no exception. Building upon the charm concept, there is a new API and extendable user interface for printing. This API is available for both XAML and JavaScript-based applications.
Printer support has always been a key selling point for Windows. Its superior support for print drivers is often cited as a key reason why Windows won out over IBM’s OS/2. Yet the user interface aspects of this have long been neglected by Microsoft and each application usually ends up creating its own user interfaces.
The first problem is the standard print dialog exposed by .NET. While it works for basic programs, it offers very little in terms of extensibility. Developers needing to do anything non-standard will end up building their own from scratch. Under Metro application-specific printer options are exposed via the PrintTaskAdvancedOptions class. This has extensibility in the form of text fields and option lists and should work exactly the same in both XAML and JavaScript-based applications.
Another problem is the print preview window, where each program is again responsible for providing its own support for print preview. In Windows 8 Metro solves this by combining the print preview window with the print dialog. Applications that support printing but not print preview will appear to be broken to the user.
The core printing functionality is provided by the Windows.Graphics.Printing namespace. This API is equally usable from both XAML and JavaScript-based applications and in theory results in an identical user experience. With JavaScript-based applications the developer merely needs to register the application for printing and reformat what’s on the screen using CSS using media queries.
With XAML-based applications there is quite a bit more work to do as developers are expected to use XAML to layout the preview and printed pages. Much like WPF and Silverlight printing, one must listen for events raised by an instance of PrintDocument. (This version of the class can be found in the Windows.UI.Xaml.Printing namespace.)
Because it is based on the Windows.UI.Xaml namespace, printing logic cannot be shared between Metro and desktop-style applications.
Tools to unit test your JavaScript
Taming HTML5 and JS: High Performance Mobile, WebKit, FireFox Dev Tools @QCon New York
Building HTML5 Apps in Hours, Not Days
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
No comments
Watch Thread Reply