Using CSOM from Azure Functions

I got back to active SharePoint development some months ago and first thing to do was to port bunch of workflows from in-prem SharePoint to cloud. Where I live we don’t usually have any simple workflows. Most of them need some backing code due to custom logic. So, my only option was to go with Microsoft Flow or Azure Logic Apps and Azure Functions. Here’s the project with one dummy function to get started.

Read more

Optimized hierarchy traverser

My first draft of hierarchy traversing component got some serious feedback and it’s time to make some changes before moving on to next challenges. Hierarchy traverser is not optimal yet as it uses tail-call recursion and it’s easy to run to stack overflow with it. This blog post solves this problem and prepares for next challenges like node cache and continue-from-given-node.

Read more

Universal hierarchy traversing in C#

I started playing with small idea about how to go through document repository on SharePoint using more universal approach than just piling code to using-blocks and methods that depend on these. My goal was to separate in code hierarchy traversing logic from document exporting logic so I can use traversing part also in other projects on different types of hirarchies. Here is my nice and clean solution.

Read more

Automatically describing and tagging pictures on SharePoint using Azure Cognitive Services

Azure Cognitive Services has wider audience than cool young guys developing very cool mobile apps. These services can be used in very different use cases. This blog post shows how to use Azure Cognitive Services to automatically describe and tag photos added to Office 365 SharePoint picture library.

Read more

Getting started with SharePoint Framework

I started learning SharePoint Framefork (SPFx) to get better on client-side development for Office 365. I decided to go with SharePoint Framework as it has simple lightweight tooling available and also because it is well documented. This blog post is short and practical introduction to SPFx and it brielfy summarized everything important you need to know to get your first client-side web part up and running.

Read more

Triggering Azure Functions from Office 365 SharePoint using Microsoft Flow

We cannot use classic SharePoint workflows on Office 365 but using Microsoft Flow we can create new era flow applications that are triggered by events that happen in different sources. This blog post shows how to use Microsoft Flow and Azure Functions to send out e-mail when new meeting is added to SharePoint list. The idea of this blog post is to illustrate how to create the flow where custom code takes over in some point.

Read more

Test-running SharePoint timer job using console application

SharePoint timer jobs can be inconveniet to debug as you have to attach debugger to OWSTIMER.EXE after deployment. Often you must restart this process so it starts using latest version of your assemblies. When building something complex we want to run our code many times to see how it works and if there are errors. But deploying, attaching to debugger and so on – is there easier way to run timer job? Yes, there is!

Read more

SharePoint 2013 Autohosted apps

MSDN subscribers can activate Office 365 developers benefit that gives them free Office 365 development instance for year. If you have this subscription then you can use your local Visual Studio to develop new style applications and then run and test them on Office 365 environment. In this posting I will introduce you hybrid development of Office 365 SharePoint applications.

Read more

Failed to get value of the "Approval Status" column from the "Moderation Status" field type control

When upgrading site from SharePoint 2007 to SharePoint 2010 or if somebody has tried to be extreme smart-ass you may get the following error when saving item or document to list where content approval is turned on: Failed to get value of the “Approval Status” column from the “Moderation Status” field type control. See details in log. Exception message: Input string was not in a correct format.

Read more

Could not find any resources appropriate for the specified culture (or the neutral culture) on disk

When you are building site definitions with localization support you may get the following error when creating new site: Provisioning did not succeed. Details: The site template was not provisioned successfully. Delete this site collection in Central Administration, and then create a new site collection. OriginalException: Could not find any resources appropriate for the specified culture (or the neutral culture) on disk.

Read more

The program w3wp.exe, with the assigned process ID, could not authenticate locally by using the target name HTTP/WEBSITENAME.

You may face this error when you are running your development environment on virtual server where you have also configured alternate access URL-s.The full message is something like this: “The program w3wp.exe, with the assigned process ID, could not authenticate locally by using the target name HTTP/WEBSITENAME. The target name used is not valid. A target name should refer to one of the local computer names, for example, the DNS host name. Try a different target name.”

Read more

Could not load file or assembly CabLib or one of its dependencies

When using WSPBuilder from command line you may get the following error: “Could not load file or assembly ‘CabLib, Version=10.2.0.0, Culture=neutral, PublicKeyToken=5c838b77b53f84a0’ or one of its dependencies. An attempt was made toload a program with an incorrect format.” This error occurs if there is something wrong with CabLib.dll or if CabLib.dll doesn’t exist in same folder with WSPBuilder.

Read more