Wednesday, February 21, 2007
TeamCM
(Beta) is a Windows application that facilitates merging by work item
between branches in version control. Users merely select source and
destination folders in version control, review the available work item
merge candidates and select the work items to merge. The related
changesets for the selected work items are automatically merged from
the source into the destination. Although targeted at promotion
modeling and release based on work items, this tool can simplify and
process of merging based on work items. Rather than having to go
through and merge each changeset individually, you can now choose to
merge the whole work item.
To download TeamCM:
http://teamsystemrocks.com/files/12/tools/entry1431.aspx
For the TeamCM forum:
http://teamsystemrocks.com/forums/74/ShowForum.aspx
powered by performancing firefox
Friday, February 16, 2007
This is straight from Ed Hintz's blog posting.
You can get it here.
Overview
The Visual Studio Team
Foundation Server MSSCCI Provider enables integrated use of Team Foundation
Version Control with products that do not support Team Explorer
integration.
This version (1.2) includes:
- Enable handling branched solutions in Visual Studio 2003.
- Fixed issues to enable provider to support Toad for SQL Server 2.0.
- Enhanced the "Choose Folder in Team Foundation Server" dialog.
- Fixed bug which prevented Properties Dialog from displaying local path.
- Work Items Query list in the Checkin Dialog is loaded and saved on the
disk.
- "Get" operation performance improvements.
- Defect fixes
powered by performancing firefox
Tuesday, February 13, 2007
I was reading the latest MSDN and ran across a WorkItem tool named HEMI (the old WorkItem Move tool). This is a great little tool for moving WorkItems between projects on the same TFS server. It was developed by Eric Lee of previous MS fame and now on his own.
Seeing as I was curious as to just how good it worked, I had to try it out. I was pretty impressed with it. It allowed me to not only move workitems between projects, but to also decide what WorkItem type that I wanted to create in the target project. I went from a bug to a task and found that the fields that could map did and the others just seemed to drop off. This is of course what I expected to happen. Next I tried it with a custom WorkItem control that I had and again it mapped over, albeit dropping the custom control field and value.
During the process I was given the opportunity to link the new workitem back to the original, and I am glad because with out it I would have had no idea that the original workitem had a custom field in it. It also set the original field to a Moved state which I will find helpful when I try to query the moved items.
I guess it would be nice if the program would notify me that the workitem that I am moving has fields that do not map over and even nicer if it would add that info as either comments in the History section or apend it to the Description field so that the users see that there is other information that is relevent to the workitem without having to actually open the original to see if anything is missing. Guess thats V2 if the will be a V2 :-)!!
All said, I had not really heard much on this tool and I will be adding it to my arsenal of cool tools that I use with TFS. You can get more info and the tool at http://blogs.msdn.com/ericlee/archive/2006/11/20/work-item-moving-tool-is-back.aspx
powered by performancing firefox
Wednesday, February 07, 2007
Sometime back I setup a client to use the Conchango Scrum template. I had to customize it for them and during that process I found that there is a TestCase workitem that was never implemented. I decided to load it into a test project to see what it offered. I was suprised to see that, while not complete, it did offer the ability to capture a nice amount of testing metrics. What else I liked about it is that it allows you to add test steps for doing manual tests. Now this is cool because the current manual test harness in TFS does not capture quite enough metrics. The other thing I like about it is that you can manage all the test cases for any Team Project in workitems. Basically add the workitems into TFS(or Excel if you know all the fields you want) then export them out into Excel and save off the workbook. Now say that for every iteration of the project, you want to run through the testcases, all you have to do is publish them back to TFS and they will be ready to go.
Grant it this workitem type needs to be customized, but it is a great start to managing testcases via workitems.
You can download them Scrum process template from http://www.conchango.com
-paul
powered by performancing firefox
Thursday, January 18, 2007
Notion Solutions, Inc. announces the release TeamRM(Beta) for Visual Studio 2005. TeamRM(Beta) is a Visual Studio plug-in that will enable more robust work item management and visualization by allowing the user to create and manage Parent/Child and Link relationships between Team Foundation Work Items.
The main scenario for this would be to link any Work Item type with a Requirement Work Item type, although any Work Item types can be linked. TeamRM(Beta) provides a user interface in which users can drag and drop Work Items to create the relationships.
You can download the plug-in from http://teamsystemrocks.com/files/12/tools/default.aspx
Friday, December 08, 2006
I recently upgraded to Vista Ultimate and I found that my Messenger Live Beta 8.1 keeps crashing. I guess this is not an issue for everyone, but it is for me. I Googled the problem and found a great post by Mary Jo Foley http://blogs.zdnet.com/microsoft/?p=103
This is the fix that Mary Jo put out there from MS. Read her post for all the details.
The Microsoft-suggested workaround:
1. Uninstall Flash Player (Click Start->Control Panel->Uninstall a Program, then select Flash Player)
2. Close Windows Live Messenger and any other programs that use Flash
3. Open Adobe public Flash Player beta site (http://labs.adobe.com/downloads/flashplayer9.html)
4. Click "Download Installer for Windows Active X" to install
It seems that Messenger is working much better and that I can actually use my sharing folders now (w00t !). Just wish they could play together nicely right out of the box.
Hope this helps
-paul
I have been working on a cool new plugin for Team Foundation Server and decided it was time to run the msi to see how it worked outside of the hive. I created the msi and tried to run it on my Vista machine and found that it kept failing to install. The reason for this is that it was not running as the Admin. When I right-click the msi there was no option to run it as the Admin, so I had to Google around to see what I could find out. I ran across a post (forgot the link) and found that I could kick off the install if I put the command in a batch file and ran that as the admin. Well it worked so here is what I did.
Open Notepad and enter the following:
msiexec /i <enter path to msi>
Save as MyVSPacakge.bat
right-click and select "Run as Administrator"
Thats it. Quite simple to get the install to work now.
Hope this helps
-paul
Thursday, November 02, 2006
Microsoft Visual Studio Team Edition for Database Professionals
Release Notes for CTP7
This document lists the system requirements to install the seventh community technical preview (CTP7) of Microsoft Visual Studio Team Edition for Database Professionals. This document also describes issues that you might find while you use this release
1. System Requirements
CTP7 for Visual Studio Team Edition for Database Professionals has the following system requirements:
· Visual Studio Team Suite – other versions of Visual Studio are not supported for CTP7.
o The Visual Basic or C# language feature installed
o MSXML installed (It is installed by default)
· Microsoft SQL Server 2005 Developer or Enterprise Edition installed and running for design-time validation on the same computer as Visual Studio. For more information, see http://www.microsoft.com/sql/howtobuy/default.mspx.
· Microsoft Windows 2000 with Service Pack 4 (SP4), Windows XP with Service Pack 2 (SP2), or Windows Server 2003 with Service Pack 1 (SP1). Installing on Microsoft Windows Vista is not a supported scenario for CTP7.
You can order trial versions of Visual Studio Professional Edition or Visual Studio Team Suite at http://www.tryvs2005.com.
Before you install CTP7, you must uninstall any prior CTP of Visual Studio Team Edition for Database Professionals.
IMPORTANT: The CTP7 release is only valid until March 1, 2007. After that date, the CTP7 release will not load. You should upgrade to a newer release of Visual Studio Team Edition for Database Professionals before that date.
2. Known Issues in CTP7
2.1. General
2.1.1. Supported versions of SQL Server
There are a limited number of Microsoft SQL Server versions and compatibility modes from which you can import schemas and to which you can deploy databases. The following table shows from which versions and compatibility modes you can import database schemas into which types of database projects.
|
|
Source Database Server |
|
SQL Server 2000 |
SQL Server 2005 |
|
Database Compatibility |
6.5 |
7.0 |
8.0 |
6.5 |
7.0 |
8.0 |
9.0 |
|
SQL Server 2000 Database Project |
Not Supported |
Not Supported |
Supported |
Not Supported |
Not Supported |
Supported* |
Not Supported |
|
SQL Server 2005 Database Project |
Not Supported |
Not Supported |
Supported |
Not Supported |
Not Supported |
Supported |
Supported |
* - You can import objects from a SQL Server 2005 database into a SQL Server 2000 database project only if SQL Server 2000 supports those objects.
For database deployment, the following table shows which versions and compatibility modes are supported for the source database project and target database server.
|
|
Target Database Server |
|
SQL Server 2000 |
SQL Server 2005 |
|
Database Compatibility |
6.5 |
7.0 |
8.0 |
6.5 |
7.0 |
8.0 |
9.0 |
|
SQL Server 2000 Database Project |
Not Supported |
Not Supported |
Supported |
Not Supported |
Not Supported |
Partially Supported |
Partially Supported |
|
SQL Server 2005 Database Project |
Not Supported |
Not Supported |
Not Supported |
Not Supported |
Not Supported |
Not Supported |
Partially Supported |
2.1.1. Compatibility with prior CTPs
If you have database projects that you created by using a prior CTP of Team Edition for Database Professionals, you cannot open them by using CTP7. To implement new features, some breaking changes were required in the file formats for database projects, data generation plans, and database unit tests.
To resolve this issue
Create a database project. On the Project menu, click Add Existing Item to add the .sql files that contain your database object definitions. You must manually recreate any data generation plans and database unit tests.
2.1.2. Renaming files that are contained in a database project
File names for project items are not necessarily robust to underlying changes. If you change the name of a file, you might not be able to reload your project.
To resolve this issue
Avoid renaming the files outside of Visual Studio.
2.1.3. Help topic integration
You must install the MSDN Library that contains the documentation for Visual Studio Team Edition for Database Professionals for help topics to appear when you press F1.
2.1.4. Connect Properties and Save my Password
If you use SQL Server Authentication when you connect to a database server, your encrypted password is saved to your local registry even if you do not select the Save my password check box.
To resolve this issue
There is no workaround for this issue at this time.
2.2. Database Project, Build, and Deployment
2.2.1. Required Permissions to Create and Use Database Projects
To create and use database projects, you must belong to the securityadmin and the dbcreator fixed server roles for your design-time validation database. In addition, if you are not connecting to SQL Server as a member of the sysadmin role, you must have View Server State permissions on the server and a member of the sysadmin role must run the following script:
USE MASTER
GO
GRANT EXECUTE ON sp_detach_db TO public
GO
To resolve this issue
Have your database administrator add you to the securityadmin and dbcreator fixed server roles. If you run as sysadmin, you already belong to these roles.
2.2.2. Changing the target database project in the Import Database Schema dialog box
If you have multiple database projects in a single solution, you cannot click one project, use the Import Database Schema command, and change the target in the Import Database Schema dialog box. Even if you specify a different project in that dialog box, the schema will be imported to the project that you initially clicked.
Example: You have a solution that contains database projects ProjectA and ProjectB. You click ProjectA and use the Import Database Schema command. Even if you change the target in the Import Database Schema dialog box to ProjectB, the schema will be imported to ProjectA.
To resolve this issue
Click the correct target database project before you use the Import Database Schema command. If you click the wrong target, click Cancel to close the Import Database Schema dialog box, click the correct target, and use the Import Database Schema command again.
2.2.3. Opening the same database project in multiple instances of Visual Studio
You cannot open a database project in more than one instance of Visual Studio. If you try to open a database project that is already open in another instance of Visual Studio, an error appears that says "The design database is locked. If you are trying to open a database project that is already open in another instance of Visual Studio, you must first close the other instance."
To resolve this issue
Close the solution that contains the database project in the other instance of Visual Studio.
2.2.4. Importing schemas that contain encrypted objects
If you import a schema that has one or more encrypted objects in it, those objects will not be imported and no error will appear.
To resolve this issue
You can add the objects to the database project manually. In Schema View, right-click the database project node, point to Add, and click the type of encrypted object that you want to add, such as Procedure.
2.2.5. Deploying a database project with new users
When you add users to a database project, if the related logins do not exist, you must add them. You do so by adding the sp_addlogin (SQL Server 2000) or CREATE LOGIN (SQL Server 2005) statements to the Logins.Sql script that the pre-deployment script includes.
To resolve this issue
In Solution Explorer, expand the Scripts folder, open the Pre-Deployment folder and double-click the Logins.sql file to open it in the Transact-SQL (T-SQL) editor. Add the sp_addlogin or CREATE LOGIN statements, and then save your changes before you build and deploy your database project.
2.2.6. Restarting SQL Server when a database project is open
If you stop and restart your local instance of SQL Server when a database project is open, an error message appears and indicates that you have lost your connection. Any modifications to the database project will cause the error message to reappear until you unload and reload your project.
To resolve this issue
In Solution Explorer, click your database project, open the Project menu, and then click Unload Project. When the project is unloaded, open the Project menu and then click Reload Project. As an alternative, you can close and reopen your solution.
2.2.7. Full-text index files
If you add a full-text index to your database project from Schema View and your Schema View is sorted by Type, the file for the index might get created directly under the project node.
To resolve this issue
Sort Schema View by Schema before you add the index. As an alternative, you can open Solution Explorer, open the Schema Objects folder, open the tables Folder, open the Indexes folder, and manually move the script to the Indexes folder after you add the file.
2.2.8. Visual Studio Team Foundation Build Integration
If you use Team Foundation Build, the output from building the database project (the .sql file that contains all the statements for deploying the database) is not automatically copied to the build drop area. In addition, the TargetDatabase and TargetConnectionString properties are stored in the .user file.
To resolve this issue
Find the .sql build file in the path that is specified in the project properties (usually relative to the database project folder) and copy it as needed. To build successfully from Team Foundation Build, you must modify the ProjectName.dbproj file to add the TargetDatabase and TargetConnectionString properties from the ProjectName.dbproj.user file for the configuration that you want to build.
2.2.9. Errors from the Import Script Wizard
If you import database objects by using the Import Script wizard, no errors appear even if errors are encountered. Any statements that cannot be successfully interpreted are ignored and files for them are not generated in the database project.
To resolve this issue
There is no workaround for this issue at this time.
2.2.10. The Import Script Wizard and sp_execsql
If you import a script that contains DLL statements that are embedded inside sp_execsql calls, any objects that are defined within those DLL statements are not added to the database project. For example, the procedure in the following example will not be added to the database project:
EXEC dbo.sp_executesql @statement = N'
-- Proc Comments go here
CREATE PROCEDURE [dbo].[my_proc]
@p1 NVARCHAR(40)
AS
SET NOCOUNT ON
SELECT @p1
'
To resolve this issue
If you have a database that contains the object definitions, you can use the Import Database Schema command into an empty database project. If you must add the missing object definitions to a database project that already contains object definitions, you can use Schema Compare to compare the database to your database project, and then write the additional objects to the database project.
2.2.11. Triggers in Solution Explorer
If you add or import triggers, they are added beneath the Schema Objects folder, rather than beneath the Triggers folder.
To resolve this issue
You must move the files to the correct location within the database project.
2.2.12. Unexpected exception encountered. Details of the exception can be found in the file {0}.
If the Transact-SQL statement interpreter stops responding while reading an SQL statement, an error appears in the Error List window. Also, a temporary file that has information about the exception is created in the Windows Temp folder with a file name of TS Data Guid.tmp.
To resolve this issue
If this error appears, report it through the Microsoft Connect site and attach the temporary file.
2.2.13. Renaming Database Projects
If you rename your database project, any existing .dbproj.user files are not renamed. The project settings that are stored in the .dbproj.user file are saved to the new name, but the old file will remain.
To resolve this issue
You must manually delete the old .dbproj.user files after you rename a database project.
2.2.14. Stored Procedure Parameters and Case Sensitivity
The parameters of a stored procedure are case sensitive if the design-time validation database server is case sensitive, regardless of the collation setting of the database project.
To resolve this issue
If your stored procedure parameters must be case insensitive, set your design-time validation database server to be case insensitive.
2.3. Database Unit Testing
2.3.1. Only one batch statement is supported per test script for database unit testing
Only the first batch statement is processed.
To resolve this issue
Avoid using more than one batch statement in your unit test scripts.
2.3.2. Changing connection strings
The app.config file in your test project contains connection strings to a database that you are testing. If a connection string specifies an incorrect server or database, database unit tests in that test project fail. Even if you correct the connection string in the app.config file and run tests, the tests still fail.
To resolve this issue
After you correct the connection string, rebuild the test project. Then run the database unit tests again.
2.3.3. Opening a data generation plan while the Database Unit Test Designer is open
You might experience a delay if you open a database unit test in the Database Unit Test Designer and then you open the test’s data generation plan without first closing the designer.
To resolve this issue
Before you open a data generation plan, close the Database Unit Test Designer for any database unit tests that are associated with that data generation plan.
2.3.4. Test Condition Extensibility
If an error occurs when a custom test condition is loaded, no error appears. However, the test condition does not appear in the list of test conditions in the Database Unit Test Designer.
To resolve this issue
You must fix the issue with the test condition before it will appear in the list.
2.3.5. Database unit tests for triggers that are based on views
Transact-SQL (T-SQL) code stubs will not be automatically generated for database unit tests for triggers that are based on views. If you right-click on a trigger that is based on a view, the Create Unit Tests menu item is disabled on the context menu.
To resolve this issue
You must manually create a database unit test for the trigger by writing the appropriate T-SQL statements in a new database unit test.
2.4. Data Generator
2.4.1. Inserting too many rows during Data Generation
After you create a data generation plan, if you specify too large a value for the Rows to Insert field for one or more tables in your database, Visual Studio might encounter an exception when generating data into your database. The maximum value that causes the exception depends on the configuration of your database server.
To resolve this issue
Specify fewer rows to insert. For example, on a 1.7 GHz computer with 1 GB of RAM, we recommend that you insert no more than 1000 rows into each table in the Northwind database.
2.4.2. Deleting too many rows during Data Generation
Before data is generated for your database, you are asked whether you want to clear the contents of the selected tables. If you choose to clear the contents of those tables and the selected tables contain a large number of rows, a SQL timeout error might appear in the Error List window. The number of rows required to cause this problem depends on the configuration of your database server.
To resolve this issue
Use SQL Server management tools to delete the rows from the tables before you attempt to generate data.
2.4.3. Connecting from Data Generator to Microsoft SQL Server 2000
If you installed Microsoft SQL Server 2000 after you installed SQL Server 2005 or SQL Server Express, a known issue prevents the SQL Browser from reading that instance’s registry key. As a result, that instance will not be exposed for port resolution, and TCP will not function. You might receive a connection error message.
To resolve this issue
For information about a workaround for this problem, see http://support.microsoft.com/kb/905618/en-us.
2.4.4. Editing data generation
You can edit a data generation plan file (.dgen) even if you have not checked out the file and your version control settings do not allow you to edit files that are checked in.
To resolve this issue
There is currently no workaround for this issue.
2.4.5. Constraints and Data Generator
When you populate a database, Data Generator does not take constraints into account. As a result, SQL Server might raise errors if you attempt to populate a database that includes constraints.
To resolve this issue
Change the generator properties to match the table or column constraints that will affect population. For example, you can change your generator to the Regular Expression generator and supply a pattern that will satisfy the constraint, or you can change your generator to the Schema Bound generator and use data that satisfies the constraint.
2.4.6. Unhandled exceptions in custom generators can cause Visual Studio to stop responding or terminate unexpectedly.
If you create a custom generator and that generator causes an unhandled exception, that unhandled exception might cause Visual Studio to stop responding or terminate unexpectedly.
To resolve this issue
You must identify and handle exceptions within your custom generator.
2.5. Schema and Data Compare
2.5.1. Schema Compare shows permissions as missing in the database project
You can import a schema from a database into a database project and then compare schemas using the database as the source and the database project as the target. However, any permissions that originated in the source database will appear as missing in the target (the database project).
To resolve this issue
There is currently no workaround for this issue. However, to verify the permissions that were imported, examine the post-deployment script. To open this script, expand your database project in Solution Explorer, expand the Scripts folder, expand the Post-deployment folder, and then double-click the script.postdeployment.sql file.
2.6. Database Refactoring
2.6.1. Refactoring scripts that are stored in Visual SourceSafe
If you use a refactoring operation to update scripts that are stored in Visual SourceSafe, a warning message appears for each script (.sql) file that the operation updates. The message reads “There already exists an item with the same name under source control. If you continue with the add, this item will automatically assume the identity of the item under source control. Do you wish to proceed with the add anyway?”
To resolve this issue
Select the Don’t show this dialog box again (Always allow add of existing items) check box to keep the message from reappearing.
2.7. Transact-SQL (T-SQL) editor
2.7.1. Incorrect error line number when executing stored procedures
If you execute a stored procedure in the T-SQL editor, an error occurs within that stored procedure, and you double-click the error in the Error List window, you will always go to the first line in the editor. The line number that appears in the Error List window is the line number within the stored procedure, not the line number within the editor.
To resolve this issue
Open the source for the stored procedure to display the line that resulted in the error. If the stored procedure is defined within a database project, you can double-click the stored procedure in Solution Explorer or Schema View to open it in the editor.
Just when I was getting used to CTP 6 along comes CTP 7. You can download the bits here
http://www.microsoft.com/downloads/details.aspx?familyid=4410d601-6e0c-406a-ba7a-d12f868d1af7&displaylang=en#Overview
I did notice in a forum post that the install expected Team Suite installed.
Tuesday, August 08, 2006
I am currently working on a TFVC utility. Part of the functionality of the utility is for the user to select a sourcepath and have the system return all the branches that are related to the path. Here is what I was able to come up with to solve this. The sample will return an Item array that you can then work against to get the desired information.
private
TeamFoundationServer tfsServer = null;
private VersionControlServer vcs = null;
public Item[] GetMyRelatives(Item sourceItem)
{
tfsServer = TeamFoundationServerFactory.GetServer(serverName, new UICredentialsProvider());
tfsServer.EnsureAuthenticated();
vcs = (VersionControlServer)tfsServer.GetService(typeof(VersionControlServer));
List<Item> listRelatives= new List<Item>();
BranchHistoryTreeItem[][] historyTreeArray = vcs.GetItemBranches(sourceItem);
BranchHistoryTreeItem treeItem = null;
if ((historyTreeArray.Length != 0) && (historyTreeArray[0].Length != 0))
{
treeItem = historyTreeArray [0][0];
}
//make sure we have some branches to work with
if (treeItem != null)
{
treeItem = treeItem .GetRequestedItem();
if (((treeItem .Parent.Relative.BranchToItem != null)) && (treeItem .Parent.Relative.BranchToItem.DeletionId == 0))
{
listRelatives.Add(treeItem .Parent.Relative.BranchToItem);
}
//loop through the all the children (if any)and get the relatives
foreach (BranchHistoryTreeItem treeItem2 in treeItem .Children)
{
if ((treeItem2 .Relative.BranchToItem != null) && (treeItem2 .Relative.BranchToItem.DeletionId == 0))
{
listRelatives.Add(treeItem2 .Relative.BranchToItem);
}
}
}
return listRelatives.ToArray();
Grant it that this is not production level, but it shows just another way that you can take advantage of the source control API available in TFS.
Hope it helps! Happy coding :-)
pjhacker
Friday, August 04, 2006
Have you ever had a need to take advantage of the StoredQueriesCollection in TFS? I was recentlly working on a project where I wanted to access a WorkItem query that I had created in my TFS project rather than create a SQL query string. To accomplish this I needed to access the StoredQueriesCollection for the TFS project that I was working with. Here is a snippet of code that will get the job done.
//connect to TFS
TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer(ConfigurationManager.AppSettings["TFS_SERVER"],new UICredentialsProvider());
tfs.EnsureAuthenticated();
//get the current user that is logged in
tfsuser = tfs.AuthenticatedUserName;
WorkItemStore store = (WorkItemStore)tfs.GetService(typeof(WorkItemStore));
//Get my project
Project tfsProject = store.Projects [ConfigurationManager.AppSettings["TFS_PROJECT"]];
//Get the Stored Queries
StoredQueryCollection sqc = tfsProject.StoredQueries;
string querystring;
foreach (StoredQuery query in sqc)
{
if (query.Name == "All My Open Tasks")
{
//Get the query text that I will need to run
querystring = query.QueryText;
//replace the @project variable inthe query with the name of my project
querystring = querystring.Replace("@project", "'" + tfsProject.Name + "'");
WorkItemCollection wic = store.Query(querystring);
//loop through the WorkItems that the query returns
foreach (WorkItem wi in wic)
{
//Loop through the fields and getthe data that I need
foreach (Field field in wi.Fields)
{
string Title = field.Value.ToString();
string startDate = (DateTime)field.Value;
string finishDate = (DateTime)field.Value;
}
}
}
}
I could have very easily wrote a SQL query string, but I wanted to show how you take advantage of the StoredQueriesCollection. Hope you find this useful.
-pjhacker
Wednesday, August 02, 2006
I am always looking for new ways to work with and extend Team Foundation Server. I happen to be working on one such project and I had a need to access the Connection dialog box that is available in TFS. I made the assumption that I could show that dialog and utilize it rather than reinvent the wheel. It took me a bit, but I found out that you can use the DomainProjectPicker class to access the dialog.
The first thing I did was to set two private variables in my class
private TeamFoundationServer tfsServer;
private string tfsProjectName;
The following code returns me an instance of the picker. The constructor is overloaded so I can set the mode using the DomainProjectPickerMode enum. The enum gives me the five options, two of which are listed here.
- AllowMultiSelect - Lets the user select multiple projects
- AllowProjectSelect - - Lets the user select a project
I am using the AllowProjectSelect mode as I only want the user to be able to select one project from the list
DomainProjectPicker projectPicker = new DomainProjectPicker(DomainProjectPickerMode.AllowProjectSelect);
Now that I have an instance of the picker, I want to gleen some information from it that I will use in my project. I need to get the TFS server and the project name. First off I will show the dialog and if the user clicks OK I will gather up my info.
if (projectPicker .ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//get the selected server
tfsServer = projectPicker .SelectedServer;
//get the selected project name from the ProjectInfo array. I will use the 0 index since I am only allowing the user to
//select one project and use the Name property to get the actual project name.
Microsoft.TeamFoundation.Server.
ProjectInfo[] projectInfo = projectPicker .SelectedProjects;
tfsProjectName = projectInfo [0].Name;
//Now I need to authenticate so tha I can use the server object later on
tfsServer.EnsureAuthenticated();
}
As you can see it is rather easy to take advantage of the connection dialog in your own projects that need to access TFS. Hope you find this useful.
Wednesday, June 28, 2006
I recently bought a new laptop that has a built in wireless card. I setup my VPC images just like I had them on my old machine. When I fired them up I was suprised to see that I could not select my wireless card in the network settings. It was there in my old machine, so what happened.
I did some Google searches and found that there is a lot of misleading info on how to correct the issue. That is until I came acoss this site (http://www.mcse.ms/archive242-2005-7-1735770.html ) that actually had a resolution that was worth looking into. What do you know, it worked. So if you have a wireless card in the machine that is hosting the VPC and you cannot see your wireless card in the list of available adapters, try the following:
Go into the Network Connections and look at the properties of the wireless NIC. Does it have an entry for Virtual Machine Networking Services? If so, is there a check mark in the box. Now set the VPC to use the wireless adapter.
Hope this helps out
Wednesday, June 21, 2006
Anyone interested that will be in the area should not miss this event. Please click the image below to find out more about this great event and how you too can register to be there. Great Topics, Give-a-ways, and free lunch too. Who could ask for more!

By and For the Developer Community
Code Camps are about the developer community at large. They are meant to be a place for developers to come and learn from their peers. Topics are always based on community interest and never determined by anyone other than the community.
Always Free
Code Camps are always free for attendees.
Tuesday, May 02, 2006
I decided that I wanted to implement a custom check-in policy for no other reason that to have the knowledge on how it is accomplished. I ran across a great policy on James Mannings' blog that can be found here http://blogs.msdn.com/jmanning/archive/2006/01/21/515858.aspx. This a a policy that requires the user to enter comments when checking in code.
In order to use the policy you will to complete a few simple steps.
- Create a new C# Class library project. Give the project a descriptive name like CustomCommentsPolicy.
- Add the following refernces to the project System.Windows.Forms and Microsoft.TeamFoundation.VersionControl.Client
- Build the project in Release configuration
Now that you have built the project you will need to add a registy entry in the policy section of the registry for TFS. When a user accesses the dialog to set the policies for the project, they are read from the registry. The following steps will help you accomplish the task.
- Access the registry and locate the following key HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\8.0\TeamFoundation\SourceControl\Checkin Policies
- You should see registered policies in the right hand pane. Right-click and select New > String Value
- Set the name to the name of the assembly without the .dll extension. In my case it is CustomCommentsPolicy.
- Set the value as the path to the .dll file that was created when you build the project.
Thats it. You now have a policy setup and ready to use.
Fire up VS2005 and access your project in Team Explorer. Navigate to the check-in policy dialog, click Add, and you should see your new policy in the list. Add it to you project, make a change to the source and perform a checkin. If everything worked as expected you will get notified that you new policy was not met. Add some comments and complete the checkin. All should work well this time and you will not get a policy failure notification.
I know there are a few blogs about this out there, but never hurts to walk through it again.
Hope this helps you out.
pjhacker
Wednesday, April 19, 2006
Microsoft has already released their Service Pack 1 for SQL Server 2005. The Service Pack will address over 40 issues. I believe that this SP1 will allow us to use Database Mirroring functionality, which I am very happy about.
Article at ComputerWorld http://www.computerworld.com/softwaretopics/software/story/0,10801,110663,00.html
The Service Pack can be downloaded at http://www.microsoft.com/downloads/details.aspx?FamilyID=cb6c71ea-d649-47ff-9176-e7cac58fd4bc&DisplayLang=en
-paul
Friday, April 07, 2006
TeamPlain is a web interface for Team Foundation Server that allows managing work items, documents, reports and source control repositories. You can get further information and the download from
http://www.devbiz.com/teamplain/webaccess/
Friday, March 17, 2006
When I initially installed the Team Foundation Server RC I did not configure the SMTP server at that time. I have since wanted to go back and set up Project Alerts, but I was unsure where to modify the settings to get this to work. I search the internet for a bit and to my suprise I found no information on this. Now maybe I was not searching with the correct criteria :-), but I thought that I would get something back that would help me to figure this out, or at least guide me in the right direction. I figured that the setting had to live in a config file somewhere on the Team Foundation Server, so I decided that I would dig around and see what I could find. What do you know, I found it!
So, if you have installed TFS and have not configured your SMTP server, you may do so as follows:
- On the Team Foundation Server box, navigate to: C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\Services. If you have it on a drive other than C:\, besure to change this.
- Open the web.config file
- Modify the following keys in Red
<appSettings>
<add key="ConnectionString" value="Application Name=TeamFoundation;Persist Security Info=False;Initial Catalog=TfsIntegration;Data Source=TFSServerName;Integrated Security=SSPI"/>
<add key="eventingEnabled" value="true" />
<add key="DetailedExceptions" value="true" />
<add key="emailNotificationFromAddress" value="Senders Email Address" />
<add key="smtpServer" value="Your SMTP Server Name" />
</appSettings>
By default, the smtpServer key value will be the name of your Team Foundation Server. be sure you enter a valid SMTP server name and a valid email address for the sender.
- Fire up VS2005 and set up a Project Alert if you have not done so already.
- Cause a change that should fire of an email and check you email to see the results.
It took a few minutes, but I finally started to get the emails coming in.
Hope this helps
pjhacker
Wednesday, November 02, 2005
Today I decided that I was going to attempt an install of the Team Foundation server beta 3 refresh. I decided, as always. to start with a fresh VPC image running Windows 2003 server.
I followed the instal guide for a single server deployment. The guide really was good for me and I followed it word for word hoping that if I did so all would go well. I also decided that I was going to install the RTM of SQL Developer Edition instead of the Enterprise or Standard. All went well until I ran the Team Foundation install. It blocked the instal because SQL Server was not listening on TCP/IP. Apparently from what I was able to gather is that the Dev edition does not set that during installation like Standard or Enterprise do. The details provided me with a resolution which was to run the SQL Surface Configuration tool and set the correct setting. I did that and reran the install. All seemed to be humming along nicely until I got the 28905 error message “Error 28905. WiDbLoc: Could not list of fields to localize from the database”. I clicked retry and it continued to fail. At this point I decided to google the error to see what I could find, and what do you know, many folks have had this issue, but there were no real answers until I stumbled on to this post at MS http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=104101 . Well I found the answer. I had not restarted the SQL Service and for some reason it was choking. The issue had nothing to do with localization as I installed with Engllish(US), but had everything to do with the TCP/IP setting not taking effect. I restated the service and I also decided to follow the post and kept the VPC in the foreground and about 5 minutes later the install was complete. I must say that for a first stab install of a completely new product, I am impressed. I really thought from posts that I had read prior to the attempt that this was going to be a frustrating process. Glad to see that MS had this one right. Hope this helps anyone looking to solve that same issue.
Tuesday, November 01, 2005
Well I made the plunge and upgraded to the RTM of VS2005 and SQL Server. I am not sure if this is an issue with everyone, but it happened to me. I decided that a new vpc was in order so I loaded up the VSTA and Sql on the vpc. I installed VSTA first and SQL second. no issues whats so ever. I was glad to see that. I then decided to build another box with VS2005TeamSuite and SQL. Again a new vpc, Team Suite and then SQL. SQL would not load. Seems that SQL thinks there is beta software on the machine and it stops and asks me to uninstall it. Since this was not the case I decided to uninstall TeamSuite and all the residual stuff and start over. This time I loaded SQL first. That went smoothly. Then Team Suite, that also went smoothly, that is until I open TeamSuite and saw that there were no C# or VB templates in there. Looked very similar to the SQL designer and in fact those were the only options that I had. Ok so i decided a reboot might do some “magic”. No way, templates not there. I decided that I needed to try to do a repair on the install. What do you know, the templates were there. All seems to work well now that I have it all setup. Not sure if MS, in there rush to get this product out, may not have tested every scenario, but it was really frustrating especially after I had a smooth install of the VSTA and SQL. Hope this helps others that may have the same issues.
Wednesday, October 05, 2005
Well I just returned from the MVP Summit in Redmond. Man I had a great time. This is my second year as an MVP, but my first summit. I really enjoyed the time with the product teams and my fellow MVPs. Seattle was great! It was nice to see some old faces and to meet a bunch of new folks. I was just trying to take it all in and just enjoy myself, which I did. Hopefully I will get nominated again and will be able to be a part of the event next year.