#SPSLA SharePoint 2013 Apps

May 21st, 2013

Before moving from Chicago to LA, people made a point to inform me that LA is full of nasty mean people. My response to them was the same each time: “perfect, then I’ll fit right in then.”

As I mentioned in the last post, I’m standing in front of a somewhat packed room with a 103.4 fever. This session should go great! Amazingly the crowd really helped me out with providing just enough energy and spirit to keep me rolling through my slide deck. Even had a few help me out with internet access by using their phone hotspot. I have no idea where the bad reviews are coming from but virtually everyone on the room was cool…super cool. Ideas were being shared and open conversations routinely popped up.

The following statement will sound shocking, but this crowd was by far the most fun to be around that I have ever experienced. Thanks everyone!

Here are some of the items that I promised:

Documents 30,000,000 per library Supported You can create very large document libraries by nesting folders, or using standard views and site hierarchy. This value may vary depending on how documents and folders are organized, and by the type and size of documents stored.


Items 30,000,000 per list Supported You can create very large lists using standard views, site hierarchies, and metadata navigation. This value may vary depending on the number of columns in the list and the usage of the list.

The Software boundaries might have changed a little bit since 2010:  http://technet.microsoft.com/en-us/library/cc262787.aspx#ListLibrary

Here is the link to the SP2013 codeplex solution that uses the SharePoint Hosted model: http://sp2013photospotlight.codeplex.com/

Lastly, here is the PowerPoint that is full of supporting links: http://www.slideshare.net/AndrewClark1/sharepoint-2013-apps-21549568

Please don’t copy that PPT or that floppy: http://www.youtube.com/watch?v=up863eQKGUI



O365 Login & Password reset issues

May 20th, 2013

This past weekend, I presented at SharePoint Saturday Los Angeles. As if presenting does not provide enough stress, I decided to speak despite coming down with food poisoning. Four hours or less of sleep, uncontrollable cold shakes, headaches and a 103.4 fever (I am omitting the other symptoms) you would think the demo gods will spare me. Nope! Not only did they kick me when I was down but if I had a dog, I’m sure they would have kicked him too.

During the apps discussion, I wanted to sign into my O365 site. Unfortunately, my password was incorrect. Not only did that not work but the captchas presented to me for the reset process were not working either. At this point, I am thinking that the fever is really getting to me. After the session, one of the attendees was determined to see this demo and tried to type in the captcha for me…..it didn’t work for him either. Can’t login and can’t reset my password. Mysteriously, we were able to logon to his O365 instance with no problems.

Luckily, the O365 support team monitors twitter and came across my tweet: “so I had major issues with the O365 captcha, something is out of whack”

Later that day and after a couple of Direct Messages being traded, I was informed that a corrupted temp file was probably the culprit. All I had to do was use a different browser. Yikes

I’m sure that some of the more experienced speakers will tell me to never rely on the internet. While that sentiment may be true, I still believe that the attendees like to see live demos. Next time around, having backup screenshots and possible Camtasia video will be placed with a much higher priority.

For those that did attend my sessions, thanks for the support. And yes that coat I was wearing was from the 60s, don’t be jealous.


SP2013 Photo Gallery Spotlight Architecture

January 15th, 2013

The SharePoint 2010 Photo Gallery Spotlight still proves to be more popular than the updated version sitting here. Despite the popularity, lets walk through some of the short comings of web part development with SharePoint 2010 and what flexibility SharePoint 2013 app model provides.

1. The webpart is installed into a SharePoint site as a feature.



2.Once installed, the shell of the webpart can be added to any SharePoint page. The term shell is used because without various webpart properties no data or images will be shown.  One particular attribute is the path to where the images are stored.



3.The images are stored inside an image gallery (a glorified document library) with additional custom columns for enhanced logic.




From here you have two options:

  1. Store all the photos in one document library and use creative caml queries with your various webparts to pull appropriate data
  2. Create another document library and change the location in the webpart properties according.

The problem that we have as a developer is that we are at the mercy of someone properly setting up our webpart but also creating the appropriate lists as well. Don’t get me wrong, feature receivers will handle the list creation but can you trust the unknown for managing this list going forward?

Clearly, the action of adding a webpart is not a simple one step process with SharePoint 2010. Let’s walk through the process of what a SharePoint 2013 app is and what level of flexibility it provides us. (for this example, we are using SharePoint hosted apps)

The box at the top (see picture) is your existing SharePoint installation with several different types of sites. Inside each site, several different types of lists and document libraries could be used.

Looking at action #1, when adding a SharePoint 2013 application to your site, you are essentially adding a new site collection to your installation. Just like all other sites, the application can contain several different lists and document libraries.

The application surfaces data by allowing a certain pages inside the application to be available as an app part. (callout #2 in picture)

When first installing the application, pictures are not available and the settings lists is blank as well. It is the responsibility of the person that installed the application to do the initial setup.

Once the first time setup is complete, then anyone can add the app parts to any page in the parent site….no further configuration is needed.

With the SP2013 Photo Gallery, the application contains a ton of items (content types, columns, lists, doc libs) but concentrate on the following items:

  1. A settings list
  2. A document library to hold images
  3. Two pages configured to be app parts.

Each page is unique and calls for a specific line entry in the settings list contained inside the application. The line entry in the settings list tells the page what photos to grab from the document library.

It is still possible to use web part properties, but they are exposed inside the query string. If you were wondering how this whole process works, just think iframes. Your parent site contains an iframe to the application page. For that reason alone, I did not want to port the old code to SP2013 because I didn’t want everything listed inside the url of the page.

By limiting the work needed after adding an app part to a page, I feel that SharePoint 2013 provides more flexibility than doing typical web parts using SharePoint 2010. No doubt the process is more complicated but seems less complicated for the people that are actually using your custom code. These people just want to plop your web part in their page and click save.


Switch to Windows Phone: Day 51, Map issues

January 9th, 2013

It doesn’t take a genius to predict the mess between Google and Microsoft. Especially if someone as dumb as I am saw it coming. Predicted a storm on December 21st and predicted a lack of google mobile apps on November 28th.

Recently Google pulled the ability to view Google Maps on the windows phone, which has been recently retracted by Google but they have yet to fix access for me yet. What makes this situation worse is listening to the fan boy reactions, whether they be pro Microsoft or Google.

“why would you use maps.google.com on a windows phone?”

Even more fan boys here: http://www.theverge.com/2013/1/5/3840620/google-bringing-maps-back-to-windows-phone

Without a doubt the mobile version of Google maps is not the same as the browser. Even on the iPhone, you will not be able to get ‘Bicycle’ but can select between walking, driving and transit.

The big problem is that the bicycle routes are omitted completely from the maps on the Lumia 920.

Despite this being the desktop version, you should be able to follow what the problem is











Looking at the maps on the Lumia, there are several trails that are not shown:












Google maps on iOS is not much better and still does not show bicycle paths. The only phone that has the complete offering is android.


This is an example of a niche use case, so it is really difficult to recommend one phone for everyone but it is clear that you need to spend some time studying or asking your friends if their phone handles what you do on a daily basis.


Switch to Windows Phone: Day 50, Voice Text Fail

January 8th, 2013

In the past, I made the voice recognition sound a tad bit better then what it really is. Every now and then, it fails and when it does….it is not pretty. Check your text before sending when using voice.

SharePoint 2013 Photo Gallery Spotlight: things that need fixing

January 2nd, 2013

I get it, everyone was sleeping in or was far away from the computer on New Years Day…except me. I’m a loser thanks for reminding me. You missed the launch of the Photo Gallery Spotlight here:  http://sp2013photospotlight.codeplex.com/ and did not read the initial blog post either. That is ok, here is a list of items that I would like to add to the project soon:

  1. Formatting of settings on Help.aspx & Help.js. On this page, I wanted to demonstrate using REST endpoints. My intent was to show settings or lack of settings on the Help page to assist with documentation. Unfortunately, the output looks like garbage. By the way, REST is pretty damn cool and I like it more than using CAML. Look for a blog post next week on that.
  2. The css on both the Full.aspx and FullScrollable.html look pretty horrible when inserted as an app part.
  3. The default sizing of FullScrollClientWebPart FullScrollClientHTMLWebpart needs to be adjusted.
  4. I left in the default descriptions and titles on both web parts as well.
  5. The audio is pretty bad on the youtubes showing the webpart working.


Items that I would like to continue with the project:

  1. Wrap up the miniscrollable content type with a smaller compacted webpart.
  2. Look into using webpart properties. Not really looking forward to using query strings to hold properties but I’ll wire it up if you want to use it.
  3. Create a new webpart that uses the more metro modern styling that is popular with all the kids now.

No guarantees on timing because I would rather work on mobile applications.



Introducing the SharePoint 2013 Photo Gallery Spotlight

January 1st, 2013

It took me entirely way too long to wrap up this Codeplex project, but finally saw the light over this past weekend. The old Spotlight codeplex project has been completely rewritten for SharePoint 2013. Perhaps not entirely, there are still remnants of my older crappy JavaScript code in there. Let’s not call it old just vintage ok? The new project entitled SharePoint 2013 Photo Gallery Spotlight was written as a SharePoint hosted application. This means that all the old C# code was scrapped for client side scripting.


It seems that everything is going to the cloud, which translates to me that my code needs to be running on the client side. O365 does not allow you to deploy whatever you want. Custom code was limited using Sandboxed solutions with the new app model pushing this to the next level.  Selfishly, I wanted to learn or practice execution of writing client side code so that I can continue to enjoy being employed. I have taken the position of being a SharePoint generalist for quite some time now. Branding or coding or infrastructure or training or networking, name the area in SharePoint and I will be able to do it but will be the first to say that I am not an expert in any of the areas. Those experts are called MCMs and that is not me. However my generalist attitude has provided me flexibility in employment and flexibility for my placement with clients.

The bigger reason for the re-write is that the old SharePoint webpart model always seemed broken to me. Think about this for a minute, you write a webpart with custom properties attached to it. In my example, the webpart can be plopped anywhere in a SharePoint site with the properties of the webpart adjusted to point the webpart to the appropriate location.

This old Codeplex project was dependent on lists and these lists could be created by using feature receivers. The feature receivers would create the lists and columns ahead of time so that the administrators could just upload the images and tag appropriately.

The problem with all of this is relying on the configuration and maintenance of lists and content types by human beings. The webpart could be placed in a location that does not have access to the list or the list could be deleted with no notice.

This leads us to our next big problem: rogue content types. Raise your hand if you purchased a cheap web part constructed in Ho Chi Minh city that left rogue content types around during the un-installation process. Or perhaps you had an in-house developer that decided to alter default content types. The act of deployment a simple web part practically ruined your entire site collection.

The SharePoint Hosted application is a no brainer to me because all the pain points that plagued me are now gone. You could argue that it brings new challenges to the table but let’s keep this post positive.

The architecture that I used in this Codeplex project took a different direction that I feel strongly gives you more flexibility for future enhancements. Over the course of the next couple of weeks, I’ll try my best to explain what is going on with this project. For now, enjoy and download the project: http://sp2013photospotlight.codeplex.com/

Working video: http://www.youtube.com/watch?v=9JvCxqRiGak (I’ll fix the audio later)





Switch to Windows Phone: Day 32

December 21st, 2012

unformatted ramblings of my switch from Android


Before you make that switch to Windows Phone from Android, you really need to monitor this fight between Microsoft and Google. Essentially you will not be able to sync your contacts and calendar from gmail anymore. I just synced my gmail contacts over to outlook.com to be on the safe side. With the contacts over there, they will come down to my phone without any issues.

I predicted on an earlier post to not expect any google apps on windows phone but didn’t expect it to get nasty like this.

There is a storm coming and it is going to get worse for consumers.



Switch to Windows Phone: Day 31

December 20th, 2012

unformatted ramblings of my switch from Android

Once you install a certain amount of apps, the ‘all app’ view is changed to allow sorting by alphabetical.

Nothing ground breaking here, with Android I overcame this issue by using Google Gesture Search.

Switch to Windows Phone: Day 30

December 19th, 2012

unformatted ramblings of my switch from Android

With Android, I remember a few apps that promised to conserve battery but I don’t recall any OS level control of battery like windows phone 8.

Honestly, I haven’t had to use this yet but it is comforting to know that it is there. This battery lasts longer than any phone I have ever used.