As I prepare to go to Microsoft TechEd North America 2013 this weekend in New Orleans to work staff duty for Microsoft in the Windows Azure Conference Area, and coupled with the fact that I am reviving my skills in Linux Apache MySQL PHP (LAMP) I am going to do a blog on how easy it is to stand up a Ubuntu Linux Server 12.4 as a windows Azure Virtual Machine with LAMP installed and configured.
How do you get started with Azure
So, there are a few ways
- Use the Free Trial that is there
- Get a Subscription Outright
- As a Part of your MSDN/MVP/ other Microsoft Affiliation Program
In this blog we will be using it from the vantage point of an MSDN Subscription so if your Subscription has less or more, that’s probably why. As discussed however you can get Azure by signing up for the free version at http://windowsazure.com
If you have an account already you can just Log In from here as well.
Now that you are Logged In
So, as you can see, I have two items provisioned (1) Storage and (2) A Virtual Machine
Lets take a look at Storage first
If you are looking for a place to
The storage represented there can be used for just about anything except RDMS, its just simple storage. For me it is where the Virtual Hard Disk are stored, later on I can put whatever kind of storage I want actually. Now, although Azure gives you a way to interact with it, I prefer to use the Neudesic Azure Explorer tool. See below you can see that it has my VHD’s for all the Virtual Machines I built and are using now. Notwithstanding that, you can also store Tables and Queues in addition to the Blog Storage used to keep the Virtual Hard Disks.
We can save the conversation for another day for exploring the other uses of storage, but just to showcase the tool above lets see how you can create a new Table Storage
and once provisioned in the tool it looks like
But we came here to learn about using Azure to install Ubuntu in Azure so, lets get cracking. So from the bottom of the Azure Portal manager click New and lets set about creating a new Virtual Machine.
Once you click “Virtual Machine” the portal will fan out and you may elect to spin up your VM via the Quick Create which is easy but provides you with significantly less Configurable options as well as taking the most stringent of defaults (one being requiring you to SSH through a Certificate), so we will choose “From Gallery” as outlined below
Form the gallery we will ofcoourse be choosing the Ubuntu Server 12.04LTS but as you can see in the green call out, I could have used a previous Image Template that I have there. The point being that IF you OWN licenses to OS’s you can upload the image to Azure [via the Storage mechanism previously discussed] and they will appear in the template here.
Speaking of customization, well one of the things you can do in this Azure install is choose what Version Release of Ubuntu Linux you want, you achieve that by the selection below
The next set of decisions are very important ones that you will want to jot down somewhere, especially the UserName and Password one. Now you will notice that the credentials section “defaults” to uploading a certificate to Azure to let it know the box that you will be Secure Shell-ing in from. What that is THE best way to do this because it (1) encrypts the traffic (2) is overall more secure, we will not be doing that in this demo. Im my other ones, yes I do that.
So, in my case I am electing to do the password option
The next decision is one where advance preparation will make your life a lot easier. So, you recall how earlier we discussed that you can provision storage and use them at your own convenience. Well here is a good candidate for one. So, if this was production, I would definitely in advance of this selection set up a strong HA disk set for my storage and point it to that guy, as you see me doing here to this simple disk set.
Your next option is availability set, now this is just a Rip and Replace install so, I am not bothering with one, but you an read up here in the image as to what it is and how it is used.
When you complete that step, you will see that a Virtual Machine is being provisioned for you as below. the count to my Virtual Machine is now 2 up from 1
and after a few seconds/minutes, as seen below you will have a brand new Virtual Machine up and running
Logging In for the First Time
So first thing first right, this is Ubuntu Linux, it is NOT Windows so, that means that you WILL NOT be RDP-ing into this box, although there are Linux packages for that as well. Your access will be via Secure Shell (SSH) to issue command via the command line, or you could install the Desktop untop of your server, but with my limited knowledge of Linux, I still would advise against that. There are plenty of tools out there for you if you want to exchange files FileZilla comes to mind, and ofcourse if you are on a Windows Desktop you can use Putty to SSH in.
As for me, I have a Ubuntu Desktop 12.04 VM that is on my Dev Rig Laptop, I can bring it up and RDP into it that then SSH into my Server with my Certificate that I have. Below, you will see a few things, (1) the Public IP address of this VM instance and in my Ubuntu Desktop you will see me establishing a SSH session for the very first time. You will notice that I am not going over Port 22 which is the standard SSH, that is because Azure masks that with a Public Port to thwart folks with nefarious intent.
Once you try to establish that session you will get the below warning, go ahead and accept, this is your box afterall.
And once that is done, you will be authenticated into your Azure Instance of your Ubuntu Linux server as seen below
What do we do Next
Well ideally what we would do next is see if there are any updates and upgrades to be done to the Install by issuing the following command, but as i said, this is a rip and replace
$ sudo apt-get install updates
then if there are any after it identifies them
$ sudo apt-get install upgrade
After that happens then its time to get the LAMP installation done.
Installing the “M” out of LAMP – mySQL
So its time to install mySQL, as you can see below I am installing both the Server and the Client
I have the below screen shot only here once but as you install the “A” and the “P” out of Linux Apache MySQL PHP you will get this question again. So say “Yes” to them respectivly
For mySQL when you do the Install you will need to set the Root Password for it, go ahead and do so. You should jot this down again, because when we install phpMyAdmin, it is what we will be using to get into the Web Application.
Next is installing Apache, which is again, very straight forward…
Next you issue the command below to install PHP
Now after you install PHP, you will want to restart the Apache Service as you see below, and expect to see an “OK” coming back when it is done
Now that takes care of installing Ubuntu “L” then Apache “A” then mySQL “M” and then finally PHP “P” so there you go you have your LAMP server. Id also install or your favorite C compiler Im partial to installing build-essential
$ sudo apt-get install build-essential to get that going then you can crank out “C” and “C++” code on the box or you can put them in your CGI-BIN directory and call them from Apache
But for now, lets just make sure we can see the Apache Server from the Outside i.e. Public Internet. So to do that you will need open up a EndPoint AKA Port in Azure under your Virtual Machine, as you can see, so far its just the SSH port, but now we will add one for Port 80
Click Add EndPoint and then…
Name appropriately and Add it as seen below in the screen shot
Once you have done that you should be able to call up the URL from any browser and see the standard Welcome Page for an Apache Server as seen below
Well that does it for making sure that Apache is up and running but to test for PHP, you will need to create a simple script and copy it to the publishing folder where Apache reads from. Now ideally here again, I would move that folder from /var/www and put it soemwhere else, but for now we are using the default. In this example I am creating the file in my home directory using the VI editor, ofcourse you can use anyone you desire, some find “nano” or “pico” easy to use, even though VI has a steeper leaning curve, it is by far the most powerful IMO.
Below is the basic script everyone uses to prove out PHP running
Once you have done that then you need to copy this file to where Apache reads web pages from as previously discussed.
Once you have completed that copy, you can now call that page from any public browser and see the results as shown below.
One more piece of tool, I will install before calling it quits on this LAMP Server.
So this is a great tool for managing mySQL, certainly more control can be gained by using the command line tools but this is more visual and is good IMO. So issue the command below to install it.
Once you do, this is another Web App available to anyone with rights and credentials.
Once you are in. The world is your oyster.
Now even though I get Azure with my MSDN subscription, I am not about to leave Servers I dont need running, and I have all but shown you all how to access my server from anywhere, so I am going to decommission it and delete it from Azure. Those steps are also very easy. First locate your Server from your list of VM’s and say Delete
Then Confirm the Delete. You can also delete the VHD as well that is in the Storage.
Below is the Azure Management Console telling me about the delete process
And now my virtual machines are now Down from 2 to 1
Azure is good, easy, great for Rip and Run scenarios, Proof of Concepts or Learning New stuff. Take it easy Irie.
How To: Create SharePoint 2013 Workflow App-Site Columns to Fully Deployed App using Visual Studio 2012
*** Feel free to skip this section unless you want background information on the genesis of this blog post***
Good day all, to appreciate this blog let me set the stage of my day. Two days ago, I put together a PowerShell Script that laid down the SQL Bits, SharePoint Bits, Configured a slew of Service Application, Configured Central Admin, as well as 4 Web Apps for sites, and also deploy Workflow Manger 1.0 and Register my Site collections, needless to say I was very pleased. To put this NEW Dev Rig to the test, decided to live up to my promise of duplicating a previous post done in SharePoint Designer, whereby I demonstrated how to use SPD 2013 to do complex workflows that could only be done in Visual Studio in SharePoint 2010. My spin on it was to do it all as a SharePoint Hosted ALL in ONE App in SharePoint 2013.
So, lets go to the end then Ill work my way back. I found out when I tested my solution in my On Prem environment that it wasn’t working as designed, by that I mean:
- My Assets Deployed
- It installed all my Site Columns
- It installed my Content Type
- It installed my List Instance
- What It didnt do
- I could only get to the App URL by using the Account I used in Visual Studio to create the Solution, even though the other account (my own named fabianwilliams account) which is also a Site Owner in the Site it was Deployed to.. returned “cannot display this page” error
- Even when I created or uploaded a document to the Library under the Content Type, There was NO workflow to fire off… “it” said “no workflow was defined for that Library, Folder, Document, or my Content Type” or something to that effect
So, that struck me as Odd, I tried it a few more times by breaking up the Provisioning of Assets piece into its own solution, and the Workflow in another, didn’t make a difference. SO, I decided to COPY MY CODE VERBATIM to my SharePoint Online Developer Tennant Account and guess what… IT WORKED THERE.
So this blog will chronicle the start from an On Prem solution and eventually copying the code to a new Visual Studio Solution targeting my SharePoint Online Account where it worked as Designed. Ill either try to figure out why it didn’t work, or since I have a PoSH script, just review the script, make changes, Kill my Farm and Redo it.
UPDATE: 5/26/2013 0953HRS – So after a few hours sleep and thinking about why it didnt work, I tried just doing a regular Workflow App in Visual Studio and It worked, so it may NOT BE my Workflow Manger, indeed, my SharePoint Designer 2013 Workflows also work. So perhaps its my App Model Service Application that is Busted!!!, Ill look into it.
This is going to be a LONG post, especially because as you now I am verbose in my blogs, and I take lots of screen shots. So you may need to do this in a few sittings lol, or maybe it will end up being like a great novel.
- Open Visual Studio and Create a Project using the “App for SharePoint” project template.
- Create Folders to House the following Artifacts I will be creating
- Site Columns
- Content Type
- List Definition
- Create a List/Document Library based on the Assets in #2 above
- Create a Workflow based on the Instance in #3 set to begin manually and on Item Created event
- Point the AppManifest file to the Library Instance
Get your Site Columns squared away
Whenever I deliver solutions for clients, I absolutely always, unless told otherwise, create my own Site Columns, Content Types if necessary, and List/Library Instance when I am using Visual Studio to build and deploying my solution as a WSP. I do that to ensure that my columns and other assets are UNIQUE in the environment firstly, and second, it makes my solution very portable. So, its not surprising that in my example here I will do the same.
So, open up Visual Studio and Begin a SharePoint Apps “App for SharePoint 2013” project
Change your project from Auto Hosted to "SharePoint Hosted” and just validate your Connection for warm fuzzy feeling.
When you are done you should get a brand new shiny project as you see below
Create your Site Columns
Next I will add a few site columns to aid the process, there are a few these, and what I am trying to illustrate in this blog is the different kinds of Site Columns you can create and what the defaults are, as well as a few customized options you can make.
By default when you add a Site Column it adds an Elements.xml file that will set for Text type with limited information, I added more and changed the type to person (User & UserMulti), number, Choice, for a few of them.
Here is an example of what the default added site column looks like
Here is an example of what a few Site Columns look like after I modified it for text entry. You will notice that I have additions for StaticName, Description and whether or not the Field is Sealed, meaning can you edit it in your Site Columns once the solution is deployed.
Here is one that is modified for choice column. You will notice there are options here to allow or dis-allow FillInChoice as well as the available choices and the default one if none is selected.
Here is for Number. Key takeaway here is the Minimum and Maximum values, Decimal option. You will notice here that the Required is set to TRUE in this one.
Here is one for People. People is a little different from the rest in that it affects display in many ways. the Type can be (1) User or (2)UserMulti depending if you want to allow for multiple user selection in a single field. This can be because you want to do Parallel or Serial Approval with a bunch of folks denoted in a single field. In addition, the ShowField option there will show Presence Information if Lync/OCS is present.
and in the end the field that the Workflow will update when i is approved or rejected is this one, another Choice Field that has some meaning for us in the end.
Create your Content Type
Next you will make a Content Type to house all these Site Columns.
Next choose the template that this content type will be based off
Now you get to define what this Content Type will look like, you add columns from which you previously created as well as define other parameters as you see below. By clicking on the “Content Type” tab, you can set the Name, Description and Group where the CT will be stored as well as a few more options.
Now an all important step here is how you can add “Additional” columns in to your Content Type in addition to what will be there by default based on the one you inherit from. Here is where you will select from the previously created Site Columns. The task simple, just begin typing and you will see it finding the ones you want.
Finally your finished product will look like below when you have located all the ones you want.
Now you may not see the significance of all the above work, and you discount it as not a ‘big deal’ but If you have EVER done this in previous version of SharePoint you will understand that you had to do this all by hand i.e. now UI Tooling, so the experience was to create all this by XML as you see below, which is still there for you behind the scenes, but now you get to do it in a tool
Create your List Definition and List Instance
Finally its time to add the last piece of our artifacts, the List Definition, see below, notice also the creation of our Site Columns and Content Types to the Right in the Project Solution
As with the Content Type there are a few configurations we need to do such as telling the Definition what kind of List/Library to inherit from. Normally I would usually do Document Set because usually I find that its NOT just one document asset they have that is a part of the Business Process Re-engineering effort but a slew of them. But for simplicity here i elect Document Library.
and what template to use. Now again, if you had a template that was already done that had all the information they need you can put it here. Normally, I take the “Paper Document” and make an Electronic version here OR I take the electronic version and either
(1) Strip out the Fields that I will elevate to a Site Column in the Content Type from the document or
(2) Use Word Parts such that when the Document Information Panel (DIP) asks for the Metadata information, it AUTO POPULATES the fields in the document as well. Up to you.
and we finally tell the list definition to use the content type we created earlier which of course has our site columns included. So this is quite easy right and you can see the logical flow here. By clicking on the Content Type button, you select the Content Type you earlier created and it will automatically put in the Fields that you selected.
We also need to clean up our List Name and description as well as note the name of the List Instance because that will be the start page for our App Manifest so we can be taken directly to the List to add and item so the workflow can work
Now we almost to the end, we need to add a Workflow to our project and name it accordingly.
Create our Workflow – Finally huh 🙂
Now we add our Workflow Item to our Project.
Next again, you will need to configure a few steps such as what kind of workflow. Obviously we want a List Workflow for our project because we just spent all that time creating Site Columns, Content Types, and a List Definition to do it. So name your Workflow and be on your way.
what it will run on, that is the List instance we created earlier from our List Definition. Now the Project knows about our List Instance that we created, so we just select it from the drop down list and in this case we want NEW instances of a Workflow History List as well as its OWN new task List to use.
and how it will start. Now for testing purposes, I normally will have Manual as well as Item Created, but will clean that up before Production.
finally you get a solution where you get to design your workflow. I think there are enough call outs in the diagram so that you can get the picture 🙂
Next you get a few Workflow Activity items from the toolbox to design out your Workflow as below
We configure the task option either in the Project Properties window or you can click the configure link in he design surface and configure the options as you see me do below. Now in production you can certainly do business logic for alot of these options which as you see involve C# code that gets translated to XAML when you deploy your project
Here are a few more edits made to the project, things that you will see in the Outcome when testing. I am including the Logging as a mans to show you that there is nothing up my sleeves as well as it is good practice to document your workflow and give feedback to the End User/ Workflow Actor. The Logging below will show up in the Workflow History chronology.
A couple of things to call out here. You notice the “if” section and below it it has the “outcome_0 == 0” so basically, when you use a Task Activity the tooling will create for you a Variable called “outcome_0” and based on the disposition of the Task, it will be either Zero(0) or One(1) to denote the outcome. Zero means it is a Successful Approval.
Above again you will notice the UpdateItem Activity. I am saying here that if the Outcome is a successful Approval I want the Workflow to go ahead and Update the Field “FinalAdjudicationOutcome” to the choice field option you see above. I have the inverse of that applied on the Else side of the Conditional Check.
Below is just another logging to show you when the Workflow ends.
So when you are done, the resulting solution may look like the below
Now you remember when i said that you need to note the name of the List Instance, here is where you will use the name; you see, you want the App to begin on the List Instance you created and modify the Start Page setting
Once that is done, you go ahead and Deploy your solution to your site. The URL below shows the FQDN of the location where the App will be. This reflects the On Prem solution. As you know if you read the Precis, I think my App Model installation is busted which I found out in testing. So we are going to copy my solution to a Cloud SharePoint Instance I have.
A benefit to you the Reader
Now, this is indeed unexpected but it does show you that your Visual Studio Solution
A. Can be used on a Desktop WITHOUT SharePoint being installed AS LONG AS you are pointing to a Cloud Instance of SharePoint. Obviously, you are also not doing a Farm Solution
B. Your solution is Portable, you can move the same code between On Prem and in the Cloud as long again as it is NOT a farm solution
C. You can create a Development Environment in the Cloud, Azure Perhaps and kill it when you are done, no need to install VM’s to do SharePoint work anymore, with the same qualifiers as above
Now Deploy your solution and if you are successful you will see the below.
Testing in my On PREM environment
Once you examine the site by clicking on the URL, you can see the results of your Assets deployed inside your List Instance
Next create a Item and fill out the Metadata fields
Here is where Testing Failed and I copied my code into a NEW VISUAL STUDIO PROJECT targeted at an Office 365 SharePoint Online Tennant
My New Visual Studio Project targeting SharePoint Online
So, I added a new Project to my Visual Studio Solution, see the callouts below
Deploying it gave success as well, see below. This time the URL targets my Office 365 SharePoint Online Instance.
The testing below occurs in Office 365 SharePoint Online after re-deploying our App targeting this environment.
Testing our Visual Studio Solution in Office 365 SharePoint Online
Now we will test again, this time in Office 365 SharePoint Online. Again we fill out the necessary Metadata fields.
This time we have our Workflow Starting as we can see bwlow
and you can see in the Workflow Status that we are set to go and the Workflow is working
next we adjudicate the Task Assigned
and our result is
Trust but Verify
Now, indeed, I had a few other steps in my SharePoint Designer 2013 version of this, using Stages, and we can certainly duplicate this in Visual Studio, but this blog post was long enough, and the simple truth is that you basically repeat the steps I have above and the Designer is built to show the FLOW that the workflow will take, so its “monkey with a wrench” work, the examples in this blog post shows you how to do it once, you now take that knowledge and repeat it as much as you need for a holistic solution.
Back to our workflow at hand. If you recall, if the person approved the Item, the Workflow should Update the List Item by changing the field of the “FinalAdjudicationOutcome” to what you see below, which it did. Furthermore, the images in the Testing Section shows some of the Logging we did so you can infer the path that it is taking.
So in the end, we still have our solution, our blog, and WE both learned a few things in this process. Have fun y’all. Irie.
Framing the Conversation
First of all this is NOT a SharePoint specific blog, in fact its not about SharePoint at all, so if that is your expectation, stop now, read no further 🙂 With that out of the way, I have had face to face conversations, commented on blog posts, tweeted back and forth with at the very least Jeremy Thake @jthake , Joel Oleson @joeloleson, Andrew Connell @andrewconnell among others about them switching back to either and iOS or Samsung (Android) device, moving away from a Windows 8 Phone. Another disclosure, this is NOT necessarily adding to that specific line of conversation as much as it is another perspective on the topic. I am also making a few leaps here as well, most notable will be
- This assumes that you (the reader/folks I have spoken to) have BOTH a Phone AND a Tablet
- You are free [morally, ethically, physically]* to procure (buy it or get it provisioned to you) the devices aforementioned. *==if you need to distinguish between morals v/s ethics
- You accept this as an ‘academic’ dialogue and nothing else, I have seen some excitable & emotional exchanges on this topic.
A 10’000 Feet Look at me from a Technological Window
So, Ive heard this term used to describe folks similar to myself, “you live in a SharePoint bubble” when looking at our technological stance. Without agreeing or disagreeing with that definition, Id rather put forth another, one that I guess I can stand behind and defend. Id rather say that there is a Fabian bubble and within that bubble I have amongst my SharePoint bubble who is in there 100% of the way, various other technologies; some that I am kicking and screaming as I learn it, some I jump in at the deep end, some I am forgetting, some Im desperately trying not to forget.
However the fact of the matter is that I do work with the Microsoft Stack specifically with SharePoint, it hasnt always been that way, and likely that too will evolve, but for now this is where I am and its been that way for some time now. As a result, when you ask me a technological question, my first thought will revert to what I know and love as long as its an viable solution, and THEN, I will start to look outside
box… as you were, bubble… The analogy I can compare that to is, imagine you are a farmer and someone ask you what produce would you recommend for them to eat with dinner tomorrow; I gather they will think about stuff THEY grow, but if it is not readily available to them, they will suggest other things that the individual can buy.. right?
Availability, Accessibility, and Ease of Use
So, just about everything else I am going to say will be tied back to this larger topic, but first I will do two things (1) I will disclose to you “HOW” these terms relate to me and what I have at my disposal, and (2) how I am defining the scope and usage of these words.
How they relate to me
- I have available to me an iPhone, iPad, WindowsPhone 8, XBox, Playstation and a few Laptops
- All my Microsoft devices have Windows 8 or the latest equivalent installed
- All my iDevices are NOT jailbroken, and have the most up to date IOS build on them
- my iPhone does not have Cell Service, its just connected to WIFI
- my iPad is not 3G/4G its WIFI only
Availability – Here is a public definition, mine is – the item is at hand, or inversely, the item “is not” out of reach, within reason
Accessibility – Here is a public definition, mine is – it builds on availability because although something may be available, it may not necessarily be reasonably accessible i.e. “the item is in my bag, but my bag is across the room”. So accessibility to me is the reasonable attainability of said item, “its in my pockets at all times”
Ease of Use – this one is a bit nebulous right? I can offer you both objective and subjective arguments to the same, but for the purposes of this discussion, lets go with – provides the same or similar functionality and features with the same amount of steps, and look and feel consistent.
Now my Thoughts
So without a doubt we are entering an age where everything is AppCentric and/or Mobile, I can find you studies showing that or you can take it from folks like Mike Watson @jmikewatson or Stacy Draper @stacyDraper here albeit with a little humor
But knowing that, OEM’s, ISV’s, Consultants, Engineers, and anyone who is dependent on Technology to make a living should make their products or services with that in mind. Ill go one further and this is totally MY opinion here… No one Product or Service will have the magic bullet,its NOT an ee-ther or i-ther decision. In that vein, I have made a decision on what I keep around to use. I want one of my items to be a iDevice, i want one to be a Windows 8 device, one day I will probably want to get an Android as well, but I dont want a proliferation of devices either.
Did I consider a Microsoft Surface?
Yes I did. When they announced the RT, I said “…nah, dont want it, I already have an iPad, Ill wait for the Pro”; why did i say that, well one reason was and again this is IMO, – the iPad is a “CONSUMER DEVICE” not a “PRODUCTIVITY DEVICE” and that is how I use it, the Surface Pro was marketed as a Productivity Device so in my mind, the RT is not one. So the question became, do I want to replace my iPad with a Surface RT as a consumer device, the answer was NO! a Clear NO infact, why
- My iPad is/or has
- it has more Apps – only a Volume distinction
- the apps are easier to use, be it more functionality or better in performance (battery life)
- at least to me its less in weight & when i hold it while laying down its easier to accommodate in my hands
- i already own it… no $$ leaving my pocket
- the Surface RT
- I would need to buy one.. try as I may.. I never seem to WIN one at any events I go to.. and I go to alot 🙂
- I would loose Apps that I KNOW I dont have on my Windows 8 Device, & I wasnt going to lug around a iPad AND a Surface RT just because of the availability [there is that word again] of Apps
- Its marketed as needing a keyboard (there are 2 of them, both more than I want to pay) which adds to the price point
So what about the Pro huh?
Well, back to who I am again and what I do; so I am a Developer by academics/profession, its what my degrees are in and what I get paid to do most of the time 🙂 So when I heard that you can install Visual Studio on the Pro, and you have Full Applications for Office etc, that peaked my interest…. but that was wayyyyyyy before i saw the Price OMG, are they nutz? Well when you, if you think like I do, start to say, well, I do like it, and so just how much time will I spend ‘cracking open Visual Studio’ on it, I had to say, hmmm I have a Laptop that has 24GB RAM, I use a few VM’s for my work, do i really need it? and again the answer was NO!
Would I take one IF it was GIVEN to me?
Well, Im not stupid… so Yes, would it have to be a Pro, again, probably Yes, because I see no benefit from getting a RT based on my above arguments. But I am developing Mobile Apps, so having the Form Factor available and accessible would be of benefit, plus there is the coolness and newness factor right? we are all humans here 🙂 So again Yes!
What about switching to an IOS or Android Device for your Phone?
Well, i NEVER thought about doing that. First, I like the concept/idea of having the phones capability LINKED to the PERSON rather than the Application. What do I mean by that? well on my WP8 device, if i want to send a tweet, email the person/group, all I need to do is locate said person/group and perform the application functionality I want to do [this goes back to Ease of Use and the App-Centric Society], now I am not saying other Phones don’t do that, but IMO not as well as Windows Phone 8 and I am also factoring in the Live Tiles Updates.
I also write (or Im attempting to do so) Apps for the Phone and since I am a Microsoft Dev, these are the languages i know, so need I say more?
Do I get tempted to switch because when I pull out my phone I want the same capabilities I have on my iPad — YES, but what I do is get some WIFI and do what I want, or I capture what I want (like a picture or video) and then use the App Later on a Device that support it for instance (1) I use Google+ to record videos for my Kids so they can watch it later on in life (as i saw on that Google commercial), so although inconvenient, I take my video on my WP8 phone, upload it to SkyDrive [which automatically Syncs to my Laptops, I have the App on my iPad] and then I use Google + on that device to persist and share my Pic or Video for my kiddos and anyone else.
I often will get into these conversations with folks I know, dont know, start responding to tweets when I see the topic crop up, so at least now I get to point y’all to this post. Now, understand that as time evolve and as I age and get more cynical, set in my ways, come into a boat load of money so that cost is not an issue, I reserve the right to change my mind:-)
I believe that I (and maybe you) are better suited if you get best of breed among an array of technologies however stay true to what you gravitate towards easily. For me, I love my phone for what it gives me from an accessibility stand point, I love what my iPad gives me from a availability standpoint, and i trade off for my Ease Of Use between both.