Alexander Vanwynsberghe

"There is nothing impossible to him who will try"

Awarded as MVP for Visual Studio ALM

Yesterday, I received my first Microsoft MVP (Most Valuable Professional) award for my contributions to the Visual Studio ALM community. I’m really happy and honored that I got this recognition. I enjoy working with the ALM community and I’m looking forward to what the future will bring. I promise to keep sharing everything I know and what I learn at customers! I hope my blog posts are useful and if you think there is anything I can improve or if you would like to see some particular topics on this blog, please just let me know! Read More

A single Project Site for both TFS and Project Server

I got a question from a friend of mine (Pieter Turcq) today, who asked me if it’s possible to use one single Project Site (in SharePoint) for both TFS and Project Server? Well, actually you can. In this post, I will show you what the requirements are and how you can easily achieve this. But first let me start with a brief ‘overview’ of how it looks like out of the box.

One of the nice things about Team Foundation Server is that it creates a SharePoint “Project Site or Portal” when you create a new Team Project. This is a place where you can add project documents, view some dashboards and whatever SharePoint magic you want to use. On the other hand, you have Project Server. In some cases, you can have a nice integration between both systems using the Team Foundation Server Extensions for Project Server. This way, you can manage the data flow between TFS and Project Server (but this is not the scope of this blog post). The thing is, if you create a new Project in Project Server, it also creates a Project Site. The total picture will look like this:

01Note that this is a situation where the Project Portals from TFS are hosted on another SharePoint environment as the Project Sites of Project Server. (If they are hosted on the same environment, it will of course use a different Site Collection, but you will have less work to get to the end solution. I’ll explain this a bit later). Now, how can we get one Project Site for both systems? We have 2 options: A quick-and-dirty solution, or a decent solution.

The quick-and-dirty solution

The first solution is really simple. What you do is pointing the Project Site from your TFS Team Project to the URL of your Project site of Project Server. You can do this using Visual Studio using Team Explorer. If you go to “Settings -> Portal Settings“. There you can set an option “Use a website“.

02

It will now redirect to your Project Server’s Project Site. That’s all. Nothing more, nothing less. It will have no interactivity with TFS or what-so-ever, you will not see the Project Site documents in your Visual Studio, you will not have any dashboards on your Project site,.. So this is not an option. Let’s move on.

The better solution

A better solution is to make it possible to let the Project Server’s Project Site behave like it would have been a “standard” TFS Project Portal.

If your are in the same situation like the one I’ve illustrated, you must install and configure the Team Foundation Server extensions for SharePoint Products on the remote portal. If not, you can skip this step, and no actions related to this need to be executed! This is a step that has to be executed for ALL SharePoint application servers. It contains the necessary Web Parts and some dashboards. You have some excellent guides for this, but it really is a straight forward process. Just make sure that you have the right permissions, and especially that the TFSService account that needs to a Farm Administrator.

Great, now our SharePoint instance who’s hosting the Project Server’s Project sites is able to do “TFS related” things. Next, assigning this SharePoint instance to TFS. Open the administration console and click on “SharePoint Web Applications -> Add

03

Note: It is import to know that when creating a new Team Project in TFS, we will NOT allow the wizard to create a Project Portal. Because if you don’t watch out, it will create one on your PWA instance directly. This is not the behavior that we want. We want Project Server to create Project site, and link our TFS Team Project to that site manually. So be careful!

Alright, so now that the SharePoint instance of Project Server is known by TFS, we can configure our Team Project to use an existing Project Site from Project Server. Open Visual Studio, go to Team Explorer and select “Settings -> Portal Settings”. Enter the correct settings:

04

In this example, I use the TailspinToys Project Site from Project Server, to be used as TFS Project Portal from TFS. Be sure to select the check box “Reports and dashboards refer to data for this team project“. Click Ok. If you now go back to Team Explorer and select the “Documents” node, you will see the content of the documents library from you Project Server’s Project site.

05

Mission accomplished.. or not? Well, it’s great to have the documents library available from your Project Site. But wouldn’t it be cool if you could also use this Project Site to add your TFS Dashboards, and some TFS Related Web Parts? Well, actually you can! If you open your project’s Project Site (in Project Server), and go to “Site Settings -> Site Features“. And activate the dashboard you need. In my case, it’s a TFS Team Project based on the Agile Process Template, so I selected “Agile Dashboard“. If you click activate, you will see some new items in the menu on the left side. That’s exactly what we need. This way, we can also change whatever we want, and we can even add the TFS specific Web Parts like a Work Item Query list.

06

That’s pretty cool! So there you have it, one single Project Site/Project portal for both TFS and Project Server. Have fun!

Note, when Project Server was not on the same SharePoint instance as TFS, and you followed the previous steps using the TFS Administration Console, and you don’t see the dashboards listed in the features list, be sure that it’s enabled in the Web Application of your PWA! You can check this using the “Central Administration -> Application Management -> Web Applications -> Web Application -> Manage Features“. It should be enabled by default, but you never know! Next to that, if you don’t see any web parts related to TFS, look at the Site Collection Features, and be sure that “Visual Studio Team Foundation Server Web Part Collection” is activated. That’s all!

07

MCSD Application Lifecycle Management, check!

Today, I took the last of the 3 exams to get my MCSD Application Lifecycle Management. Lets talk a little more about this MCSD (Microsoft Certified Solution Developer). Let me quote this:

Today’s software development organizations are looking for a more productive and predictable environment in which to produce tomorrow’s apps. (Check out this report from Gartner for insight into how agile and cloud technologies are driving adoption of application lifecycle management.) With Visual Studio 2012 ALM, organizations can break down team barriers and reduce cycle times to deliver continuous value. The MCSD: Application Lifecycle Management certification is for individuals who want the skills to manage the entire lifespan of application development, and build software with agility and quality.

SolDev_AppsLcMgmt_Blk

To get this certification, you need to pass the following 3 exams:

I passed all 3 of them in a first attempt, which was really great! Therefore I want to thank my employer RealDolmen, who gave me the chance to take the exams. In return, I give them the certificates in order to meet the ALM Gold Compentency. So that’s a win-win!

About the exams, well, in my opinion they have some shortcomings, especially the 70-498. It’s good that Microsoft finally took ALM it the certification program scope, but some questions that were listed in that exam were really confusing. Answers do really depend on the situation. There were also some questions having multiple correct answers, which makes it quite confusing. As from what I heard, I’m not the only one with the same mixed feelings about it. But ok, the exam will eventually require some rework, so maybe they can change/clarify some of the questions.

The other 2 exams were more focused on the technical part of either MTM 2012 or TFS 2012. As from what I can tell, there are some deep details that you need to know by using the tools. There were some tricky MTM 2012 questions, believe me! But they both test your knowledge, which is great of course!

If you need some tips or tricks, just give me a shout! Good luck to everyone with the exams!

Visual Studio 2012 Launch Event: Slides

A few days ago, my company (RealDolmen) organized an event related to the launch of Visual Studio and TFS 2012. It was a great success and we had a lot of attendees. The 2 rooms were really crowded, which was absolutely great! On the event, I had the chance to talk about two great topics:

  1. Getting your database development under control using the new SQL Server Database Tools (SSDT)
  2. Cross-platform development with TFS 2012

I had some good feedback afterwards which I really do appreciate! I’ve uploaded my two slide decks to my SkyDrive so you can download them if you’re interested. You can find them here. Have fun!

And remember:

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!

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!

Pages:123