More Wally - Wallace B. McClure

Giving people what they want, More Wally. This is the technical and personal blog site of
Wallace B. (Wally) McClure.

This Blog


Technical Sites


More Wally - Wallace B. McClure

This blog will have all kinds of posts about Wally McClure. In it, there will be tons of .NET and computer programming posts as well as Wally's views on life in general. As you might guess, this site and blog help you get More Wally in your life. What more could anyone want? iPhone, Android, Xamarin.iOS, Xamarin.Android, Mobile, HTML5, .NET, ADO.NET, ASP.NET, AJAX, jQuery, jQuery Mobile, ASP.NET AJAX, and Windows Azure............follow me on twitter at Wally
  • Build a Cross-Platform, Mobile Golf App Using C# and Xamarin - MSDN Magazine Article

    One of the fun things about the return of golf season is participating in tournaments that feature events such as a longest drive contest. In these, a person’s first shot off a designated hole is measured against others in the tournament. The longest drive during the day is declared the winner. However, these contests typically don’t have centralized scoring. If you’re in the first group, you don’t know until after the event is over where your shots stand in relation to everyone else’s. Why not use a mobile phone to record the starting point and ending point of drives and store the information in a cloud-hosted database?

    The options for building such an app are many, which can be confusing. In this article, I’ll walk through how I built such an app using the back-end options in Windows Azure and how I handled various issues. I’ll show the code for writing an app for Windows Phone as well as iOS using Xamarin.

    Several features were required. The app needed to run across mobile devices and multiple device OSes. It had to be a native app that looked just like all of the others on a device. The back-end server had to be always available, with minimal hassle to the developer (me). The cloud services had to provide as much help as possible in the area of cross-platform development. The back-end database needed to provide some amount of geolocation functionality.


    Many thanks to Brian Prince, Kevin Darty, Tara Walker, Craig Dunn, and a host of others for reviewing the article

  • Metamorphasis Complete

    Intro Complexitor 

    Posted Mar 26 2014, 12:01 PM by wallym with no comments
    Filed under:
  • Two important items to do in Business

    Over the last 25 years, I've discovered two important items that one must do to be successful in business.  These are:

    1. Don't tell all of your secrets. 

    Here endth the lesson.

  • The Chrysalis Stage


    Posted Mar 12 2014, 12:01 PM by wallym with no comments
    Filed under:
  • Clean and (Re)Build your code after updates

    "I've downloaded a copy of your Xamarin example and it doesn't work for me."  I wish I had a dime for ever statement I have heard on this (or similar).  The issue is that each update to .NET, Xamarin.iOS, Xamarin.Android, or many other pieces in the chain of code that I have used as an example most likely has an older version of the .NET (Mono) framework from the one you are currently have installed.  As such, it is a good practice to go through Visual Studio (or Xamarin Studio) and perform the steps of clean and (re) build on any sample projects that you have downloaded.  This will get the app upto date with the version of the framework that is installed on your system.  While you tend to see this with the Xamarin tools, that is because their tools get revised much more so than the .NET framework.  It happens everywhere, just do it, life will be much better. 

  • Many Thanks

    I wanted to start a list of people that I need to thank for some reason regarding helping me in the technology world.  Some of it for big things, some of it for small things, mostly it has to do with helping me spread the word on my articles, but definitely thanks are in order.  I'm not some name that draws people just because of my name.  I don't have a cadre of people behind me promoting me.  I have to claw to get my word out. 

    This list is not complete.  People will be added to it all the time, but I wanted to at least start it.  So, here goes.

    • Craig Dunn.  Craig was amazingly helpful during my Xamarin books.  He was a coauthor on the iOS book.  He taught me a lot on iOS and he has been amazingly helpful since then with my articles and such.
    • Chris Hardy.  Poor Chris had to take my IMs at all hours of the night.  He has always been kind regarding responding with never a negative word.  Chris has been a co-author on our Wrox books on Xamarin and a huge help!
    • Rachel Appel.  Rachel has always been super helpful.  Can you mention this blog, how about a rt, whatever, she has always been there for me.  I hope to be able to return the favor(s) some day.
    • Kevin Darty.  Kevin has been incredible.  He reads my articles, provides a realistic viewpoint, isn't a yes man, and will help get the word out.  He does it all.
    • John Bryne.  John is at New Horizons Knoxville.  Awesome guy.
    • Stephen Long.  Stephen has read my article, provided feedback, been a tech editor, and been helpful in getting the word out.  What more can one want.
    • Michael Neel.  Michael has a zillion things going on in his life.  It is hard to catch him, but he has always been helpful.
    • Tara Walker.  Tara has always gone out of her way to help, either by discussion or by mentioning my articles.  I will never be able to pay you back.
    • Josh Holmes.  While I don't get to see Josh much/at all any more, Josh is super helpful to me.
    • Joel Cochran.  Joel is amazingly helpful in getting the word out.
    • Mike Bluestein.  I wish I would get to see Mike more.  Mike is incredibly helpful, even when I don't ask.  He's done so much for me that I can never equal out what I have gotten from him.
    • Joseph Hill.  I can't say enough about Joseph and the Xamarin platform.
    • Chris Love.  Chris and I love to talk about HTML5 and Mobile apps.  While the discussion is fun, there is tremendous respect for Chris from me.
    • Steve Bohlen.  Great helper.  I am forever in your debt.
    • Elijah Manor.  I wish I could equalize what I get from Elijah.  I never will.
    • Peter Bromberg.  You da' man, with all your help.
    • Greg Shackles.  My co-author on the VSM Cross Platform with C# column.  I've learned so much from him, I'm honored to have him on the column.
    • Jon ***.  Jon was a co-author on our Xamarin Android book.  He's been helpful ever since.  His help is much appreciated in all things.  Now "Get Off My Lawn!"
    • David Penton.  I've known you for years and you have always been helpful to me.  I luv you man, no homo.
    • David Silverlight.  I love your line "I don't always tweet, but when I do, it's to promote something of Wally."  You've always been helpful and a good guy.
    • Glen Gordon.  I've always appreciated Glen, since he was a MSFT DE.  He was always helpful even though he was never "My DE" from the standpoint of where I live.  Glen is a good man.
    • Brian Prince.  Brian is a MSFT employee and good Azure guy to know.  Brian read through an upcoming article of mine on Cross Platform Development with Azure, provided feedback, and it was much appreciated.
    • Paul Suerth.  You know him as CrunchX on twitter, I know him as a great help.  Paul helps me get the word out regarding my articles.
    • John Kanalakis. John helped me with a Twitter oAuth problem I was having for an upcoming article. Many thanks John.
    • Joe Mayo.  You may know Joe Mayo as the author of Linq To Twitter.  I know Joe Mayo as the guy that took some time out of his day to answer some questions regarding Linq To Twitter and resolve some issues that I had (these issues were self inflicted).

    I'll be adding to this list over time, these are just the most recent ones that I have been talking to and thinking of.  To everyone, your actions, no matter how small to you, have always been appreciated by me.  I am forever in everyone's debt.


  • CodeCast Episode #2 - Talkin' 'bout Xamarin

    I was honored to have been on CodeCast Episode #2.  While there, I talked about my past, how I got into programming, and the decision tree that led me to use Xamarin's technologies.  After those discussions, I did a demo on oAuth authentication to Twitter via Xamarin.Auth and Xamarin.iOS (iPhone) and then showed the code for doing the exact same thing in Xamarin.Android (Android).  Hopefully, this is helpful to you as you look at, discussion, try, and do whatever on Xamarin's technologies.


  • The Vultures

    I can has stapler 

    Posted Feb 26 2014, 12:01 PM by wallym with no comments
    Filed under:
  • Everything Is An Object

    Everything is an object 

    Posted Feb 12 2014, 12:01 PM by wallym with no comments
    Filed under:
  • Article - How to Advance Your Software Development Career: Sharpen Your "Soft" Business Skills

    Original Url:

    Many developers get into technology careers because they like to write code. However, as you progress in your career, you'll probably find that at some point, you "hit the wall" and have reached the highest position you can solely as a coder. To advance in your career, you must expand your expertise to include more than just straight technology know-how and experience. You must understand the nature of business so that you can take actions in your career that directly profit the business and profit you as well.

  • Unrealistic Expectations - Their Problems, Causes, and How to Resolve Them

    I've been speaking, blogging, and talking about the business of software development, consulting, and professionalism over the past couple of months.  One of the issues that comes up is that of expectations.  I've kinda danced around it, but have now decided to discuss it a little more.  All to often, I have found that there are unrealistic expectations.  These can be either the client or the developers.  Many times clients think that creating software is easy, simple, and cheap (as the blog post shows).  They have an unrealistic view of cost, time, level of effort.  Let me bring up an example that I have had happen several times.  Here is a scenario that I have seen several times:

    Client: I want a mobile app.  It needs to integrate with my sales infrastructure, share data with my cms, allow users to work on the same thing regardless if they are using web or mobile, and several other items.  I need to know how much this will cost, because it all has to be cheap, cheap, cheap.

    Me: Ok, let's talk about your infrastructure.  Do you have the infrastructure to support this?

    Client:  Who cares about infrastructure? I want a mobile app, I don't care about this other stuff.

    Me:  Without infrastructure, you won't be able to do all of the things that you want.  

    Client:  <Pulls out phone and points to it's smallness, Implies that small means cheap> This just fits in my pocket.  I want a simple, easy app that runs on this.

    Me:  We need to have the mobile infrastructure that allows you to share data between your existing users.  There is no magic here.  There has to be a software layer that allows us to bridge from between the mobile app and the web users.  Plus, we have to have this layer anyway because you must put your mobile user data somewhere.  Users want to make sure that their data is stored and can be easily retrieved if they get a new phone.

    Client:  This is sounding way more expensive than I thought it would be.  I'm only expecting this to cost about $4-5k.

    Me:   Applications like this cost a significant amount of money.  The amount of requirements gathering that we must do will be more than $4-5k.  We have to sit down with end users, gather requirements, document what their desires are, figure out what will bring the most value to the business.......

    Client:   Stop, what are you babbling about? We just want a mobile app.  I don't know what you think, but we are only going to spend $4-5k and you will have to do this all for us.

    Me:  I am trying to explain the development process.  Development is more than just writing code.  We have to do a lot of work before we write the first line of code.  Doing this results in the best application for your end users.

    Client:  Stop, you are just trying to soak us for money.  This meeting is over. Get out!

    While this may sound unrealistic, I've actually sat through a meeting that went just like this. Obviously, this was an extreme example, but it also had some one very realistic item, the client's expectations.  No matter how I tried to explain it, the client expectations were set before the meeting. Some of the causes of this can be along with my thoughts are:

    • "I hear that applications can be built over a weekend by kids in their basements." - While I am sure that someone can create a demo in a few days/weeks/months, the time required to create an application that your users want to use is significantly more than you are thinking.  Rome was not built in a day, and neither was Facebook, Google, Yahoo!, Twitter, or anyone else that you are thinking about.  For example, Twitter went through a number of years where their product was not reliable under a moderate load, let alone a high load.
    • "We've looked at this app, and we believe that a junior level develop can do what we need." - I can appreciate the fact that you don't have a lot of money, however, I can guarantee that a beginning/junior level developer won't be able to produce a product that will scale to the level that you need.  The scale that you are trying to reach is well beyond a junior level developer.
    • "We want to use a provider that is really hungry for this and wants to grow with us."  Ok, so what you really said is that cost is more important than anything else without really saying it.  By picking someone based on the amount of discount you get, you aren't setting yourself up for success.  I would recommend deciding based on who has the highest probability of success.  There are plenty of failures out there.  You really need to sit down and thinking about who has your highest probability of success, not who is giving you the biggest discount to get the work.
    • "So, the way you guy work is that we get things for free and you sell whatever is developed to other clients.  No, we want a cut of your future sales." - There isn't much that you can do with this type of client.  Any type of software that is delivered for a specific client is typically optimized for that client.  Thinking that it can be repackaged is the wrong thing for a consulting company to think it can easily do.  Overall, this is a really hard issue to resolve.  A variation on this is that I had a business partner that thought that we could write an application for one client, bill the client for all the work, and then bill the next client for the same amount, thus making a 50% profit on the product.  I'm sorry, but this kind of stuff just does not work in the consulting world unless you can satisfy a number of requirements.  Since most of us can't satisfy these requirements, call this a bad idea, and let's just move on.

    Just to be clear, I'm not saying that it is only clients that are unrealistic.  I've dealt with other consulting companies and their sales people.  I've found some to be realistic, and some to be completely unrealistic.  I'll never forget sitting in a meeting where one of the account managers for a much larger consulting company was fairly open about fleecing  the client.  This ws an unrealistic expectation regarding the client.  The expectation from this client was that there was an endless supply of money.  This is a mistake that I have seen a number of times.  It is unrealistic to believe that money for a project will last forever.

    Ok, so how so we resolve these unrealistic expectations on both sides?  There are two options that I have found that work.  Which way you go depends on the situation.  Here are a few situations that

    •  If you have a good relationship with the client, have a realistic conversation with them.  You would be amazed what a realistic conversation will do.  I've had a realistic conversation with a client, discussed what is involved, what I think that they are looking for, and an honest discussion regarding what their needs are.
    • Sometimes, no matter what the situation is, the client has unrealistic expectations.  You can have a discussion with them.  If the discussion doesn't work out, then yes, you might need to walk away.  Let me be clear that walking away should be a choice of last resort.  It is a last choice, but a choice none the less.  You should never try so hard as to put yourself in a bad situation just for the desire "to win."  Saying no and walking away is an option that I often do not see in the technology field.  It is a realistic option when the client has too many unrealistic expectations.
  • Complexitor - Found It!

    The dawn of a new day 

    Posted Jan 29 2014, 12:01 PM by wallym with no comments
    Filed under:
  • Training on Xamarin.iOS with iOS 7: Introduction and Features

    I have a new training class out on using Xamarin.iOS with iOS 7 (iPhone and iPad).  This training class will introduce you to iOS 7.  Personally, my favorite features are iBeacons.  I hope that you all the new iOS 7 features as much as I do.


    Course Description: In this course we will look at a number of new features for iOS 7. These include the visual transition between views and a number of other new features. We’ll look at iBeacons and more options for background processes. iBeacons have the power to improve location management services by giving really fine control over location and the information at that location. The Background processing feature has been designed for the mobile environment and takes into account power management issues.



    Introduction to iOS 7
    Device Support
    UI - User Features
    UI Redesign
    Text Kit
    64 Bit Support
    Sprite Kit
    Game Controller Framework
    Game Center Improvements
    Inter-App Audio
    Safari Services
    Media Accessibility Framework
    JavaScript Core Framework
    iOS7 User Interface

    UIKit Framework
    UIKit Framework (cont'd)
    Xcode Features
    Existing Controls
    iOS7 Design Surface
    View Controller

    View Controller Transitions
    During the Transition
    UIView Animation Enhancements
    Spring Animations
    Keyframe Animations
    UIKit Dynamics
    Primitive Behaviors
    Sequence for Adding
    Sequence for Adding (code)

    Dynamic Type
    Text Kit
    Text Kit Architecture
    Text Storage & Attributes
    Background Download

    iOS Background Tasks
    Backgrounding Session in iOS7

    I hope that you enjoy the training. Thank you for your time and consideration.
  • Article - Xamarin How-To: Controls for Navigating Between Screens in iOS

    Article Url:

    Developers like to create simple examples. Typically, these examples are a screen of data and controls that users can work with. But rarely are real-world applications a single screen of data. iOS provides developers with several standard mechanisms to allow users to navigate between multiple screens of data. This article will examine two controls that developers can use to provide easy navigation for users: the UINavigationController and the UITabBarController.

    I hope that you enjoy the article. Thank you for your time and consideration.
  • Training on Xamarin Visual Studio 2013 Plugin, .NET 4.5 async/await Support, HttpClient, and other New Features

    I have a new training class out on Xamarin.  This session will cover the new features that Xamarin has provided in their mid-2013 update.  These new features include support for iOS 7 (iPhone and iPad), but don't require iOS7.  I hope you enjoy this class.  My favorite features here are the Visual Studio 2013 support for iOS, which I use every day, the .NET 4.5 async/await support, and the HttpClient.


    Course Description: With the new features from Xamarin, .NET developers have many things that they can work with. Xamarin has provided support for Visual Studio developers to write iPhone and iPad applications. Support for the asynchronous APIs in .NET 4.5, the .NET 4.5 HTTP client, improved gestures for an improved API to work with and other features as well.
    Xamarin .Net 4.5 Features
    Recent Xamarin Updates
    iOS Specific Enhancements
    Tools updates
    Async Support
    Why Async?
    How to be Async?
    async/await to the Rescue
    Exception Handling
    Good Candidates

    HTTP Client
    HTTP Verbs
    GET Operation
    Other Http Verbs

    Xamarin Async Extensions
    iOS async/await extensions
    F# Support

    Xamarin OS Visual Studio
    Visual Studio Features for iOS
    Host Settings
    Xamarin.iOS Build Server
    Visual Studio Toolbar
    Additional Toolbar Options
    Output Windows
    Project Properties
    New iOS Project
    File -> New
    User Interface
    Screen Rotation

    Improvements and Gestures
    Recent Xamarin Improvements
    Gesture Recognizers
    Previous Setup
    Multiple Gestures

    iOS Notifications
    Local Notifications
    How To?
    Push Notifications
    Demo: Local Notifications

    Xamarin Razor
    Razor Integration
    Demo: Xamarin App
    Demo: Razor Integration

    Xamarin Other
    Audio Support
    Updated Garbage Collector
    Strong Type Constructors
    Screen Capture
    CFNetwork HTTPClient

    I hope that you enjoy the training. Thank you for your time and consideration.
More Posts Next page »
2006 - Wallace B. McClure
Powered by Community Server (Non-Commercial Edition), by Telligent Systems