Scope and purpose of this blog post
Hallo Hallo, this blog post may seem random at the time I am posting it but in short order you will also be seeing blog series i am doing for SharePoint Pro Magazine, be sure to check it out and all my other work on my author page here. The series is about Microsoft Azure Mobile Services development with an emphasis on Cross Platform using Xamarin Studio and your C# skills. The series will have an introductory post and will lead into these four below. I will hyperlink them when it is published.
UPDATE: March 20th 2015 – Added Link for Penton DevPro Connections Site 1st Blog as indexed below
Part 2 – Introduction to Xamarin as a Platform for Azure Mobile Services
Part 3 – Understanding the Building Blocks of an Azure Mobile Services Solution
Part 4 – Building a Azure Mobile Service Solution for iOS using Xamarin
I wanted to keep the series very focused and scoped, so all the extraneous items though very important and crucial, i deferred to external links and my own blog posts. This one in particular addresses a key issue you will face when doing iOS development and you are developing at least some of the time on a Windows machine, or as in the case for Azure Mobile Development, your sample code provided from the Azure Portal is a Visual Studio solution.
Apple requires that you “build” your solution on a Mac, i.e. while you can develop anywhere, you need to build it on an Apple machine. Also, and this is my own mode of operation, I prefer to design my ViewControllers and UI on the Mac side and do all my coding from the Visual Studio Windows side. That means that you need to work on your code both in Windows and Mac, and while there are many creative ways to gain access to your code and work on it in both environment, when you need to adhere to a proper Application Lifecycle Management (ALM) you will need some kind of source code management that can handle versioning, branching, and the likes. I use Git on GitHub and you can see all my Repos here.
I begin by…
I create a GitHub repository from their website primarily because it is easy, but that is the last time i use a desktop application of sorts, I use the command line after that for management of the repo. Its not difficult to use the command line tools to manage Git, and there is more power there, but if you don’t want to do that, you can certainly use various desktop applications build for Mac or Windows.
Taking the screen shot by the numbers above
- Provide a unique, short but descriptive name to your repository
- Provided you did that, you can be a bit more verbose in the description field. I like to put the technology i am using and the purpose of the app
- If you have private repos on GitHub, then you can select that option here, otherwise, you will use Public
- The main reason I create my repo through the browser is that I can have one done and ready to be cloned in a matter of one (1)minute. By checking the box for “Initialize this repository with a README” you get just that capability
The next thing I do is clone this Repo into my development environment in a location that i want the code project to live. So, as it relates to Azure Mobile Services, I download my sample project in that location that I clone my Repo into, that process looks like this
Clone the Repo
When you want to work with your repo you have a few choices, lets look at them
- This is the one I use, I click on the clipboard icon and grab the URL that represents the repo I just created, however you can also
- Click on “Clone in Desktop” and this will open up your Desktop application into the pre designated/configured location you told your GitHub desktop application to put your repos. or
- You can just download the zipped file and decide what you want to do with it, I tend to use this option only when i see things folks have done on GitHub and I don’t want to fork or clone it, I just want to play with it and dump it.
So after I create my Repo see below
and I grab the HTTPS clone URL as I mentioned above, I crack open the GitHub GitShell since I am on my Windows Side (were I on the Mac side as I will be shortly to close the loop, I just use Terminal) and I work with the URL
once you execute it you will see few notification about the progress of the operation as below
and if you “CD” – Change Directory into your new local repository you will see you are on the Master Branch and as you can see from the below, you now have a folder in the name of the Repo you created and if you issue a “CD” into it you are taken into the Master branch. Notice also if you do a “LS” or a “Dir” you see the contents of the Repo and it has the same files you saw from the browser above.. i.e. the LICENSE and README.md files
Extract the Azure Mobile Service Sample Code into the Local Repo
The next step is to extract the .Zip file you get when you create a Azure Mobile Service solution i.e. “the starter project” into that location. This is what I do
- I save down the zipped file
- I extract it into the Local Repo folder you see here
And now I can open it up in Visual Studio and work on it here or in the Mac Side. As I mentioned before I like to do my design work on the Mac Side, so to save on time and effort, I will “ADD” these files and then “COMMIT” them to the GitHub Repo so that when I clone them on the Mac Side, it will already have the project there.
Lets discuss what we have here
- I am doing a status check to validate and verify that my folders and files I copied into my Local Repo is there, i can do a LS certainly, but a git status will also tell me the same thing
- I issue a “git add –A” and the “-A” switch tells it to add ALL
Next I will do a commit with a message to say this is the First Commit of the Solution
and now to close out the loop on this windows side, I will also do a Push and verify that I can see the updates in the browser on GitHub
and the “Trust but Verify” piece
Clone on the Mac Side
Now that I have my Azure Mobile Service Solution in my GitHub Repo, I will now go to the Mac Side and clone my GitHub Repo which will pull down this build with the Azure Project on the Mac Side that I may use Xamarin Studio and possibly XCode to work with.
Clone the Repo
The steps are basically the same, except here I use Terminal to do it all, here it is
and as you can see, on the Mac Side I now have the same solution I have on the Windows Side and I can
- ADD Files
- COMMIT my Changes
- PUSH back to the GitHub central repositories
Its not only for the blog series I wanted to do this blog post, I also talk about this a lot, I must admit that I am a bit of a Git snob now, and primarily use GitHub. I use GitHub mainly because I do quite a bit of Demos, Community Work, or I have something I am working on or need to learn and I need help. I think GitHub is a great medium for all of that. In all openness though I must say that I also have a Visual Studio Online account and you can also use Git as a ALM instead as TFS. The salient point being, now matter how you do it, find an ALM tool and standard that works for you.
Irie. Catch unno lateah!