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
  • Xamarin Tools: Components, Components, Components!

    The Xamarin tool ecosystem is gaining popularity, as more developers continue to build tools with mobility in mind. Here's how to use them in your projects. 

    I couldn't help but think about Steve Ballmer's "Developers, developers, developers! …" chant. While often lampooned, the chant shows how important developers are to growing the Microsoft platform.

    End-user developers and companies will often judge a company's acceptance in the marketplace by the number of third-party components and add-ins that are developed around that product. It's a complaint I've heard leveled against Xamarin, that it lacks a robust ecosystem of tools, but that is changing.


  • Xamarin.Forms: What Developers Make of It

    Developers tell us why they use it and what benefit they derive from the tooling, and Xamarin developer Craig Dunn goes over the decisionmaking process when choosing between Xamarin.Forms, Xamarin.iOS or Xamarin.Android.

    I reached out to several developers who were involved with the Xamarin.Forms (XF) beta to get their thoughts on it and also talked with an evangelist for Xamarin, Craig Dunn to get some deeper insight into the development of the product.

    Rui Marinho is a developer based in Portugal. Rui is heavily involved in an open source project called Xamarin.Forms Lab project, which is intended to provide additional functionality that can be plugged into Xamarin.Forms. You can check out his Web site at to check it out and find additional third-party/open source projects for Xamarin.Forms. Ryan Groom has been developing software for more than 20 years and has authored several books and been extremely active working with Xamarin tools. Jason Awbrey is a Xamarin MVP with nearly 20 years of experience with software development.

    Article Url:


  • Simplifying Cross-Platform Mobile App Development with Xamarin.Forms

    Lots of decisions go into creating cross-platform apps. Without Xamarin.Forms, the decision process is almost too unwieldy. Here's how it can simplify your mobile development.

    Over the past several years, developers have been excited by the ability of Xamarin to target various mobile platforms and share code across these platforms. Over that time, Xamarin has increased the ability to share code by sharing code in Linked Files, supporting Portable Class Libraries, introducing the Xamarin Component Store, adding support for NuGet directly into Xamarin Studio, and a number of other enhancements to their product lines. One feature that developers have been asking for over the years is the ability to share UI code between various platforms. I know I've asked for this feature for several years. With the late spring 2014 release of Xamarin 3 and Xamarin.Forms, Xamarin has produced a cross-platform UI application-programming interface for developers.

    For more, continue on to the article at: 

  • Cross Platform Mobile With C# WhitePaper presented by Visual Studio Magazine

    My white paper on Visual Studio Magazine is now available.  This whitepaper will discuss the details for developing cross platform applications with C#.

     "As a Microsoft-centric developer, you have great tools in the Microsoft .NET Framework and C# Language, but you're faced with a challenge when it comes to building apps for the exploding world of mobile devices: Learning new languages and platforms can be incredibly time-consuming.  Wouldn't it be better to use the skills you already posses?  In this paper, you'll learn how to use the interoperable technologies of Xamarin to do just that.


  • Be More Social: oAuth, Facebook and Xamarin

    It isn't breaking news that social networks are a big deal to your users. But what's the best way to add that functionality in the cross-platform development world? One of the best ways is through Xamarin, which provides a set of components that allows developers to concentrate on high-level programming and solving user problems. This article will look at some technologies available in Android -- as well as the iPhone -- to add social features to applications. It serves as a companion to my April article that covered oAuth, Twitter and the Linq to Twitter library.


  • Standardized Navigation Principles for Android App Development - Visual Studio Magazine Article

    Navigation in mobile devices is an important consideration. If a user isn't able to navigate an app, he might quickly abandon it. Learn the navigation principles of Android to keep this from happening to you.

    Mobile applications have a number of screens (Activities and Fragments) associated with them. Navigating through these is an important mechanism. There are a number of ways to provide standardized navigation in Android. This article will look at three mechanisms to provide navigation:

    1. Menus: Menus provide a common UI component for an application. The Menu APIs are used to present actions, as well as other options within an application.
    2. Navigation Drawer: The navigation drawer is a panel shown from the side of the display; it provides the user with the application's main navigation.
    3. Action Bar: The action bar provides a familiar navigation mechanism to the user across the top of the screen via an app icon, action items and action overflow.


    Many thanks to Tomasz Cielecki

  • TDD Isn't The Problem. TDD Douchebags Are.

    TDD Douche PreachingOver the past few weeks, I've seen this discussion online asking "Is TDD Dead?"  I think the general goal of testing is a good one.  The specific goal of finding regression problems is good as well.  I'm all for this.  Where I, and a lot of other people, have a problem is with the screaming rabid fans of TDD yelling at everyone within shouting distance that "If you don't do TDD, you are doing development wrong!"  Excuse me?  I have written major applications for major clients as well as public facing internet portals that worked, supported millions of users, and there was no automated testing in sight.  How did I accomplish this feat when all of these disciples of TDD tell me I did it wrong?  I didn't do stupid ***.  I examined the applications as bottlenecks came up and I resolved them, using good engineering practices. 

    Overall, testing is not the problem.  Testing of stateless server code, now that's something that gets me excited.  Testing that helps out, I like that.  Testing that overrides user needs? Now, there is a problem.  Screaming that not doing TDD means you are doing it wrong and other wild and outlandish statements, they are the problem.   TDDD, now there is a problem.

    To the TDDD out there that are reading this, I applaud your goal of trying to create better developers, I really do.  However:

    • Don't smear me with the broad stroke of being a bad developer because I don't share your douchebag views.  And yes, if you scream this, and I know who most of you, you sound like some dumbass "fire and brimstone preacher" yelling at people as they drive by.  You are both in the same place in my mind.
    • Work on actually helping developers get better.  This bullsh*t strategy of screaming "You are doing it wrong" is just that, bullsh*t.  Help developers get better.  Help them, don't scream at them.

    I don't want the concept of testing to die, I just want the TDDDs out there to stfu.

  • Your Non-Professional Opinion Does Not Matter - Keep It To Yourself

    As a software developer, I am constantly bombarded by good natured, and not so good natured, suggestions.  If you are not a developer, your opinion does NOT matter to me.  I view it like I would someone making suggestions to Peyton Manning about what he could have done better in the Super Bowl blowout loss to the Seahawks 43-8.  Until you have played/coached/had success in the NFL, your opinion means nothing to Peyton.  If you are not a developer who has had successful startups, worked on major projects, had success, your input has no value to me. 

    There is also a second part to this, and that is your professional opinion.  Even if you are developer, you have to have a professional opinion.  Just saying "Your language/platform/framework sucks" means absolutely nothing to me.  I'll give you an example.  In the late 2000s, there were many fans of the then beta ASP.NET MVC that would tout it's features and make unfounded statements that "You are an idiot if you don't do MVC immediately and rewrite all of your code."  Yes, as dumb as this statement is, I heard it more than once.  MVC has some fine things to recommend it, but I've never met a framework that was the be-all end-all of anything.

    Now, we have Apple putting out the Swift programming language.  I have read some docs on it today.  It sounds really cool.  I think it will solve some problems in the iOS/Mac area.  I think it is a step up over ObjectiveC.  I don't think it is a massive middle finger to Microsoft regarding C#, F#, or anything else.  Swift is Apple's answer to modernizing their platform for developers.  I congratulate them for it.  I am excited about it.  I don't think that it solves every problem under the sun or that it will somehow cure cancer. 

    Don't drink the Kool-Aid, don't believe the hype.  Be realistic.

  • Cross Platform Data Access with Xamarin & C# For iPhone, iPad, and Android - Local, Web Services, & Sql Server

    The following is a link to cross platform data access training with Xamarin & C#.   It is intended for use on iPhone, iPad, and Android devices.  The course covers local data in Sqlite, calling Web Services via REST and JSON, and calling Sql Server.


    Course Data 

    Applications live on data. These applications can vary from an online social network service, to a company’s internal database, to simple data, and all points in between. This Course will focus on how to easily access data on the device, communicate back and forth with a web service, and then finally to a SQL server database.


    • Local Data (27:36)
      • Introduction (00:36)
      • Problem (01:57)
      • Solution (02:01)
      • LINQ (02:03)
      • LINQ Status (00:48)
      • SQLite (02:18)
      • SQLite - .Net Developers (00:50)
      • SQLite-net (01:07)
      • SQLite-net Attributes (02:10)
      • Getting Started (01:09)
      • CRUD (01:05)
      • SQLite Platforms (01:17)
      • Demo: SQLite – Android (04:53)
      • Demo: SQLite – iOS (04:56)
      • Summary (00:20)
    • Web Services Data (32:43)
      • Introduction (00:19)
      • Async Commands (03:15)
      • HttpClient (01:26)
      • HTTP Verbs (01:29)
      • Notes (00:58)
      • GET Operation (01:37)
      • JSON.NET (01:50)
      • Images (01:16)
      • Other Http Verbs (01:27)
      • Post (03:18)
      • Demo: Http – iOS prt1 (05:26)
      • Demo: Http – iOS prt2 (05:28)
      • Demo: Http – Android (04:20)
      • Summary (00:27)
    • Direct Data (12:33)
      • Introduction (00:23)
      • Remote Data - Direct (02:47)
      • Sql Server (01:15)
      • Demo: Sql Server – iOS (04:15)
      • Demo: Sql Server – Android (01:49)
      • "codepage 1252 not supported" (01:03)
      • Other Resources (00:43)
      • Summary (00:15)

    Note: Thanks to Frank Kreuger for his data access library Sqlite-Net.  It is very helpful and I have used it in some other projects beyond just this training session.

  • Cross Platform Development with Xamarin - Portable Class Libraries and ASP.NET Razor Templating

    My training on Cross Platform Development with Xamarin w/ Portable Class Libraries and ASP.NET Razor Templating is now available online from Learn Now Online.  The url is:

    Course description

    In this course we’ll cover cross platform mobile development using Xamarin. First we’ll cover Portable class libraries (PCLs). PCLs are tools provide .NET developers a way to share code between platforms with one library. PCLs help developers reduce the time and costs of development and testing code. With a PCL project, one library can be used by multiple platforms. Then we’ll move onto Mobile web apps. Mobile web apps are a very popular mechanism to target mobile devices. Unfortunately, there are times that a mobile web app cannot access device specific features. Xamarin provides a mechanism to host an ASP.NET MVC Razor Web Template/Page within a native application. This provides the cross platform capabilities of the web while still allowing applications to access native features of device.

    I hope that you enjoy the course as well as my others at LNO.

    Course outline

    Compilation (42:37)
    • Introduction (00:18)
    • .Net Compilation (01:33)
    • iOS Compilation (02:32)
    • Android Compilation (03:10)
    • API Support - Two Platforms (02:09)
    • API Support - Three Platforms (01:04)
    • Solution (02:04)
    • Benefits (01:40)
    • Disadvantages (01:09)
    • Platforms Supported (01:59)
    • Feature Support (00:38)
    • Nuget (02:08)
    • Supported Platforms (00:47)
    • IDE Support (01:39)
    • Demo: Create PCLs - Create (03:58)
    • Demo: Create PCLs - Nuget (04:04)
    • Demo: Creating PCLs - Detail (04:27)
    • Demo: Create PCLs - Android (06:42)
    • Summary (00:27)
    VB and Info (13:50)
    • Introduction (00:25)
    • Visual Basic Support (01:20)
    • Demo: VB PCL Project (04:40)
    • Compared to File Linking (02:12)
    • Issues (02:32)
    • Licensing (01:06)
    • Urls of Interest (00:33)
    • Previous Courses (00:30)
    • Summary (00:26)
    Web in the UI (14:44)
    • Introduction (00:26)
    • Agenda (01:06)
    • Mobile Web (02:30)
    • Problem (01:45)
    • Solution (01:02)
    • Initial Setup (02:20)
    • Demo: Mobile Web - iOS (02:21)
    • Demo: Mobile Web - Android (02:48)
    • Summary (00:23)
    Razor Templating (27:08)
    • Introduction (00:24)
    • ASP.NET Razor Template (01:03)
    • Initial Concept (01:17)
    • General Concept (00:50)
    • Pass Data In (00:38)
    • Add Files - iPhone (01:11)
    • Add Files - Android (00:51)
    • Pull Data Out (01:40)
    • Android - Call C# from JS (01:20)
    • Demo: Razor Template – iOS (04:48)
    • Demo: Data Pullback (04:24)
    • Demo: Loading Local Content (01:18)
    • Demo: Razor Template – Android (03:21)
    • Demo: Load Data (03:26)
    • Summary (00:28)



  • Understand the Relationship - R E S P E C T

    It is always important to understand the relationship between you and others.  I see a lack of respect for those that build ideas. There seems to be this idea in some people that the idea is everything.  The idea is merely a starting point.  Edison, and later Einstein, said that success is 1% inspiration and 99% perspiration.  The idea is not the end of the line, but the absolute beginning.  A product must be built.  The people that build a product must be compensated.  Dumb things like "I've got 80k twitter followers, so this will be a great opportunity for you" are just plain stupid.  I think my all time favorite is "If you build a mobile app for me, i'll let you come to one of my seminars for free. That's worth $600."  No, factoring in my rates, we'll burn through this in a few hours. That is no where near an even trade, plus I trade for cash anyway.

    My point in this is to not to complain about any one person, but to help you see that:

    • There are plenty of people that try to baffle you with their own perceived cool factor. 
    • If something is not worth doing for money, it's not worth doing.
    • "Trades" that do not involve cash tend to concentrate on fixed costs and do not respect the fact that software development is a professional service, like a lawyer, and not a manufacturing line.

    I'm not saying that these are bad deals.  I am saying that you need to go into the relationship understanding what is happening.

  • Mobile - Cloud - Web - Success

    On the weekend of May 2-4, 2014, I attended the Atlanta Startup Weekend. I can't speak highly enough of the event.  Jen Bonnett runs a great event, provides a lot of great speakers and mentors.  I can't speak highly enough of her work and her event.  She has a number of people that help out as staff: Maria Joyner (she has to approve my Twitter bio), Dawn Law, Kiran Bindra, Michael Ames, Wanda, and Chris Schwartz. I've been to other start up events, but this will always be the gold standard.

    Friday night is for:

    1. Pitches. This is the time when people with ideas are given 1 minute to "pitch" their idea.
    2. Voting.  Attendees will vote on the pitches that have been presented.  Ideas that have enough votes will carry on.
    3. Team forming.  Attendees and presenters will form teams. These teams will have people that have a background in: marketing, ideas, business development, product development, design.   

    Saturday and Sunday are for:

    1. Product development.  You really need to build something.  You should have a demo that works at some level.  This is what I do.  More on this in a moment.
    2. Design.  Product developers should not pretend that they can do design.  Designers and developers need to work together.  On the same level, designers should not try to pretend that they are developers.
    3. Customer discovery and validation.  If you don't have customers that are wanting to use your product, you don't have a product or business.
    4. Financial model.  You must have a financial model where more money comes in than goes out.
    5. Mentors will work with the various groups to assist as necessary.

    Finally on Sunday evening, there are presentation pitches with a set of judges. 

    What team did I join?  I met James "Wes" Laney, Sam Griffiths.  This is the "Two Minute Valet" team.  Wes worked on customer validation and financial models.  Sam did the design work.  Without Sam, it would have been black text on a white background everywhere!  I think that we worked really well together.  Each of us brought a separate skill set to the team.  These skills were complementary.  There were no egos involved that got in the way.  I was really happy to work with them.  Angela made a great pitch in the competition on Sunday night.

    What did I do?  I built an iPhone application, read QR Codes, stored data in a cloud based database( Sql Azure), and output data from the QR Code in a web page.  This ALL worked.  It was written in C#.  I'm a huge fan of Xamarin, so this should come as no surprise.  What did I learn from this?  C# in all places really helped me out.  I didn't have to do context switching between language.  I was more productive than having to use a lot of different platforms and languages.  Thanks to Xamarin for having a great product.  Thanks to Microsoft/Sql Azure for having a sql based database as well as having a simple place to deploy a web app for web services as well as a web site.  I'm a fan of mobile and cloud.

    Result:  We finished third in the overall event.  I was really happy on the result.  We're still working together on things and we'll see where this leads up to.  We have a meeting with a mentor next week.  We'll see how things fall out on this.  Without Xamarin and Azure, there is no way that I could have built a product for us.

    Thanks Wes, Sam, Xamarin, Microsoft, Jen, and everyone else.

  • Using OAuth, Twitter and Async To Display Data - Connect to Twitter from a mobile application using OAuth with the Xamarin.Auth library, along with Joe Mayo's LINQ To Twitter library


    Authentication has been a part of .NET for a long time. Unfortunately, there are a couple of problems:

    • Users must remember their user ids and passwords. For technologists, this is not a problem. For my parents, this is a huge challenge. Many people are able to remember their Twitter or other social network passwords. Unfortunately, remembering their user IDs and password for your service is most likely a problem.
    • When an application is responsible for the user IDs and passwords, it must store that information securely in some way. If there's one thing we should all understand, no application is 100 percent secure. There is always the chance for some type of data loss.

    Depending on the application's needs, it may make sense to let another service store user IDs and passwords. The next question is, "Is there a standard way to interact with other services that can handle authentication?" Thankfully, there is a standard for cross-application authentication: OAuth. OAuth has been implemented by a number of social networks and other services, including Twitter, Facebook, Google and others.

    OAuth is an open standard for authorization. It provides the following:

    • A standard method for client authentication.
    • A standard process for end users to authorize third-party access to server resources.
    • The ability to authorize these third parties without the sharing of credentials (username and password pair).

    This article will not get into OAuth specifics; that information is available on the OAuth Web site.

    For these set of examples, we'll use OAuth as a mechanism to authenticate users. We'll authenticate users, get a response and display information to the user (specifically, a profile image). From there, the example will integrate with Twitter via OAuth and then make calls to Twitter via a third-party library. This will demonstrate the strength of the growing Xamarin ecosystem.


  • 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:
More Posts Next page »
2006 - Wallace B. McClure
Powered by Community Server (Non-Commercial Edition), by Telligent Systems