Yet Another Podcast #172 – James Montemagno on Embedding

Talking with James Montemagno, Principal Program Manager for Mobile Developer Tools at Microsoft



Posted in Essentials | Tagged , | 1 Comment

Asking Questions That Get Answers

This is from my Help! page, but I thought it might be worth blogging here as well…


Creating a Question That Is Likely To Be Answered

whisperThere are a few techniques that make for a question that is likely to be answered quickly and well. While none of this is a surprise, take a look at the questions that are posted, most don’t follow these simple guidelines:

Summarize your question in the topic

Most folks are more likely to open a question with the topic “How Do I sort a column in a datagrid” than one with the topic “Help, Urgent!” even though the latter may, in fact, be more urgent

Be Brief, Be Precise

A long rambling message whose point is hard to fathom is hard to answer.

Write Down the Exception or Error Message

It is far easier to help someone if they way “when I click on the button the second time I get a an exception saying that I’ve tried to access a null object,” than it is to help someone who writes “Sometimes my program blows up and I get an error.”

Provide An Example

The single most effective thing you can do to get help is to write the smallest and simplest example that shows the problem. It should be so small it fits cleanly into your message – not as an attachment (many folks are reluctant to open attachments). It should do only one thing, and that is: illustrate the problem; and it should be self-revealing.

What A Great Question Might Look Like:

Topic: When I add data to my listBox I sometimes get an “Index was outside the bounds of the array”

Message: I have a program that adds strings to a listBox based on the user pressing a button. Here is a stripped down example. In the Xaml I declare a button and a list box:

using System.Windows;
using System.Windows.Controls;

namespace Error
   public partial class MainPage : UserControl
      string[] data = new string[] { "a", "b", "c", "d" };

      public MainPage()
         AddFieldToListBox.Click +=
         new RoutedEventHandler( AddFieldToListBox_Click );

      void AddFieldToListBox_Click(
           object sender, RoutedEventArgs e )
         for ( int i = 0; i <= data.Length; i++ )
             ListOfText.Items.Add( data[ i ] );

The error happens on line 22 (adding the data). I don’t see how it is out of bounds.

This is a fairly plausible error for a newbie to run into and it is an inviting question to answer: the topic tells me what I’m dealing with, the message is very short but tells me what I need to know and the example, while short, makes obvious where the problem is.

Key here is short – the shorter your message and the smaller your example, the more likely you are to get an answer; don’t make the people who want to help you work harder than necessary.

Posted in Essentials | Leave a comment

DevIntersections Advanced C# Code

For those of you who attended my session on Advanced C#, here is a zip of the examples.  Thanks

Posted in Essentials | 2 Comments

Yet Another Podcast #171 – MFractor


Talking with Matthew Robbins, creator of MFractor.  MFractor is a set of extraordinary tools for Visual Studio Mac.

  • Twitter: @matthewrdev
  • Sack: #mfractor Xamarin Slack sub-channel
  • Email:
  • Web: 




Posted in Essentials | Tagged | Leave a comment

Yet Another Podcast #170 – Windows Template Studio

Create UWP Applications with a template wizard…

Clint Rutkas is a Sr. Product Manager for Windows focusing on the developer platform.  He has worked at 343 Industries on Halo and on Channel 9 and built some crazy projects using Windows technology like a computer controlled disco dance floor, a custom Ford Mustang, t-shirt shooting robots and more.

Michael Crump works at Microsoft as a Product Manager on Windows and is a coder, blogger and speaker of various software development topics. He has a passion for a wide range of technology stacks that involve desktop and mobile. You can find Michael on twitter at @mbcrump or his personal blog at

They are responsible for the new Windows Template Studio. In short, this is a set of templates to make creating UWP applications far easier.  WTS uses a wizard to walk you through four steps:

  • Pick your project type
  • Pick your Framework
  • Select which pages to use in your app
  • Add features



Posted in Essentials | Tagged | 1 Comment

Yet Another Podcast #169 – Shawn Wildermuth

Shawn Wildermuth has been tinkering with computers and software since he got a Vic-20 back in the early ‘80s. As a Microsoft MVP since 2003, he’s also involved with Microsoft as an ASP.NET Insider and ClientDev Insider. He’s the author of over twenty Pluralsight courses, written eight books, an international conference speaker, and one of the Wilder Minds. You can reach him at his blog at


Today we dive deep into ASP.NET Core, and then talk about Shawn’s upcoming documentary on why developers are passionate about what they do.


Posted in ASP.NET Core | Tagged | 2 Comments

C# 7 First Look

Very proud to announce the release of my newest Pluralsight course:  C# 7 First Look.

Posted in C#, Pluralsight, Programming | 2 Comments

File Persistence in Xamarin.Forms Apps

The goal is to persist data to a file.  You might do this for any number of reasons, including storing away user-preferences or, in this case, storing away data to protect you from a crash.

In this simple application we collect names and display them in a list.  If the program crashes after the names are stored to disk, clicking restore will bring them back.

To do this we’re going to create a generic file repository.  This is overkill for this simple demo example, but can be a very powerful pattern to use with larger applications.

Continue reading

Posted in Essentials, Patterns & Skills, Programming, Xamarin | Leave a comment

Code with Meraki

Posted in Essentials | Leave a comment

AirPods First Look

I don’t believe in skimping on tools.  I write software, so I have big monitors and a great chair, and powerful Macs.  I write mobile apps, so I have a bunch of phones.

But AirPods are not part of my toolset.  They are a flat-out indulgence, which is why I asked for them for my birthday.  They are just too expensive to buy for myself and not feel a bit guilty.

But they are truly great.  The sound is amazing, and not being tethered has tremendous advantages.

Continue reading

Posted in Essentials | Leave a comment

Top 10 Mac Utilities for Developers

I recently tweeted a request for nominations for best utilities and productivity tools for Developers working on the Mac.  This list is an aggregate of my recommendations and those of others who I greatly respect.  They are listed in no particular order.

Fantastical is by far the best calendar app I’ve used, and the killer feature is the ability to add appointments on the Mac or on iOS using natural language.  It really gets it and makes adding appointments fast and easy.  Integrates perfectly with Google Calendar and others.


ToDoIst is best the in class To Do list (and, frankly, I’ve tried them all!)  This one is just right: easy to use, has few bells and whistles but it has all the critical ones.  It is very easy to add an entry either by clicking or with keyboard shortcuts, and you can set alarms to be notified when it is time to do something.  iPhone companion is great.

SourceTree is my choice for working with Git.  What can I say? Its visual interface is intuitive, it works, and when you fall off a cliff it has easy access to Terminal.

Evernote  My go-to note taking application.  It will do much more, but I use it simply and for just three things: taking notes (which it does superbly well), searching (and with its automatic OCR you can search on anything, even text in images) and managing documents from the highly recommended EverNote scanner (expensive, but the best I’ve ever used and lightning fast)

KDiff3– Best merge tool on the market.  For merging there are four windows: One shows the file with no changes.  The second shows the window with the first set of changes; the third window shows the second set of changes and the bottom window shows the result of adding from either or both.  The popup menu makes merging from either or both changes a snap, and you can choose the order, undo and generally merge in seconds.


Postman  You just can’t work with APIs without Postman.  Get it.  Now.

Snagit  I use this a lot, and for a developer the ability to take screen snaps is required.

Vysor This makes projecting my phone onto the screen a breeze.  And you can interact with the phone through Vysor, making development and presentation infinitely easier.

Visual Studio Code – The best text editor I know of, though others are certainly in contention.  I like this one because it feels a lot like Visual Studio; my fingers tend to know what to do.  It also have some terrific features, and is a natural for TypeScript and other  languages.

Instapaper – I love going through blogs and on-line new sources and marking them for reading later in Instapaper.  It gives me just the portability and time shifting I need to stay productive.

Posted in Essentials | 2 Comments

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