Prism: INotifyPropertyChanged implementation usage with BindableBase

Did one of these 3 years back for Windows Phone 8.1 I guess.

Gist for this new one here.

Step 0 – In Visual Studio, start a new Blank App (Universal Windows)

Step 1 – In Visual Studio, install Prism.Windows

PM> Install-Package prism.Windows -Version 6.3

Note that doing this caused prism.Windows to appear in the project references.

Step 2 – to start off tidy, add folders View, Model, ViewModel to the project

Step 3 – create a viewmodel file(s) (e.g. MahVm.cs as below),  and follow the code below, noting that MahVm inherits from BindableBase (once you add in the using for Prism.Mvvm)


Unmanaged code: calling win32 api from .Net

The first and second shots show the happy path. The third shot shows the effect of willfully misspelling MessageBox. You don’t get a compile time error because it is after all unmanaged code that .Net is accessing.

Useful site here


using System;
using System.Runtime.InteropServices;
namespace cli01 {
 internal class Program {
enum Options {
 OptionOk = 0,
 private static extern int MessageBox(IntPtr hWnd, string boxContent, string boxCaption, Options options);
private static void Main() {
 MessageBox(IntPtr.Zero, "The message in the box", "The caption", Options.OptionOkCancel);

The MSDN link on MessageBox. Look to be some errors in there suggesting it doesn’t get much love.

.Net:a client for an IIS-hosted WCF service

This is the third and last post on the basics of WCF usage. I use SoapUI to consume the WSDL which exposes the single method we created in the first post, and hosted using IIS in the second post. None of this covers how to install SoapUI, although hopefully there is enough here to show you how to use it.


At the end of the previous post, we had access to the service wsdl via the link in blue:


Click on the link, and from the URL that comes up next, copy that to the clipboard:


Start SoapUI, and create a project as shown here. My PC is called [i7], so adjust your entries to match your setup, and then click OK:


After that, the left side panel should look something like this:


Double click [Request 1] and the main panel looks like this:


Just to see what happens, click the green play button in the TLH corner:


If you now put e.g. 101 rather than the default [?], you get…


, which is exactly what we expect and want.


.Net: simplest WCF service and client

In VS2015, I wanted to create the very simplest possible WCF service, and a client, in the form of a console app, to prove it works.

In VS, use the WCF template to create a WCF service library. As the template is a Hello World, I choose to call it HelloAcmeService (I don’t know why I’m randomly picking fictitious brands):

That creates an interface file, and a class file, which contain more than I want, so we strip those back to a minimum, and do some renaming.








…removing the stuff I don’t want, and some renaming:






After an OK build let’s make sure we can reference it from the browser, by pressing Start in VS , and then clicking on the BaseAddress hyperlink  in the app.config (or just typing it in):


Now we could plug the WSDL into SoapUI and get a richer client experience (if those words mean nothing, that can be for another tutorial). For now, we’ll just create a console app to use the service.

Stop the service running in VS, so you can go back to editing. Create a console app under the solution (please note – there is in fact a compile error later using this name for reasons I am not going into here, and I won’t redo the screenshots – please call the console app HelloServiceAClient – note the ‘A’):


That gives you this new content in the Solution Explorer:


You now need to add a Service Reference to use the service from this client. Right click on References/Add Service Reference…, and in the dialogue, click Discover:


Click OK, and Solution Explorer now looks like this:


Now in Program.cs, add the text highlighted to access the service and use the GetData() method from the service:


The last action before testing it is to right-click on HelloServiceAClient and select Set as Startup Project.


Now press the Play button in VS, and you get this exciting output:


That’s it.


DNX: working Console Application

This is archive material: the syntax below no longer works. By Microsoft’s own admission I believe, while fun, this was barely alpha. See .Net Core 2 blog here.

Summary: I have at least proven that I can run a Console App from the command line, using dnu, dnx, dnvm, yada.This is the output from an hour’s effort, that it is, a console app called using dnx.exe:


The snippets below record my steps a) to see if by building a console app in VS2015 using a template I could infer exactly how it is done manually, b) failing to understand why it could not resolve the System.* dependencies, c) ignoring guidance in MSDN blogs about Nuget package manager in VS sorting it out, and instead letting dnvm restore do its job, d) F5 and ctrl-F5 to get a clue about how it is executed (i.e. the path to the required dnx.exe), e) executing dnx.exe from the command line, passing in the location of the project.json file, which holds all the necessary info about how and what to execute, f) an implicit confirmation that console applications are no longer about building and running an .exe. (And I get that aspVNext/Roslyn etc is not per se about console apps – I was just looking for a way to do the simplest thing, with the smallest number of dependencies. This at least does now open up the door to knowing (I think!) how I can execute this on a low power Windows machine (or Linux – I have no access to OSX) without Visual Studio present. I could of course just have grabbed an old style csc.exe… but this is about doing Roslyn and related, not revisiting old ground. So the noisy snippets: