Alexander Vanwynsberghe

"There is nothing impossible to him who will try"

Install Project Server 2013 with PowerShell

Last week, I was working on my demo environment to be used for some future presentations. When I was looking around on the great MSDN world to get some best practices related to a Project Server 2013 Preview installation, I came across a link called: “Install Project Server 2013 with Powershell” by Jime Cox. That sounds really cool, although is easy to memorize the steps to install Project Server through Central Admin after you have done it a few times, it’s more fun to automate this process and adjust it to your own needs. And that’s where the PowerShell part is rocking!

In this post, I want to provide my experience about the installation of Project Server 2013 Preview using the PowerShell script.

First thing you have to do is to perform the installation of Project Server 2013 on a SharePoint 2013 server. You have to perform this step on each application server of your SharePoint farm. You can download Project Server 2013 preview from this link. Once the download has completed, run the setup. First thing you have to do is provide your key (which is available from the link):

Next step is to click ‘Install Now’. This will start the actual installation.

When the installation is ready, it will ask to ‘Run the SharePoint Products Configuration Wizard’. Leave the check box active, and click ‘Close‘.

On the SharePoint Products Configuration Wizard, follow the steps of the wizard, and use the default settings:

Connect to your existing SharePoint Farm, and continue the configuration:

Ok, now that we have installed Project Server 2013. It’s time to ‘activate’ and ‘configure’ it. We will use PowerShell to help us with this task. You can download the script from this link. This is how the script is constructed:

Personally, I really love PowerShell when you execute it with the PowerShell ISE (Integrated Scripting Environment). This way, you can debug and re-factor your scripts very quickly. First part of the script is required if you run the script directly from the PowerShell ISE. What it does is loading the required SharePoint functions into your PowerShell session. If you run the script directly from the SharePoint PowerShell command line tool, you don’t need to do this.

NOTE: You need to execute the scripts with your Farm Admin account. This way, you will never get permission errors!

Next part is the definition of the variables. They contain the URL’s, accounts, your SQL server,..

Next part checks of the SharePoint 2013 timer service is running. If not, it starts this service

In this next part, the Project Server Application Service is checked. If you did not install Project Server on your SharePoint Application server(s), this should result in an error. If the Service Instance is not online yet, the script will try to start it.

Now the fun part. In this step, we will create an Application Pool and a Web App. The FarmAdmin account is used as Application Pool Account. The second part of this piece will create a web application, using the application pool we’ve just create. It will also create a Content Database.

Now we will create the Project Service Application. It will use the Project Application Pool from the last step.

Next step is to create the actual Project Server Database. Note that in Project Server 2013, there is only one database, related to Project Server 2010 who has multiple databases.

In this step, we will create a new Site Collection for PWA, and enable the Project Web App site collection features

To create a Project Web App in an existing site collection, you run the  Windows PowerShell cmdlet to create the web and then run the Upgrade-SPProjectWebInstance to perform post-provisioning actions, including creating a Business Intelligence Center.

When you executed all those steps, you should have your PWA up and running.

Have fun!

Windows Azure auto-provisioned apps for SharePoint 2013

I suppose you all heard about the “App” concept in SharePoint 2013? If not, you have a nice overview about this new concept on msdn. An app for SharePoint is a great way to surface a remote web application in SharePoint. In this post, I want to tell you a little bit more about Windows Azure auto-provisioned apps for SharePoint 2013.

Imagine this: Wouldn’t it be cool if you can deploy whatever custom web application with whatever server-code behind it, directly to your Office 365 instance? Well, using the Windows Azure auto-provisioned apps you can. First question you can ask yourself, what’s Windows Azure doing in this story and how does it link to your Office 365? Well, to get this working internally each Office 365 gets automatically an Azure account associated. That’s nice, and really powerful. Because you now have both Azure and Office 365 together, you don’t have any reasons or whatever to stick with your on-premise installation.

An auto-provisioned app contains at least one Windows Azure Web Site that can be launched from a SharePoint 2013 Preview host web, and may also include SharePoint components on an app web and a SQL Server database (based on SSDT and .dacpac packages).

Let’s take a look what the development and deployment process looks like:

  1. The developer builds a SharePoint application into in .APP file
  2. Deploy to SharePoint
  3. SharePoint installs the application for you
  4. SharePoint provisions all Azure components
  5. SharePoint provisions the SQL Azure database and initializes everything included in the .dacpac (Data-tier Application Component Package)

So in general, you create an application, publish it to SharePoint, and SharePoint will do everything for you. So creating an Azure Website, manage your database on SQL Azure and initialize everything.

Let’s try it out. First you have to create a new SharePoint project in Visual Studio 2012. Open Visual Studio and click ‘File –  New Project‘. In the ‘new project‘ window, select ‘Visual C# – Office/SharePoint – Apps‘ and select the ‘App for SharePoint 2013‘ template. Give your project a name and click ‘Ok

Note: If you have never created a SharePoint/Office 2013 app before, you will not find the Project Template in Visual Studio 2012. You need to install the Microsoft Office Developer Tools for Visual Studio 2012. You can download this here. It will start WebMatrix and download all the required components you need.

On the next screen, enter the name of the application, and the URL of your development site. I used my SharePoint Online subscription for this. Be sure to use a ‘Development Site‘, otherwise you will get an error when you try to test your application. (been there, done that!). If you don’t have a development site, create a new one and use the ‘Development’ template when creating. That will do the trick. Ok, in the current window, also be sure to select  and choose “Autohosted”.

When you click ‘Finish’, your project will be created. Basically, it will create a solution with 2 projects. The first project contains an AppManifest file, and the second project is a simple ASP.NET application.

The AppManiFest file is the definition of your SharePoint application. It contains a title, a name, which (tile) icon it uses, what the start page is, which permission requests it need to run (for example accessing  User Profile information),… The ASP.NET application itself is really basic, but one thing to notice is the file ‘TokenHelper.cs‘. This is a file who is responsible for the OAuth 2.0 authentication of your application with SharePoint. This helper class is used in Default.aspx. It includes sample code about how to handle OAuth 2.0 authentication and how to perform callbacks to SharePoint using CSOM.

In this example, we won’t change anything and just continue and get our application up and running. All you have to do is click on ‘Debug‘, or just press ‘F5‘.

In the output console of Visual Studio, you will see that the SharePoint application will be uploaded to SharePoint, and that SharePoint will do the necessary things to install it. Note that your App is NOT provisioned on Azure yet. If the installation was successful, your browser will be opened and will ask you to do a login and it will now ask you: “Do you trust your application”? Click ‘Trust it

You will now have your application listed as an item in the ‘Site Contents‘.  Click on your application and you will get a certificate error. If you look good to the URL of your application you will see ‘http://localhost:xxxx’. What SharePoint did was an installation, and during the installation, the application URL was set to your localhost environment. Indeed, if you look on that taskbar of your machine, Visual Studio started an IISExpress with the same port as the one SharePoint redirects you to. Just ignore the certification error and continue.

What you see now is not quite much. What this example basically does is using the ‘SPHostUrl‘ parameter that is added to the URL when SharePoint opens your application. Using this parameter, the application will get an access token (using OAuth 2.0) and use this token to get a client context object. This object can load the title of the SharePoint site you’re using. Because your app is hosted locally using IISExpress, you can easily debug it.

Ok, let’s assume that our application is ready to be deployed. We can use Visual Studio to deploy our application. Right-click on your project containing the AppManifest file and select ‘Deploy‘. It will now execute the same process as before (as you can see in the Visual Studio Output window). When your application is installed, trust it, and click on the Application icon to open it.

As you can see now, the URL is not on localhost anymore, but it got a unique o365apps.net URL. So our application has been deployed to Windows Azure, awesome!

Of course, we’re still in development. But let’s say that everything is good, tests are written and the application is ready to go live, how can you do this? Well, we first need to create an ‘APP’ package of our application. In Visual Studio, right-click on your project containing the AppManifest file and select ‘Publish‘. You will get this dialog:

Click finish, and the output folder of your .APP file should open. In fact, an APP file is nothing more that a zip file (you can open it with 7Zip for example), containing all your artifacts. A bit like the WSP files.

Ok, so we have our APP file. Now we should ‘upload‘ it to our SharePoint farm, and make it possible for users to select this application on their site. The place where App’s can be managed is called the “App Catalog“. This app catalog is a separate Site Collection, and can be created using the SharePoint Administration Center. There you can click on ‘Apps – App Catalog‘. If you haven’t created one yet, it will create one for your, and otherwise, you will be redirected to the App Catalog itself.

Adding an App to the catalog is really simple. On your App Catalog site, click on ‘Apps for SharePoint‘ (on the left side). You will see an overview of all installed apps, including an indication of the licenses you still have available. To add your App, click ‘New Item

It will open a new dialog where you can select your .App file and give it a version comment. Click ‘OK‘ to continue. The next dialog gives you an overview of everything related to your application. Complete this as you want, and click ‘Save

Now you have your new Application available in the App Catalog. To use it, just go to a site where you want to use the application. On this site, go to ‘Site Contents‘ on the left side, and click on ‘Add an App‘. Look what you see there, the application we’ve just uploaded:

Click the App, trust it, and your application will be provisioned by SharePoint. When this process is ready, your application is installed on your site, and you’re ready to use it. Click on the App, and you should see:

The text displayed is the name of my site, which is ‘Ideation’, and you also see a unique ID in the URL = a unique Windows Azure website. (Note the ‘Website’ part of the name).

So that’s it. We have our SharePoint app up and running on Windows Azure. Great! One thing that’s really important to know: each ‘installation’ of our App will provision a new Windows Azure Website. So this will be a part of your billing/account, don’t forget that.

To finish this post, I’ll give you 2 reasons to use this approach:

  1. When you deploy an autohosted app for SharePoint, all Windows Azure and SQL Azure components are provisioned for you when the app for SharePoint is installed.
  2. The Windows Azure Web Sites infrastructure handles load balancing, multi-tenancy, and other important maintenance tasks for you.

Thanks for reading!

Basic ideation with SharePoint and Project Online

One of the exciting things I saw in the “Get Started with Project Online” video of Christophe Fiessinger was the possibility to use a custom ideation list to capture ideas and ‘convert’ this into a project in Project Online. Managing your companies innovation and ideation solutions with SharePoint and Project Online/Server is really an interesting approach. Both products are well-proven and it can give your company a boost to get the most creative ideas out of your employees. In this post, I will show you how to get started and how to create/design a custom list to capture ideas.

1. Create a SharePoint site

First step is to create a SharePoint site. This will be your ‘community’ site, where ideas will be gathered. One thing to note is that the site needs to be a ‘subsite’ of your PWA (Project Web Access). (see additional information at the bottom of this post) To create a new site, go to the Projects section of Office 365. On the left side, click ‘Site Contents’ and then the ‘new subsite‘ button.

On this new screen, provide a title of your subsite, add a description and the URL. Notice that the URL is a child of your PWA (and that’s what we need for our integration later on). As the template of my site, I used a ‘Community site‘, just because I like the way you can use it for discussions etc. But you can select whatever template you want.

When your site has been created, your browser will automatically redirect you to this new site. You will see a new, empty site based on the template that you selected. In my case, it looks like this:

What you can do now is customize your site, make it attractive, change the colors, do whatever you want (although it looks quite sexy already with the out-of-the-box template).

2. Create an ideation list

What we want to do now is create a new ‘Custom list‘ to capture our ideas. On the left side, click on ‘Site Contents’. This will now list you all ‘apps’ that are available on your site. Click on the ‘Add an item‘ button, and select ‘Custom List‘. Enter a new, and click ‘Create‘:

The list has now been created, time to add some ‘columns‘ where our users can add ideas. Basically, we just want a title field, a description field and a date field where users can add a date of when the idea could possibly be integrated. On your list-page, click the ‘Edit‘ link. You’re now working in the SharePoint editing mode. What you can do is adding columns by clicking on the ‘plus‘ sign. This will give you the option to create a new column based on a the type of information that you want to enter:

3. Rating

Now we have a list with some columns. Off course, we need a way to get our ‘best’ ideas. The easiest way to get the top ideas is by using a voting mechanism. We will let users vote for the best ideas. We will not take voting limits into consideration, and will not use any other advanced techniques, just simple voting.

By default, SharePoint has this possibility built-in. We only have to ‘activate’ this in our custom list. To do this, click on the ‘List‘ item in the ribbon. There you have an option ‘List Settings‘ on the right side.

In the ‘General Settings‘ of your list, you have the option ‘Rating Settings‘. Click this link to show the current Rating Settings. We want to enable Rating, so just select ‘Allow items to be rated?: Yes’.  We will also use ‘Star Ratings‘ because it looks nice.

What this will do is automatically add a column to our custom list. Now let’s add an entry in our list, give it a title, a description, a date and give it a rating. It should look like this:

4. Create a project

Now we have the interesting part: ‘upgrading‘ an idea to a Project in Project Online. Assuming that you are still editing the custom list, click on ‘Stop‘ editing this list. Now you have your list with your one idea. Select this idea by clicking on the first column. This will mark your idea as ‘selected’.

When you click on the ‘Items‘ ribbon item on top, you will see all the possible actions that you can perform on your selected item. And look what we see there: an option to ‘Create Projects‘.

You will now see a dialog with 2 options: The field mappings and the Enterprise Project Type. In the field mappings, you can easily map your list ‘column’ with a ‘Project Web App Field’. Like our title is equal to the Project name, the description equals the Project Description and so on. Do this form each column. Because we’re using a really basic custom list, we can map everything to the ‘standard‘ fields from the Project Web App. But off course, it’s also possible to create Enterprise Custom Fields in PWA, and those fields will automatically become available in this dialog.

The second part of the dialog is where you can select which Enterprise Project Type you want to use. You can select (by default) either an Enterprise Project, or use a SharePoint task list. I’ve already made a comparison between the two in a previous post.

All you have to do now is click on ‘Create Project’. This will do all the necessary things in the background. In my case, it will automatically create a new Enterprise Project containing the mapped information (like the title and description). It will also create a SharePoint Project site. Once everything is setup, you will get the following message:

 Great, so my project has been created. Let’s take a look at it. Go back to the PWA Project Center, and you should see your idea in the list of Projects:

Now to be sure that my field mappings were correct, click on the Project Name. On the left side, click on ‘Project Details‘. There you have a basic overview of your Project information. As you can see, everything is mapped correctly. My title, description, date,.. everything is perfectly mapped. Perfect!

Well, that’s it for today. We’ve created a subsite, added a custom SharePoint list, enabled rating and created a project from an idea. That’s an extremely simplified scenario, but it shows you how easy it is to use the built-in component and capture ideas from your employees. Further extensions could be using Infopath forms, adding some kind of a workflow, treat your ideas in different stages/phases, use collaborative intelligence,… Use your creativity!

Thanks for reading.

A note from John Thoni, part of the engineering team: “One thing to note is that the site needs to be a ‘subsite’ of your PWA (Project Web Access).” This is not entirely correct. The list from which you want to promote items to projects can exist anywhere in the Site Collection where the Project Server Service is enabled. If your PWA, http://myserver/pwa, is not also the Site Collection root, but rather the root ishttp://myserver, then the list could be in the parent, sibling or subweb of PWA (or even PWA itself).

Connecting SharePoint 2013 to TFS 2012 RC

The actual goal of my previous post  was the installation of SharePoint (Foundation) 2013 to be connected with TFS 2012 RC. By default, TFS 2012 RC ships with SharePoint Foundation 2010, but I wanted to use the newest 2013 version of SharePoint.

The installation of TFS 2012 on my Windows Server 2012 was quite straight forward, no special things, no errors, just great! I used the “Advanced” option so I could select my SSRS and SSAS instances, and also select my SharePoint instance. All 3 of them were automatically recognized by the TFS installation wizard, which is really a great experience! Well done Microsoft!

After the installation it was time to create a new Team Project using Visual Studio 2012 RC. I followed the creation wizard, but then I had a strange error when the Team Project was being created:

Exception Message: TF249033: The site template is not available for the locale identifier (LCID). The site template name is: Team Foundation Server Project Portal. The LCID is: 1033.

Hmm that’s strange. The template is not available for the locale ID. But I did an installation of  Windows Server, SQL Server, SharePoint, in English (that’s what the 1033 means). That’s the point that I posted an issue on the MSDN forum, and there I got this answer from Kelly McBride from the TFS Team:

TFS RC Dashboards do not support latest mode site collections. For the RC dashboards, please use a legacy (2010) mode site collection. RTM Dashboards will support latest mode site collections.

And indeed, that solved the issue. SharePoint 2013 has the possibility to select in which ‘mode’ your Site Collection has to run in. As for now, until TFS 2012 RTM is there, we need to have a 2010-version of our Site Collection. To resolve the error, I performed those steps:

First step is to delete your ‘old’ site collection. Go to your SharePoint Central Administration and click on ‘Delete Site Collection’:

Select your site collection. This is the one that has been created by TFS (when your Team Project Collection was created). And click ‘Delete

After you Site Collection has been deleted, create a new one with the same name. Otherwise you have to change the SharePoint site settings in the TFS Administration console to point to this new Site Collection. In my case, I just used the same name. To create a new one, go back to the Application Management section, and select ‘Create Site Collections’. Provide a title, description and an address. The most important thing is the ‘experience version‘. You have to select 2010 instead of 2013. If you select 2010, you will see the option to select the TFS Project Portal template. And that’s what we are looking for. Don’t forget to select the collection administrator too.

Click on the ‘OK‘ button, and your Site Collection should be created. Now let’s create a new Team Project again, et voila, no error this time. SharePoint 2013 is succesfully connected to TFS 2012 RC.

Thanks for reading!

SharePoint Foundation 2013 installation error

Yesterday, I decided to try out SharePoint Foundation 2013 on a fresh Windows Server 2012. I decided to install SharePoint Foundation in a standalone mode. This is the installation process I followed:

First start the SharePoint Foundation installation wizard. There you select ”Install software prerequisites”. During this process, be sure that you have an internet connection, because it will download all dependencies during the installation process of the prerequisites. Your machine will reboot twice (in my case), so just to let you know that your machine must be able to perform a reboot.

Next step is to click on “Install SharePoint Foundation“. In my case, I didn’t reboot yet, so I got this warning:

But once I’ve rebooted, everything went fine. First step in the installation is to select the installation mode. In my case, this was Stand-alone:

After completing the installation, the “SharePoint Products Configuration Wizard” starts. Because it’s a stand-alone mode, it will not ask my any questions, and it will start configuring my SharePoint instance.

On thing that I noticed was the fact that Step 2 took really long, but my system was not really doing anything special. Until I got this error after a while:

Failed to connect to the configuration database.
An exception of type System.Management.Automation.CmdletInvocationException was thrown. Additional exception information: ErrorCode<NonDomainNWService>:SubStatus<ES0001>:Service running under Network Service account in workgroup environment is not supported.

Looks like when you perform a stand-alone installation, and your service is running with the Network Service Account on a machine not connected to Active Directory, the configuration database could not be created. Bummer!

The solution to this can be found on this technet link. It’s quite simple (once you know it). Open your commandline prompt and navigate to “C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\BIN”

There you execute the command:

psconfig.exe -cmd Configdb create SkipRegisterAsDistributedCacheHost

This will now create your configuration database, and skipping the error that the GUI gave us. So, one step further, the configuration database has been created. What you can do now is re-run the configuration wizard to continue the rest of the configuration steps. But now, you will see another error:

As Neil Sly described in his post on technet:

This was an issue when installing SP2010 Beta, specifically when trying to create search service where this same error crept up, then the solution was essentially to script the installation of search.

Despite psconfig failing I decided to try Central Admin – which loaded without issue.   Checking service apps I can see “error” next to Search – so again, the issue crops up in this beta.

And indeed, if you open the SharePoint Central Administration window, you see your brand new SharePoint Foundation 2013 instance.

When you look at the “Service Applications“, you will indeed see that there is an error in the Search SA:

That’s all, enjoy your SharePoint 2013 Foundation.

Getting started with Project Online, the power of Project Server 2013 on Office 365

Yesterday, as many of you will already know, Microsoft revealed some nice upcoming stuff like Office 2013, SharePoint 2013, Project Server 2013, Office 365 Preview (including all the new products I just mentioned). One particular thing I was really interested in was Project Server 2013. Lately, I did a lot of experimental work and did some research on Project Server 2010 and particularly the integration ALM and EPM. Therefore, Project Server 2013 is also in my ‘focus’ area right know.

That being said, I was really excited when I saw the new Project Server 2013. I was even more excited when I heard the news about Project Online . As Microsoft describes on their site, they position Project Online as:

”The flexible solution for project portfolio management (PPM) and everyday work, delivered through Office 365″

In fact, Project Online is a full blown Project Server 2013 as you can use on-premise, combined with the power and easiness of the Cloud aka Office 365. So no setup, no SharePoint installation (problems) etc.

What I want to show in this post is how to get started and get your first project up and running.

1. Create your account

First thing you have to do is create your account for Project Online. You can visit this link. You will see a new screen where you can enter your personal information. One thing to notice is that you have an overview of ‘what‘ you will get, on the right side of the screen (you also have other preview programs that you can subscribe)

Once your registration is completed, you will receive an email with some guidance. To start, you can point your browser to “https://portal.microsoftonline.com/admin/default.aspx” and sign in with your credentials (name@domain.onmicrosoft.com). You will now be redirected to the administration page of your subscription.

On this area, you can perform any administrative action that you want. This can be creating users, change service settings, change some options,.. But the most important area is the one on the top-right. That’s the place to be for now.

2. Start with Project Online

If you click on the little arrow next to ‘Admin’, you will see the parts where you can perform the administration. By default, we are now on the ‘Office 365 Preview’ administration part. In the blue part, you have the ‘options/products’ available for your subscription. Let’s click on ‘Projects‘ to open our Project Online.

What you see now is the ‘start‘ page of Project Online. Comparing to Project Server 2010, this is definitely way more attractive. The central space is split in two parts, on top some interesting links to get started, and on the bottom some tiles. There you can see for example your tasks, your pending approvals and some quick access tiles.

On the left side, you have your menu, as you also had in Project Server 2010. This first thing I noticed is the small number of menu items. Project Server 2010 has a more than a dozen by default. But as you can see, there is a button/link called ‘EDIT LINKS‘. Use this menu you can easily modify the menu items on the left. One thing that is important for me (as an administrator), a direct access link to the ‘Server Settings‘ and (as a project manager) the Project Portfolio option. So I selected those items to be set by default:

3. Create a new project by using a SharePoint 2013 site

Now that we are all set, let’s create a new Project. On the ‘Home’ of Project Online, click on the green tile with the label “Create or import project“. You will now see a new popup window asking you for a name of your new project. One thing that you really have to know is that creating a Project using this way, will NOT create an enterprise project. What it will actually do is create a SharePoint site with a task list, and show this in your project list. Let’s illustrate this. I created a new project called ‘My great project’:

When you click on the ‘Create‘ button, it will create a SharePoint site linked to PWA (you can see this in the URL). This SharePoint 2013 site will contain a ‘Task List‘, and this task list will be used for tracking the progress of your project. When the Project is created, Project Online will automatically show the SharePoint site with the possibility to add tasks. On the left side, you also have some other options like adding risks, adding notes (using the OneNote web application, which is really awesome btw!). This is how it looks like:

People using Project Server 2010 will know this type as the regular ‘Project Site’. Only, there is no actual ‘Enterprise project’ now. When you go back to the Project Online place (by clicking on ‘Projects’ on top of the page), and then click on ‘Projects‘ on the left side, you will see the Project Center. As you will notice, you project will be available there. If you click on on the project name (as a link), it will open your brand new SharePoint 2013 Project Site where you can add your tasks.

One thing that you might have noticed is that it’s also possible to import existing SharePoint sites to be used for Project Creation. You can see this on the bottom of the dialog when you click on the green tile ‘Create or import project’. Really nice!

4. Create a new project by using an Enterprise Project Type

Another option to create a new Project is by using an Enterprise Project Type like you know in Project Server 2010. You can create your own EPT’s, modify it, add a workflow, add Project Detail Pages, … You can change and manage everything related to Enterprise Project Types in the ‘Server Settings’ section of your Project Online admin panel.

To create a new project based on your EPT, go to the project center (click on the left side ‘Projects’). In your project center, click on the ‘Project Ribbon’ on top of the page, and click on the ‘New’ button. There you will see the possible options to create a Project based on an EPT.

By default, you have 2 options:

1. Enterprise Project: This is actually based on an Enterprise Project Type. By default, there is no workflow attached to it. It’s just a basic starting point.

2. SharePoint Task List: This is the option that I just described. If you create a project by using the link on the Dashboard, it will use this option.

Let’s create a new Enterprise Project by clicking on ‘Enterprise Project‘.

You will see that by default, you have ‘more’ fields to complete that our basis project we just created (well, just Description field, but hey, you can customize the Project Detail Page). On the top left, click on ‘Save’.

As you can see, comparing with the previous project, it’s not opening a SharePoint Project Site, but it uses the Project Web App instead. There you can do everything with your project that you want, and that you used to do with Project Server 2010 PWA. Note that there is also a Project Site available (on the left side). When you open this, it will look quite similar as the previous one. Except there is one extra link on the menu bar: Project Details. When you click that link you return the Project Web App where all information related to your project is stored (split into several Customizable Project Detail Pages).

5. Conclusion

Now you have an overview of how to get started with Project Online and how to create your first project. I showed you the difference between a SharePoint Project site and an Enterprise Project and how you can create both of them.

Have fun! I’m really excited with this new release! Great job Microsoft!

Thanks for reading,
Alexander

Creating a web performance test using Fiddler

As you all know (or should know), Fiddler is a really powerful web debugging proxy which logs all HTTP(S) traffic between your computer and the internet. Fiddler allows you to inspect traffic, set breakpoints, and “fiddle” with incoming or outgoing data.

Now one cool thing I didn’t know before is that you can export fiddler events to a Visual Studio Web Test. This is really easy, but I’ll show you how:

1. Download Fiddler2, install and run the application

2.Capture some traffic, for example open your web application, and perform some actions, in my example, I opened the nuget.org website.

3. Next step is to select the session steps that you want (or do not select any) and click ‘File – Export Sessions – All Sessions/Selected Sessions

3. In this new dialog, you select ‘Visual Studio Web Test

4. When you click next, you can choose where you want to save the web test file.

5. All you have to do know is either include the web test file in a test project from Visual Studio, or you can open it directly with Visual Studio. You’re now able to click ‘Run’ in the test window, and it should start the web test.

That’s it.. really easy!

Implementing Kanban with TFS: Under the hood

In a previous post, I talked about the Kanban 1.0 process template made by the ALM Rangers. It gives you some basic information, and it also describes how to install the process template and how to create a new Team Project based on this process template. In this post, I will talk a little bit more in detail about how this process template works. Let’s see how it looks like under the hood.

Work Item Types

Let’s start with the work item types you have when using the Kanban process template. The process template provides the following Work Item Types:

  1. Card: This is the unit of work that is tracked through your software development process. A Card represents value demand or failure demand on your team. You can specify a type of Card. By default the following Card types are provided, although you can customize the card types by changing the Kanban Card Types global list:
    • Work Task: This represents demand on your team for work that has value for your customer (value demand).
    • Team Task: This represents demand on your team for work that has intangible value. Typically these includes work such as setting test environments, re-factoring some code etc.
    • Problem: This represents demand on your team to rectify a problem (failure demand).
  2. Process Step: This Work Item Type is used to define information about the steps in your process. In particular this is where the WIP limits are defined for each step of your process.
  3. Blocker: Used to represent a problem that is blocking the progress of a Card. The Card work item has a tab where blockers can be listed.
  4. Bug: Used to track bugs.
  5. Shared Step: Used to define a reusable set of test steps.
  6. Test Case: Defines a test case.

Process

One thing which is really important when using Kanban is the easiness of changing your process. Your process will change over time! One of the requirements of the Kanban Process Template is that it has to be possible to easily change the steps of your process. Let’s take a look at the following image:

In general, you have 3 big states (in blue). A planned (backlog), In Progress and Complete (closed) state. The planned and complete states are the start and end states, and they have no queue associated with them. When you create a new ‘card’ work item, the starting state will always be the backlog. When the card moves to ‘In Progress’, you will have the option to select in which working state it’s in. And those states are customizable.

When you create a new Team Project based on the Kanban Process template, you have 4 ‘working states’. Analyze, Implement, Test and Review. Those states are defined by the ‘Process Step‘ work item. So by default, there are 4 process step work items. To manage the order of the steps in the flow (from left to right), you can use the ‘order‘ field from the work item type. The lower the number, the more left on the flow. By default, analyze is 10, implement is 20, test is 30,… On each process step work item, it’s also possible to provide the Work In Progress (WIP) limit. This number will be used for visualization on the Kanban Board. You can also provide some exit criteria (also known as -the definition of done-). For example:

Global List Synchronizer

When you add a process step to your Team Project, it has to become available to your cards. Meaning that it has to be possible to select the correct state on the card work item. The list of possible states that can be used on a card are stored in a global list on TFS. To synchronize this list whenever you change or add a process step, there is a background process called the Global List Synchronizer, who will synchronize the list of process steps used in the Card Work Item Type with the current list of Process Steps. As you add, change or remove Process Step work items, the list of valid process steps in the Card work items changes accordingly. It modifies the Card work item type definition so that each Team Project uses its own Global List to provide the list of process steps. In fact, you get something like this:

The Global List Synchronizer is something that has to be installed. Installation is really simple, just download the bits from CodePlex. Open the downloaded item, and unzip the file ‘Global List Updater Source Code.zip‘. Open the correct (TFS 2010 or TFS 2012) GlobalListUpdater solution (with either Visual Studio 2010 or 2012). Change the build configuration to ‘Release’ and build the application. In the output folder, you should now see the following files:

Next step is to install it on your Team Foundation Server. The installation process is quite simple.

  1. Log in to the Application Tier server.
  2. For Team Foundation Sever 2010: Copy the compiled assemblies (including the .config file) to <System Drive>:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Web Services\bin\Plugins.
  3. For Team Foundation Server 2012: Copy the compiled assemblies  (including the .config file) to <System Drive>:\Program Files\Microsoft Team Foundation Server 11.0\Application Tier\Web Services\bin\Plugins.
  4. If you have multiple Application Tiers, repeat step 1-3 for each of them.

After you copied the files to the plugin folder, TFS will detect this and will restart the application tier. This way, the plugin will be hooked to TFS and will be able to interact with TFS events (like work item changes). You can see this in the event log:

To test if the plugin is doing its work, open a process step work item (using Visual Studio, or the Web Access) and change the title of the item. Save the work item. Now create a new ‘card’ work item, save it in the ‘backlog state’, change it to ‘In Progress’ and see if you can select the modified process step. In my case, I changed the process step ‘ Implement’ to ‘Implement(test)’. You also can look at the event log on the TFS server, and you will see all output of the plugin listed there:

Ok great, so now you have an overview of how the process template is constructed, which work item types you have and how the Global List Synchronizer works. In a next post, I will show you a little bit more about how you can use the process template, how you can use the work item queries and how you can use reporting to view all information about your Kanban process.

Thanks for reading!

Implementing Kanban with TFS: Introduction

In this blogpost, I want to talk a little bit about how Team Foundation Server can help you to support your Kanban Process. We will use the Practical Kanban Guidance from the ALM Rangers, where I am also a part of the team. I will talk about the the process template requirements and how to get started.

First of all, really short: what is Kanban? Well, Kanban is a method to visualize the development work flow and the work in progress. Kanban has 5 principles:

    • Visualize the workflow
    • Limit WIP
    • Manage the flow of work
    • Make process policies explicit
    • Improve collaboratively

Using these aspects, you can highlight any bottlenecks in the development process. You have a visual overview of the things which are happening in your team, so you can guide it. Perhaps change the process, change the WIP limits, ..

Requirements

As you know, the way TFS supports your development process is defined by a process template. This is a collection of files that together define various process elements of a team project. There are a number of requirements that need to be satisfied to allow teams to get the most out of a Kanban-enabled process template for Team Foundation Server.

1. The process template should make it easy to modify the states in the process flow: Kanban is about continuous improvement. During the life of a project a team may wish to modify their flow, adding or removing states. Therefore the process template should make it easy to add and remove states in the process flow.

 2. The process template should allow Work In Progress limits to be represented and reported on: One of the few fundamental concepts in Kanban is to limit the amount of work in progress (WIP). This means that the process template should allow us to specify a WIP limit for each state in the lifecycle of a card.

3. The process template should allow each state in the process flow to have an In Progress and Done sub-state: The process template should allow for In Progress and Done sub-states and report on WIP limits across the two sub-states.

4. The process template should support arbitrary state transitions: Kanban is not a software development method and does not dictate anything about how a team should implement its process. Therefore a card should be allowed to be moved into any Kanban state from any other Kanban state.

5. The process template should support hosted Team Foundation Server instances: To give teams maximum flexibility, a Kanban-enabled process template should not require project collection administration rights to make changes such as the states in the process flow and WIP limits.

6. The process template should include a Cumulative Flow Diagram Report and a Kanban Board: It has to be easy to see when bottlenecks are occurring, in which state the cards are, what’s the cycle time,..

Microsoft Kanban 1.0

Based on those requirements, the ALM Rangers came up with a brand new process template called: Microsoft Kanban 1.0. This is a flexible process template allowing you to easily adapt your Kanban process on Team Foundation Server. You can download the process template here, including all documentation and guidance you need.

In a next  post, I will explain how the process template actually works and how you can use it.  But first, let’s take a look how you can install this process template. Once you have downloaded the bits (both Team Foundation Server 2010 and 2012 are supported), you need to upload it to Team Foundation Server, so that you can create a new Team Project based on that template.

1. Open Visual Studio (we will use 2012, but it’s quite similar on 2010), go to ‘Team Explorer’, click ‘Settings – Process Template Manager’, there you click ‘Upload’ and locate the folder with the process template. I will use ‘Microsoft Kanban 1.0 – dev11’, because I’m using TFS 2012.

2. After the upload is complete, you should now see ‘Microsoft Kanban 1.0’ in the list of process templates.

3. Now create a new Team Project using this process template. In Team Explorer, go to ‘Projects and My Teams -> New Team Project‘. Complete the wizard and select the Kanban process template:

4. That’s it. You have a Team Project based on the Microsoft Kanban 1.0 process template. If you open your Team Explorer, go to Work Items and you can start creating cards (based on the Card Work Item Type) and model your process (based on the Process Step Work Item Type).

More in-depth information about how to use the process template will follow in a next post. I will also talk about ‘the Global List Synchronizer’, who will be responsible for the synchronization of process steps.

If you have any valuable feedback, just leave a message or start a discussion on the codePlex forum.

Thanks!

TFS 2012 + Ant: Unable to access ant-launcher.jar

Today, I was was trying to create a build definition to run an Ant build from a Java project in Eclipse. First of all, I installed the brand new Team Explorer Everywhere for TFS 2012 RC (which looks really good!). Next step was to install the Build Extensions (to support Ant and Maven 2/3 builds). The installation went perfect, no problems at all.

Next step is to install Winant to support Ant builds on a Windows operating system. I also installed the Java SDK (including the JRE, otherwise you cannot run Eclipse). When all this was finished, I created my build definition like I normally do (I made a blog post about this a while ago).

Only.. there was a quite strange behavior when I queued my build. It only took 2 seconds. According to the build output, the Java project was successfully built, but the build was red. When I looked at the logs, I found this error:

Error: Unable to access jarfile C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions\apache-ant\lib\ant-launcher.jar

This is strange, but on the other hand correct because ant-launcher.jar doesn’t exist on that location.

Solution: When you install the Java SDK and Winant, it creates 2 environment variables. The thing is that it creates ‘User’ variables, and not ‘System’ variables. So what you have to do is create 2 system variables and append the bin paths to the ‘path’ system variable. In my case:

“ANT_HOME = C:\Program Files (x86)\WinAnt”

“JAVA_HOME = C:\Program Files\Java\jdk1.7.0_04”

“Path = …………………;JAVA_HOME%bin;ANT_HOME%bin;”

Next, restart you build service (to catch the new added system variables) and queue your build. As you can see: Issue solved :-)

Pages:1234