I’ll be speaking at the SharePoint Evolution Conference 2013

speaker_web_bannerQuite simply put the SharePoint Evolution Conference in London is THE best SharePoint related conference I have ever attended.  I had the opportunity to attend 2 years ago to speak and was blown away at the quality of sessions, speakers and conference experience as a whole. It’s not too huge to lose the intimate feel, yet not too small either.

This year it runs from April 15th – 17th 2013.

I have the privilege of speaking again at this years event and will be presenting two sessions.  One on the process of building SharePoint and another on building cutting edge intranets built on search, metadata and taxonomy.  I’ll will be posting here again with more details on each of these over the next month or two.

If you are based in Europe and have to pick one event to attend this year … I cannot recommend this event highly enough.

For more information and registration:  http://www.sharepointevolutionconference.com

See you there!

-CJ

SharePoint Conference 2012 … my tips

MySPC Tile 300x300

There are quite a few “SharePoint Conferences” around the world each year, but there is only one SPC.

I attend quite a few conferences that are SharePoint related each year and enjoy many of them.  But there are only a couple I really truly look forward to.  SPC is one of those.  It’s just different.  It’s huge, it’s a big reunion of everyone in the SharePoint industry and many friends.  I am also kind of bias about this conference since I used to help run it and I am still involved in parts of it.  Provoke built the MySPC attendee experience along with the companion MySPC for WP7 app.(more on that a little later).

People go to SPC for a lot of varying reasons.  Some go to party, others go for the sessions, others go to network and some just go because they were told to.  I go for the people. It’s the one time each year I know almost everyone I value talking to about SharePoint will be in one place at the same time.

Here are a couple of tips that I think will really help enhance your conference experience.

Picking Content
I am very selective about what sessions I go to.  There are so many on at one time that you will miss out on things … so pick which ones you want to attend in person and make a like of the others to watch the videos afterwards. Instead of picking what to attend based on content alone I tend to pick based on who the speaker is first, then topic and then relevance to me.  Some of the best sessions I have been to have been about topics that are not core to my skills.  I learn the most of out those and broaden my horizons.

Peaking early
SPC is a marathon not a sprint. Noobs will hit the conference running and peak too early.  Too many late nights out at parties to early in the week. Basically my rule of thumb to survive the week is to not hit it hard until the attendee party. No all nighters Sunday or Monday kids 🙂

Networking
image

I personally find wandering the expo hall and community areas talking to people a very valuable use of time. I meet all sorts of people and end up connecting with loads people.  It’s really valuable to me.  MySPC has a feature where you can find out who from your social networks is attending the conference and that is a good way to see who you might want to set up some time with to talk. 

Jump on MySPC and head into the Favorites section.  Connect up your social networks and it will find others from your networks that have done the same.

SharePint
SharePint is always a highlight at SPC.  It’s a great social event that shouldn’t be missed.  It’s a SharePoint tradition and its in the EyeCandy sound and lounge bar from 7pm on Sunday.  This is SharePoint community at its best.

imageNavigating while you are there.
If you have a Windows Phone then MySPC for WP7 is a must have.  If not then use myspc.mssharepointconference.com and it should redirect you to the mobile web experience. This way you can see your schedule, update it & check out what else is on etc…

If you are heading to the conference this year be sure to get in touch with me on twitter (@LoungeFlyZ), we can meet up and talk SharePoint.

See you there!

-CJ

Build a SharePoint Provider Hosted App in 5 mins

The Goal:  Build and deploy a really simple SharePoint App to SharePoint Online with the code running in an Azure Web Sites website.

Provider Hosted Apps are simply a SharePoint app where the code in your app runs in a space you provide.  That could be Azure, AWS or wherever you like. I’m picking Azure Web Sites because its free and awesome.

Before you begin:

  • Office 365 preview account (get one here for free)
  • Azure Web Sites account (get one here for free)
  • Visual Studio 2012 with the “Microsoft Office Developer Tools for Visual Studio 2012” add on installed (get it here for free)

Now on to the fun stuff….

Setting up an Azure Web Site:

1. Create a new Azure Web Sites site

image

2. When its created go into the dashboard for it and get the publishing profile for Visual Studio. Save it to your computer for later.

image

Setting up SharePoint Online:

1. Create a new Developer Site Collection in the SharePoint admin center.

image

2. Pick the Developer Site template when creating it

image

3. When your site has been created navigate to it.  Then hit the following URL to register a new App Id and Secret.  These are used for the OAuth between your App and SharePoint Online.

https://<my SPO site url>.sharepoint.com/sites/<your site collection>/_layouts/15/appregnew.aspx

4. Complete the form.

NOTES:

  • Use the Generate button to create the App Id and Secret.
  • Put your exact Azure Web Sites domain name in the App Domain box
  • Put the HTTPS address to your site + /Pages/Default.aspx in the Redirect URI

image

5. Click ok and you will get confirmation the App config has been created. Make a note of all these settings someplace safe.

image

Creating your SharePoint App

1. Create a new SharePoint App project in Visual Studio 2012.  If you don’t see this template then you don’t have the pre-reqs installed at the start of this post. Go and install the “Microsoft Office Developer Tools for Visual Studio 2012”

image

2. Enter the URL to your SharePoint Online development site collection and pick “Provider Hosted” from the dropdown.  Click validate beside the URL to ensure you have got it right.  It may prompt you to log into SharePoint online to do this.

SNAGHTMLfcf6d9

Visual Studio will create two projects in your solution:

  • SharePoint project <= this is where your app config goes
  • Web Site Project <= this is where your apps code and pages go

3. Right click the AppManifest.xml file and pick View Code to see the XML

4. Replace the “*” in the following line with your App Id you generated earlier

<RemoteWebApplication ClientId=”*” />

Should look something like this:

<RemoteWebApplication ClientId=”1B6B757E-1D3B-4375-8494-D885035A769B” />

5. Change the URL in the StartPage to the Fully Qualified Domain Name of your Azure site + the path to /pages/default.aspx?{StandardTokens} like this:

image

6. Open the Web.config file in your web project and set the ClientId and ClientSecret setting to the ones you generated previously.

image

7. Hit F6 to build the solution and make sure it compiles.

Deploying your App

1. Right click on the web project in the solution and Pick “Publish”

image

2. Click the Import button and pick the Profile file you downloaded from Azure previously. Go and download it from Azure if you were lazy and skipped this step earlier you naughty person.  Validate the connection to make sure its working by clicking the Validate button.

SNAGHTML1072599

3. Click Publish and let your site deploy.  When done a browser should pop up like this:

image

4. Go back into the Azure management dashboard and for you site click into the Configure tab. Create the ClientId and ClientSecret app settings.  Azure websites reads them from here … even if you have them in your web.config.  So not doing this will mean your app crashes.

image

Oh and remember to click the Save button at the bottom of the page when you are done (yes I failed at this a number of times)

image

5. In Visual Studio hit F5 to deploy your app to SharePoint Online. It will package and deploy your application.

6. You will see a browser pop open asking you if you Trust your app.  OF COURSE YOU DO! 🙂 Click Trust It.

image

7. You will see your new app listed in the site contents.  Click It!

image

8. Enjoy the obligatory “Working on It” screen

image

9. You will be redirected to your App and should see the Title of your site written to the page like this (or whatever you called your site when you created it):

SNAGHTML110fcb4

10.  BOOM! Congrats you created your first provider hosted app!

In the out of the box project templates in Visual Studio it creates a default page that uses the Client Side Object Model (CSOM) to call SharePoint Online and get the Title of your web site.  All the goo you set up with Ids and Secrets above is what is used by the CSOM to authenticate using OAuth with SharePoint online to ensure your code is allowed. The CSOM takes care of a lot of the heavy lifting for you so its all hidden away. 

When you click your app tile in SharePoint you might have seen it redirect you via the /_layouts/15/appredirect.aspx page.  This redirects you to your application via a POST along with some context about who the caller is, so that your code in Azure knows who you are & has the right tokens to call back into SharePoint as that person.

All the plumbing that makes this work is pretty detailed and way too much to cover in this post … but I suggest anyone interested read about App and OAuth in MSDN here: http://msdn.microsoft.com/en-us/library/fp142382(v=office.15).aspx

Drop a comment if you have any questions or issues!

Thanks,

-CJ

Surface with Windows RT

Just pre-ordered a new Surface and really looking forward to getting it in a imageweek or so.

I am really trying to stay open minded about this device.  As you may know I am an MS kool-aid drinker for WAY back … but I have spent plenty of time with other devices too.  I used to have an iPhone 3G, 3GS and a 4. I have an iPad (v1) currently that is my couch surfing device of choice.

A lot of people are asking my why get the RT version (ARM) over the Pro (x86) in 3 months time.

I want to replace my iPad.  I am not looking for a laptop replacement right now. That is why I don’t care about running existing Windows desktop apps etc…

On top of that here are a few things why I think I will like the Surface better than my iPad:

  • Physical keyboard built into the screen cover.  I’m only one flip away from productively typing a blog post like this vs. feeling like a nonce trying to type it on the crappy on screen keyboard.
  • USB – plug in full size keyboard, mouse, printer etc…
  • Expandable storage
  • Multi-Tasking apps, snapped view of twitter while doing something else.

But who really knows right?!?! The proof will really be in the pudding and my intention is to update this post with my thoughts and views after having used it for a while.

Also ill post my “Will it blend” or whatever other iPad disintegration video I come up with.

-CJ.

SharePoint 2013 RTMs … my thoughts

Yesterday Microsoft announced Office 2013 and SharePoint 2013 released to manufacturing (RTM). 

RTM is kind of a funny term these days as it is a hang up from the old days when everything was punched onto a CD/DVD and that is how the majority of software was shipped.  Today that is definitely not the method most people get their software.  Sure you can buy Office in a store and get a imageDVD … but by far the most common way people will get Office 2013 is when they buy a new computer, or upgrade by buying it from MS and downloading it.  SharePoint doesn’t come on a DVD anymore and the only way to get it is to download it (MSDN and TechNet aside).

Picture:  Office 2010 special commemorative shipping edition. A special edition keepsake for those who worked on 2010.  Nice boxed product memento.

Anyway … I digress 🙂

Yesterday was 10/11/12 in US date format.  I remember hearing that date for RTM over a year ago when I was working on the SharePoint team.  Its amazing to me that a date can be set like that, over a year out, and it be hit on time.  Amazing.  Especially when you understand the complexity of building and shipping software that is used by 100s of millions of people around the world.  Amazing. 

Personally I am really happy MS hit the date and congratulate everyone on making it!!!

Given my history with SharePoint I thought I would throw a few thoughts together about this release.  As some will know I was working on the team while the project was underway and feel a little bit vested in the success of the product … still.  It holds a special place in my heart.

Online
Probably the biggest most interesting thing for me in this release is how much more viable SharePoint Online will be in Office 365.  It was a great product already … but this new version will open it up to a LOT more companies and people.  It is so much closer in feature set to the on premises product that 365 is today.  A lot of companies are hesitant to move until they can do the same things online … and fair enough I say.  Bringing the two much closer together is a great first step.  E.g. Search.  FAST search isn’t in online today … but the new built from the ground up Search engine in 2013 will be.  That is just one example.

Developer stuff
I wont be popular for saying this with some people … but something had to change with SharePoint development.  By that I mean:

The Full Trust code model in SharePoint we have 2010 needs to die. 2013 takes the first step towards that.

As powerful as the server object model is it desperately needed reinventing.  Running code inside SharePoint processes is dangerous, insecure and costly to run for IT departments.  Moreover, next to impossible to run well in SharePoint Online. 

The new plumbing available to developers in 2013 is the first small step towards fixing that problem.  Sure, it’s not a silver bullet … it’s a v.1 of something that has legs to continue on in future releases.  It addresses the issues with code running in proc.  It has reasonable coverage of APIs developers need and it is based on protocols and standards that are far more easily leveraged across the internet, from other platforms and by new developers.  Read my post about why I like the new plumbing here: http://looselytyped.net/2012/07/17/sharepoints-new-app-model-and-marketplace-great-for-developers/

Apps
This is another one I am going to be disliked for by some. 

I don’t like Apps … yet. 

Why do I say “yet”?  In my view the options they offer for well thought out enterprise business applications are too limited for practical use just yet. 

Predominantly this falls back to one major issue I have with them.  SharePoint UX integration.  There just isn’t enough of it yet.  Apps today are limited to App Parts (iFrame in a web part), basic ribbon buttons/ECB menus & that’s about it.  You can’t deeply integrate your application into the SharePoint UX in ways you can with full trust code on prem.  To build real world Enterprise grade applications you need this level of capability. 

Hey CJ … don’t be dissing on the apps bro …

Look … I get it … the app model is 100% needed.  We need a way to add functionality to SharePoint in a safe and secure way that works in SharePoint Online.  Lets be clear here, Apps are designed for SharePoint Online first and foremost.  The problems get worse trying to do them on-prem.

I hold out great hope that the App model develops out further quickly.  I really do.  I would love it if the App model offered deeper integration with SharePoint UX across the board, better event integration (remote event receivers with guaranteed delivery for example), and broader API coverage.  In time I am sure it will get there.  But for now I don’t see many enterprise grade apps landing in the marketplace for a while.  I am sure there will be plenty of nice less business critical apps/widgets however.

Office is a different story entirely.  Office needed a new developer model ASAP.  I don’t know if you have ever had to write an Office addin … but OMG its bad.  Even through the App model for Office is also somewhat limited today I think it’s a good step in the right direction for Office.  Anything but COM addins!! 🙂

V.Next – To the cloud!
What will be fascinating to see going forward is how SharePoint evolves from here. 

It wouldn’t surprise me if 2013 was the last major release of SharePoint for on-prem*.

* I have no insider knowledge on this, in case you are wondering 🙂  This is purely my personal opinion.

Sure, there will be service packs and maybe feature packs, but I don’t personally think we will see a new full release like we saw yesterday. Sad but true (IMHO).  Who knows, maybe SharePoint on-prem on going will be a series of service packs and feature packs 🙂

Microsoft’s reinventing itself into a Devices + Services company.  For good or for worse … that is what Ballmer is out there saying.  Personally, I would rather they stick to Software + Services like MS have been saying well before Apple got into that game and started calling it cool. Topic for another post 🙂

Microsoft (contrary to everyone out there) isn’t stupid.  You don’t make billions of dollars a year being stupid.  It won’t throw the babies out with the bath water (Office and Windows) … so I doubt we will see MS not making an operating system that you can install on any PC hardware you like any time in the near future.  However, my point is that MS are pushing their traditional customers to the cloud. SharePoint is part of that, and as far as a product, not a bad on to go to the cloud (email being the 1st and most obvious, why o why does anyone run Exchange on-prem is beyond me).

Customization
Totally messing with SharePoint from the inside out is going away.  Not in 2013 … but that is the direction it is heading.  This is just a direction at this point, but you can start to see this happening by the lack of investment in SharePoint Designer 2013.  Really the only thing added was some better support for building Workflows. (PS: why o why didn’t they build this in a browser based way is boggling.)  There are still things SharePoint Designer does that you cant do right now via the browser … but over time that will close and it wouldn’t surprise me if 2013 was the last version of SPD.  Sadly the same thing goes for InfoPath.  Not much happened sadly. Access is clearly trying to make a comeback and InfoPath will suffer for it.  This is really really sad to me.  InfoPath is the only solution for customizing workflow task forms and list forms.  SharePoint needs a solution to create custom forms that integrate with Workflow and Lists period.  I guess Nintex will be selling a boat load of software to fill these gaps.

If you want a sample of how passionate the SharePoint community is about this direction in SharePoint you only have to read this thread in Yammer: https://www.yammer.com/spyam/threads/193828574?m=1135076296&message_id=193828574

Conclusion
I am totally thrilled to see SharePoint 2013 and Office 2013 hit RTM.  I am SO pumped to go to SPC this year and see all the presentations about it.

I really do think this is release is an excellent step in the right direction for developers, despite all the pain and suffering we will all go through for the next 12 months while everyone get used to the new model & old SharePoint people get over the change. No one likes change, but its desperately needed in my view.

There are bunch of amazing new features, too many to list … but I think my personal favorite is Metadata driven navigation.  I think that is the most exciting feature.  It has applications for public facing sites sure … but the KILLER use is for Intranets.  Finally a reasonable solution for that wee feature all us old guys miss from Content Management Server … Connected Pages 🙂

Congrats again to MS for getting it done on 10/11/12!!

-Chris.

Problems opening “Blocked” files in Word/Office 2013

Found an issue today opening word documents downloaded from the net or saved from an email attachment today.

When trying to open I would get the following error message:

“Word experienced an error trying to open the file”

8-20-2012 12-25-17 PM

Turns out Word was having issues if a file was “Blocked” i.e. downloaded from a untrusted source like the internet or email.

You can fix this by “unblocking” the file in the properties panel here:

8-20-2012 12-25-05 PM

Thrilling stuff I know … but hopefully I will save someone from the same frustration I had this morning trying to open a docx emailed to me.

I cant remember needing to do with with Office 2010.

UPDATE:  Tobias Lekman has a good post on this and how to turn it off once and for all in Office.  You can tweak the Protected Mode settings to change the behavior.  You can read about that here: http://blog.lekman.com/2012/10/remove-protected-view-from-office-2013.html

-CJ

SharePoint’s new Plumbing, great for developers

As you probably have seen, yesterday saw the public unveiling of the new Office 2013 and SharePoint 2013 products and online services.  The SharePointsphere has gone nuts and everyone is blogging and tweeting as they find stuff out about the products.  Very exciting stuff!  Some people like Andrew Connell are doing a fine job of articulating some of the new stuff for developers and designers like the new App model and the new WCM capabilities.  There really is so much new stuff for us developers out there that I think it will take a good few months for it all to really sink in.

There is one part of all this that I am personally pretty excited about.  You may jump to the conclusion that its Apps … it’s not … you might think it’s the Marketplace … it’s not …

What am I excited about?

Plumbing.

That’s right … I’m excited about plumbing … why? Well …

To enable these new capabilities like Apps and the Marketplace there has been A LOT of work done in the platform that makes up SharePoint.  Features like OAuth for integrating with APIs, new Client Side Object Model capabilities & Remote Event receivers.  Plus loads more.

These things all culminate in features like Apps … but also play a significant part on their own.  These are the platform building blocks that we as developers need to unlock a whole new slew of scenarios.

Take for example this simple scenario:
Programmatically uploading files from on prem to Office 365. 

You might want to do this for a multitude of reasons.  Possibly as part of a workflow that runs on prem that pushes documents out to partner sites you host in Office 365 for example.

Today this is possible in Office 365, but requires a bunch of extra work around authentication (like Headless Authentication)

With the addition of OAuth for in Office 365 you will be able to simply deploy an App to the 365 site that gives your code running on prem or in Azure the ability to seamlessly “log in” and use APIs like the Client Side Object Model without all the auth “goo” (see how politely I said that) you need today.

Or take for example the opposite scenario:
Programmatically pulling files down from Office 365 when they are uploaded

Today when someone/something uploads a file into Office 365 you don’t currently have a way to catch that “event” and push the document out externally to another system.  You can have event receivers, but code in the Sandbox cant talk to anything external.  So what do people do today?  They “poll”.  They have some code that sits and spins every minute or so looking for new documents … then they “pull” it when one arrives.  This is not a great solution for a variety of reasons, but its pretty much all they can do.  In 2013 you have the ability to have Remote Event recievers where SharePoint will call your remote end point when an event fires so you can respond.  No more polling required 🙂

Or take the scenario I demoed in the keynote at SharePoint Conference 2011:
Pushing content into SharePoint Online from an Azure based web application.

In that scenario we had the NetHope voting application we had developed and hosted in Azure pushing vote data into NetHope’s Office 365 based intranet.  We needed to use Headless Auth to do that.

The list goes on and on and on…

Just like how OAuth opens up authentication scenarios the Client Side Object Model (CSOM) and REST APIs open up programmatically callable functionality remotely.

In SP 2010 the CSOM only really covered Foundation data APIs for getting at things like List Data in sites. In 2013 that has been widely expanded to things like Search, Profiles & Taxonomy (personal favorite of mine).  This makes working with SP remotely so much easier than having to cobble together calls using a combination of CSOM, Web Services, FPRPC & REST.  So so much easier.  If you are building code that isnt .Net or JS then you can call the Client.svc service with REST/OData to call the endpoints manually.

Between OAuth, Remote Event Receivers and the expanded CSOM developers are unlocked to build a plethora of solutions that are either hard to do today … or impossible today.

That’s why I am personally excited about the plumbing.

Being able to build your solutions and monetize them through Apps and the Marketplace is extremely cool too … but I’ll save up another post for how I think people should be approaching how to decide what “style” off App to build (like Provider Hosted vs. SharePoint hosted vs. Auto Hosted).  Lots to think about and consider before jumping in there.

In the mean time take a look at some of the great SharePoint developer training videos available here:  http://msdn.microsoft.com/en-us/office/apps/fp123626

Thanks,

-Chris.

Update: changed the title … i like this one better

Office 2013 graphics crash on my laptop

I have a MacBook pro that I run exclusively with Windows 7.  No boot camp, no OSX etc…

When I went to load Office 2013 today it all installed fine … but failed to load when I tried to open any apps.

E.g:

image

I figured out (I cant say how) that its got something to do with Offices new graphics hardware acceleration support.

If you are into fiddling with the registry you can disable this via the following key:

HKEY_CURRENT_USERSoftwareMicrosoftOffice15.0CommonGraphics

(PS: if it doesn’t exist then create it)

Then create a DWORD value in there called “DisableHardwareAcceleration” and set it to “1” e.g.

SNAGHTML402923

Then Office apps would startup correctly:

image

Like I said above it might be something to do with my graphics driver and the card in the laptop.  Here is what I have loaded:

image

I hope this saves some frustration and pain for anyone else out there having this problem.

Update: @waldekm also tells me this has solved an issue he was having with Office in a Virtual Machine being sluggish or slow and sometimes crashing.  Turning off hardware acceleration seems to have fixed this for him also.

Thanks,

-CJ.

I’m looking for more peeps…

I’m on the hunt for an awesome person who also happens to code on the Microsoft Stack really well.

I know I’m a SharePoint guy … but this person doesn’t need to be!

First up here is the place to apply: LinkedIn

In a nutshell we are looking for fun people who enjoy building stuff on the Microsoft Stack.  ASP.Net, Azure, SharePoint, Windows Phone, MVC3 or 4, Web API … you name it. 

You need to be good at working stuff out, enjoy a challenging projects, clients & timelines (from time to time) … and have a pet project you work on at home in your spare time that you can show us.

This will be your view of Bellevue when you choose to come into the office:

Come and work for us!

-CJ.