Gert Drapers, the PM for Database Professionals announced that the first set of Power Tools should be released by the end of this week. With that in mind I wanted to blogging about some of the cool new features. Today's blog is on the new Regular Expression builder.

This allows you to choose your regular expression and and preview the result of the expression! Very cool. Here's a tip to add to the list of regular expressions:
Navigate to the AppData\Roaming Folder (this will be different depending on what O/S you're using - for Vista it's C:\Users\%Username%\AppData\Roaming) and you'll find a file called RegExHelperConfig.xml.
Add a new record (for example, to add something simple like area code) with the following:
<Record Key="21" DisplayName="Area Code" Regex="[0-9]{3}" />
You can also add a new element which shows up when you click the Insert Element button by inserting a record in the syntax element section of this same file. Then you can distribute this file to all of your developers and they'll have the updated contents!
I believe that at the end of september (I didn't get an exact date from Apress) a Second Edition of Pro Visual Studio 2005 Team System will be released with approximately 100 new pages of content devoted just to the Database Professionals Edition of Team System.
Don't get me started on Project... OK. Get me started... I hate how MS Project refers to People, your TEAM, as "Resources". :-( However, I'll keep my mouth shut, since I want to mention a one thing related to Team System. First, if you're entering work items in Project you'll have to enter the "Resource" name as a string, and you won't have a drop down to select from (until you have entered the name at least once). This is in contrast to Excel, where you get a drop down of all the available people to assign the task to. It's frustrating, but there's a reason. Project supports assigning multiple "resources" to a task, while TFS supports only one person on the Assigned To line (by default).
Sela has created a great little plug-in to VS 2005 that will warn you when you're doing a check-out if there are later revisions of any of those files on the TFS server. Download it here.
This week Microsoft released the Visual Studio Team Foundation Server – Project Server 2007 connector as a CodePlex project. The project has been up for a few weeks, but is now being broadly advertised.
The TFS-PS2007 connector is designed to integrate the project management capabilities of TFS with Project Server 2007. It's been developed by the Visual Studio Team System Rangers in response to significant customer demand for a connector solution. Future versions of Team System will have native integration with Project Server, in the meantime this Connector solution is the best way to integrate the two Microsoft products. This solution builds on the previous PS2003 VSTS Connector, published on GotDotNet.
If you're building web applications using Team Build, you'll often get an error saying that the Microsoft.WebApplication.targets file is unavailable. In theory, upgrading to Visual Studio 2005 Team Suite SP1 on the build server should install it for you. But I've now had two cases where it just didn't seem to work. finding it online is pain in the rump, and I'm always forced to find a machine that has it to copy it from. Thus, as a service to the community (and my future sanity), here's a copy for you to download. Enjoy!
Microsoft.WebApplication.targets (4.28 KB)
The browser support out-of-the-box for Team Edition for Testers is pretty minimal. But, you can extend this support by adding your own browsers (common ones you'll probably want to add are IE7, Firefox and Opera and there are others you can probably think of). The files which provide the configuration for the browser types are stored in the C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\Templates\LoadTest\Browsers. You will several files which end in the extension ".browser". These files simply contain the header information a browser sends with a request. The IE6.browser file looks like the following:
<Browser Name="Internet Explorer 6.0"> <Headers> <Header Name="User-Agent" Value="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)" /> <Header Name="Accept" Value="*/*" /> <Header Name="Accept-Language" Value="{{$IEAcceptLanguage}}" /> <Header Name="Accept-Encoding" Value="GZIP" /> </Headers> </Browser>
If you aren't sure of what information to enter in this file, simply open up your favorite browser that isn't in the list and go to http://www.ranks.nl/tools/envtest.html and grab the appropriate values! Use the IE6.browser file as a template. For example, if you wanted to add support to test Opera you might add the following and save it as Opera.browser:
<Browser Name="Opera 8.0"> <Headers> <Header Name="User-Agent" Value="Opera/8.00+(Windows+NT+5.1;+U;+en)" /> <Header Name="Accept" Value="text/html, image/jpeg, image/gif, image/x-bitmap, */*" /> <Header Name="Accept-Language" Value="en" /> <Header Name="Accept-Encoding" Value="GZIP" /> </Headers> </Browser>
There are obviously other values you can place here and some of this will be dependent on your locale, plug-ins you have loaded and other environmental factors. Once you save this file, you should be able to go in and create a new load test and Opera 8.0 will now show up as an option in your browser mix list.
Learning a new language isn't always fun, especially Javascript. Plus, when you're working in one language, it takes context switching to flip to another, even for a trivial task. Nikhil Kothari, an architect on the Web Platform and Tools team at Microsoft, has created something called Script#, which allows you to program in C# while compiling to Javascript/Ajax. ZDnet has a good blog post on the importance of this technology, and a brief comparison with the Google version which compiles Java to Javascript.
FTP Online has started a new Team System column written by me! I'll be writing about virtually anything that comes to mind or that you want me to write about! It's a twice monthly column and I'll be looking for some good article ideas from process and methodology to the technical nuts and bolts. I only have 800 words or less so they will only be point issues and not overly in-depth (unless I do a continuing series type of thing). You can view the first column on Test Driven Development in Team System today.
When you're trying to edit an automated Team Build, you can really get stuck waiting long times for the builds to complete. This can be very frustrating while you're going through a series of running a build, fixing an error, running a built, fixing an error... You can really speed these steps up by following this guidance by Dave McKinstry.
I've posted about this before, however, it's so important I'll repost. If you're trying to create a listener web service for TFS events, don't start from scratch! Use Howard van Rooijen's VS2005 template. It will create the web services, along with the appropriate signatures, as well as convert the events to an object, so that you can effectively use it.
If you'd like to file bugs in TFS using a web page, perhaps for users that don't have VS2005 or the Team Explorer installed, there's a pretty clean example located here. Now, I hear everyone crying out about Microsoft's purchase of TeamPlain and the web access available though that. (The version one of the TeamPlain addin is now freely available for download here.) I'm the first to admit that the TeamPlain solution is likely the best, however, there are times when you need to create your own solution. And the primary reason for that is 'multiplexing', or supporting a large number of users who do not have TFS Client Access Licenses (CALs), by dropping everything into a single database, then having a triage individual, who does have a call, make the final decision to upload to the TFS server. (More on that in a future post...)
Hallelujah! You can now use WSS 3.0 with TFS 1.0 SP1! This is great news!!! For those of you who haven't seen WSS 3.0 as compared to WSS 2.0, you're in for a wonderful treat! WSS 2.0 was missing that one critical tool that greatly assists the agile software development process - the wiki. And WSS 3.0 plugs that hole!
Brian Keller, of Microsoft, has the BETA guidance for WSS 3.0 with TFS SP1 for the port on his blog. Don't miss it! As for right now, I'd recommending holding off on production server deployment until a few rounds of first adopters work out any possible kinks. But if you want to be on that first round...
If you are running Vista and VS 2005, you need to install this SP1 update.
It's referenced by KB929470, and you can download it here.
How many build scripts do you need? There seems to be some massive confusion around TFS Build Scripts, namely, how many a single project needs. If your answer is one, you too have a misunderstanding!  In my experience, one build script is not nearly enough, in fact, I encourage several. Here's the why and how. Why: Visual Studio Team System (VSTS) and Team Foundation Server (TFS) is absolutely brilliant at tracking information related to a series of builds. That information is archived, analyzed and reported in a very useful fashion. BUT, it it reported by the NAME of the build. Thus, if you only have one build type, you can only have one set of reports! And that's no good! You need more. The primary reason for having more than one build type is to get good, easily understandable, accurate metrics.
- First, you need a build script for your continuous integration builds. This script runs every time someone checks in code (with certain restrictions). You likely won't want an aggregate report on these builds, except for rare cases -- there are just too many of them. This build is optional. I'm a fan of CI, but if it's a bridge too far, don't worry. The critical build is the nightly build...
- A TFS Build for your daily / nightly builds. This build runs every night at a set time. This build shows you what was accomplished during that entire day, including quality metrics, code churn, etc. This is one of the most valuable builds, since its reporting is clearly segmented by time -- one build per day. This allows a team to see what is being accomplished on a day to day basis.
- A TFS Build for weekly builds. This runs every weekend. Like the daily build, it will allow the reporting engine to show you what was accomplished that week, and how quality changes from week to week. This allows you to see aggregate changes over a chunkier time sequence, namely weeks.
- An end-of-iteration build. I've found you don't need to go any longer than weeks this for most projects, as far as reporting is concerned. However, you may choose to create a build that runs at the end of every iteration. This gives you metrics on what was accomplished during the entire iteration.
- An on-demand build. This one is used for folks who just need to trigger a build whenever. Unless it's necessary or useful, you may choose to have this build not report anything back to the data warehouse.
How: It's easy! The reason for all these builds was stricktly for the reporting. That means that each of these builds is likely going to be nearly identical! So, all you need to do is create the first build (the hard part), and copy it several times, giving it a different name each time. That's all there is to it! So, go forth and replicate those builds!
If you're upgrading your TFS with SP1 (which you should) and you're using the Workgroup edition, there's a gotcha if you already are using all 5 allowed people. Basically, you'll have to remove on of the users, do the upgrade, then add the user back in. Dave Glover has a good post you'll want to read before you do the upgrade. You can find his post here. Happy upgrading!
Some of you have been beta testing it and, thanks in part to your hard work, it's ready for prime-time ... before the holidays!
Click here to learn more, and download SP1 for Visual Studio 2005, Team Foundation Server, and/or the Express editions. In addition, you can download Visual Studio 2005 SP1 Update for Windows Vista Beta.
Spread the word!
At Accentient, we are always running into clients who need to implement a methodology, and have it checked for 'correctness' as time goes along. With TFS, as it stands, correctness checks need to be made in one of three ways: 1) TFS has a built in checking mechanism. This generally occurs INSIDE a work item. For instance, Field A can only be changed by a Project Manager. This is the BEST mechanism, since you can ensure validity prior to committing the work item changes to TFS. 2) Listen to the available events (Work Item Save, for instance), and react to the event. This is possible when we're doing things like ensuring that every "Requirement" has an associated "Risk" associated with it (mandatory for regulatory compliance in health care research). This is a GOOD mechanism, as the project may go out of compliance, but the violation is noted immediately. 3) Verify the model at periodic intervals, either on demand or scheduled. Here you would simply use automation to query TFS and ensure compliance with the methodology. This is a SO-SO method, since the project goes in an out of compliance throughout the project lifecycle. Some people may claim that Check-in Policies may be used to ensure client-side compliance. That is true, but only to a limited degree. The check-in policies are run only when something is being checked into TFS, not when a work item is saved. Another claim may be that we could use VSIP to extend Visual Studio. This is indeed the case, and would provide the greatest amount of validation, however, in most cases not everyone who interacts with TFS is using VS2005 - some use Project, Excel, Word, Outlook, TeamPlain, TeamPrise, etc. So, what I'd personally like: 1) Events around everything that happens in TFS, including very granular things like a Work Item get. I know this may have performance implications, but a big, hairy warning could be affixed to the VSIP SDK, and we could extend at our own risk. In a vast majority of the cases I work with, the machines used to power TFS are so much in excess of recommended load that I have, literally, gigabytes of memory and maybe 50-75% of the processor to play with. 2) Client side Work Item Check-in Policies. Let me interrupt, on the client-side, a work item save and do validation before I allow it to be committed to the server. 3) An SDK or a prebuild web service, if you will, that I can install that will 'catch' the thrown events, and translate them into something intelligible, like a clean object. Over the course of the next few weeks, I'll be posting more about thoughts of validating and enforcing methodologies using TFS.
During the past couple days I've had the priveledge of working with some of the most knowledgeable and able TFS experts from around the world, and internal at Microsoft. One of those people is Mike Azocar from Software Architects. For some very useful information, check out his blog! It's called, unshockingly, Michael Azocar's Blog!
Here's the install script for TFS, both Dual and Single server install. Thanks to Etienne Tremblay (VSTS MVP) for all his hard work in putting this together, and updating it for SQL Server 2005 SP1. TFSInstallScripts.zip (39.73 KB)
TFS SP1 is out! it takes a while to get on the list, and to start the downloads, but it's worth it! There are lots of improvements in SP1 and I'll be running a few tests against it myself. Remember, it is Beta, so unless you have a very compelling reason, keep it off your production servers. But get in there to play with some of the new features! Especially the ability to host your own WIT controls, so you'll be able to more easily add functionality to the Work Item viewer!
Some other areas of improvement:
- Version Control, WorkItem Tracking and Datawarehouse performance/scale improvements
- "Extranet support"
- WIT Custom Control support
- Support for Office 2007 (Project and Excel - no Sharepoint 2007 support yet), Vista and the new WAP project support
- Detailed Merge History
The release includes fixes for a total of 85 issues! For more information on the release see Brian Harry's weblog posting, and to sign up for the download visit the Microsoft Connect Site.
Good work, Microsoft! 
Microsoft will be releasing an Express version of their XNA development environment free! That means that folks like you and I can create our applications for the XBox 360 (and, simultaneously for Windows) much more easily! That is cool! I expect a development community to spring up with free games, trial games, and all sorts of non-game applications as well. Fun! You can read more about it here.
Oh, my goodness! How cool is this! I just found out about the Microsoft Robotics Studio, and had to blog it... Here's the background, from the site (which you can find here).
The goal of the Microsoft Robotics Studio is to supply a software platform for the robotics community that can be used across a wide variety of hardware, applicable to a wide audience of users, and development of a wide variety of applications.
The Microsoft Robotics Studio delivers three areas of software:
- A scalable, extensible runtime architecture that can span a wide variety of hardware and devices. The programming interface can be used to address robots using 8-bit or 16-bit processors as well as 32-bit systems with multi-core processors and devices from simple touch sensors to laser distance finding devices.
- A set of useful tools that make programming and debugging robot applications scenarios easier. These include a high quality visual simulation environment that uses the Ageia Technologies™ PhysX™ engine.
- A set of useful technology libraries services samples to help developers get started with writing robot applications.
I haven't used it yet. (Too busy with paying work.) But I'll let you know how it goes when I can get my hands on it more completely!
A student pointed this out in class today. The free editions of Visual Studio 2005 Express won't be free forever - only until November 7th, 2006, which is one year from the launch. After that, it's assumed that the Express editions will be $49 each. You can find this information on the FAQ under pricing.
SQL Server 2005 Express edition, however, will remain free, as was promised during the launch events.
Why am I telling you this? So that you'll go download your free copies today! 
One of the main sticking points with many people is the lack of integration between Visual Studio Team System (VSTS) and Microsoft Project Server. Sure, you can indirectly connect the two through a MS Project file, and there's some light integration there. But most people want to use VSTS as part of a complete lifecycle management too... and that means tracking resources across multiple projects, and many across several organizational stovepipes. That's where MS Project Server comes in.
In the future, Microsoft will likely do a great deal of integration between the two, but for right now you'll need to download the Project Server Visual Studio Team System Connector. I haven't used it yet, but am planning on taking a look at it once it's been upgraded to support either TFS RC or TFS RTM. I'll let you know!
Don't miss these chats! They're great for finding out what the latest info is, and how to solve some of your knotties problems!
Team System MSDN Public Chat
Visual Studio Team Edition for Software Developer & Visual Studio Team Edition for Software Testers
When: Wednesday, January 18th 2006 @ 10am PST (1pm EST)
What: Join us to discuss the Profiler, Test Tools (Unit, Generic, Manual), Web & Load Testing, and Code Analysis (FxCop & PREFast). We have questions for you, will answer questions from you, and will chat about the exciting new technology.
Where: http://msdn.microsoft.com/chats
Don't miss the latest articles on MSDN covering one of the coolest new ASP.NET 2.0 features: Member and Role Management.
Peter Kellner, a friend of Rich and myself, from California wrote them. They're chock-full of expert goodness!
If you're working with ASP.NET 2.0 role-based security, give them a read!
Netdesk, a Microsoft Gold-certified training center, has partnered with us to deliver a 5-day end-to-end Visual Studio Team System course from February 27 - March 3, 2006. They'll have it up on their web site soon, but I wanted to let everyone out there know what's coming! I'll be sure to link to the course registration when it's up. But you can contact them now for pricing and more information.
The course will cover all the roles in Team System, and attendees can expect to be knowledgeable in all areas of VSTS, including extensibility and custom reporting. It's an excellent class for both early Team System adopters, and also technical decision makers who are determining whether or not their companies should implement Team System.
Rich just conducted a 3 day Team System training course for CBS in New York City. Congratulations!
While driving yesterday, I was listening to a Podcast by Alistair Cockburn (pronounced, I learned, like Coburn, not like an uncomfortable genital condition). He was discussing Agile development, something I'm very interested in. One of the things he's learned over the years is that "People trump process". Basically, if a process is too confining, restrictive or proscriptive, people will always find a way around the process. In addition, if the process is too chaotic, people will spontaneously create something to add a light structure to their development process.
This has dramatic implications for Team System. One of the onerous tasks in many process tools is reporting work. Developers are forced to not only leave their tool (Visual Studio, Eclipse, etc), but also often forced to enter data that doesn't seem to relate directly to the task of creating good code. In Visual Studio Team System, process is tightly integrated into the development process at the tool level. Thus, it takes far less effort for developers to implement process. In fact, process guidance can be automated into the way Team System behaves, not just in the form of must-read references and directives. This means developers can be exposed to process in a way that often fits their personality. Most developers I know aren't the type of folks who want to read corporate process guidance. They want to solve problems. When a process methodology intrudes in Team System development, forcing devs to write unit tests or run code analysis prior to a check-in, for example, the developer treats the problem differently. Now, although they may moan about it, the problem becomes a challenge, a bug, and they figure out a way around it. Thus, devs are exposed to process periodically, throughout their development lifecycle, as a series of challenges, not as an "all or nothing" read of hundreds of pages of corporate process, procedures and conventions in document form.
This, I believe is one of the strengths of Team System.
As reported on Jochen Seemann's blog, these tools are now available for download. Now the world can get started creating Domain Specific Language Widgets!
Rich Hundhausen and myself just spoke to crowds of over 1,200 people at the Dev breakouts at the Seattle Visual Studio 2005 launch. I provided a Team System End-to-End, while Rich made sure everyone knew how to create enterprise applications using the Architect features of Team System, SQL Server 2005 and some of the cooler features of BizTalk Server 2006.
A huge adrenalin rush! No matter how many times you speak in front of large audiences, it's still a rush!
Photos coming!
I'm proud to be one of the folks acknowledged for making Visual Studio 2005 the thing of beauty that it is.
Congratulations to all recipients!
Here's a good resource on MSDN for troubleshooting ClickOnce deployments.
I've been hearing that there's been some issues with ClickOnce and RTM.
Thanks to a student, Jim Munn, for originally asking the question "When adding a property to an object that uses System.Collections.Generic.List<> the designer doesn't show a relation to the class that the generic collection is typed to. Why not?"
So, let's assume you have two classes: Customer and Order
Notice how, by default, the association is not displayed between the Customer and Order class. By right-clicking either the mOrders field or Orders property and selecting Show as Collection Association, the association will be visualized: 
A friend of mine sent me this link. It's a pretty good reference page on the core keyboard shortcuts.
I've been frantically working for the past few days on an important Team System demo using the latest bits.
Folks, we've come a LONG way from Beta 1! And we still have a ways to go! The UI is much smoother, and more accessible, however, some things still aren't working efficiently. Web tests aren't consistently reliable. Or maybe it's just that the built-in web server isn't reliable. But it's been a MAJOR frustration! The workaround is to deploy the web site to IIS to do ALL your tests! This is a best practice anyway, but once you have it out on IIS, it becomes very difficult (impossible?) to run code coverage analysis on your web code!
Once I'm done with this beast, I'll be sure to post all the tips and tricks I've learned!
If you've been trying to find GssUtil.exe so you can script the new Beta 3 release of TFS, you won't be able to! Instead, you'll use the new TfsSecurity. Luckily, adding groups and individual users uses the same command line (except of course, the name of the EXE), so it's a simple search and replace! So, in short, there's been a name change, GssUtil.exe is now TfsSecurity.exe (at least for the purposes of roles and logins).
Happy TFSing!
If you haven't played with the new Code Snippets features in Visual Studio 2005, you're missing out! It makes it easy to keep an entire library of useful code snippets within Visual Studio 2005, and at the ready to help with any programming assignment. Integrated Intellisense invokes them automatically.
In anticipation of this feature, my fellow RD J. Michael Palermo IV has created www.gotcodesnippets.net which will become the uber repository of such snippets. It will launch officially at PDC.
|
Copyright © 2010 Richard Hundhausen. All rights reserved.
DasBlog 'Portal' theme by Johnny Hughes.
Pick a theme:
|
|