How to detect installed CLR versions and how they are used…

June 2nd, 2009 2 comments

It has been a while since I posted anything on my blog. Sorry for keeping you on hold How to detect installed CLR versions and how they are used... icon wink ! I think the blog will be filled with some information shortly, since I am still overthinking all the great stuff I saw on Tech-Ed North America a couple of weeks ago (first I had to overcome the jetlag, then the weather in The Netherlands, etc. etc. How to detect installed CLR versions and how they are used... icon smile ). Enough nonsense for now!

While attending a session by Scott Hanselman on everything new in .NET 4.0 he showed a wonderful small tip, not only useful for the few of us already working on Visual Studio 2010: when working in the VS.NET Command Prompt, there is a small but useful command called ‘CLRVER’. It shows all .NET versions installed on your computer. Also, as an addition to this command, you can show active runtime processes using the -all switch. Nice piece of code! Enjoy!

Delete workspace from no longer existing TFS

March 27th, 2009 Comments off

A week ago I started to use a new TFS server (TFS 2008). The old TFS server got phased out yesterday after moving all sources to the new TFS server. Doesn’t sound like a problem, does it? However, I forgot to remember my laptop: my old workspace was still in there, but to delete a workspace the normal way the TFS server should be available. At itself, this is still not much of a problem, however: when you would like to map your new source control folders to the old ones on disk, this is not possible since the old workspace is still mapped to that location. Arghhh!!!

Luckily, there is a tf.exe command tool switch (discussed a few minutes ago in my previous blog post) to cope with this problem: use ‘tf workspaces /remove:*’ and all cached workspaces will be gone! Problem solved!

TFS command line (tf.exe)

March 27th, 2009 13 comments
Now and then in my life as a lead developer/architect, I have to cope with TFS the ‘hard’ way: the user interface is not always as complete as one would want it to be. One of the greatest tools Microsoft has delivered us is tf.exe, a command line tool to do almost everything impossible with the user interface. However, tf.exe comes with one big draw-back. It does not offer a complete help. Just minutes ago I discovered the documentation I need at one Microsoft guy’s (Noah Coad’s) blog (http://blogs.msdn.com/noahc/archive/2007/01/22/real-tfs-command-line-help.aspx).
 
Just to be sure the help will never disappear, I printed the entire help file below, as well as did I include the help documents as text files.
 
I hope this helps you too.
 
tfhelp.txt (120 characters)
tfhelp.txt (80 characters)
 

COMMANDS

Add        tf add itemspec [lock:none|checkin|checkout] [/type:filetype]

              [/noprompt] [/recursive]

Branch     tf branch olditem newitem [/version:versionspec] [/noget] [/lock]

              [/noprompt] [/recursive]

Branches   tf branches [/s:servername] itemspec

Changeset  tf changeset [/comment:comment|@commentfile] /s:servername

              [/notes:("NoteFieldName"="NoteFieldValue"|@notefile)] [/noprompt]

              ([/latest]|changesetnumber)

Checkin    tf checkin [/author:authorname] [/comment:("comment"|@commentfile)]

              [/noprompt]

              [/notes:("Note Name"="note text"|@notefile)]

              [/override:reason|@reason] [/recursive] filespec …]

Checkout   tf checkout|edit [/lock:(none|checkin|checkout)] [/recursive]

              [/type:encoding] itemspec

Configure  tf configure pathtoproject /server:servername

Delete     tf delete [/lock:(none|checkin|checkout)] [/recursive] itemspec

Difference tf difference itemspec [/version:versionspec] [/type:filetype]

              [/format:(visual|unix|ss)] [/ignorespace]

              [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

           tf difference itemspec itemspec2 [/type:filetype]

              [/format:(visual|unix|ss)] [/ignorespace] [/ignoreeol]

              [/ignorecase] [/recursive] [/options:"options"]

           tf difference [/shelveset:[shelvesetowner;]shelvesetname]

              shelveset_itemspec [/server:serverURL]

              [/type:filetype] [/format:(visual|unix|ss)] [/ignorespace]

              [/ignoreeol] [/ignorecase] [/recursive] [/options:"options"]

           tf difference /configure

Dir        tf dir [/s:servername] itemspec [/version:versionspec] [/recursive]

              [/folders] [/deleted]

Get        tf get itemspec [/version:versionspec] [/all] [/overwrite] [/force]

              [/preview] [/recursive] [/noprompt]

Help       tf help commandname

History    tf history [/s:servername] itemspec [/version:versionspec]

              [/stopafter:number] [/recursive]

              [/user:username] [/format:(brief|detailed)] [/slotmode]

Label      tf label [/s:servername]  labelname@scope [/owner:ownername]

              itemspec [/version:versionspec]

              [/comment:("comment"|@commentfile)] [/child:(replace|merge)]

              [/recursive]

           tf label [/s:servername] [/delete] labelname@scope

              [/owner:ownername] itemspec [/version:versionspec]

              [/recursive]

Labels     tf labels [/owner:ownername] [/format:(brief|detailed)]

              [/s:servername] [labelname]

Lock       tf lock itemspec /lock:(none|checkout|checkin)

              [/workspace:workspacename] [/server:serverURL] [/recursive]

              [/noprompt]

Merge      tf merge  [/recursive] [/force] [/candidate] [/discard]

              [/version:versionspec]

              [/lock:none|checkin|checkout] [/preview] [/baseless] [/nosummary]

              source destination

Merges     tf merges [/s:servername] destination [/recursive]

Permission tf permission [/allow:(* |perm1[,perm2,…]]

              [/deny:(*|perm1[,perm2,...])]

              [/remove:(* |perm1[,perm2,...])]

              [/inherit:yes|no] [/user:username1[,username2,…]] [/recursive]

              [/group:groupname1[,groupname2,...]]

              [/server:servername] itemspec

Properties tf properties [/recursive] itemspec

Rename     tf rename [/lock:(none|checkout|checkin)] olditem newitem

Resolve    tf resolve itemspec [auto:(AcceptMerge|AcceptTheirs|AcceptYours)]

              [/preview]

              [(/overridetype:overridetype | /converttotype:converttype)]

              [/recursive]

Shelve     tf shelve [/move] [/replace] [/comment:(@commentfile|"comment")]

              [/recursive] shelvesetname[;owner] filespec

           tf shelve /delete [/server:serverURL] shelvesetname[;owner]

Shelvesets tf shelvesets [/owner:ownername] [/format:(brief|detailed)]

              [/server:serverURL] shelvesetname

Status     tf status itemspec [/s:servername]

              ([/workspace:workspacename[;workspaceowner]] |

              [/shelveset:shelvesetname[;shelvesetowner]])

              [/format:(brief|detailed)] [/recursive] [/user:(*|username)]

Undelete   tf undelete [/noget] [/lock:(none|checkin|checkout)]

              [/newname:name] [/recursive] itemspec[;deletionID]

Undo       tf undo [/workspace:workspacename   [;workspaceowner]]

              [/s:servername] [/recursive] itemspec

Unlabel    tf unlabel [/s:servername] [/recursive] labelname itemspec

Unshelve   tf unshelve [/move] [shelvesetname[;username]] itemspec

View       tf view [/s:servername] [/console] [/noprompt] itemspec

              [/version:versionspec]

WorkFold   tf workfold localfolder

           tf workfold [/workspace: workspacename]

           tf workfold [/s:servername] [/workspace: workspacename]

              repositoryfolder

           tf workfold [/map] [/s:servername] [/workspace: workspacename]

              repositoryfolder|localfolder

           tf workfold /unmap [/s:servername] [/workspace: workspacename]

              [/recursive] (repositoryfolder|localfolder)

           tf workfold /cloak (repositoryfolder|localfolder)

              [/workspace: workspacename] [/s:servername]

           tf workfold /decloak (repositoryfolder|localfolder)

              [/workspace:workspacename] [/s:servername]

Workspace  tf workspace /new [/noprompt]

              [/template:workspacename[;workspaceowner]]

              [/computer:computername] [/comment:("comment"|@commentfile)]

              [/s:servername]

           tf workspace /delete [/s:servername]

              workspacename[;workspaceowner]

           tf workspace [/s:servername] [/comment:comment]

              [/newname:workspacename] workspacename[;workspaceowner]

Workspaces tf workspaces [/owner:ownername] [/computer:computername]

              [/s:servername] [/format:(brief|detailed)]

              [/updateUserName:oldusername]

              [/updateComputerName:oldcomputername] workspacename

 

ITEMSPECS

  Can contain wildcards *, ? and #

  Can contain relative path parts . and ..

  Can reference file system or UNC paths mapped to a workspace or server

  paths (which start with $/). You can usually specify more than one

  file separated by spaces for an itemspec (useful for edit, add, delete

  commands)

 

VERSIONSPECS

  Date/Time         Dmm/dd/yyyy

  Changeset number  Cnnnnnn

  Label             Llabelname

  Latest version    T

  Workspace         Wworkspacename;workspaceowner

 

ALIASES

  /changeset  /G     /noprompt   /I

  /comment    /C     /owner      /O

  /computer   /M     /recursive  /R

  /delete     /D     /server     /S

  /force      /P     /slotmode   /X

  /format     /F     /template   /T

  /help       /?,/H  /user       /U

  /lock       /K     /version    /V

  /login      /Y     /workplace  /W

  /newname    /N    

HTML rounded corners without images and div nesting

February 18th, 2009 5 comments

Yesterday I had troubles to get an ASP.NET control to work with rounded corners in various browsers. IE and Firefox operate slightly different from each other, and to get it working (using ASP.NET themes) was quite a pain in the ass. Besides, it is not cool to have the obligation to change 4 images per control every time the design team has the bright idea to change website colors for some very good reason.

Luckily, at the end of the day, I discovered DD_roundies, a Javascript library perfectly taking care of my needs. Only in Opera this functionality does not function as wanted (no rounded corners), but that’s an issue Drew Diller is trying to address, according to his website. I definitely would suggest you to try for yourself if you would like an acceptable solution to the problem described hereabove.

The only thing that does not currently stop bothering me: unfortunately it is (still) not possible to have some javascript in an ASP.NET theme. Would that be possible, the solution would be perfect (for me). Perhaps somebody found a solution for me HTML rounded corners without images and div nesting icon razz ?

Categories: asp.net, html

IE Tab – my new best Firefox plugin

February 16th, 2009 Comments off

Hi there!

Just seconds ago I discovered a Firefox plugin that cause me to shout ‘wow’! It’s called IE Tab. What it does?! The extension is derived from the famous extension IE View, but instead of opening a new IE window, this extension opens the IE window in Firefox. Sounds great, not (consider Exchange 2003 and Exchange 2007 just to mention something IE Tab   my new best Firefox plugin icon smile )?! The extension’s website is located here (or you can download it directly from the Mozilla website: click).

Cheers!

Categories: web browsers