Unknown's avatar

Posts by Simon Doy

I am an avid SharePoint enthusiast who works as an Independent SharePoint Consultant based in Leeds, United Kingdom. I am one of the organisers of the Yorkshire SharePoint User Group in the United Kingdom. I have been designing and building SharePoint solutions since 2006.

My experiences when migrating from iPhone 5 to Nokia Lumia 920 (Windows 8 Phone)


 

Introduction

I have had an iPhone for the past 4 years and have watched as various Microsoft phones have been released over the years.

I have toyed with the idea of moving to a Windows Phone but it’s not been a serious thought. The main reason being that I have had an iPhone for 4 years and invested a lot of time and money in the platform and bought various apps. However that all changed in December when a couple of events happened:-

1. I was given the opportunity to try out a Nokia Lumia 920 Windows 8 Phone.

2. I lost my iPhone 5 in the back of a taxi

The Lumia had arrived a few days before my unfortunate accident. However, fortunately I had actually transferred all my contacts from my iPhone via Bluetooth using the Windows 8 Phone “Transfer My Data” app.

However once I had lost my iPhone this presented a perfect opportunity to actually give the Nokia Lumia a proper try out.

The following sections explain my thoughts and experiences as I moved from iPhone to Nokia.

 

Sim Card Swap

The first step is to move your phone calls and number over to the Nokia. The iPhone 5 uses a NanoSIM which is a little smaller than the Nokia Lumia’s MicroSIM. Therefore I need to swap the my mobile phone number from the NanoSIM to a new MicroSIM.

I am with O2 and normally this is a pretty straightforward process which I have used a few times. O2 provide a automated website based service, called Swap My Sim. With this service  you put in the details of your mobile phone number and a code is sent to your phone. Once you get the code, you enter that into the website and fill in the SIM serial number. Your mobile phone number is then moved over to the new SIM. This SIM swap process however requires that you have access to your mobile.

Therefore I had to go to the O2 shop, I took the Nokia Lumia with some ID. After a quick conversation, I was taken through the security process and a new SIM card was setup. The process to transfer the SIM was pretty quick for voice. I waited about 5 minutes and rebooted the phone and it picked up the O2 network.

However the process to pick up data was a little more complicated. The SIM swap process can take up to an hour for voice and 24 hours for data, this has never been the case when I have used it, its normally been pretty rapid.

After about an hour, I received a text from O2 saying that I need to phone customer services to get the phone configured for MMS and WAP. So I called up O2, they explained that I need to be moved over to another profile and off the iPhone package. I would keep my plan of unlimited minutes, texts and 1 Gb of data.

Anyway after a day I still wasn’t getting data. So I ended up having a look at the settings for the Windows Phone. Amazingly I found the answer within the Settings App.

If you scroll to the bottom there is an Access Point setting, this has a number of profiles available, one of them being the O2 Monthly access point profile. I chose this setting and I could see that the data connection started to kick in.

 

Transfer your contacts

The Transfer My Data app was very easy to use and required Bluetooth to be switched on both phones. The Nokia Lumia was connected to the iPhone and the application started. You have a number of choices of the type of data to migrate.

I chose to transfer my contacts and the 1700 contacts took about 10 minutes to transfer the data between the two phones.

 

Transfer your music/photos and podcasts

Microsoft provide an application for your desktop called the Windows Phone 8 Application. This is currently in beta and is a great tool to get the rest of your data that was backed up by iTunes for you iPhone.

The application interrogates iTunes and allows you to sync the iTunes content which includes, music, photos and podcasts out of ITunes on to the Nokia phone.

 

Transfer your e-Mail / Calendars

I use Office 365 which is effectively a hosted Microsoft Exchange account that is managed by Microsoft. The process to setup my email and calendars was pretty straightforward. I used the Windows Phone Mail app and added my email address and password, all the settings were brought across and my calendar was setup.

I do think that this process was relatively straightforward though in part this is because I am using Office 365. I am not sure what the process would be like if I was using a Gmail or Yahoo account. This is something that I might add later after some investigation.

 

Apps

So this is where the gap between Windows Phone 8 and iPhone starts to show. I had a number of apps on my iPhone which I have struggled to get replacements for on the Nokia.

I use the following apps a lot:-

iPhone App

Description

National Rail Train Timetable

This is an app which allows you to quickly find out train times, where your train is on your journey, which platform the train is leaving from etc.

Podcast

This comes free with the iPhone and allowed me to keep up to date with the latest and greatest podcast from the likes of .Net Rocks, Hanselminutes, SharePoint Pod Show, The Moss Show and BBC Radio 4!

Spotify

Listen to music that I want to, download for offline streaming

2Do Task app

This app I used to manage my task list and sync up between the Toodle.com website and app.

Google Maps

The awesome app which allows you to find out how to get somewhere. It knows where you are and where the destinations are

Facebook

Allows me to connect with my friends on Facebook

LinkedIn

Allows me to connect with colleagues and business associated

Twitter

Allows me to keep in contact with all the goings on from Twitter

Nike+

Keeps me fit, records my progress, maps any runs. Gives me feedback to keep running when I started to tire.

Angry Birds

The classic game

Angry Birds – Space

The classic game with a twist

 

Windows Phone App Alternatives

So taking the list of Apps from above these are the apps that I moved to.

iPhone App

Windows Phone App

Thoughts

National Rail Timetable App

National Rail Timetable App

 

Podcast App

PodCatcher

Initially I tried a couple of different apps, this was the better of the two though had problems when I upgraded to the bought version. Recently there have been two upgrades which provide much better features. I still prefer the Apple app though

Spotify

Spotify

Apparently this has just been released. I haven’t tried this yet.

Thanks Dave for the update.

2Do Task App

Calendar

I actually prefer the Windows Phone app as it syncs up with my Outlook tasks on my desktop and also other devices which makes it much more useful and simplifies the process to know what I need to get done.

Google Maps

Nokia Maps

Not used Nokia Maps a huge amount but it seems pretty good. There is also the Nokia Drive App which is great when you need a SatNav type device, the only thing is that you need data connection for it to work in the most efficient manner.

Facebook

Facebook

I really like the Windows Phone interface over the iPhone interface. Took me a while to work out how to get back to my homepage though.

Linked In

LinkedIn

Again I really like the Windows Phone interface over the iPhone interface

Twitter

Twitter

The iPhone twitter app seems better and found it less clunky than the Windows App version

Nike+

Runner Pro

Still working on this, like the Nike+ app over the runner pro but I haven’t used the Runner Pro as much as the Nike+ app.

Angry Birds

Angry Birds

Classic game performs well on both platforms

Angry Birds Space

Angry Birds Space

Classic game performs well on both platforms

 

Keyboard

The one area that I have struggled with on my transition from iPhone to Windows is the keyboard. I remember the iPhone keyboard was a little strange when I first started using the phone but I got used to it.

However, the Windows Phone hasn’t been so easy, I have been using the phone for a month now and I still consistently hit the comma key instead of the space bar. This is very frustrating but I am sure I will stop doing it at some point!

 

Back Button

The Windows Phone has three buttons at the bottom of the phone, unlike the iPhone with its single ‘Home’ button. I really like the Back button, it’s great when you are moving between a text message and say the IE app to copy information back and forth.

The back button is also a godsend when you start typing a reply to a text, if you close the message app and then click on the messages app again it will reset your session and you will lose the message that you were typing. However if you click on the back button a few times you will be returned back to the message app with your message typed as you left it.

 

Conclusion

The process to move from iPhone to Nokia Lumia was a pretty straightforward process. There are a few steps but generally it’s pretty painless. Overall I am pretty impressed with the Windows Phone OS and really like the screen. The iPhone screen seems really small and difficult to use now that I have got used to the Nokia.

There are some missing apps, most noticeably the Spotify and Nike+ apps and I hope that these are rectified soon.

How we deployed SharePoint WSP Solutions without downtime


 

Introduction

As your SharePoint environment grows and more solutions are built on the platform it becomes critical to the business. Often it gets to the level that the business is very reluctant to allow SharePoint to be unavailable. This makes it difficult to plan application deployments which generally cause downtime.

Recently, I have been working on an environment which was in use globally and therefore the window for taking down the SharePoint farm is very small.

With that in mind I thought I’d share the process that I now use to deploy SharePoint WSP solutions without any downtime to the SharePoint farm. There are going to be times where you cannot avoid downtime, certain SharePoint object model calls cause all the server to recycle their application pools.

In order for deployments to be executed with no downtime there are a few requirements. There are infrastructure requirements as well as following a process.

 

Farm Configuration Requirements

In order to deploy SharePoint solutions there must be at least two SharePoint Servers configured as Web Front Ends. These web front ends are running the Web Application Service instance.

The next step is to ensure that these servers are being load balanced, either using software load balancing such as Windows Network Load Balancing (NLB) or using hardware load balancers such as the F5 Network’s BIG IP.

The F5 Network’s BIG IP configuration guide can be found here.

Without either the load balancers or the two web front ends then you are not going to be able to prevent downtime.

Regarding the load balancers, they must be configured so that when a server is down then no traffic is directed to that server.

At one client this required a bit more thought. The client used the F5 Network BIG IP load balancers unfortunately the load was not balanced as Round Robin balancing was being used.

Also the method to detect whether a server was down did not work. The way that the load balancers tested that a server was available was by using a low level call into IIS looking for an HTTP status of 200. This meant that as long as IIS up then the server was up and it would receive requests,  even if SharePoint was failing for some reason.

This was fixed by using a cURL script which allows Windows Authentication to be used to call into SharePoint. The script would then look for a particular text string in the page. As long as this was found then the server is up and available.

The last tweak to the load balancers were configured to use Observed dynamic balancing. The following article by Don MacVitte gives a great overview of the different types of load balancing.

Observed load balancing, balances the load by using a number of metrics, this snippet from the article explains in more detail:-

Observed: The Observed method uses a combination of the logic used in the Least Connections and Fastest algorithms to load balance connections to servers being load-balanced. With this method, servers are ranked based on a combination of the number of current connections and the response time. Servers that have a better balance of fewest connections and fastest response time receive a greater proportion of the connections. This Application Delivery Controller method is rarely available in a simple load balancer., including the response time from each server.

 

Deployment Process

SharePoint Deployment Without Downtime Diagram Process

With these infrastructure requirements in place it is possible to deploy solutions without downtime.

For SharePoint 2010 deployments, PowerShell is the tool of choice when deploying SharePoint Solutions.

Once you have the farm configured correctly then you will need to deploy the solutions through the SharePoint 2010 Management Shell.

So generally I login onto the server through Remote Desktop, copy over the solution file(s) into a folder such as c:\install\[solutionname]\[solutionversion].

Once the files are copied over:

  • Start SharePoint 2010 Management Shell
  • Change Directory to where the SharePoint solution (.wsp) are found.
    • cd c:\install\[solutionname]\1.0\

    The approach that I take is to use PowerShell variables where I can. This helps reduce the amount of typing and there are less mistakes made.

  • Create a variable to the current folder
  • $curdir = gl;
  • Create a variable for the solution’s filename
  • $solutionname = "MySolution.wsp”
  • Add the solution
  • Add-SPSolution –LiteralPath $curdir\$solutionname

Next is the important part, the solution has been added to the Configuration database and the next step is to deploy the solution to the servers. To ensure that there is no downtime, we will ensure that the deployment only occurs on one machine at a time.

Depending on the type of solution being deployed there are a few additional attributes that you may have to specify to the Install-SPSolution command.

However the most important attribute we need to remember is the –Local attribute this will only ensure that the solution deployment will only occur on the local server.

Other attributes include:-

  • WebApplication – this will deploy the solution to a specific Sharepoint Web Application
  • GacDeployment – this option allows a solution which contains .NET assemblies to be installed in to the GAC to be installed.
  • CasPolicies – this option allows a solution which contains code access security policies for the assemblies / web parts to be deployed.

Once the Install-SPSolution command has been run then the solution deployment success needs to be checked. This can also be achieved using PowerShell.

   $checkSolution = Get-SPSolution $solutionname;   $checkSolution.LastOperationalDetails;  

When this has been executed an output such as the following will be displayed for the local server.

sharepoint_solution_lastoperationdetails

The process now has to wait until the SPSolution.LastOperationDetails call returns back that the deployment is successful.

Once the deployment has completed, I now restart IIS and the SharePoint Timer Job Service using the following PowerShell.

 Restart-Service sptimerv4;   iisreset;   

The installation of the SharePoint solutions will have caused IIS to restart and therefore the server will not have responded to the load balancer. Provided that the load balancer has been configured correctly the server should no longer be processing requests to clients and therefore there is no loss of service.

Depending on configuration of the load balancers, the time it takes for a server to start responding to requests will based on a setting called ramp up time.

The slow ramp up time is the time the load balancer will wait after the server has come back online before it starts sending all requests to the server. This gives the server time to get back on its feet and processing those requests.

Once the server is back online, the SharePoint solution process can be repeated for each of the other SharePoint Servers.

 

Deployment Gotchas

Although this approach will for most cases work there are a few gotchas that you need to watch out for. In some of these occasions all SharePoint WFEs will have their application pools restarted.

Currently these are:-

  • SPWebConfigModification – its a good practice to apply changes to the web.config files for an IIS Web Application using the SharePoint SPWebConfigModification object. This will ensure that any settings required in the web.config for your solution will be applied. This reduces the likelihood of an issue with the solution due to down to missing configuration. Also if new servers are added to the farm then their web.config files wil be setup correctly. This will save you lots of time if you ever have to do a disaster recovery exercise!
  • SharePoint Field Controls – if your solution includes a new custom SharePoint field. Then this will not be available until all SharePoint servers have been updated. This can be more of a problem when for example you are using something like Telerik’s RadEditor control and are performing an upgrade. When these type of deployments are being made then its best to inform the users that the application will not be available. At least the rest of the SharePoint farm is up and running!

Note: As more issues are found then this section will be updated.

Deployment Script

The final deployment script is as follows:-

  cd c:\install\[solutionname]\[versionnumber];   $curdir=gl;   $solutionname=”SolutionName.wsp”;   Add-SPSolution –LiteralPath $curdir\$solutionname;   Install-SPSolution –Local –Identity $solutionname –GACDeployment –CASPolicies;   $checksolution = Get-SPSolution $solutionname;   $checksolution.LastOperationalDetails;   

 

Finally

I hope that you find this useful and would love to hear about your experience and approach to deployment of SharePoint solutions.