<2006 December>
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

On this page...

Search

Links

Member of...


ASP Insiders

MVP Visual Developer ASP/ASP.NET

Enter CodeZone

Blog Categories

Microsoft

Blogroll

Deutsche Resourcen

Management

Sign In
 

#  Thursday, 28 December 2006

I wrote about SVK in Mirror, mirror on the wall and Going local with SVK. Now the release of version 2 has been announced. Note: WIN32 binaries are not yet available.

What is SVK? A quote from the homepage: svk is a decentralized version control system built with the robust Subversion filesystem. It supports repository mirroring, disconnected operation, history-sensitive merging, and integrates with other version control systems, as well as popular visual merge tools.

Thursday, 28 December 2006 17:20:56 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 

Work progressed much faster than I thought, so I can present you today with the next iteration of CCCP, the Code Comment Checking Policy for VSTS / TFS. What is new and improved over yesterday's release:

  • VB.NET code comment verification enabled
  • Code comment statistics tracking implemented, off by default
  • Reference.* excluded (Web Services auto-generated files)
  • Visibility special-casing of class type removed, CodeCommentCheckingVisibility honored
  • Refactoring of CheckCodeComments, CreateInstance added for cleaner construction
  • Unit testing automated and initial tests added
  • Use String.Compare instead of == where potentially case sensitive or culture dependent

This equates to: the policy itself is feature-complete! It now sports the following functionality:

  • Code comment verification for C# and VB.NET using a real parser engine
  • Options to enable verification based on elements (methods, ...) and visibility (public, ...) - note that C# and VB.NET is auto-detected, no need to enable or configure this

Not included is "double-clicking policy violation automatically positions cursor on offending element" (I'd need to take a dependency on VS, and quite frankly have no idea how to implement this using VS' object model). Remaining on the todo list is the MSBuild task for calculating code comment coverage, but this will take a while because firstly I am not really that firm with writing MSBuild tasks, and secondly I will have to spend more quality time with IIS7 in the near future.

Without further ado, here are the goods:

Further information:

Thursday, 28 December 2006 10:48:48 (W. Europe Standard Time, UTC+01:00)  #    Comments [5]

 



#  Wednesday, 27 December 2006

Updates

The idea for this VS Team System version control checkin policy came up in the week before Christmas when I was pointed to one of the shortcomings of TFSCCPolicy, namely that it would flag commented-out methods as missing code comments. That triggered me looking at the source code and I saw that it was using regular expressions.

Why use RegEx when you can use a full-blown parser engine with a DOM? Well, that's what I thought and therefore got in touch with Daniel, technical lead of SharpDevelop. We discussed two potential ways: either going to the metal using NRefactory alone, or go it easy using the DOM and visitors. He even supplied me with a few lines of code to get started - of course for the latter option because I am a lazy coder.

So I set out yesterday to write that checkin policy. To make it really useful, I set up a library project which would contain all the logic, a unit test project for it, plus the actual policy project. The advantage? Well, the logic library can be reused in an MSBuild task, the idea is as follows: calculate the "comment coverage" just like you can do with code coverage and unit testing. (Sorry, but this isn't part of the package just yet)

Given that plan, I of course got around to the policy project as the last one today. When I was pretty much done, I set out to test it for the first time inside VSTS - whoa, what a surprise. It balked almost immediately. You can read my quest for enlightenment here, the main takeaway: don't outsmart yourself when you create a checkin policy which consists of multiple assemblies that don't live in the GAC.

That way I at least got around to deploy my first project using ILMerge. There is only one downside to using ILMerge - the merged assemblies don't retain their version numbers, which can be seen in this screenshot of the configuration dialog (NRefactory should be 2.1):

Aside from this minor glitch, the checkin policy is working fine. What can it do / what can't it do at the moment:

  • It is currently limited to C#. VB.NET will be added later, all I need to do is instantiate the parser. It is as easy as that.
  • Auto-update when files are saved. Someone please hit me with the clue stick.
  • It doesn't exclude all auto-generated files, just the .designer files like TFSCCPolicy. I need to sit down and make a list.
  • Not all elements correctly report the line number.
  • Unit tests - well, only one at the moment. More to follow of course, including the full build automation.
  • Cleanup in the logic library.

Other than that I would love to get feedback from you on this initial version! Simply post feedback on this blog entry.

Finally, the source code (BSD-licensed by the way) and the binaries:

CCCP10_20061227.zip (964.34 KB)

If you are interested in using it only, then please go to the Drop directory. For those interested in the code: start with the solution file in the Source folder (and then go to Setup).

Updates to the code / checkin policy will be linked to at the end of this post, so feel free to bookmark this blog post for your reference on CCCP.

Wednesday, 27 December 2006 15:17:45 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 



#  Friday, 22 December 2006

Today I got around to trying CCNetConfig, which provides a UI for editing CruiseControl.NET's ccnet.config file. Thanks to the SharpDevelop project, I have a rather good test case with a couple of continuous integration plus nightly builds:

Our ccnet.config file is maintained by using Notepad (yes, you read that right). As such, I added a few <!-- --> comments here and there, mostly for pointing me to documentation, blog articles or just disabling a feature temporarily. Therefore, you can already guess my biggest gripe: on saving the file, it is auto-reformatted and all my comments are gone.

Other than that, it is a really good way of editing ccnet.config especially because all properties are easy to edit and you are presented the documentation automatically, no more searching around for tag / attribute help on the Web.  Overall: very useful if you don't spend all day being release manager.

Friday, 22 December 2006 18:00:24 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 

Michael Howard has all the links in this blog entry Online Security Sessions from TechEd IT Forum Available. Topics include: malware cleaning, UAC internals, social engineering, Vista kernel changes, Vista firewall and IPSec enhancements. Which reminds me that the post-conference DVDs should tip up in my mailbox rsn.

Categories: .NET | Security | Training and Conferences | Vista
Friday, 22 December 2006 16:46:01 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 



#  Monday, 18 December 2006

Two weeks ago, during this year's AspInsiders summit, I got ahold of a 1982 (!) copy of "The Soul of a New Machine" at Half Price Books. I still have to decide whether the equally ancient Continental boarding pass DEN-SEA used as a bookmark will be kept too (I guess so), but the book is definitely worth your time - be it for a computer history lesson, or on the "signing up" concept and all other project management topics being touched on (without it being a pm book). The story in itself is more than fascinating, so although old by now, it does come highly recommended.

Categories: Books | this
Monday, 18 December 2006 17:40:42 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 



#  Friday, 15 December 2006

From Express to Team Suite & Team Foundation Server. Get it here

Categories: Team System | Visual Studio
Friday, 15 December 2006 09:46:52 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 



#  Tuesday, 12 December 2006

The most useful utility for deployment (or name your task, like directory comparison) is most decidedly Robocopy, which previously shipped only as part of the OS resource kits. Now with Windows Vista, however, Robocopy comes in the box.

To get up and running quickly, I recommend that you get Robocopy GUI:

It makes getting started with Robocopy a tad easier.

Categories: Administration | Vista
Tuesday, 12 December 2006 21:01:27 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 

This is the firewall settings dialog - much the same as we know it from Windows XP already:

However, once you fire up the management console (mmc.exe), you can add snapins for advanced firewall configuration (ok, IPSec is one of my personal favorites and not necessary to configure the firewall per se...):

Once you have done this, you can now configure the firewall like, well, an administrator would expect - rule based:

Categories: Administration | Security | Vista
Tuesday, 12 December 2006 20:46:50 (W. Europe Standard Time, UTC+01:00)  #    Comments [1]

 



#  Sunday, 03 December 2006

The Feature Specifications for Visual Studio and .NET Framework "Orcas" page has a document on it entitled Get Latest on Check Out. The reason I bring this up is that I had been asked during TechEd in Barcelona at the ATE booth (by a fellow ATE) whether the default behavior for Team Foundation Version Control (TFVC) - make the current version of the file in the workspace editable - can be changed to get latest first, then make editable. 

The problem that prompted the question is that more often than not, a developer is likely to forget to do a Get Latest first and only then start editing. If forgotten, this can lead to unnecessary merge operations. The good news is that the feature will be available, the bad news is that it isn't today.

Categories: Team System | Visual Studio
Sunday, 03 December 2006 04:07:38 (W. Europe Standard Time, UTC+01:00)  #    Comments [0]

 



© Copyright 2017 Christoph Wille

newtelligence dasBlog 2.3.9074.18820
Subscribe to this weblog's RSS feed with SharpReader, Radio Userland, NewsGator or any other aggregator listening on port 5335 by clicking this button.   RSS 2.0|Atom 1.0  Send mail to the author(s)

 
Don't contact us via this (fleischfalle@alphasierrapapa.com) email address.