SharePoint, SharePoint, Why Have You Forsaken Me?

SharePoint has forsaken me, at least that’s what it feels like every 3 years or so when they release a new version. When it went from STS to WSS 2 it was “What, I can’t use the SQL DB directly any more?” Then came SP 2007 and, “What, I can’t make post release updates to my Site Definitions?” SP 2010: “I can’t develop on with Virtual PC anymore?”

Am I ranting here? Nope. I love it. I’ve been a SharePoint developer a long while now and each time I begin to get a little bored with the job, Microsoft introduces a new version of the product that upends the community. There are always new, exciting features and ‘features’ to learn, many of which are improvements Winking smile .

Now SP 2013 is here and it’s awesome, so what’s moved my cheese this time around? Apps for SharePoint. I explained earlier why I think SharePoint Apps are critical and why I think they’ve killed Farm and Sandbox solutions (RIP SharePoint Features 2007-2010). So now I’m trying to create an SharePoint App for a common business scenario and I’m finding myself stuck rather early in the process.

I want to create a list template and deploy it as a SharePoint App. I want to be able to roll up content from multiple instances of my list, so all instances of my list must use a common content type. Creating a SharePoint App that includes my site columns, content type, list definition, and list instance is pretty straight forward, but here’s the big catch: I want instances of my list to live in right in the user’s site so the user can interact with it just like the OOTB lists they’ve added, including creating lookup fields.  SharePoint Apps run in the application infrastructure, which is a separate site collection from the user’s site. Using all the simple methods in Visual Studio (Add Item) leaves a barrier between the user’s site and my list instance. 

My current line of thinking is that in order to create my list instance in the user’s site, I need use javascript to create my resources inside the host site.  I’ve been able to successfully create my site columns in the host site using JSOM.  However, creating the content type there has got me stumped. I’ve been able to get back my collection of content types from the host web, but I can’t seem to add to it.

SharePoint, SharePoint, why have you forsaken me? You’ve improved column, content type, and list creation in Sandboxed solutions, but these are not compatible with your App Model. You’ve given me a robust new object model for javascript, but left most of the API documentation blank.

If When I figure this all out, I’ll turn it into a few step by step articles and maybe publish the final product to the store.

Oh, and Happy New Year!

Share:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Reddit
  • RSS
  • Google Buzz
  • Tumblr

RIP SharePoint Features 2007 – 2010.

I know: Farm and Sandbox features still exist in SP 2013 (with improvements even) but they aren’t compatible with the SharePoint App Store, and the SP App store is the future, my friends.

You say, “But Ryan, you buffoon, what makes the app store so critical in the on premise future that the next few years surely holds?”

To which I reply, “While over the next several years, the major percentage of SharePoint deployments will likely be on premise, the impact of Office 365 on development will be revolutionary. In fact, despite its low percentage of installs, I believe Office 365 has already hit critical mass and the SharePoint App Store is now a self fulfilling prophesy.” I’d say it just like that too, because I’m a tool.

1) Many Companies will demand their solutions be deployed as SharePoint Apps.  With this iteration product complexity and the difficulty in finding great SharePoint Admin talent will begin pushing some companies to Office 365.  However, the larger impact will come from the many on premise installations where admins will be looking to Office 365 as their model for deploying solutions internally while safeguarding their environments against rogue code. I predict massive rewriting of governance policies to encourage SharePoint apps and discourage old school Farm-Deployed solutions.

2) Nearly all third party SP vendors will be creating Office 365 App Store compatible versions of their products. It gets them access to customers on Office 365, and it gets them the path of least resistance into all those on premise installations that follow the Office 365 model; and it does so using a single code base to maintain.

3) Any of those on premise companies that thought they’d be ignoring the App Store, will be forced to pay attention when they inevitably need to deploy one of these third party solutions.

4) Developers will prefer to write Office 365 compatible Apps, not because they’re easier or better (the juries still out on that), but because it exposes them into the most markets with the most code reusability.

5) As companies see more and more SP Apps in the store, they will begin looking first to the for solutions.

6) To remain relevant, SharePoint solutions must be written and deployed as SharePoint Store Apps

And that is how Features die.

RIP SharePoint Features 2007 – 2010.

Share:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Reddit
  • RSS
  • Google Buzz
  • Tumblr

SketchFlow for Christmas

You may have seen this news from Microsoft yesterday, but they are discontinuing the Expression Suite of products. And that’s good news for us developers. Instead of selling these products under their own line (which wasn’t part of MSDN), MS has decided to roll most of these features back into Visual Studio 2012.

I’ve been hoping for a long time to get my hands on one product in particular, SketchFlow. It’s a rapid prototyping tool for web and mobile apps, and beginning yesterday it became a free download as part of the Blend for Visual Studio 2012 toolset. Merry Christmas from Microsoft!

Here’s the details about the products and where they are going: http://expression.microsoft.com/en-US/

Here is the Blend + SketchFlow download: http://www.microsoft.com/en-us/download/details.aspx?id=30702

Here’s a video demo of SketchFlow: http://expression.microsoft.com/en-us/ff723804

Share:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Reddit
  • RSS
  • Google Buzz
  • Tumblr

RequireJS in PhoneGap Gotcha

I just spend an embarrassing amount of time to debug an issue I hit when moving my html & javascript into a PhoneGap package.  Hopefully this saves somebody else the issue.

The problem was that when I moved my code into PhoneGap, none of my javascript files were loading properly.  After a bit of debugging, I realized the paths were not executing as expected in my requirejs config file.

In my working website, the paths in my config look like this:

requirejs.config({
    //By default load any module IDs from js/lib
    baseUrl: '/js/lib',
    //except, if the module ID starts with "nsm",
    //load it from the js/nsm directory. paths
    //config is relative to the baseUrl, and
    //never includes a ".js" extension since
    //the paths config could be for a directory.
    paths: {
        nsm: '/js/nsm'
    },<snip/>

Bringing that into PhoneGap though resulted in nothing loading for me. I made the mistake of removing the root / for my javascript paths.  That had the benefit of loading scripts from the baseUrl fine, but failed to load them from my nsm directory.

requirejs.config({
    //By default load any module IDs from js/lib
    baseUrl: 'js/lib',
    //except, if the module ID starts with "nsm",
    //load it from the js/nsm directory. paths
    //config is relative to the baseUrl, and
    //never includes a ".js" extension since
    //the paths config could be for a directory.
    paths: {
        nsm:'js/nsm'
    },<snip/>

Then I noticed the paths in my output window when the I pushed the app to my emulator.  (I’m developing this app in Visual Studio 2012 and debugging in the Windows 8 emulator.)

INFO: Writing data for /app/www\img\icons-18-black.png and length = 1767
INFO: Writing data for /app/www\img\icons-18-white.png and length = 1806
INFO: Writing data for /app/www\img\icons-36-black.png and length = 3611
INFO: Writing data for /app/www\img\icons-36-white.png and length = 3648

So my correct paths needed to be:

requirejs.config({
    //By default load any module IDs from js/lib
    baseUrl: '/app/www/js/lib',
    //except, if the module ID starts with "nsm",
    //load it from the js/nsm directory. paths
    //config is relative to the baseUrl, and
    //never includes a ".js" extension since
    //the paths config could be for a directory.
    paths: {
        nsm:'/app/www/js/nsm'
    },<snip/>

I had thought the www directory was the root in my PhoneGap app.  I was wrong.

Share:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Reddit
  • RSS
  • Google Buzz
  • Tumblr

VS 2012 Update for SP Developers

Nice! I just got this email from MSDN. A couple of exciting things in here. 1) MS is holding true to pushing out more regular updates to VS. 2)Better support for ALM and Load testing SharePoint code (I’m assuming this is targeted to SP 2013, and not backwards compatible with SP 2010)

Grab the update here: http://www.microsoft.com/visualstudio/eng/downloads#d-visual-studio-2012-update

“Dear Ryan,
We’re excited to announce that Visual Studio 2012 Update 1 is available today! Updates provide continuous value, adding new capabilities year-round to Visual Studio 2012. These releases are aligned with the core software development trends in the market, ensuring you always have access to the best solution for building modern applications. In addition, the update process makes it easier for you to locate and deploy bug fixes, and keep the client up-to-date with regard to our hosted cloud offerings.
The key features available with this update include1:

  • SharePoint development: additional ALM capabilities in SharePoint – such as Load Testing and Coded UI testing support – improving quality, scalability and agility.
  • Agile team support: easier agile planning with Web Access and new Kanban support, alongside existing Scrum support.
  • Continuously enabling quality: improvements for testing, from organizing unit tests to more flexible workflow for manual test execution.
  • Windows development: improved Windows 8 application development, such as support for debugging mixed managed and native Windows Store Applications and improved ARM debugging for Windows 8 apps.”
Share:
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • LinkedIn
  • Reddit
  • RSS
  • Google Buzz
  • Tumblr