DCSIMG
June 2006 - Posts - Team Foundation Sidekicks

June 2006 - Posts

Using the MSBuild Sidekick

It must feel nice being able to download something, install it and then find out that the guys who wrote it have so much faith in your abilities that no instructions were attached on how to use it. Not even a “Use the Force” sound bite coming on every couple of minutes.
Well, it’s time we change all that. Not only for the sake of the less-psychic ones among you, but to provide you all with a solid introduction to the MSBuild Sidekick’s features and uses.

To begin, let’s have a look at the MSBuild Sidekick’s window:
New Project
The layout is pretty basic. On the left you’ve got the project-tree, giving you access to all the different sections in an MSBuild project. Each of these sections has its role in the configuration of the build process, based on the following definitions:

  • Using Tasks – the list of references to non built-in tasks. These can be either user-defined tasks or additional tasks attached to the build engine by specific types of projects like a C# project.
  • Property Groups – property groups are used to group property elements that contain values that are referenced several times in the project file or to set the values for properties that are used in several configurations.
  • Item Groups – item groups define groups of item elements, which define inputs into the build system.
  • Targets – the targets section holds target elements. Target elements are used to group tasks together in a particular order and expose sections of the project file as entry points into the build process.
  • Imports – imports lists additional MSBuild files that are imported by the current project, allowing you to work in a more structured manner using multiple files.

Clicking on each of the sections in the project-tree will expose that section’s content in the right side of the window, which I like to call the property form. This is where you get to edit the different attributes of the elements you have in your project.

Next, let’s cover the basics of adding and removing elements. The key concept here is very simple – Right Click. When you right-click each of the sections, a little context-menu pops up allowing you to add a new element to a section – as you can see here with the Item Groups section:
Add New Item

Right-clicking an element within a section lets you remove it:
Remove Item

Once you add an element, you can then select it to edit its attributes in the property form or right-click it to add sub-elements to it, as is the case with Targets that lets you define tasks within a target.
All this functionality exists in the property form as well, meaning that if you right-click a row in the grid you’ll be able to either remove the selected element or add additional elements to that section.

Trying to keep these posts short and clear, that’s it for now. My next post will take you through some actual build-process definitions, going over the rest of the basic features in the MSBuild Sidekick, and the one after that will cover the advanced features and complete the introduction to using the MSBuild Sidekick.

Enjoy using the MSBuild Sidekick and as always – if you’d like to report a bug or suggest a feature, do not hesitate to contact us.

Posted by Matan Holtzer | 4 comment(s)
תגים:

MSBuild Sidekick - Schema Support

Hello there

Since this is my first post in this blog, allow me to introduce myself: the name is Holtzer, Matan Holtzer (as in DentArthurDent). I work as a project manager for Trivium Technologies (Attrice's parent-company), spending most of my time on Team System implementations for our customers and improving the interaction with TFS through our collection of sidekicks.

I will be joining Eugene in keeping you up to date with the latest news regarding the TFS Sidekicks, starting here and now with some info about MSBuild Sidekick's compatibility with the MSBuild schema.

The MSBuild Sidekick is based on the set of elements defined in the XML schema for MSBuild. Being our initial release of this sidekick, we have decided to focus on the vital elements require for generating a project file and broaden our support for more and more elements with future releases.

The following table lists the MSBuild schema support available in MSBuild Sidekick version 1.0:

Element

Level of Support

Notes

Project

Full

 

Import

Full

 

UsingTask

Full

Definition of AssemblyFile by AssemblyName is supported

ProjectExtensions

None

 

Choose

None

 

PropertyGroup, Property

Full

 

ItemGroup, Item

Partial

Internal elements within an item cannot be changed through the UI

Target

Full

 

Task (in Target)

Full

Including the definition of output properties for the task

  • Full support for an element means that all its attributes or contained elements may be modified through the UI
  • Partial support for an element means that part of its attributes or contained elements cannot be modified through the UI
  • None means that the element cannot be viewed or modified through the UI

    In addition to that, the current version does not perform any type of validation for user-supplied attribute values and conditions, other than what's required for conforming with the general XML format (e.g. using the '<' and '>' symbols within a string value).

     

    We have been getting a lot of feedback from people that started using the sidekick and we're working hard on incorporating some of the suggestions into our next release. Thank you all for sharing your thoughts with us, and keep 'em coming - we're always interested in hearing what you have to say.

  • Posted by Matan Holtzer | with no comments

    MSBuild Sidekick version 1.0 is released

    Today we are proud to release first version of MSBuild Sidekick, GUI application for creating and modifying MSBuild project files. The release is available here.

    MSBuild Sidekick application is the tool that allows developer to leverage all of MSBuild power in defining build projects. While developing the tool, the emphasis was on simplicity and clearness of GUI. Creating even complicated build files doesn't make developer to focus such details as XML element attributes names and format, allowing instead to focus on build process the project describes, so knowledge of XSD schema is not necessary. With MSBuild Sidekick, it takes minutes to create build file with no manual editing at all!

    The Sidekick application supports all valid build projects files, including custom build scripts, generated by Visual Studio projects or Team Build build types. We believe that the main importance of the application lies in closer integration with Team Foundation builds, and we shall continue to pursue it in the next releases.

    The application supports creation, editing and removal all elements available in MSBuild schema. As points of special value, it is worth to mention imported build projects support, full task definition support and task properties definitions.

    Imported projects allow splitting different logical tasks across several build projects, but managing set of projects may be a pain. With MSBuild Sidekick opening imported project for edit is as simple as double clicking on selected import. Additionally, user may choose to view all imported elements along with elements defined in project.

    Tasks are the main force behind MSBuild Engine. The Sidekick application allows easy loading of custom tasks by specifying assembly name or path to assembly file; all tasks are preloaded for easy selection. Predefined (built-in and Microsoft.Build.Tasks) tasks are available with no special configuration.

    Tasks properties available for selected task are all visible in grid-like user interface. The Sidekick application provides support both for regular and output task parameters

    We hope that the functionality available in the tool will make build projects editing a routine task, and will make custom build projects development easier and less effort-consuming.

    In the upcoming posts, we shall continue to explore the functionality of MSBuild Sidekick. General public is kindly invited to participate - any feedback is most welcome!

    MSBuild Sidekick is born!

    "In the field of computer software, the term software build refers either to the process of converting source code files into executable code or the result of doing so... The process of building a computer program is usually managed by a 'build utility', a program that coordinates and controls other programs.", Software build, Wikipedia

    There exist great many build tools. Everybody heard about "make" - this famous tool was developed by Stuart Feldman (Bell Labs) in 1977. It was included in Unix dsitribution and is still being used widely. Another well known build tool is Ant. It was originally developed for building Java applications, and later became a standard for Java developers. Ant is supported by many popular Java IDEs: Eclipse, IntelliJ Idea, NetBeans, etc. What is the Ant's secret? Why this young tool is so popular? It works with open and well-documented build files and provides great extensibility. The build file format is XML-based, and developer may define the build process by simply editing it. Build file could be edited not only with text editor, but also with IDE built-in wizards and editors or even special standalone tools. Basically build process is the consistent chain of tasks. So what kind of tasks can Ant perform? Any kind! The most common tasks go with its package. But it also allows developers to create and use during build process their own tasks. That's amazing flexibility Ant is known for.

    And what about Microsoft platforms developers? What do they have to automate build process? Until recently they had nothing developed by Microsoft. Whidbey brought them not only updated IDE, but also powerfull tool for build process automation - Microsoft Build Engine (MSBuild). It offers build definition project in well-defined XML format and interfaces for custom tasks developer may create. The following facts underline the tool importance:

    • MSBuild is distributed with the .NET 1.0 and 2.0 Framework packages
    • Visual Studio 2005 creates MSBuild compatible files for all its projects and calls MSBuild to build them internally, allowing advanced users to modify the project files for custom build logic
    • Most importantly, build types created in Team Foundation and executed by Team Build are also of MSBuild format!

    Thus developers on Microsoft platform now have very powerfull tool with great capabilities. But as it is well known, tool's capability is of value only when it may be used effeciently. Before today, the options available were either to edit build project files in Visual Studio XML editor (with Intellisense, but still manually) or through Visual Studio configuration windows (not all of functionality available). The need for GUI tool become obvious as we were required to develop complicated build project for one of our clients.

    Thus MSBuild Sidekick idea was born!

    Posted by Eugene Zakhareyev | with no comments

    Introducing Workspace Sidekick (part 1)

    Workspace Sidekick is a GUI application for performing administrative tasks related to workspaces in TFS.

    Workspaces, for those of you that are new to Team System, are containers for mappings between folders in TFS’s Source Code Control repository and local directories on a user’s workstation. Every workspace can include several location mappings and every user can have as many workspaces as needed at single workstation.

    Since TFS stores all of the workspace definitions as part of its database, several administrative activities are available for managing all workspaces from the server. However, before the Workspace Sidekick, all those activities were only available from the command line.

    You can view the application screenshot here.

    Once you log-in to the server, you get a list of all workspaces defined for your user in TFS (shown on the left). If you have administrative privileges, you can filter that list using the drop-down menus at the top of the window - selecting either a different user or a specific machine for which that user has mappings defined in a workspace.

    Once you select a workspace from the list, the right window pane is populated with information related to selected workspace, including a list of all mappings defined in the workspace. You can then view the status of a specific mapping or delete one or more of the mappings in the selected workspace.  Mappings view may come in handy when, for example, there are many workspaces at single station and it is not immediately clear where you mapped specific project.

    Going back to the list of workspaces, you are able to delete selected workspace, duplicate it for another user or workstation or update the computer name of the workstation. We shall elaborate on those actions and scenarios in further posts.

    The latest available version of the Workspace Sidekick is available as part of TF Sidekicks suite release 1.0.2 and you can download it by following the link.

    Posted by Eugene Zakhareyev | with no comments