Recent Posts
Animating augmented reality content in .NET MAUI on iOS
Nodes in an augmented reality app can be animated with the SCNAction type, which represents a reusable animation that changes attributes of any node you atta...
Interacting with augmented reality content in .NET MAUI on iOS
Augmented reality apps oftem allow touch-based interaction with the nodes that are overlayed on a scene. Gesture recognizer types can be used to detect gestu...
Augmented reality basics in .NET MAUI on iOS
Augmented reality (AR) is the process of an app adding a 2D or 3D element to the live view from a device’s camera in a way that makes those elements appear t...
Path flattening in SkiaSharp
It’s also sometimes useful to obtain all the drawing operations and points that make up a path, particularly for paths created by path effects and converting...
Wavelet transforms in SkiaSharp
Traditionally, wavelet transforms are used for signal/image/video compression, as they are fantastic for decomposing data into different frequency components...
Frequency filtering in SkiaSharp
As any computer science undergrad can tell you, a Fourier transform takes a signal from the time domain and transforms it into the frequency domain. What thi...
Performing convolution in SkiaSharp
In image processing, convolution is the process of adding each element of the image to its local neighbours, weighted by a convolution kernel. The kernel is ...
Getting pixel data with SkiaSharp
I’ve recently produced a prototype app for performing 2D image processing with SkiaSharp, hosted in a .NET MAUI app that targets Mac Catalyst. The reason I o...
SkiaSharp and MVVM
SkiaSharp is a 2D graphics system for .NET and C#, powered by Google’s Skia graphics engine. It’s available as a NuGet package, and can easily be added to an...
Playing local audio files with .NET MAUI
Previously I wrote about playing audio with .NET MAUI on Android, iOS, Mac Catalyst, and Windows. The main problem with my implementation was that the FilePi...
Playing audio with .NET MAUI
Many apps, whether mobile or desktop, require the ability to play audio. That audio may be remote, stored in the app bundle, or be chosen from the user’s dev...
Playing video with .NET MAUI on Windows
Previously I wrote about playing video with .NET MAUI on Android, iOS, and Mac Catalyst. The problem platform was Windows because WinUI 3 lacked any media pl...
Behaviors library for .NET MAUI
Many years ago I wrote a behaviours library for Xamarin.Forms. The conventional view was that behaviours extend the functionality of controls, with typical e...
Display a map with .NET MAUI
Many apps, whether mobile or desktop, require the ability to show a map. However, .NET MAUI doesn’t currently have a view (control) capable of displaying a m...
Playing video with .NET MAUI
Many apps, whether mobile or desktop, require the ability to play video. That video may be remote, stored in the app bundle, or be chosen from the user’s dev...
Implicit usings in .NET MAUI
.NET MAUI Preview 11 now uses implicit usings to reduce the number of using statements you need to specify at the top of each file. For more information abou...
Invoke platform code in .NET MAUI
Xamarin.Forms has the DependencyService class, which is a service locator that enables apps to invoke native platform functionality from cross-platform code....
Adventures in ARKit - image detection
In my previous blog post I discussed how to display a 3D model in a scene. In this blog I’ll discuss how to perform image detection in a scene. Specifically,...
Adventures in ARKit - display a 3D model
In my previous blog post I discussed how to overlay an image of the earth on a SphereNode, which derives from SCNNode, and manipulate it through touch gestur...
Adventures in ARKit - rotating earth
In my previous blog post I discussed how to animate a node in a scene. Specifically, I animated a cube by rotating it continuously through 360 degrees on the...
Adventures in ARKit - animation
In my previous blog post I discussed how to interact with nodes in a scene, using touch. This involved creating gesture recognisers and adding them to the AR...
Adventures in ARKit - respond to touch
In my previous blog post I discussed how to overlay an image on the camera output in an ARKit app. Objects that you overlay on the camera output are called n...
Adventures in ARKit - overlay an image
In my previous blog post I discussed how to create a basic ARKit app on Xamarin.iOS, that displays the camera output. In this blog post I’ll take the first s...
Adventures in ARKit - platform setup
Lee Englestone has recently written a book about developing augmented reality apps using ARKit on Xamarin.iOS. It piqued my interest so I bought it. His book...
Process navigation data using IQueryAttributable in Xamarin.Forms Shell apps
I recently discovered, courtesy of @PureWeen, another mechanism for receiving navigation data in Xamarin.Forms Shell apps. If you write Shell apps, you’ll kn...
Display SVGs as TabbedPage tab icons in Xamarin.Forms
A common question that Xamarin.Forms users ask is “how the hell do I get my TabbedPage to display SVG-based tab icons?” A quick look at the TabbedPage doc re...
Wavelet-based image upscaling
Last summer I wrote several blog posts about performing cross-platform imaging using Xamarin.Forms and SkiaSharp. My first post talked about accessing image ...
Connecting to localhost over HTTPS for (Xamarin) Android release builds
I've previously written several posts about connecting to localhost HTTPs services from Xamarin apps running on simulators and emulators. Over time this has ...
Connecting to localhost over HTTPS from simulators and emulators (revisited)
Last year, I wrote about how to connect to localhost over HTTPS from iOS simulators and Android emulators. Connecting to localhost web services that run over...
Combining Xamarin.Essentials WebAuthenticator with IdentityModel.OidcClient
Previously I wrote about using the Xamarin.Essentials WebAuthenticator class to initiate an authentication flow with IdentityServer, and wait for a callback/...
Authentication from a Xamarin.Forms app using WebAuthenticator
The OAuth 2.0 for Native Apps spec represents the best practices for OAuth 2.0 authentication flows from mobile apps. These include: Authentication requests ...
Bind from a ControlTemplate to a ViewModel with Xamarin.Forms
The best new feature in Xamarin.Forms 4.3 is relative bindings. Relative bindings provide the ability to set the binding source relative to the position of t...
Xamarin: Connecting to localhost over HTTPS from simulators and emulators
Most mobile apps consume web services. During the development phase, it’s common to deploy a web service locally and consume it from a mobile app running in ...
What’s new in CollectionView in Xamarin.Forms 4.2?
Xamarin.Forms 4.2 was released this week, and includes a number of updates to CollectionView. The main updates are outlined below. Data CollectionView now su...
Frequency filtering with Xamarin.Forms and SkiaSharp
Previously, I wrote about performing convolution in SkiaSharp. I used the CreateMatrixConvolution method from the SKImageFilter class to convolve kernels wit...
Cross-platform imaging with Xamarin.Forms and SkiaSharp II
Previously, I wrote about combining Xamarin.Forms and SkiaSharp to create a cross-platform imaging app. SkiaSharp offers a number of different approaches for...
Cross-platform imaging with Xamarin.Forms and SkiaSharp
Back in the Xamarin.Forms 1.x days, I attempted to show the power of Xamarin.Forms development by writing a cross-platform imaging app. This was a mistake. W...
OAuth 2.0 for Native Apps using Xamarin.Forms
About two years ago I wrote some samples that demonstrate using Xamarin.Forms to implement OAuth 2.0 for Native Apps. This spec represents the best practices...
What’s new in CollectionView in Xamarin.Forms 4.1
Xamarin.Forms 4.1 was released on Monday, and as well as new functionality such as CheckBox, it includes a number of updates to CollectionView. The main Coll...
Using the Retry Pattern with Azure Storage from Xamarin.Forms
Back in 2017 I wrote about transient fault handling in Xamarin.Forms applications with the retry pattern. Transient faults include the momentary loss of netw...
Creating a Hyperlink in Xamarin.Forms II
Previously, I wrote about creating a hyperlink in a Xamarin.Forms app by adding a TapGestureRecognizer to the GestureRecognizers collection of a Span, and se...
Xamarin.Forms Compiled Bindings FAQ
We recently announced compiled bindings for Xamarin.Forms. Bindings aren’t cost efficient because they are resolved at runtime using reflection. In some scen...
Creating a Hyperlink in Xamarin.Forms
Creating a hyperlink in a Xamarin.Forms app has traditionally involved writing an effect or custom renderer, and having to provide platforms implementations ...
Binding a Collection to a FlexLayout IV
Previously, I explained how to extend the ExtendedFlexLayout class so that it can bind to collections that change at runtime, with the changes being reflecte...
Binding a Collection to a FlexLayout III
Previously, I explained how to extend the ExtendedFlexLayout class so that it allows a DataTemplateSelector to choose a DataTemplate at runtime. This enables...
Binding a FlexLayout to a Collection II
Previously, I explained how to extend the FlexLayout class with ItemsSource and ItemTemplate properties, so that it can bind to data stored in a collection. ...
Binding a FlexLayout to a Collection
In May we published a doc on the new FlexLayout control that’s present in Xamarin.Forms 3.0. FlexLayout is a versatile layout control that can arrange its ch...
Xamarin.Forms Behaviors: InvokeCommandAction and ConverterParameter
I previously mentioned that I’d published v1.4 of my Behaviors library, and that it included some new functionality. In my last blog post I looked at the Sou...
Xamarin.Forms Behaviors: EventHandlerBehavior and the SourceObject
I previously mentioned that I’d published v1.4 of my Behaviors library, and that it included some new functionality. In my last blog post I looked at the GoT...
Xamarin.Forms Behaviors: GoToStateAction
Previously, I mentioned that I’d published v1.4 of my Behaviors library, and that it included some new functionality. The main item of new functionality is a...
Behaviours Library 1.4
It was recently brought to my attention that my Behaviours library didn’t work with Xamarin.Forms 3.0. After some investigation and a small code change I bro...
Xamarin Manchester User Group Talk
Last night I spoke at the Xamarin Manchester User Group. It was nice to see some familiar faces, and some new faces. Slides & Demos The slides from my ...
Fault Handling in Xamarin.Forms: Combining the Retry and Circuit Breaker Patterns
Previously, I’ve written about using the retry pattern to perform transient fault handling in Xamarin.Forms with Polly, and using the circuit breaker pattern...
Xamarin.Forms 2.5 and Local Context on Android
Previously I wrote about Xamarin.Forms 2.5 and local context in Android custom renderers. I briefly mentioned that Xamarin.Forms.Forms.Context is now obsolet...
Xamarin.Forms 2.5 and Local Context in Android Custom Renderers
If you’ve updated any of your solutions to use Xamarin.Forms 2.5, you may have noticed compiler warnings that say “Context is obsolete as of version 2.5. Ple...
Fault Handling in Xamarin.Forms: Circuit Breaker using Polly
Previously I wrote about about handling faults that take a variable amount of time to recover from, in Xamarin.Forms, and discussed an implementation of the ...
Fault Handling in Xamarin.Forms: Circuit Breaker
Calls to remote services can fail due to transient faults, such as the momentary loss of network connectivity to services, the temporary unavailability of a ...
Using PKCE with IdentityServer from a Xamarin Client
The OpenID Connect and OAuth 2.0 specifications define a number of authentication flows between clients and authentication providers. These include: Implici...
Transient Fault Handling in Xamarin.Forms using Polly
Previously I wrote about transient fault handling in Xamarin.Forms, and discussed an implementation of the retry pattern that uses exponential backoff. The a...
Transient Fault Handling in Xamarin.Forms
All applications that communicate with remote services and resources must be sensitive to transient faults. Transient faults include the momentary loss of ne...
Making a POST request to IdentityServer’s token endpoint from a Xamarin client
I recently had to implement a hybrid authorisation flow from a Xamarin client to IdentityServer 4. This involved making a browser request to IdentityServer’s...
Enterprise Application Patterns using Xamarin.Forms
For the last few months I’ve been working on a Xamarin.Forms guide, about building cross-platform enterprise apps. The first edition of the guide is now publ...
Validating User Input in Xamarin.Forms IV
Previously I discussed how validation can be automatically triggered when properties changes, or manually triggered to validate all properties. In this blog ...
Validating User Input in Xamarin.Forms III
Previously I discussed how validation rules are specified by adding data annotation attributes, that derive from the ValidationAttribute class, to properties...
Validating User Input in Xamarin.Forms II
Previously I introduced a high-level overview of an approach to validating user input in Xamarin.Forms. This approach involves specifying validation rules on...
Validating User Input in Xamarin.Forms
Any mobile app that accepts user input should ensure that the input is valid. This could involve, for example, checking that input contains only characters i...
Xamarin.Forms Behaviors: Revising InvokeMethodAction
Earlier in the year I blogged about using the EventHandlerBehavior, DataChangedBehavior, and InvokeMethodAction classes to invoke one or more methods when an...
Xamarin.Forms Behaviors: RotateAction
Previously, I demonstrated using the EventHandlerBehavior and ScaleAction classes to run a scaling animation when an event occurs. The Behaviors Library for ...
Xamarin.Forms Behaviors: ScaleAction
Previously, I demonstrated using the EventHandlerBehavior and TranslateAction classes to run a translation animation when an event occurs. The Behaviors Libr...
Xamarin.Forms Behaviors: TranslateAction
Previously, I demonstrated using the EventHandlerBehavior and FadeAction classes to run a fade animation when an event occurs. The Behaviors Library for Xama...
Xamarin.Forms Behaviors: FadeAction
Previously, I mentioned that I’d added a number of new actions to the Behaviors Library for Xamarin.Forms, to support animations. The library has the notion ...
Xamarin.Forms Behaviors: New Actions
My Behaviors Library for Xamarin.Forms is a PCL I’ve created that can be consumed by Xamarin.Forms applications, and can be downloaded from GitHub and NuGet....
Xamarin.Forms Behaviors: Support for Page Level Behaviors
Previously, I’ve introduced by Behaviors Library for Xamarin.Forms, which can be downloaded from GitHub and NuGet. The Behaviors Library for Xamarin.Forms ha...
Xamarin.Forms Behaviors Library: What’s next?
The Behaviors Library for Xamarin.Forms seems to have been well received, so I intend enhancing it as time allows. This includes: Ensuring that behaviors ca...
Xamarin.Forms Behaviors: DataChangedBehavior and SetPropertyAction
Previously, I demonstrated using the DataChangedBehavior and InvokeMethodAction classes to invoke one or more methods when data changes. The Behaviors Librar...
Xamarin.Forms Behaviors: DataChangedBehavior and InvokeMethodAction
Previously, I demonstrated using the DataChangedBehavior and InvokeCommandAction classes to invoke one or more commands when data changes. The Behaviors Libr...
Xamarin.Forms Behaviors: DataChangedBehavior and InvokeCommandAction
Previously, I demonstrated using the EventHandlerBehavior and SetPropertyAction classes to set one or more properties when an event fires. The Behaviors Libr...
Xamarin.Forms Behaviors: EventHandlerBehavior and SetPropertyAction
Previously, I demonstrated using the EventHandlerBehavior and InvokeMethodAction classes to invoke one or more methods when an event fires. The Behaviors Lib...
Xamarin.Forms Behaviors: EventHandlerBehavior and InvokeMethodAction
Previously, I demonstrated using the EventHandlerBehavior and InvokeCommandAction classes to invoke one or more commands when an event fires. The Behaviors L...
Xamarin.Forms Behaviors: EventHandlerBehavior and InvokeCommandAction
Previously, I introduced my Behaviors Library for Xamarin.Forms, which can be downloaded from GitHub and NuGet. Behaviors let you add functionality to contro...
Behaviours Library for Xamarin.Forms
Back in January I wrote a series of blog posts for the Xamarin blog. This included a post on Turning Events into Commands with Behaviors. As part of that blo...
Revisiting Pixel Access in a Xamarin.Forms App – iOS
Previously, I’ve described a basic architecture for accessing and manipulating pixel data from a Xamarin.Forms project. A Xamarin.Forms PCL project defines t...
Prism for Xamarin.Forms 6.2
In early December, Brian Lagunas announced a pre-release of Prism for Xamarin.Forms 6.2.0. Over Christmas I checked it out and here’s what I found out. The b...
Accessing Image Pixel Data in a Xamarin.Forms App – WinRT
Previously, I’ve described the basic architecture for accessing and manipulating pixel data from a Xamarin.Forms project. A Xamarin.Forms PCL project defines...
Accessing Image Pixel Data in a Xamarin.Forms App – Android
Previously, I’ve described a basic architecture for accessing and manipulating pixel data from a Xamarin.Forms project. A Xamarin.Forms PCL project defines t...
Accessing Image Pixel Data in a Xamarin.Forms App – iOS
Previously, I’ve described a basic architecture for accessing and manipulating pixel data from a Xamarin.Forms project. A Xamarin.Forms PCL project defines t...
Accessing Image Pixel Data in a Xamarin.Forms App
As a Xamarin employee, I spend a lot of my time writing code and content that ultimately ends up on the Xamarin Developer Center. Because of this, it’s not o...
Prism for the Windows Runtime Templates for Visual Studio 2015
I was recently asked if I had any plans to update the Prism WinRT templates to support VS2015. To be honest I was surprised that anyone is still using Prism ...
Revisiting Prism for Xamarin.Forms
Previously I wrote about how to create a flexible and maintainable Xamarin.Forms app with Prism. In the last month Prism for Xamarin.Forms has undergone some...
Creating a flexible and maintainable Xamarin.Forms app with Prism
Prism, a set of libraries developed by Microsoft, helps you to design and build apps using loosely-coupled components that can evolve independently but that ...
Creating a Xamarin.Forms app that uses the MVVM pattern
The MVVM pattern is well documented, and is used to cleanly separate the responsibility for the appearance and layout of the UI from the responsibility for t...
Encrypting and decrypting data in an Azure service using a certificate
I recently had a requirement to encrypt some data stored in a Web.config file for an Azure hosted service that’s accessed over HTTPS. To help secure informat...
Using basic authentication in an Azure Cloud Service
I recently had a requirement to use transport security with basic authentication in a web service hosted in Azure. Basic authentication is a mechanism for a ...
Reading the response message from a PUT request using PHP and cURL
Previously I’ve mentioned that I had to write some PHP to PUT some JSON data to a RESTful web API. After calling curl_exec() to make the PUT request I called...
Making a PUT request using PHP and cURL
I recently had to write some PHP to PUT some JSON data to a RESTful web API. My final solution involved reading numerous blog posts to piece together exactly...
Delivering and consuming media from Azure Media Services
Previously I’ve summarised how to use the Azure Media Encoder to encode uploaded media for delivery to client apps. To do this you create a media processing ...
Encoding and processing media in Azure Media Services
Previously I’ve summarised the media upload process from client apps into a video on-demand service that uses Azure Media Services. In this blog post I’ll su...
Using a custom overlay in a Windows Phone QR code scanning app
Previously I’ve demonstrated how to build a simple Windows Phone app to perform QR code scanning, using the ZXing.Net.Mobile library. This library makes the ...
QR code scanning in a Windows Phone app
A recent Windows Phone app that I developed had a requirement to include QR code scanning, and to take an action based on the data contained in the QR code. ...
Uploading content into Azure Media Services
Previously I’ve introduced the Content Management System (CMS) that’s used to store video details for the video on-demand service, along with details of vide...
Connecting to Azure Media Services
Before you can start programming against Azure Media Services you need to create a Media Services account in a new or existing Azure subscription. For more i...
NDC 2014 – Accelerating Windows Store app development by using Prism for the Windows Runtime
Today I spoke at NDC 2014 about Accelerating Windows Store app development by using Prism for the Windows Runtime. The slides from the talk can be found here...
Developing the content management system for a video on-demand service
Previously I’ve introduced the architecture of the video on-demand service, and the Windows Phone app that consumes the service through a REST interface. In ...
Architecture of a video on-demand service that uses Azure Media Services
Previously I’ve explained that Azure Media Services provides everything you’ll need to build and operate video on-demand services to multiple devices and pla...
NDC magazine article on Prism for the Windows Runtime
NDC Magazine is a developer magazine written by developers, and aims to cover the latest trends within software development and technology. It has a circulat...
Azure Media Services Overview
Previously I’ve mentioned that I’ve worked on the recently released Building an On-Demand Video Service with Microsoft Azure Media Services guide, created by...
Data virtualisation using the ISupportIncrementalLoading interface
Sometimes the data set an app works with is so large that it shouldn’t be stored in memory. For example, if your photo collection contains tens of thousands ...
Building an On-Demand Video Service using Microsoft Azure Media Services
The patterns & practices group at Microsoft have just released a guide and reference implementation for a new project called Building an On-Demand Video ...
Advanced Developers Conference 2014
Yesterday I spoke at Advanced Developers Conference 2014 in Munich about Building a patterned Windows Store app that uses AMP. The slides from the talk can b...
Using the CameraCaptureUI class in a C++/CX Windows Store app
Previously I extended the C# sample photo viewer app by integrating capturing photos into the app. This blog posts extends my C++/CX sample photo viewer app ...
Using the CameraCaptureUI class in a Windows Store app
Previously I extended the sample photo viewer app so that the user will see the page content scrolled to the exact location it was at prior to termination or...
DevWeek2014–Accelerating Windows Store app development using Prism for the Windows Runtime
Today I spoke at DevWeek 2014 about Accelerating Windows Store app development using Prism for the Windows Runtime. The slides from the talk can be found her...
DevWeek2014–Building native Windows Store apps for C# developers
Yesterday I spoke at DevWeek 2014 about Building native Windows Store apps for C# developers. The slides from the talk can be found here. The code I walked t...
NDC Oslo 2014
NDC Is Norway’s largest conference dedicated to .NET and Agile development, and is backed by Microsoft. It attracts speakers and participants from all around...
Capturing and setting a ScrollViewer’s scroll position to maintain scroll position across view states
Previously I’ve written about how Prism for the Windows Runtime can be used to save and restore view state. This is achieved by overriding the SaveState and ...
Creating a custom GridView control that responds to layout changes
In Windows Store apps for Windows 8.1 one of the UX guidelines is to scroll vertically when in PortraitLayout or MinimalLayout, and to scroll horizontally wh...
Using the IncrementalUpdateBehavior to implement smooth scrolling
A common scenario in Windows Store apps is to use a GridView or ListView control to display a large number of data items. This can have a performance impact,...
Saving and restoring service class state using Prism for the Windows Runtime
Previously I wrote about how Prism for the Windows Runtime can be used to save and restore view state. This is achieved by overriding the SaveState and LoadS...
Prism for the Windows Runtime for Windows 8.1 available as an e-book
Prism for the Windows Runtime accelerates the development of Windows Store apps by providing support for Model-View-ViewModel (MVVM), loosely coupled communi...
Saving and restoring view state using Prism for the Windows Runtime
Previously I’ve written about how Prism for the Windows Runtime can be used to save and restore view model state.To have data survive the suspend/terminate c...
Prism for the Windows Runtime Templates for Windows 8.1 updated
I’ve updated the Prism for the Windows Runtime templates for Windows 8.1 on the Visual Studio Gallery. v1.1 of the templates introduces the following changes...
Prism for the Windows Runtime now supports extended splash screens
One of the new features of Prism for the Windows Runtime for Windows 8.1 is the introduction of support for displaying an extended splash screen that imitate...
First drop of Windows Azure Media Services Guidance
The first drop of the Windows Azure Media Services guidance can be found on codeplex. To compile the code you’ll need Windows 8.1, Visual Studio 2013, and th...
Adding items to the Settings pane using Prism for the Windows Runtime for Windows 8.1
Previously I’ve written about using Prism for the Windows Runtime for Windows 8.0 to add an item to the Settings pane. The item was a privacy policy as an ex...
Prism for the Windows Runtime Templates for Windows 8.1
In order to make consuming Prism for the Windows Runtime for Windows 8.1 easier I’ve created a set of Visual Studio project and item templates. These templat...
Announcing Prism for the Windows Runtime for Windows 8.1
Back in May the patterns & practices team at Microsoft released a new guide for Windows 8 on creating Windows Store business apps using C# and XAML. The ...
Fourth drop of Prism for the Windows Runtime for Windows 8.1
The fourth drop of Prism for the Windows Runtime, and the associated AdventureWorks Shopper reference implementation, can be found on codeplex. To compile th...
DevWeek 2014
DevWeek is the UK’s leading conference for Software Developers, DBAs, and IT architects, and is held in London each year. In 2014 it’s being held at Central ...
Improving code quality by using NDepend v5
Previously I’ve written about NDepend, a static analysis tool design to improve code quality by using code metrics and enforcing a series of rules. I was par...
Third drop of Prism for the Windows Runtime for Windows 8.1
The third drop of Prism for the Windows Runtime, and the associated AdventureWorks Shopper reference implementation, can be found on codeplex. To compile the...
Writing a custom Blend interaction to perform page navigation in Windows Store apps
Previously I wrote about replacing an attached behaviour that was used to execute a view model action, with a Blend behaviour that executes a view model comm...
Second drop of Prism for the Windows Runtime for Windows 8.1
The second drop of Prism for the Windows Runtime, and the associated AdventureWorks Shopper reference implementation, can be found on codeplex. To compile th...
Using Blend behaviours in a Windows Store app – update 1
Previously I wrote about replacing an attached behaviour that was used to execute a view model action, with a Blend behavior that executes a view model comma...
First drop of Prism for the Windows Runtime for Windows 8.1
The first drop of Prism for the Windows Runtime, and the associated AdventureWorks Shopper reference implementation, can be found on codeplex. To compile the...
Using Blend behaviours in a Windows Store App
Previously I’ve demonstrated a sample PhotoViewer app that displays photo thumbnails on the MainPage, and that displays a selected photo on the PhotoPage. Th...
DareDevs user group talk
Last night I spoke at the DareDevs user group about Building Windows Store apps using Prism for the Windows Runtime. The slides from the talk can be found he...
Prism for the Windows Runtime documentation now available in 10 additional languages
The documentation for Prism for the Windows Runtime has been localized into 10 additional languages. Including the American English original, that means it’s...
Improving code quality by using NDepend
Over the past few years I’ve been using many of the tools included with Visual Studio to analyse my code. This has included running code metrics, examining t...
Event subscription filtering using Prism for the Windows Runtime
Previously I’ve blogged about how to perform event aggregation using Prism for the Windows Runtime. When a publisher invokes the PubSubEvent<TPayload> ...
Event aggregation using Prism for the Windows Runtime
Previously I’ve blogged about how to perform validation using Prism for the Windows Runtime. In this blog post I’ll demonstrate how to use Prism for the Wind...
Notifying the user of validation errors using Prism for the Windows Runtime
Previously I’ve blogged about how to create a model class with validation support by using Prism for the Windows Runtime. This was achieved by deriving the m...
Creating a model class with validation support using Prism for the Windows Runtime
The Windows Runtime has no in-built support for validation. Therefore in Prism for the Windows Runtime we added functionality to allow validation of user inp...
Creating a Flyout in C++/CX
Previously I’ve blogged about creating a Flyout using Prism for the Windows Runtime. I thought it would be useful to have a similar Flyout control available ...
Adding items to the Settings pane using Prism for the Windows Runtime
Previously I extended the sample photo viewing app so that a Flyout can be displayed by tapping on the photo on the PhotoPage. The PhotoInformationFlyout dis...
Prism for the Windows Runtime Templates Updated
I’ve updated the Prism for the Windows Runtime templates on the Visual Studio gallery. v1.2 of the templates introduce support for Visual Studio 2013 Preview...
Creating a Flyout using Prism for the Windows Runtime
Previously I extended the sample photo viewing app so that along with frame state, page state is serialized during suspension and de-serialized when the app ...
Prism Presentations at TechEd Europe
Brian Noyes has delivered a presentation at TechEd Europe on using Prism for the Windows Runtime to build Windows Store business apps. He’s also delivered an...
Testing your C#-based Windows Store App: Top 10 areas to look for bugs
Francis Cheung, the lead-dev of Prism for the Windows Runtime, has given a talk at Build 2013 on the top 10 areas to look for bugs when writing a Windows Sto...
Suspend/resume/activation using Prism for the Windows Runtime
Previously I extended the sample photo viewing app so that the user can covert a colour photo to greyscale, on the PhotoPage. This used MVVM and commands to ...
Prism for the Windows Runtime Templates Updated
I’ve updated the Prism for the Windows Runtime templates on the Visual Studio gallery. v1.1 of the templates introduce: Support for any edition of Visual St...
Accessing Image Pixel Data in a C# Windows Store App
Previously I’ve written about how to access image pixel data in a C++/CX Windows Store App. Depending on your app, you may have a requirement to perform imag...
Changing the Default Conventions used in Prism for the Windows Runtime
Prism for the Windows Runtime specifies a ViewModelLocator object, that can be used to manage the instantiation of view models and their associations to view...
Building a Windows Store app using Prism and manual dependency injection
Previously I’ve demonstrated how to use Prism for the Windows Runtime by writing a sample photo viewing app. In the app there are two pages. The first page p...
Master Navigation in Windows Store Apps
Brian Noyes recently delivered a session at TechEd North America on mastering navigation in Windows Store apps. The video of the session is now online, and i...
Building Windows Store Line-of-Business Applications
Brian Noyes recently delivered a session at TechEd North America on building Windows Store LOB apps. The video of the session is now online, and is well wort...
Using Unity in a Windows Store app
The AdventureWorks Shopper reference implementation, produced as part of the Prism for the Windows Runtime project, uses the Unity dependency injection conta...
Building a Windows Store app using Prism for the Windows Runtime
I’ve had an article published on the MSDN UK Team Blog, about Building a Windows Store app using Prism for the Windows Runtime. I’m reproducing the article o...
Prism for the Windows Runtime Course
Do you want to learn how to build Windows Store apps using Prism for the Windows Runtime, but don’t want to read all the reference documentation? If so then ...
Prism for the Windows Runtime Templates
In order to make consuming Prism for the Windows Runtime easier I’ve created a set of Visual Studio project and item templates. These templates can be downlo...
Announcing Prism for the Windows Runtime
Many of you will be familiar with Prism, a patterns & practices release that helps you to design and build composite applications. Since last year I've b...
Prism for the Windows Runtime Video
A video has appeared on the Visual Studio Toolbox site where two members of the Prism team discuss and demo Prism for the Windows Runtime. Prism for the Win...
Prism for the Windows Runtime
As I’ve previously mentioned, I’ve been busy recently working on another project with the patterns & practices team at Microsoft. The project provides gu...
Silence
It’s been a few months since I last blogged. That’s because I’ve been busy working on another project with the patterns & practices team at Microsoft. No...
Hilo C++ now available in 11 additional languages
Hilo C++ has been localized into 11 different languages. Including the American English original, that means it’s available in 12 languages. Here’s the list:...
Hilo JavaScript now available in 11 additional languages
Hilo JavaScript has been localized into 11 different languages. Including the American English original, that means it’s available in 12 languages. Here’s th...
Performing interop between XAML and DirectX
If you’re developing a Windows Store app using C++ and XAML and you want to use DirectX to improve performance or to reuse the assets in your app more effect...
Hilo JavaScript available as an e-book
The Hilo JavaScript end-to-end photo sample provides guidance to JavaScript developers who want to create a Windows 8 app using HTML, CSS, JavaScript, the Wi...
12 days of geekmas
MSDN UK have launched their 12 days of Geekmas competition. It’ll unsurprisingly be running for 12 days, will have 278 prizes and a challenge each day. Check...
11 reasons to read the Hilo Javascript guidance
11 reasons to read Developing an end-to-end Windows Store app using JavaScript: Hilo: It provides a practical example you can use to kickstart your Windows ...
Hilo available as an e-book
The Hilo end-to-end photo sample provides guidance to C++ developers that want to create a Windows 8 app using modern C++, XAML, the Windows Runtime, and rec...
Announcing Hilo JavaScript
Hilo is a Windows Store app I helped patterns & practices to develop earlier in the year. The app, originally developed using C++ and XAML, is an end-to-...
Creating an attached behaviour in a C++/CX app
Previously I’ve developed a sample photo viewing app to show how to implement a Windows Store app in C++/CX. The app uses MVVM as an architectural pattern in...
Unit testing a C++/CX app
There are many ways that a Windows Store app should be tested, including: Unit testing Integration testing UX testing Security testing Localization test...
Thread context in C++/CX apps
When developing Hilo we discovered that there are special context rules for task continuations that wrap async objects, or that use the create_async function...
Tips for building Windows Store apps using XAML and C++
The //build/ conference was last week and one of the many sessions was about tips for building a Windows Store app using XAML and C++. Specifically, this ses...
Announcing Hilo
Hilo is a Windows Store app I helped patterns & practices to develop earlier in the year. The app, developed using C++ and XAML, is an end-to-end app tha...
Suspend/resume/activation in a C++/CX app
Previously I extended the sample photo viewing app so that the user can covert a colour photo to greyscale, on the PhotoView page. This used MVVM and command...
MVVM and commands in a C++/CX app
Previously I demonstrated how to implement the MVVM pattern in C++/CX, through a small sample app that allows the user to view the photos in their Pictures l...
Navigating between pages in a C++/CX app
Previously I’ve developed a small photo viewing sample app to show how to implement a Windows Store app that supports design-time data, and uses the MVVM and...
Range-based for loops in a C++/CX app
One of the new developments introduced in C++11 are range-based for loops. Range-based for loops are an extension of the for keyword, and provide an efficien...
Displaying design-time data in a C++/CX app
Previously I’ve written about detecting design mode in Blend, specifically in a WinJS app. This is sometimes necessary if you want to enable the designer-dev...
Detecting Design Mode in Blend
The project I’m currently working on is an app in WinJS. One of the issues we faced is displaying design time data in Blend, in order to enable the designer-...
How to: Build Testable Windows Phone Applications
An earlier post outlined the Building Testable Windows Phone Applications guidance I’d developed with Patterns and Practices. At the time of release of this ...
Building Testable Windows Phone Applications
Last year I worked with Patterns and Practices to develop a number of pieces of guidance concerning Windows Phone development. One of the items was Building ...
Developing a Windows Phone Application using the MVVM Pattern
Last year I worked with Patterns and Practices to develop a number of pieces of guidance concerning Windows Phone development. One of the items was Developin...
Developing an Advanced Window Phone 7.5 App that Connects to the Cloud
Last year I worked with Patterns and Practices to develop a number of pieces of guidance concerning Windows Phone development. One such item has just been pu...
Developing Metro Apps using C++/CX
For most of the year I’ve been developing a Windows 8 Metro app, in C++/CX, with the Patterns and Practices team. As we near the release of the app I thought...
Accessing Image Pixel Data in a C++/CX Windows Store App
As part of a Windows Store app I recently helped to develop, there was a requirement to perform imaging operations that manipulated the pixel values of the i...
The Repository Pattern in C++/CX
In a previous blog post I demonstrated how to implement the MVVM pattern in C++/CX, by way of a small sample app that allows the user to view the photos in t...
MVVM in C++/CX
(cross-posted from the MSDN UK Team Blog) Previously I’ve written about the power of C++/CX for developing Windows Store applications. C++ is the language fo...