I have been working on moving an existing SharePoint 2010 application to SharePoint Online (Office 365) and finally have been. I wanted to share some of the issue which are faced very likely and the probable resolution for the same
When I started i thought that it would be easy after all it's all about simple configuration and deploying the WSP on the SharePoint online environment. But it wasn't all that easy but had to face issues which I will list out as part of this blog.
I am not going to write about how i moved the application and what should be approach but rather focus on specific technical issues which we faced during the migration.
The SharePoint 2010 site which we were planning to move was using most of the collaboration features like Blogs, discussion forums, Communities, Presence (with office communicator 2007). There were web parts, timer controls, and custom visual studio workflows.
I am going to highlight very specific issues we faced and the resolutions for the same.
Issue 1: Could not create a new instance of the SPSite class
Resolution: We were not able to create a new instance of the SPSite class, what we did was to use
SpContext.Current.Site, wherever it was possible. It is also possible to create an instance of the SPSite in the "Using" Block.
Issue 2: We can use only Sandbox Solution in SharePoint Online
Resolution: Since we can use only the Sandbox solution in SharePoint online, we had
· To convert all the web parts Sandbox webpart solution.
· The toolparts is not supported in the sandbox.
· We have use the OOB workflow's instead of the custom visual studio workflows
· We had to modify the design to remove use of timer jobs.
Partial Trusted Code
Issue 3: We cannot use "RunWithElevatedPrivileges"
Resolution: Since we could not use the "RunWithElevatedPriveleges"
· Modified business logic or design so that all functionalities can be performed in the current privilege of the user
Issue 4: DateTime control does not work in sandbox webparts.
Resolution: Our solution had a DateTime control which as not working in the sandbox, the alternate option which we used a JQuery enabled DateTime control.
Will write about more issue we faced in the next blog