Category Archives: SharePoint

Nintex investment announcement and why we should all be excited about it.

imageFirst … the news:  http://www.nintex.com/en-US/News/Pages/default.aspx#734

Often when people see a company take on an investment like Nintex announced today they scoff and wonder what luxury locations the owners will now be sunning themselves in.  They usually see it as selling out and not what that deal really represents.

I want you to take a pause for a moment and think about what something like this means for the SharePoint industry.  Think about what a deal like this says. 

These folks have decided to invest $222 million (!!  ma-ma-ma-million) in an independent SharePoint business.  They have decided that there is room for that business to grow in a huge way and to get a handsome return on their investment.

This was a business that, when I first got into SharePoint, started with a recycle bin feature for SharePoint document libraries all those many years ago and grew it into a tens of million dollar business.  Nintex Workflow is now THE singularly most widely used ISV application in SharePoint worldwide.  It’s huge.

We (the entire SharePoint community) should all be all stopped dead in our tracks and being blown away about how incredible this is.

This is awesome because it means outsiders view the space as growing and being worthwhile investing in. 

This is awesome because it means those folks out there with an idea and passion can see where it could take them.  It inspires people to make a go of it and bet on their passion and enthusiasm.

And most importantly this is awesome because it means companies like Nintex can raise money and use it to build their business with new amazing products and solve more of the tough problems facing organizations with tools like SharePoint.

Enterprise software doesn’t have the glitz, glamour and absurd hype the consumer market has … but it does have boat loads of value.  Just look at companies like Yammer being bought by Microsoft, Box taking more funding than you can shake any reasonable length stick at & companies like Splunk and WorkDay are rocking along nicely in the enterprise space.

It’s outcomes like this one for Nintex that make our space an exciting one to be in and something we should all pause, consider and congratulate the Nintex team on.  Provoke loves Nintex products and we use them to help our customers everyday.  We can’t wait to see where their next adventures takes them and look forward to being a part of that journey for many years to come.

Congrats to Brett, Brian, Steve, Mike, Ryan, Alberto and the rest of the Nintex crew!!

-Chris.

Revisiting SharePoint development 6.5 years later…

Way back in 2006 I wrote a blog post entitled “Application Development on MOSS 2007 & WSS V3” that discussed the various options for building apps on SharePoint. It’s been by far and away the most viewed blog post I have written. As of writing its sitting at 140,000 views.  

The main point on writing that post 6.5 years ago was to provide a simple summary of the options available for development in SharePoint 2007. At the time those were:

  • Web Parts
  • _Layouts application
  • User Controls
  • ASPX pages added to a site with code behind

Towards the end of the post I summarized the choices in a simple decision matrix (below):

image

Now fast forward to 2013 and the new release of SharePoint 2013 … Most of that matrix still holds true albeit with a couple of minor tweaks. Back when I wrote the original post there was no support for SharePoint built into Visual Studio for example.  Today instead of the Smart Part (thx again Jan Tielens) you can use a Visual WebPart (which is a user control that is compiled down to a server control by Visual Studio, but which gives you the benefits of the visual design surface at design time, unlike a standard WebPart).

Given so long has passed I thought it was about time that I revisited the choices and took a look at what has changed in the last 6.5 years!

Before I go on, I want to reiterate that this is my personal opinion. Many of you won’t agree.  So this is really just a summary of the decision matrix I use in my head when evaluating the options and deciding on the best choice for the situation.

Evolution of the matrix…

Updating this matrix is a lot trickier now we have SharePoint Online where many of the pervious on-prem options don’t exist. e.g. no full trust code.

I went back and forth on deciding what my updated matrix would include. This took a while and, given I am a big proponent of SharePoint Online, I would prefer everyone think about designing their solutions with the possibility of moving to SharePoint Online in future.

Why?  Well in a recent internal email amongst developers here is what I said (some bit snipped):

Apps should be our first choice moving forward.

The reason is simple.  There is no future in Sandbox Solutions or Full trust solutions.

Notice i said “first” .. not only 🙂 When will Sandbox Solutions go away? Shortly after the new app model supports everything you can do in a sandbox solution. MS will deprecate it as fast as they can and then turn it off after giving  everyone a year to re-write their code.

Trust me, MS wants to kill sandbox solutions as fast as they can.  Same with full trust code. It gives SharePoint a bad name when SharePoint fails … even because of code someone else wrote and deployed to it.  The sandbox is too expensive to run in Office 365 and therefore will be shot. To be clear, the goal is to remove any 3rd party code running within a SharePoint process. Doing so will improve the security, scalability and reliability of SharePoint.

Now that might sound a bit harsh … and to be fair I was trying to be … but my point is the long term vision for SharePoint is to not host other peoples code.  The new app model might not be a perfect replacement today … but given time I’m willing to bet it will get better and support more of the things you can’t do today.

Then I went on…

For now we should be thinking Apps first … and augmenting it with sandbox and full trust only when needed.  Otherwise we are painting ourselves in a corner. This is most important for 365 solutions.  Still, 2 years from now we shouldn’t be having to explain ourselves to our customers for painting them into a corner where they can’t migrate to 365 or upgrade to the latest version of SharePoint because of our recommendations. Not good.

Don’t get me wrong.  I’m not saying “no sandbox” and “no full trust” … i’m just saying we should be leading with apps first and then backing in sandbox and full trust only when needed.

I like apps because they also mean we are not constrained to what development options SharePoint imposes like MVC or the latest improvements in the .Net framework.  Because your code runs remotely you can run it on anything you like. It could be PHP for example.

<mega tangent> PS: can we start a petition to stop calling the new model the “app  model” and call it something like the “remote code model” that “apps” happen to use. Then we can reserve “apps” for stuff that gets put in the Marketplace. I know this won’t happen but it would be nice 🙂 “Apps” was a bad idea IMHO.</mega tangent>

Back to the matrix…

After going back and forth on it for a while I came to the stark realization that a matrix was no longer required.  Dev has got simpler for a change!

So here is my new “matrix” … or the “Decision List 2013 edition” as I am now calling it:

  1. Design Manager package (on-prem or online)
  2. App for SharePoint (on-prem or online)
  3. Sandbox Web Part (on-prem or online)
  4. Full Trust Web Part (on-prem only)
  5. Full Trust everything else (on-prem only) (_layouts pages etc…)

It’s pretty straightforward when you think about it.  Start with the lightest touch possible and only step down to the next heaviest when you have to.  This might seem screamingly obvious, but it would surprise you (or not) how many developers jump for the most heavy weight option first because it’s the most powerful and they don’t have to think.

Further more option #2  above can be further expanded to:

  1. SharePoint Hosted App
  2. Provider Hosted App

You may notice the absence of the Auto Hosted app type above. This is the option where you package your application and SharePoint will automatically host the application code for you in Azure. Reasons for this are simple A) its not available (yet)  B) it’s horrid (my opinion).  Auto Hosted apps code runs in Azure space managed and controlled by SharePoint Online … not you.  I hate the thought of having to support code running in a location I have no control over and no visibility.  For example, unable to see what is going wrong when a customer calls asking for support.  For the small price you pay hosting in Azure directly via the Provider Hosted model you will reap payback many times over when you need to upgrade your app and or diagnose a support issue and can’t tell what is going on.

Summary…

Regardless of your like or dislike of the new app model there is one thing that is clear … at least to me anyway. That your code will not live inside the SharePoint process in the future. For me, that means thinking about how to start designing solutions with this in mind as to not inadvertently painting yourself into a corner that is costly and painful to get out of.  Sure, there will be situations today that mean you have no other choice to use some sandbox and full trust code.  But …

My words of advice are simple.  Think apps first and fall back to heavier options if needed.

This way over time as the new app model gets better and becomes the starting point for all SharePoint development you will already be ahead of the curve and will have an easier path to the cloud when your customers are ready.

+ ask any developer if they would rather be using MVC, Razor, SignalR etc… my bet is they say “yes”.

-CJ

New Release: Office Developer Tools for Visual Studio 2012

I vividly remember penning the blog post announcing the Visual Studio Extensions for WSS (VSeWSS 1.2) .  Love them or hate them VSeWSS was the first MS foray into integrated developer tooling for SharePoint developers.  In all honesty VSeWSS was a skunk works project started by some folks in the SharePoint and SPD engineering team.  I inherited them when Alex Malek moved to the IE team.  For the 2010 release I worked pretty closely with Mike Morton from the VS team on what became the SharePoint tooling that you see today.  I am sure Mike and team hit their heads on a wall with the number of times I said we needed features like a content type and list visual designer vs. just XML.  We literally had a feature list 100s of items long and only resources to do ~30 in the first version. We eventually got the list designer a release or so later 🙂

Now we have the next major iteration of those tools that have just released for SharePoint and Office 2013!

Read the announcement here:
http://blogs.msdn.com/b/somasegar/archive/2013/03/04/now-available-office-developer-tools-for-visual-studio-2012.aspx

Randall also has a write up on them here: http://blogs.msdn.com/b/officeapps/archive/2013/03/05/download-the-office-and-sharepoint-visual-studio-tools.aspx

They come complete with fancy colored icons in the new project picker!  (the preview was grey scale). I laugh … but the grey pissed me off for some reason.

Personally I love the mention about Continuous Integration workflows and new debugging features with service bus … and looking forward to getting my sticky hands and playing around some more.

Get them here: http://aka.ms/OfficeDevToolsForVS2012.

Great work @chakkaradeep!!

-CJ.

Don’t invest in SharePoint social…

(I think I am getting better at outrageous headlines to drag you in to read the post! … please don’t leave)

I recently read Jeremy’s post about picking SharePoint social over Yammer “for right now” and wanted to weigh in on why I think they are not making the call I would have.  It’s all just personal opinion of course and Jeremy and I are close friends and no doubt he will attempt to convince me otherwise over a few beers shortly 🙂

In my humble opinion the only reason you should consider using SharePoint 2013’s social features over Yammer is if your organization is 100% unable to use a cloud based service.

Why?

Because there isn’t a future in SharePoint on-prem social features.  It’s just not what Microsoft does when it changes direction.

When Microsoft takes a bet on something big there are never two options to pick from. There is only one option and the rest is dead to them.  Rightly or wrongly, whether you like it or not, for good or bad … that’s just the way it works.  This basically means that after that speed it approximately takes for one synapse to fire Microsoft and all its muscle (sales and otherwise) stopped selling on-prem social and started selling the new cloud social story like it was never any other way.  You won’t hear anything pitching on-prem social over Yammer and it will only be used as a fall back position if the organization cant use the cloud for whatever reason.

“What should I use for social?  Yammer or the SharePoint newsfeed?”  My answer has been clear: Go Yammer!  Yammer is our big bet for enterprise social, and we’re committed to making it the underlying social layer for all of our products.” – Jared Spataro, Senior Director – SharePoint, Microsoft Corp – 19th March 2013

Update 19th March 2013:  If you want more of a nail in coffin then look no further then Jared’s latest update on the Enterprise Social Roadmap. The quote above is from this post Yammer and SharePoint: Enterprise Social Roadmap Update. If you read that 90% of the post is dedicated to Yammer with a fraction dedicated to “If you are old and clunky and stay on-prem then here is a skinny bone to chew on”.

“Cool” you might say.  “That doesn’t change what you can and can’t do with the product.  On-Prem is still my bag baby!”

If you look at the features, pros and cons and line them up side by side on-prem SharePoint social will win the sprint today … by quite a long margin.

But mark my words … it won’t win the marathon.

Here is my prediction for the next couple of years.  SharePoint on-prem social features might be lucky to get a few new features. Maybe a some in the next update, maybe a few the one after.  But where we really quit the crap and bring on the meat will be in SharePoint + Yammer integration. This is obviously not rocket science given MS just spent $1B+ dollars on it. Everything social in SharePoint Online will be ripped out and replaced/backed by Yammer with deep integrations that don’t exist today.  100% effort will be put into this experience as a first class citizen vs. the on-prem story… sad face … I like on-prem too … but like I mentioned above on-prems dead baby.

Eventually there will be no Yammer. It will just be SharePoint Online with a lot more rocking social features built by a team that deeply understand Enterprise social.  MS didn’t buy Yammer for their customers (they were mostly already SharePoint customers anyway) … they bought them for the kudos in enterprise social and the team of people who get it. Microsoft needs to win enterprise social big time and Yammer are the A game.

So why would I say don’t invest in on-prem social with the SharePoint features you get in 2013 if you can at all help it?

I would put money on there not being a great upgrade story on-prem to whatever comes next in the cloud … if at all. There could be one IF you are using SharePoint social features in 365 today … maybe.

Maybe I will have to eat my hat some day when I look back at these words … but if I were made to pick a winning horse today I would be betting on Yammer and having a smoother path to niceness with future releases.

Sure, this might mean having a muddled and semi painful story now as Jeremy points out in his post. This might mean you need to educate users around using Yammer, doing some work to federate for authentication purposes so you don’t have two logins, doing some integration work to make it easier to post stuff to Yammer from SharePoint etc.…   at least until MS pull the next round of SharePoint integrations with Yammer out of the hat and make things a lot less confusing etc.…

But at the end of the day I would be ok with that vs. being backed into a corner that you cant get out of or have a harder time getting out of.  Even if that means living with a less integrated experience today.

Who knows … I could be 100% totally wrong (in some ways I wish I will be) but maybe I wont and I hope to have saved a few of you from writing a kilotonne of migration code trying to get all those posts, likes and follows moved over to Yammer … but having said that I am sure AvePoint will have a nice migration tool ready for that eventuality anyway … so maybe all this is moot 🙂 PS: AvePoint migration tools rock by the way.

PS: The real moment I will freak out about Social in the enterprise will be when Facebook finally gets around to releasing an Enterprise offering walled garden style social experience for organizations.  I have thought for a while now that it would be “any moment now” … but nada so far.  If that happened and they offered light weight document collab etc.… it would be a game changer.  But maybe zuck is holding off while him and Steve continue their wee love fest while trying to stiff Google. Time will tell I guess.

-CJ.

My first book: Beginning SharePoint 2013 Development

It was a long time coming and I have wanted to do this for quite some time … but I have just heard that the book I co-wrote with Steve Fox, Donovan Follette and tech edited by Andrew Connell has just been sent to the printers!

As the name suggests … It’s all about starting development on SharePoint 2013.  As you may have read or heard there is quite a bit of new stuff for developers in 2013 and this book aims to serve as a guide for those looking to grapple with those changes.

Topics include …  the new app model, developer tools, Azure, building and packaging apps, publishing in the SharePoint Store, distributing them internal to an organization, OAuth, Client Side OM, REST APIs, integrated SP + Office apps, Remote Event Receivers, Business Connectivity Services, Office Services & Workflow.

A core theme throughout the book is learning about the new development options available in 2013 and how and when to take advantage of them.

I wrote five of the fifteen chapters …

  • Developing, Integrating, and Building Applications
    in SharePoint 2013
  • Packaging, and Deploying SharePoint 2013 Apps
  • Distributing SharePoint 2013 Apps
  • Overview of the Client-Side Object Model and REST APIs
  • Overview of OAuth in SharePoint 2013

Like I mentioned above, writing a book was something I have wanted to do for a while now but never got around to it.  I really have to thank Steve Fox for giving me the opportunity to collaborate on this.

It should be available soon and is already available for pre-order on Amazon:

Get it while its HOT!

-CJ.

WordPress and SharePoint architecture similarities and … who moved my blog?

Other than WordPress and SharePoint sharing similar a capitalization strategy I noticed some other similarities…

When I left MS just over a year ago I decided that I would move from my older (and far more popular) MSDN blog. It was on an old blog engine that wasn’t great and didn’t offer the stuff the new cool kids were doing.  So I started looselytyped.net and hosted it on wordpress.com.  It was super simple to set up and wordpress.com did a lot of it for me.

WordPress.com is like SharePoint Online in many respects. It’s a hosted version of WordPress and because it is hosted there are things that the hoster lets you fiddle with and things they don’t let you fiddle with. Much like in SharePoint Online you don’t get to poke around under the covers of SharePoint like you can with SharePoint on-prem.

WordPress Plugins … aka full trust solutions

WordPress has a concept of plugins.  In SharePoint land this is the equivalent of full trust solutions being installed on your farm.  Obviously (like SharePoint Online) WordPress.com doesn’t let you add these since they could do anything to the server they like and effect other customers. SharePoint Online is the same, Microsoft want to preserve the stability and security of the system for everyone hosted there.

SNAGHTML39eed8c

See the similarities between WordPress and SharePoint now? 🙂

Where SharePoint is evolving is in how we get around this limitation of not being able to add functionality in a pluggable but secure and manageable manner.

Step 1: A more secure plugin model … aka Sandboxed Solutions

In SharePoint 2010 Sandboxed Solutions were introduced to offer a sandboxed execution environment for your code. This was far more limited in what you could do in there, but at least it offered some form of online friendly pluggable system.  I was working on the team that owned Sandboxed Solutions in the SharePoint 2010 release & at the time it seemed like a great solution. Remember this was before Azure existed. This was 2.5 years prior to 2010 releasing and “the cloud” was still being called “servers in a datacenter” by most people.

Step 2: An even more secure and flexible plugin model … aka SharePoint Apps

Hindsight is a wonderful thing and looking back Sandboxed Solutions is the wrong model long term. Hosting other peoples code is hard and there are better places to do that than in SharePoint i.e. Azure.

The new SharePoint App model offering remotely hosted code is a far better model going forward in my opinion.  It’s not that I am deeply into “apps” as such … it’s more that this new model offers interesting new plumbing and APIs that developers can use (see SharePoint’s new Plumbing, great for developer).

Where to from here?

Back to WordPress … it doesn’t yet offer a solutions like this (AFAIK). Plugins are full trust solutions that are installed.  In a similar vein Microsoft CRM offers a sandbox where code can run etc…

I wonder when we will see more products like WordPress and MS CRM move to the same architectural model as SharePoint 2013 for custom code and plugins?

I expect to see the new SharePoint App model, or more correctly, the plumbing and APIs that support the app model to evolve in the coming releases fairly rapidly. Allowing us to do more than is possible today and build solutions that integrate with SharePoint in new and interesting ways. The Sandbox has turned out to be a dead end and the new way forward is getting code out of the host process and into better suited places like Azure.

So what is your point Chris?

Oh … well I started writing this post to fill you in on my blog moving. Its still WordPress … but I decided I wanted plugins and all the stuff WordPress.com doesn’t offer.

So I moved my blog to run on WordPress on Azure Web Sites.

Yes I know this sounds like I am advocating for full trust solutions in SharePoint … really I’m not 🙂 SharePoint has a better long term solution for those now 🙂

I wanted the ability to add plugins and get at features in WordPress not offered in the WordPress.com hosted option.

+ I am a big Azure fan … keep up the great work @ScottGu

I won’t regurgitate all the steps to get WP running in Azure … but will point to a couple of helpful posts from John Papa who recently did a similar move.

http://www.johnpapa.net/wordpress-on-azure/
http://www.johnpapa.net/azurecleardbmysql/

One thing I will mention is that I had a hard time getting Azure configured to serve my site on both looselytyped.net and www.looselytyped.net.  Azure Web Sites recently added support for “naked domains” aka… domains without the “www” on the front.  I found it a wee bit tricky to set up due to the requirement to set up a dummy CNAME DNS record so that Azure can check the DNS settings … so in case you are wondering how to do this I have a few screen shots below.

My DNS is hosted with GoDaddy … and the first thing you need to do is add a special CNAME DNS record that Azure checks for.

You need to create an alias for “awverify” and point it at “awverify.<your azure name>.azurewebsites.net … see below…

image

Then in the Azure management portal click the manage domains button to map domain names to your web site

image

Here is my setup…

image

In order for Azure to allow me to add www.looselytyped.net I needed to set up a CNAME record that pointed at looselytyped.azurewebsites.net

In the same vein … Azure would only allow me to add the “naked domain” (looselytyped.net) once I had added the CNAME for “awverify” and point it at “awverify.<your azure name>.azurewebsites.net.

Anyway … I hope this helps the next person who gets stuck trying to get their Azure web site running on a root “naked” domain.  It stumped me for a while and the documentation wasn’t 100% clear.

Thanks,

-CJ.

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

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.