Your First Mobile Application With Xamarin.Forms – a new Pluralsight Course

Pleased and proud to announce my latest Pluralsight Course…

 

 

Posted in Essentials | 2 Comments

Learning Xamarin.Forms – Part 5: ListView

In Part 4 of this series we created a new Master/Detail project.  In this part, we’re going to zero in on one view on one page… but what a view it is!

This series is based on my  Pluralsight Course: Building Your First Mobile Application with Xamarin.Forms and Visual Studio 2017

ListView

Because we are using the out of the box Master/Detail project, and because that project uses some advanced techniques, taking it apart won’t be simple, but it will be valuable.

Continue reading

Posted in Essentials, Xamarin, XAML | Tagged , | 2 Comments

Azure For Developers – Part 3: Deploying from Visual Studio

This is part 3 of an ongoing series on Azure for Developers, based on a set of forthcoming videos from LinkedIn Learning

In Part 2 of this series, we looked at creating an application in the Azure Portal.  More common is to create your application in Visual Studio and then to deploy it to Azure.  We’ll look at that now.

Continue reading

Posted in Azure, Essentials | Comments Off on Azure For Developers – Part 3: Deploying from Visual Studio

Azure For Developers – Part 2: Your First App Service

This is part 2 of an ongoing series on Azure for Developers, based on a set of forthcoming videos from LinkedIn Learning

In Part 1 of this series, we began to look at some of the ways to “chunk” the various parts of Azure, and focused in on PaaS (Platform as a Service).  Let’s get started on our first App Service.

Open the Portal and log in as described in Part 1.  On the left, click App Services.  At the moment, you don’t have any, so click Create App Service.  This opens a long menu of App Services.  Scroll through and see what is available.

Click on ASP.NET Starter.  That brings up a review “blade.”  click  Create  This will bring up the ASP.NET Starter Web App blade, where you can configure your starter app.  Fill in a name.  To avoid conflicts I typically begin my application names with a couple letters followed by a dash, followed by the name.  For example, here I might use jl-firstApp.

Continue reading

Posted in Essentials | Comments Off on Azure For Developers – Part 2: Your First App Service

Learning Xamarin.Forms – Part 4: Layout and Views

This series begins with an overview here

This series is based on my Pluralsight Course: Building Your First Mobile Application with Xamarin.Forms and Visual Studio 2017

Layout

Xamarin.Forms has a number of “Layout” controls that can contain other controls (views) and help you with positioning those views on the page.  There are a number of different layouts available to you, including:

  • ContentView
  • ScrollView
  • Frame
  • TemplatedView
  • StackLayout
  • AbsoluteLayout
  • RelativeLayout
  • GridLayout

For the first number of blog posts in this series, we’ll be using the StackLayout (one view on top of another or one view next to another) and the GridLayout (similar to an HTML table)

Continue reading

Posted in Essentials | 1 Comment

Azure For Developers – Part 1: Scratching the Surface

This is part 1 of an ongoing series on Azure for Developers, based on a set of forthcoming videos from LinkedIn Learning.

Azure is big…

…really big.  There is so much to it, that getting started can be totally daunting.

Let me start by saying that there is a lot of literature, documentation, videos, etc. on Azure; much of it free on the Azure home page

The problem is that there is so much documentation that again, it is hard to know where to start.  In addition, Azure is a moving target.  It seems that each week brings new features, or changes to the existing interface to Azure (for example, the Portal, discussed below).

Because Azure is so big, it is terribly difficult to drop into the documentation, where you will see sentences like this: “Azure Service Fabric is a distributed systems platform that makes it easy to build, package, deploy, and manage scalable and reliable microservices.”

Say what?  (Don’t get me wrong, the documentation is fantastic, and incredibly well written… it is just that it can be difficult to understand anything until you understand everything.  That is why I’m going to take a very narrow, developer-oriented, step by step approach.

Continue reading

Posted in Azure, Essentials | Tagged | 2 Comments

Learning Xamarin.Forms – Part 3: Navigation

This series begins with an overview here
In Part 2 we considered MVVM

This series is based on my Pluralsight Course: Building Your First Mobile Application with Xamarin.Forms and Visual Studio 2017

Navigation

Just about any serious mobile application will have two or more “pages.”  (We’re going to refer to pages throughout this series, though that is less meaningful in mobile apps than it is in, for example, desktop applications).

The starting point for Xamarin.Forms navigation is with the Navigation service.  To see how this works, let’s create a new Xamarin.Forms (blank) application named NavigationDemo.

Continue reading

Posted in Essentials, Xamarin | Tagged , | 1 Comment

Learning Xamarin.Forms – Part 2: MVVM

I think many would argue that discussing MVVM is premature in part 2 of a discussion on Xamarin.Forms.  My counter argument is that it is important to start out with best practices, and MVVM is the pattern of choice for Xamarin.Forms

 

Note, this blog post is based on my Pluralsight Course

OK, What Is MVVM?

MVVM was created (or more accurately, it evolved from previous patterns) along with the development of WPF and later, Silverlight.  Projects that use XAML for the development of a User Interface are particularly good candidates for this pattern.

MVVM  is nothing more (and nothing less!) than a way to create a clean separation of concerns among the various classes of your app, and to ensure that your app is testable and that dependencies are minimized or eliminated.

MVVM stands for Model – View – ViewModel.  This implies a separation of your code into the domain-relevant data (the Model) and the representation of data (the View) and finally, the logic (sometimes called the business logic) of your program (the ViewModel)

Continue reading

Posted in Essentials, Xamarin | Tagged , | 1 Comment

Learning Xamarin.Forms – Part 1 – Overview

About this series

This post begins a series in which I will introduce Xamarin.Forms, put it in context and then teach all you need to know to go from absolute beginner to intermediate/advanced Xamarin.Forms programmer.  I assume no prior mobile programming experience, though you will need to know C#.

This series is based on my new Pluralsight Course: Building Your First Mobile Application with Xamarin.Forms and Visual Studio 2017 

 

What Is Xamarin.Forms?

My guess is that if you are reading this you probably know, so I’ll be brief:

  • Native Xamarin allows you to create native iOS and Android (and other) apps in C#, writing the User Interface individually for each platform
  • Xamarin.Forms allows you to create native iOS and Android (and other) apps in C# with a shared User Interface.

With Xamarin.Forms you write to a common set of “controls” or “views” and these are translated to native controls when the program is created.  Xamarin.Forms applications are indistinguishable from native applications because, by the time they hit the phone, they are native apps.

Continue reading

Posted in Essentials, Xamarin | Tagged , , | 3 Comments

New Course: Source Code Control With Git Using SourceTree

(Click on image to go to course)

 

 

Posted in Essentials, Git, Source Control | Tagged , | Comments Off on New Course: Source Code Control With Git Using SourceTree

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()
      {
         InitializeComponent();
         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 | Comments Off on Asking Questions That Get Answers