Category Archives: ALM

The Visual Studio Post Deployment Script For Nintex Workflows & Forms

Application Lifecycle Management (ALM) has always been a problem for those who create SharePoint Solutions and need to include the Nintex Workflows & Forms within their final packages. The traditional way of doing it was deploying WSPs and then moving the different Workflows & Forms by exporting them from the Dev environments and importing them to the target ones (Testing, Staging, UAT, Prod, etc…). I’ve also seen some developers using the SDK to create features that take care of deploying & publishing the different Nintex artifacts.


I’ve explained how to automate the full process (like the above figure” along with the way to apply the Continuous Integration & Continuous Deployment concepts during my InspireX session “Application Lifecycle Management for Nintex Solutions” and right after the session, I received a lot of requests to start sharing the scripts.

This post is the first of a series and is going to deal with the first step towards Application Lifecycle Management for Nintex which is setting up your development environment. The goal of the post is to provide you with a way to manage your Nintex assets in Team Foundation Server so that any developer in the team can get the latest work from Team Foundation Server, click deploy and BOOOM, all the SharePoint & Nintex artifacts get deployed and published.

Here are the steps:

1) Download the scripts from Nintex Connect. I’ve also added the SharePoint Project so you can quickly test the whole thing.

2) In the Visual Studio SharePoint Project, create a new folder and name it “NintexArtifacts“.


3) Create a subfolder in the “Nintex Artifacts” folder for each list where you would like to publish the Workflows & Forms. Make sure to name the subfolders after the list instances.


4) In the Post-deployment Command Line, call the VisualStudioPostDeploymentScriptForNintex.ps1 . The script expects two parameters:

– Project Folder Location (projectFolderLocation)

– Site Collection URL (devSiteColUrl)

Here is what you should add in Visual Studio:

%windir%\sysnative\windowspowershell\v1.0\powershell -file “C:\DevScripts\Scripts\VisualStudioPostDeploymentScriptForNintex.ps1” -projectFolderLocation “$(ProjectDir)”” -devSiteColUrl “$(SharePointSiteUrl)”


If you’re wondering why we are using “%windir%\sysnative\windowspowershell\v1.0\powershell” rather than directly calling the script, it’s due to the fact that SharePoint is 64bit and Visual Studio is still 32bit. This means that Visual Studio will by default call the 32bit version of PowerShell resulting in errors. That’s why we, instead, need to instruct Visual Studio to load the 64bit PowerShell by referencing “%windir%\sysnative\windowspowershell\v1.0\powershell”.

5) Once you click “Deploy”, here is what you should see in the Output Windows:


6) Once deployment is done, open your list and check whether the Workflows & Forms have been successfully published!!

Give it a shot and let me know if you have any questions!


Speaking at InspireX, Las Vegas, Feb 22-24, 2016

InspireX has been finally announced and I’m super excited to be part of it and even to be selected to speak there!


So, What is InspireX?
InspireX is a great chance to connect, interact and learn from a community of Nintex and Drawloop customers, partners and employees to help you solve workflow challenges, and maximize the value of your solutions. It’s also a chance for you to hear inspiring keynotes from Nintex CEO John Burton and renowned futurist Mike Walsh.

And what are you speaking about?
Well, I was so lucky to have my both submissions accepted, here is a little bit of information on them:

Application Lifecycle Management for Nintex Solutions
Monday, February 22, 2016 – 1-2:30 pm
Are you facing difficulties deploying Nintex solutions between your different environments—Dev, Test, Staging and Production? Over several demos, we’ll help you extend the Application Lifecycle Management (ALM) techniques for SharePoint to support and deploy Nintex solutions – including the process to create Custom Actions in C#. We’ll also cover how to get started with automating the build and packaging of Nintex workflow and forms along with your SharePoint artifacts in WSPs, deploying the resulting packages to Virtual Testing labs, then automatically running automated tests against the solutions.

Getting the Most Out of the Nintex Repeating Section
Monday, February 22, 2016 – 3-4:30 pm
Repeating sections are very cool and powerful if you want to create 1: many relationships within your Nintex forms. However, they come with some difficulties when parsing, using and displaying the records stored within them. This session introduces you to best practices for using the Repeating Section Control and introduces you to powerful and easy-touse third-party solutions that were created by the Nintex community to enrich and simplify working with them.

Do you have a Conference Agenda?

Monday, February 22, 2016
 1:00 PM – 5:00 PM
Pre-Conference Workshop: Nintex Workflow Platform Jumpstart
5:00 PM – 7:00 PM
Welcome Reception
Tuesday, February 23, 2016
 9:00 AM – 10:30 AM
Welcome and Nintex Keynote
10:30 AM – 6:00 PM
Sessions, lunch and breaks
Wednesday, February 24, 2016
 9:00 AM – 10:00 AM
Guest Keynote
10:00 AM – 5:15 PM
Sessions, lunch, breaks
6:30 PM – 10:00 PM
Attendee Party
How can I register?
Just click here
Download detailed session information and agenda here.

Office 365 Developer Podcast: Episode on ALM with Office 365 Development

In episode 31 of the Office 365 Developer Podcast, Jeremy Thake (Senior Product Manager @ Microsoft) speaks to Vesa Juvonen about Application Lifecycle Management (ALM) with Office 365 Development. Vesa shares what they have been doing with the Office 365 Patterns & Practices initiative with regard to ALM as well as what his core customers that he works with are doing. He also talks about different options for dev/test/prod environments for Office 365 too.

Download podcast from here.

Also, a couple of my ALM posts that I posted last year along with other extremely helpful posts have been featured in the post. For ALM enthusiasts, I would highly recommend listening to the podcast and checking its featured posts.


[Arabic Video] Continuous Deployment & Automated Testing Workflows for SharePoint & Office 365 Apps


Today’s video has been recorded from SharePoint Saturday Gulf 2014. What’s different about this session is that it’s all demos, few slides then a long demo that explains & shows the different aspects for managing the Lifecycle of SharePoint & Office 365 apps. This includes but not limited to Continuous integration, Continuous deployment, Automated Testing, Manual Testing, etc…

Please note that this video is in Arabic, to watch the English version, please check my session at SP24 Conference from here.

Curation: Application Lifecycle Management for SharePoint & Office 365 Apps

During the past few years, I’ve been promoting, writing, speaking about and explaining the Application Lifecycle Management practices for SharePoint and Office 365 . During those years, I’ve created a lot of content that is unfortunately scattered all over the internet. Today, I’ve published a Curation that provides the best articles, presentations, videos and tools about this topic.


Hope this helps!

[SP24 Conference] Automated Build-Deploy-Test Workflows for SharePoint 2013 & Office 365 Using VS2013 – Slides & Video Recording

I’m glad to announce that the slide-deck & video recording for my session at SP24 Conference are now available.

For watching my session recording, click here.
For viewing the slides, click here.
For the other sessions, click here.

Speaking at SharePoint Saturday Gulf on April 12th

Title: Application Lifecycle Management in SharePoint 2013 & Office 365
Description: There are several methods to customize SharePoint. Developers have the option of creating new cloud applications for SharePoint or maintaining legacy full trust code. Coupled with the complexity many organizations have in terms of managing SharePoint customizations across Office 365 and on-premises implementations, developers and solution architects will need to understand how to adjust application lifecycle management (ALM) techniques to support and deploy quality solutions. This series of blog posts will focus on the establishment of development, testing and deployment best practices for on-prem and cloud applications and solutions. This will also include concepts such as continuous integration & automated testing.
Language: Arabic
Level: 400
Date: April 12th
Time: 12:00 PM (GMT+4)

Register for SPS Gulf from here

Meet SP24 Conference Speakers!

I’m so excited about SP24 Online Conference and I very much appreciate the efforts behind it. During the past two weeks, the team behind SP24 has been publishing some short videos to introduce the conference speakers and sessions. Click on the image below to watch the videos and choose the sessions that you’re most interested in attending.

As you might know, I’ll also be speaking at the conference. Below my session details:

Title: Automated Build-Deploy-Test Workflows for SharePoint 2013 & Office 365 Apps

: With the introduction of SharePoint 2013, there are different methods to customize SharePoint. Developers have the option of creating new cloud applications for SharePoint or maintaining legacy full trust code. Coupled with the complexity many organizations have in terms of managing SharePoint customizations across Office 365 and on-premises implementations, developers and solution architects will need to understand how to adjust application Lifecycle Management (ALM) techniques to support and deploy quality solutions.
In Visual Studio 2013, you can create a build-deploy-test workflow to deploy and test your SharePoint apps & solutions when you run a build. Over several demos, we will cover how to get started with automating the build, deploying the resulting packages to SharePoint Virtual Testing labs using PowerShell, then automatically running automated tests against the SharePoint Applications & Solutions.

Click on one of the pictures below to watch my introductory video.

Automated Testing Challenges for SharePoint Apps – Assigning the Latest Build to the Current Test Plan!

During my SharePoint Conference session (SPC273 : Application lifecycle management in Office and SharePoint), I showed the audience how simple it’s to automate the process of building, packaging & deploying SharePoint apps by creating very basic Team Foundation Server Build Definitions. I’ve also quickly touched upon two challenges that architects and developers usually face when trying to add Automated Build Verification Tests (BVT) to the process & hence reaching a fully automated continuous deployment process.

The two challenges are:

I’ve explained the first challenge along with a trick that you can use to eliminate the manual step needed in this post. Today, I’m going to explain the second challenge and show you how to handle it.

The Challenge:

If you are using Microsoft Test Manager for testing, the “build in use” field within the Test Plan should be updated to use the specific build that your testers are going to test.

There are two main reasons for this:

  • As you proceed with testing, you might find bugs. Those bugs should be logged against a specific build for traceability & reporting reasons. For more info, please check this article.
  • Before automated tests are executed, Microsoft Team Foundation Server copies the Test Automation assemblies from the drop folder of the assigned Build to the remote testing environment where test cases would be executed. I’ve written a post and recorded a quick video last year to show how and where those DLLs are copied, you can check them out from here.

Unfortunately, There is no option out-of-the-box to automatically update the “Build in use” field to use the latest build. This means that after the SharePoint App is built, packaged, deployed & trusted, you still need to pause the testing efforts, go to Microsoft Test Manager and update this field manually to use the latest build. In case you want to add Automated Build Verification Tests (BVT) to your build definition, you will need to find a way to automate this task and that’s exactly what we are aiming for; a fully automated continuous deployment and quality assurance process.

The Trick:

The trick is simple:

  • Create a console application that uses Team Foundation Server API to retrieve the latest successful build and then assign it to the current test plan.
  • Call the console app from within your build definition (After the app is built, packaged, deployed and trusted and before test cases are executed).

Now I have a few questions to answer:

  • How can I create the console application?
    Here is some code that you can use. The code is self explanatory.
  • Where should I deploy it?
    I usually copy the output .exe to my testing environment. You can copy it anywhere, just keep in mind that it should be executed on a machine with ‘at least’ Visual Studio Team Explorer is installed.
  • How can I call it from the build definition?
    There are different options. The one I use is as follows:
    • Create a build definition based on the “Lab Default Build Process Template”
    • Copy the .exe to the testing environment.
    • Call the Console Application after the app deployment (and trust) take place and just before test cases are executed.

Once the console application is called, the “Build in use” field is updated, the latest & correct Test Automation assemblies are copied to the remote testing environment, the test cases are executed on the latest build, and the results are published and reported against it.

Here is an example for what you can get once a developer checks-in some code to the source control repository:


See it in action:

To complement my #SPC14 session, I’ve recorded a 25-min video to show how to create a fully automated continuous deployment process for SharePoint Apps (Build – Deploy – Trust – Test – Report). The two challenges are handled in the video, you can watch it from here.

[SPC14] Application Lifecycle Management in Office & SharePoint – Slides, Recording & a Complementary Video!

I’m extremely happy to announce that my session (#SPC273) from the SharePoint Conference 2014 (#SPC14) on “Application Lifecycle Management in Office and SharePoint” is now available on Channel 9. This means that now you can view the slide-deck, download it or download the full session recording.

To complement my SPC14 session, I’ve recorded a 25-min video to show how to create a fully automated continuous deployment process for SharePoint Apps (Build – Deploy – Trust – Test – Report). I’ve quickly explained the theory in the session but I didn’t have time to show the full process, so I highly recommend that you watch the session first before watching the complementary video.


Note : You might also want to check this blog post (Automated Testing Challenges for SharePoint Apps – Trusting the app!) for additional details about the App Trust workaround!