Alexander Vanwynsberghe

"There is nothing impossible to him who will try"

What’s new in TFS 2013 Build?

In this post, I want to show you some of the new features and changes in the 2013 version of Team Foundation Build. In my opinion, there are some nice little things that will make your life much easier! Let’s go!

TFVC and Git

With TFS 2013, you now have the possibility to create a Team Project using Git as version control system. This will create a central GIT repository where you can push and get files from/to. Visual Studio 2013 will offer you a great GIT experience. You can find some information about the GIT story on the blog post from Harry Brian. Read More

Building SharePoint 2013 Apps with TFS 2012

In this post, I want to talk a little bit more about how you can build those shiny new SharePoint 2013 Apps using a TFS 2012 build server, but especially: without installing Visual Studio! To start, I will shortly guide you trough the process of setting up a TFS Build Server (with 1 controller and 1 agent).

You might be wondering, why do you setup a separate TFS Build Server? Why don’t you just use the Hosted TFS Build Server? Well, that was also my intake, but it just doesn’t work (yet). The Hosted Build Server does not have the “Office 2013 and SharePoint 2013 Developer Tools” on it, so it’s not able to build SharePoint 2013 apps. So for now, a separate server will do the trick.

TFS 2012 Build Server

Let me start with a quick overview of how to setup a TFS 2012 build server. In my scenario, I’m using a fresh Azure-hosted Windows Server 2012 VM. Fast and easy setup. Download the TFS 2012.1 installer and start the ‘Build Service Configuration Wizard’:

01The next step is connecting to your TFS Team Project Collection, which is a TFS Service (VisualStudio.com) instance.

02The next few steps are just a ‘next-next-next‘ experience, use the default settings as they are provided. Once you’re ready, you should see that it has one controller and one agent connected to your TFS Server.

08

CI Build Definition

Now comes the tricky part, how can be build SharePoint 2013 Apps without installing a full-blown Visual Studio 2013? Which components do you need? Well, we’ll start by creating a Windows Azure Auto Provisioned App like I’ve described in another post. Once you have this app, add it to Source Control, and perform a check-in.

Next step is to create a build definition which will perform a continuous integration build of our app. Using Visual Studio, go the the ‘Builds‘ section of Team Explorer, and click ‘Create New Build Definition‘. Give it a name and select ‘Continuous Integration‘ as trigger.

ci1

On the ‘Build Defaults‘ section, select the Build Controller we’ve just created, and define where you want the drop output  to be stored. I will just use a drop folder in Source Control (which is a new feature in TFS 2012).

ci2On the process section, select the solution file, and leave the other settings by default. That’s it for the build. To try, just queue the build manually, and you should see a nice failing build. That’s completely normal of course, as we didn’t install any build-related things on the build server yet:

error

Required components

Now that we have the build, we need to make the necessary changes on the build server (where the actual Build Agent service is running). Install the following components in the right order:

That’s a tricky one. It will start the web platform installer, and it will give you this error:

10

That’s correct, we don’t have Visual Studio installed, and that’s exactly what I don’t want! But when you click OK two times, you will a nice overview of all components required:

11

We can now use the Direct Download links provided to install the required components:

When installing this, you’ll get another nice warning about the ‘Microsoft Web Developer Tools’. Just click ‘Continue

13

There we go, another nice screen telling me that I need the Windows Identity Foundation Runtime.

16

My build server is a Windows Server 2012 machine, and there you can ‘enable’ the WIF runtime as a feature on that machine. When you enabled this, just retry the setup of the WIF SDK.

17

Almost there! If you queue a build now, you will see the following nice error:

error2Correct, that piece is missing on the build server. To solve this, all you can do is ‘copy‘ the folder ‘C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications‘ from your development machine to the Build Server (on the exact same location). That should do the trick! If you now queue your build, you will get:

buildokThat’s it, you have your SharePoint 2013 building on clean, fresh Build Server without installing a full-blown Visual Studio 2012. It was quite a challenge, but thanks to Xavier Decoster and some research I managed to get this thing working!

In a next post, I will explain you how to build an APP package with the TFS Build Server. It’s not that simple as just adding “/p:IsPackaging=True” as extra ms build argument unfortunately.

Thanks!

Some extra information: In case you are wondering why I install the Windows Identity Foundation SDK (Dependency)? You can just use the .NET 4.5 Framework, and WIF is already in there. But you need to have the WIF SDK 4.0 to be able to install the WIF extensions. So… You just have to know..

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 :-)

My thoughts on the Build keynote

Yesterday evening, I had a really great time. The Belgian Umbraco User Group (BUUG) organized a livestream to follow the keynote from the Build conference. As not all of us can make it to Build in California, this was a very good alternative! (Wich was also organized by several other usergroups btw).

At 05.00PM, we were expected at the offices of Combell at Ghent. There we were warmly welcomed by Thijs Feryn, which is really an super enthusiastic guy btw! After some food & drinks it was time to watch the keynote.. This is what I will remember from the talk:

First of all there were some demos about what they call the Windows metro style applications. Those applications use the new Metro design language which is already used on the WP7 devices. I think Microsoft is really convinced about that style of applications, as they are pushing to use it everywhere on every device. The demo applications Microsoft showed us were mostly developed by a team of interns. They were all created within 10 weeks, and developed by several teams of 2-3 developers. Those guys did some great work, and I think they will be really proud to put ‘First Windows 8 developer’ on their CV.

After the demos we saw a slide with ‘the’ change for Windows 8: The application development architecture. Which I personally think is really the way to go.

Windows8architecture_485458d4

The way we build applications as for today is either .NET using VB, Silverlight, C# .. or web applications that use HTML/JavaScript.. or C++ applications using the win32 API. What will change is the way we can build applications on top of the Windows new AppModel called WinRT. They provide a whole set of API’s which we can use to create our applications (in Metro style) using HTML/CSS + Javascript, or XAML in combination with C/C++ or C#/VB. Using this languages we can do exactly the same thing. As from what I understand, they are pushing the use of HTML5 to create the Metro style apps.

The only thing I am concerned about that is the Cross-browser usage. They say you can build your apps using standard HTML5 and Javascript where they included a whole range of ‘WinRT’ specific functions. I think those apps will run in IE10 (am I right?) and on Windows 8. But what will happen if you run it on other browsers on other machines? Do you have to develop your apps with that in mind? I’m not telling you that I don’t understand their choice to put HTML5 into the spotlight. Because there are so many developers (even non-Windows) that are used to those technologies, it’s an opportunity to catch those guy to develop for Windows. Personally, I think I will prefer to use my good old (?) C# skills and combine it with the XAML based UI design. 

What I do find exciting is the usage of Blend in combination with HTML5/CSS. As I’m not a CSS genius, Blend will make it extremely easy to just position your HTML stuff, handle all the rotating and scaling issues without digging into CSS floats, absolute positions,..

The next part of the keynote was mostly about hardware, the speed of Windows 8, the reduced memory usage and the reduced processes. They also showed some awesome ultra-thin ultrabooks, some cool tablets, a high-end machine showing some very realistic renders.

Ultrabooks

I can’t wait to start playing with the WinRT API’s and getting to know them. As they always say, try before you judge!

Just wanted to say thanks to the BUUG and Combell for the friendliness! I had a good time.

All reactions are welcome, just post a comment.