Yet Another Podcast – #168: Greg Shackles

Greg Shackles is a Principal Engineer at Olo. He is a Xamarin MVP, Microsoft MVP, host of the Gone Mobile podcast, organizer of the NYC Mobile .NET Developers Group, author of Mobile Development with C#, and also a monthly columnist with Visual Studio Magazine.

Today we discuss Azure Functions and Server-less programming, F#, Programming Alexa and more.



Posted in Mobile, Xamarin | Tagged | Leave a comment

I’ll be speaking at DevIntersection 2017

News flash from the department of shameless self promotion:

I’m pleased to say that I’ll be speaking at DevIntersection 2017 in Orlando.  Click on the image for more info, and use the code LIBERTY for a $50 discount.

Posted in Essentials | Leave a comment

Yet Another Podcast #167 – Charles Petzold

Charles Petzold has been writing books and articles about Microsoft-based operating systems since 1984. He is currently part of the Xamarin documentation team, which means he’s a Microsoft employee.

Today we briefly discuss what’s new in Xamarin.Forms and then turn our attention to another of Charles’ true loves: analog computers.  His new (forthcoming) book, Computer of the Tides: Lord Kelvin’s Machine to Disprove Evolution is part of a series of which The Annotated Turing is the first.



Posted in Essentials | Tagged | Leave a comment

Yet Another Podcast #166 – James Montemagno (Xamarin)

James Montemagno is a Principal Program Manager for Mobile Development Tools at Microsoft.



Posted in Xamarin | Tagged | 1 Comment

Yet Another Podcast #165 – Jon Galloway on Azure Functions

Jon Galloway is a Technical Evangelist at Microsoft, focusing on Web Development, Azure and .NET. He is also a long-time friend, and a truly great guy. 



Posted in Azure, Essentials | Tagged | Leave a comment

New MacBook Pro 13″ – First Look

The headline is this:  wow!  I’m much more impressed with this new MacBook Pro than others seem to be.

I won’t belabor all the improvements, but do want to touch on a few.

One, perhaps a killer feature for me, is how much better the keyboard is than on previous MacBooks.  Using what Apple calls “a second generation butterfly mechanism” you get a lot more responsive keyboard, the mushiness is gone, and I find I’m typing far faster on this than my old MacBook.

The trackpad is bigger and it is a force touch that is more responsive than my old one was.

Continue reading

Posted in Opinion, Review | Tagged | 5 Comments

TypeScript for C# Programmers – a new course

Posted in Essentials | Leave a comment

Adding Databound Pickers to a ListView

Databound Pickers are in much demand, and fortunately Karl Shifflett has created one that is excellent and easy to use.  You add it to your program, wire up the data-binding and  data-bound pickerhey! presto! you’re in business.

The tricky bit comes when you want to put it in a ListView and bind to its contents while still being able to bind to other properties of your objects.


Here’s an example based on a program I wrote recently (the names have been changed to protect the guilty)…

Let’s start with our Model.

Continue reading

Posted in Xamarin | 2 Comments

MVVM Light Messaging Made Absurdly Easy

I wanted to send a message from a ViewModel to its View so that themegaphone1 View could pop up a dialog box.  To do this, I used MVVM Light’s messaging bus.

At first, this seemed difficult because I was over thinking it.  It turns out to be painfully easy.

In the ViewModel I created a NotificaitonMessage.  You can pass any kind of object through the Message Bus, but to keep things simple, I used a string as my token.  All I had to do was instantiate a NotificationMessage object and then call a static method on the supplied  Messenger class:

var myMessage = new NotificationMessage("change");

This sends off my message like a message in a bottle.  The sender (my ViewModel) has no idea if the message will be received by any other class (ViewModel or View).

In the View I registered to receive this notification.  To do so, I put one line in my constructor,

 Messenger.Default.Register<NotificationMessage> (this, NotifyMe);

NotifyMe is a delegate, pointing to a method named NotifyMe.  You could, of course, just use a lambda expression.

NotifyMe receives a parameter of type NotificationMessage.  That message has a property Notification which contains the object you sent (e.g., “change”).

       public void NotifyMe (NotificationMessage message)
          string token = message.Notification;  // "change"
          DisplayAlert ("Test", "Hi!", "OK");

In the code shown, I extract the string “change” but I don’t do anything with it.  I just extracted it to show how it is done.

That’s it.  I’ve successfully told the View to display an alert by firing off a message in the ViewModel.  Handy, quick, easy.



Posted in Essentials | 1 Comment

Better Navigation in Xamarin.Forms

By Jesse Liberty and Eric Grover

There are many ways to navigate from page to page in Xamarin.Forms.  The most obvious is to use the built in navigation service.  However, if you are serious about MVVM, the built in navigation presents quite a problem.

Say I’m on page1 and I want to navigate to page2, from a method in page1ViewModel.  How do I do that? And how do I pass data from Page1ViewModel to page2ViewModel?

Most solutions spend way too much time coupling the VM to the View.  Yuck.

XLabs has an elegant solution.  I use it in conjunction with MVVM Light and it works like a charm.

With XLab navigation, you navigate from Page1ViewModel directly to Page2ViewModel (!) , and Page2 is displayed and tied automagically to its view model.   From Page2 on, you no longer have to set the BindingContext, it is set to the ViewModel without your doing a thing.  That is exactly how navigation should work.

Getting going isn’t obvious at first glance, however, so this posting will walk you through a detailed but simple example.

Continue reading

Posted in Essentials, Navigation, Xamarin | 6 Comments

Away From The Keyboard

I was pleased and proud to be interviewed on Away From The Keyboard, talking about my history in the industry.  Makes a good bookend with my talk with Shawn Wiawayfromthekeyboardldermuth on Hello World.

Great fun.

Posted in Essentials | Leave a comment

iPhone 7+ – First Look

What can I say that you don’t already know?  phone7plus

[Updated Sept 23, 09:19:

To reset the iPhone 7, hold the power button and the volume down button until you see the apple

The battery does seem to last much longer, but beware, it takes much longer to charge ]

The packaging is Apple standard (read beautiful), upgrading from my 6S+ was a piece of cake, activating the phone could not have been easier, and all my stuff was restored without a hitch.

Verizon is buying my old phone for $300, which offsets the new price by quite a bit.

One feature Apple is highlighting is that you can get the phone wet (and it is dust resistant as well).   Not swimming wet.  Not salt-water wet, but you can be out in the rain, or drop it in the toilet and it keeps on ticking.  That  actually matters a lot.

Continue reading

Posted in Essentials, Observations, Opinion, Product Reviews | 1 Comment