Working with Non-Office File Types in SharePoint & Office 365

Office 365 and SharePoint work quite nicely when you are working with Microsoft Office file types. Things like Word, Excel and PowerPoint files. Once you really start using SharePoint however, you want to store many more types of files in SharePoint. This is natural and you can actually get the files into SharePoint without too much hassle.

Editing and working on Office file types is pretty good. Just click on the file in SharePoint and you can now choose to do the edits directly in the browser (with online versions of the Office products) or edit the files in the full desktop version of the Office products.

But what’s the story with file types that don’t open in, or are not associated with the Office products?

Well that’s when things get a little clunky, and in this post I’m going to show you how OnePlaceDocs Explorer turns virtually any software application into a “SharePoint” aware application that you can use to open/edit and save files that live in SharePoint. No longer are you just restricted to using the Office application that were designed to work with SharePoint, now you can edit files in any application you want.

So what is OnePlaceDocs Explorer? It is a bit like Windows File Explorer except it is purpose built for looking at SharePoint and Office 365 environments rather than files on your local computer or network.

To give you some orientation, the screenshot below shows OnePlaceDocs Explorer and points out the 3 pane layout which is similar to Windows File Explorer.



Let’s look at a common scenario…

Editing Images Files in SharePoint/Office 365

It’s actually very difficult to edit image files that are stored in SharePoint. If you try to open the file, the web browser simply displays the image in the browser (because it natively knows how to). This doesn’t help you when you want to edit the image though. Your options are to either:

  • Download the image from SharePoint to your local computer, edit it in your image editing program of choice, then manually upload the file back to SharePoint replacing the existing file
  • Sync the whole library offline via OneDrive and then you can work with the file as though it is a normal file on your desktop. Saving changes to the local file will sync back to SharePoint.

Here’s the OnePlaceDocs Explorer way.

Select the image file and select Open With (from the ribbon or context menu action)


Select any application from the list of applications installed on your computer that recognise this file type. I’ll choose good old Microsoft Paint just to prove that a very basic application that has no interoperability with SharePoint will work fine.


Paint now starts up and the image stored in SharePoint is sitting there ready for me to edit.


I’ll make a few changes and just save using the standard save action in Paint or pressing CTRL+S.


Believe it or not, that is it.

If we return to OnePlaceDocs Explorer we can see in the changes showing in the preview pane.


Just to prove that it really has changed the file in SharePoint, I’ll open this document library in a web browser.edit-files-directly-from-sharepoint-07a-open-in-browser-cameron-dwyer

We can then find the same file in SharePoint


And there’s my modified image.


Editing the file using OnePlaceDocs Explorer really wasn’t any different to opening a file from my local computer. So now you have no excuse for not putting those files in SharePoint where they belong!

This same technique can be used to open any type of file with any installed application. Another common scenario is opening PDF files with Adobe Acrobat or another PDF authoring tool.

Does Microsoft have an InfoPath Forms Replacement in the Works

imageIt’s been one of the most asked questions since the death of InfoPath; What is InfoPath’s replacement?

There are some great 3rd party forms products that have been around for a long time now (namely Nintex and K2). Microsoft has been keeping very tight lipped on any official replacement to InfoPath and Forms in general and the community has been left feeling like they had been abandoned by Microsoft by not providing any replacement for their investment in InfoPath.

In a Office 365 Developer Podcast this week Jeremy Thake makes some very interesting comments (in the last 5 minutes of the podcast) indicating that Microsoft have been working on an InfoPath forms replacement it’s just been running way behind schedule. Interestingly he points to the technology behind Project Sienna possibly being an eventual replacement for InfoPath.

This podcast also mentions that we may hear (and see) something more official announced in October. Could this be the news that everyone has been waiting for? That Microsoft will have an official replacement for InfoPath. Let’s hope so. SharePoint (and Office 365) as a platform really need a rich forms technology at it’s core. Businesses look to SharePoint to replace those paper based workflows within the organisation so it’s kind of important to have a Forms technology natively within SharePoint to facilitate that wouldn’t you think?

TFS Queries and the @CurrentIteration Token

I was pleasantly surprised this week when I dived into TFS Online to tweak some queries and stumbled upon the new @CurrentIteration token that can be used.

This token can potentially solve the administration overhead associated with getting consistent reports out of TFS from sprint to sprint.

In the past I have had a series of TFS Queries to track the progress of things happening within the sprint such as:

  • Outstanding Product Backlog Items (with associated outstanding child work items shown in tree view)
  • Outstanding Product Backlog Items (flat list)
  • Done Product Backlog Items

The problem with these queries was that each of the queries has to conditional match a specific sprint (iteration)


The new @CurrentIteration token can be used to dynamically work out what the current iteration (sprint) is so that you don’t have to manually update all the queries when the sprint changes.


Here’s a post from Microsoft regarding the new @CurrentIteration token when it shipped.

This is a great step forward and probably should have been there a long time ago.

One not so nice thing I’ve discovered with using the @CurrentIteration token in queries is that Excel 2013 fails to open any query that uses the @CurrentIteration token and gives the error message:

“TF80076: The data in the work item is not valid or you do not have permissions to modify the data. Correct the problem and retry.”



New OnePlaceLive Scenarios Blog Series

imageWith the recent launch of the OnePlaceLive product, I’ve commenced writing a series of articles on the OnePlace Solutions website. This series of articles is designed to introduce the OnePlaceLive product and show to power that Solution Profiles can deliver in real world business scenarios such as using SharePoint/Office 365 for Projects Management, Legal Matter Management, Property/Asset Systems.

What are OnePlaceLive Solution Profiles?

Solution Profiles provide an intelligent way to look at SharePoint from the perspective of the different business systems (or solutions as we like to call them) that have been built in SharePoint (e.g. Project Management, Legal Matter Management, HR Business Processes, Helpdesk) and to dynamically identify the different SharePoint artefacts that make up those systems (e.g. site collections, sites, lists, libraries, document sets, folders, content). Solution Profiles then provide the power to organize those artefacts in many different ways that make sense to the end users of the business solutions, and then deliver those SharePoint artefacts to the users in personalized ways (and in context of the business solution) directly within core user applications where the user needs them (Outlook, Word, Excel, PowerPoint, Adobe Reader, Adobe Acrobat, and the Windows Desktop via OnePlaceDocs Explorer).


The OnePlaceLive Client application provides a graphical UI for creating, maintaining and publishing Solution Profiles which are then consumed by end users of OnePlaceMail and OnePlaceDocs.

Read the full OnePlaceLive Solution Profiles article and the first Project Management scenario

Photos from Microsoft Ignite 2015 in Chicago

As the dust settles on the first Microsoft Ignite conference and the tech crowd disperses from Chicago I look over these photos and think I’ll remember this conference as much for the character of the city of Chicago as I will the Ignite conference itself. From the fantastic aromas wafting from restaurants, the bars that greet you with a unique craft beer menus and  soulful blues performers to the monolithic buildings representing the pinnacle of engineering feats and the fresh parks and playgrounds and rejuvenated river front; Chicago is a city that is hard to walk away from and even harder to forget.

Thanks for the memories Chicago.

My favourite announcements from BUILD 2015 (Day 1)


Microsoft’s really long Build developer keynote, condensed into 2 minutes


Welcoming Developers to Windows 10

  • Windows 10 on One Billion Devices
  • Universal Windows Platform Innovation
  • Windows 10 Welcomes All Developers and Their Code (including Android and iOS)
  • Microsoft Edge (new browser replacement for IE)


Continuum for Windows 10 for phones puts a PC in your pocket


Visual Studio Code, Visual Studio 2015 RC, Team Foundation Server 2015 RC, Visual Studio 2013 Update 5

Preparing for Microsoft Ignite 2015

office-graph-ignite-sharepoint-office365-cameron-dwyerThe excitement is starting to build as the Microsoft technology conference of the year is almost upon us. I feel this year is going to be a first time experience for all attendees. We’ve got many individual conferences combined into one, even the old timers that have been attending these individual conferences year after year may be feeling some renewed excitement and feelings of trepidation of just how this conference is going to play out.

It’s certainly going to get started with a bang as Satya Nadella takes the stage for the keynote to an event that sold out weeks ago. I think the last time we saw a Microsoft CEO take the stage at a SharePoint conference was 5 years ago at SPC2010 when Steve Ballmer was at the helm.

Although Microsoft has gone (almost) all in on the cloud and been pushing cloud at us from every angle over the last few years, I think we will be hearing the word HYBRID quite a bit at this conference. We can also expect to hear a lot more about what SharePoint 2016 will look like and the feature set we can expect out of SharePoint 2016 on premises installations.

During the conference you’ll be able to find me at the OnePlace Solutions booth #537 in the Exhibition Hall. We will be running live, interactive demos of OnePlaceMail, as well as two new products that we are launching at the conference OnePlaceDocs and OnePlaceLive. Email management, Document management, and driving a solution focused, end user engagement for systems built on the SharePoint/Office 365 platform is what we’re about – if that sounds interesting then come by and meet the OnePlace Solutions Team. We will have plenty of giveaways as well so make sure you stop by to claim yours.


If you want to get the most out of mingling and networking then be sure to check out these two great resources for all those official and unofficial parties (great work guys on compiling these lists as they are quite extensive):

Vlad Catrinescu’s Blog – The Ultimate Microsoft ignite Party List

Jonathan McKinney’s Blog – The Unofficial Microsoft Ignite Party and Contest/Giveaway List

The Microsoft Ignite Countdown show is also well worth a watch to get a feel for how the conference will run, things to do in Chicago and it’s a bit of a laugh at the same time.

If you haven’t already then make sure you are keeping an eye on the #msignite hashtag on Twitter and the Ignite Event group in the Office 365 Yammer Network.

I hope to see you at the conference and above all have fun and despite what you were told as a child, talk to strangers (as long as they have an Ignite badge!)


How to enable “Hey Cortana” with Windows Phone 8.1 Update in Australia

Currently only USA and UK Windows Phones can access Cortana Beta. Some other countries such as Australia have access to Cortana Alpha. The “Hey Cortana” feature which allows you to start Cortana listening by simply saying “Hey Cortana” is not included in the Alpha and we have to wait patiently for the Beta. There is always the option to opt in to the Developer Preview and get the latest goodies, but if you’d prefer to keep your phone on a stable build and still get access to the “Hey Cortana” feature here’s a quick way to acheive it. In a nutshell you can change your phones region to UK just long enough to enable “Hey Cortana” and then switch your region back. After doing this “Hey Cortana” says it’s disabled in the settings but seems to keep working fine.

Here’s how to do it:

Settings | System

I’ve you are in Australia you should see that Region currently says Australia, English (Australia) and Speech is set to English (United Kingdom)

enable-hey-cortana-australia-windows-phone-cameron-dwyer (1)

Open the Region setting (it should currently be set similar to below)

enable-hey-cortana-australia-windows-phone-cameron-dwyer (2)

Change the Country/Region from Australia to United Kingdom and then press the restart phone button that appears once you change the Country/Region

enable-hey-cortana-australia-windows-phone-cameron-dwyer (3)

When your phone restarts go to Settings | System. Hey Cortana will still show as disabled

enable-hey-cortana-australia-windows-phone-cameron-dwyer (4)

Open the Hey Cortana settings you should now be able to switch this feature on.

enable-hey-cortana-australia-windows-phone-cameron-dwyer (6)

Continue on to setup (train) Cortana. You will only be able to do this while your Country/Region is set to United Kingdom, once we switch it back to Australia you will loose the ability to retrain.

enable-hey-cortana-australia-windows-phone-cameron-dwyer (7)

enable-hey-cortana-australia-windows-phone-cameron-dwyer (8)

enable-hey-cortana-australia-windows-phone-cameron-dwyer (9)

Once you’ve completed the Cortana training you should be back at the settings screen.

enable-hey-cortana-australia-windows-phone-cameron-dwyer (10)

Now your region will be set to United Kingdom, English (Australia)

enable-hey-cortana-australia-windows-phone-cameron-dwyer (11)

Now lets change the Region | Country/Region back to Australia. Select the restart phone button when it becomes available.

enable-hey-cortana-australia-windows-phone-cameron-dwyer (12)

Once your phone restarts go to Settings | System. You should find that Hey Cortana is disabled.

enable-hey-cortana-australia-windows-phone-cameron-dwyer (13)

enable-hey-cortana-australia-windows-phone-cameron-dwyer (14)

But if you say “Hey Cortana” either while you phone screen is on (or even if you phone is locked with screen off), Cortana will respond by turning the screen on and making a beep sound. Cortana is now listening for your command.

enable-hey-cortana-australia-windows-phone-cameron-dwyer (15)

SharePoint CAML query examples of working with People and Groups

Some of the more elegant and powerful solution built with SharePoint have some level of personalization for the user. Here are some example CAML queries that allow you to query a SharePoint list and return items where the current user is listed in a Person column or explicitly in a Person/Groups column and even if they a a member of a group in a Person/Groups column. First let’s give our examples a bit of context. Here’s a SharePoint list of Projects where each project has:

  • Status (Choice column with valid values of Open, Closed, Cancelled)
  • Project Manager (single valued Person column – no groups allowed)
  • Project Team (multi value Person/Group column – People allowed explicitly and/or Groups allowed)

sharepoint-office365-people-group-caml-cameron-dwyer-02-list-data   And the column definitions: sharepoint-office365-people-group-caml-cameron-dwyer-01-list-columns   Now here’s some of the things you might want to do when querying this list and the CAML to achieve it.

Where current user is in a single values Person/Groups column

This will give us all items where the current user is in the Project Manager column



<FieldRef Name='Project_x0020_Manager'/>

<Value Type='Integer'>

<UserID Type='Integer'/>




Where current user is a member of a groups that is listed in a person/groups column (that allows single or multiple values)

This will give us all items where the current user is a member of a group listed in the Project Team column. Note: it will not give you items where the user is listed explicitly by name in the Project Team column.


<Membership Type='CurrentUserGroups'>

<FieldRef Name='Project_x0020_Team'/>



Where current user may be named explicitly or may be a member of a group listed in a person/groups column (that allows single or multiple values)

This will give us all items where the current user is either listed explicitly by name or is a member of a group listed in the Project Team column.



<Membership Type='CurrentUserGroups'>

<FieldRef Name='Project_x0020_Team'/>



<FieldRef Name='Project_x0020_Team'/>

<Value Type='Integer'>

<UserID Type='Integer'/>





Combining Item Metadata with User/Groups Column Queries

This will give us all items: Where the Project Status (choice type) column has a status of “Open” AND Where current user may be named explicitly or may be a member of a group listed in the “Project Team” person/groups column (that allows single or multiple values) OR Where current user is explicitly named in the single value “Project Manager” Person/Groups column




<FieldRef Name='Project_x0020_Status' />

<Value Type='Choice'>Open</Value>




<FieldRef Name='Project_x0020_Manager' />

<Value Type='Integer'>

<UserID Type='Integer' />




<Membership Type='CurrentUserGroups'>

<FieldRef Name='Project_x0020_Team'/>



<FieldRef Name='Project_x0020_Team'/>

<Value Type='Integer'>

<UserID Type='Integer'/>







How to: Enable outlining (collapsible statement blocks) for C# code in Visual Studio

I’m often modifying existing C# code in Visual Studio and find myself trying to line up opening and closing braces and trying to figure out what level of nesting I’m currently at. It’s easy when the block fits on a single screen without scrolling, but dive into some complex logic where you’ve got plenty of nested if, else, switch, try, catch blocks it’s easy to get disoriented scrolling up and down trying to figure out the logic.

Yes I can hear the code purists begging me to restructure the code and encapsulate logic away into smaller more focused methods. I don’t disagree, it fact that might be the reason I’m looking at the code in the first place, but I need to understand the logic before I start pulling it apart.

Whatever the reason I’m sure you’ve all been in the situation, why can’t I just collapse this  switch block, or if block? Wouldn’t that make things simple? Luckily the solution to this problem is simple – there’s a free Visual Studio Extension called C# Outline and it’s available for Visual Studio 2010, 2012, 2013 & 2015.

This nifty extension provides outlining (expand/collapse) for all block elements that use curly braces { }; Just like you get out-of-the-box for classes and methods It’s simple and a massive time saver.



Get every new post delivered to your Inbox.

Join 138 other followers

%d bloggers like this: