The Ramblings of Two Microsoft .NET Developers, TFS, and Visual Studio ALM Guys --- "Yes, we are both named Ed."

Granular Security Privileges Not Available in TFS



I don't know how I ever missed it but I was shocked to find that I could not restrict users from branching and merging in TFS Version Control.  Ahhhhhh!!!!

The only security privileges (for Version Control) that are available are:

  • Read
  • Check out (branching, merging, and other similar pending changes fall into this category)
  • Check in
  • Label
  • Lock
  • Revise other users' changes
  • Unlock other users' changes
  • Administer labels
  • Manipulate security settings
  • Check in other users' changes

If you want more information about the specifics for Version Control privileges, check out MSDN at:  http://msdn2.microsoft.com/en-us/library/ms252587(VS.80).aspx

If you are facing this same issue and believe that it should be a feature in the product, help out by voting on the feature suggestion on Visual Studio Connect:  https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=307874

 

Ed B.

Posted in TFS


Uninstalling TFS Power Tools on Vista



So there is a huge problem with uninstalling the TFS Power Tools if you have them installed on Windows Vista.  This becomes particularly a problem when you want to upgrade the TFS Power Tools (which I was trying to do to the version just released a few weeks ago.)

If you try to uninstall the regular way, you get all sorts of errors like:

Error 1722. There is a problem with this windows Installer package. A program run as part of the setup did not finish as expected. Contact your...

Seriously - it sucks.  I even got fed up and finally decided to rebuild my machine at work (this particular uninstall experience wasn't the only reason for rebuilding my work laptop but definitely was the tipping point!) :)

Anyhow, just to save you a lot of problems, open up a command prompt as an Administrator and run:

msiexec /x {C802488F-CB5F-48BE-BBD2-0C0F9E290E63}

Click "Yes" to the next prompt and you should have a clean uninstall!

 

Ed B.

Posted in TFS


Visual Studio 2008 Code Metrics



VS 2008 has added a new feature called Code Metrics (CM). Code Metrics is a way to produce actionable information on a project or solution. When you generate CM on your code it produces such things as Maintainability Index, Cyclomatic Complexity, Class Coupling, Inheritance depth and lines of code.

Here is a brief description of each:
Cyclomatic Complexity: How many paths of execution are in your code. i.e. Enter a Method, That's 1, Hit an If, That's 2, Hit an Else, That's 3. This has a Cyclomatic complexity of 3. Here is more robust definition.
Class Coupling: Indicates how many other classes relate to this class
Inheritance depth: The level of inheritance
Lines of code: Self explanatory, everyone's favorite
Maintainability Index: An aggregate of the above metrics.

Each of these are shown at the assembly level then it allows you to drill down to the namespace, class and method level.

Why is this so cool? Being able to produce and show these metrics allows you to better manage existing code and produce more manageable new code, which in turn pushes you and your team to code to better standards. These metrics are actionable, meaning they enable you to do something with your code by visually displaying the information and giving you the ability to actually assign a work item right from the Code Metrics result window and attach the information to it as well. 

This is only one tool in the suite of tools within VS 2008 that will enable and guide you to produce better, more secure and performant code. Harness the power of them all!

The Code Metrics result window; user adding a work item based off metrics:
image

 

Work item created from Metrics. Notice the how the work item has all the information attached via the "History" tab.
image

 

Ed K.

Posted in VSTS


Icons for Office 2007 File Extensions in SharePoint



If you're using Windows SharePoint Services (which is installed with Team Foundation Server) or SharePoint Portal Server, you don't get to see the file icons for the files with Office 2007 extensions (i.e. docx, xlsx, pptx, etc.)

I'm not sure if they have updated it in the 2007 version of SharePoint Portal Server, WSS 3.0, or in TFS 2008.  If you happen to know, contact me and let me know and I'll update it here.

Anyhow, have you ever wondered how to add new file extensions with associated icons into SharePoint?  Check out the blog site that Alexander Groß manages and he has just how to do it!  It's something that has bothered me enough already and I'm ready to get it resolved!

How To:  http://www.therightstuff.de/2006/12/16/Office+2007+File+Icons+For+Windows+SharePoint+Services+20+And+SharePoint+Portal+Server+2003.aspx

Office 2007 sample documents with icons in SharePoint

Ed B.

Posted in TFS


Visual Studio 2008 Briefing



I recently gave a presentation @ Microsoft on Visual Studio 2008 Team System to a crowd of about 40. The presentation was an all day event where we discussed existing and new features to Team System 2008.

 

Slide Deck:   Tech Briefing.rar (3.41 MB)   
Presenters:   Ed Kisinger, Sogeti  Topic: Architect/Developer 
                   Tony Mocella, Sogeti Topic: Project Management
                   Brent Lintz, Sogeti Topic: Build/Version Control

 

Ed K.



Missing Process Template Editor - TFS Power Tools



Are you missing your process template editor submenu underneath the "Team" menu in Visual Studio?  The new process template editor that is bundled with the TFS Power Tools requires for you already have the Domain-Specific Language Tools for Visual Studio 2005 Redistributable Components installed on your machine.

After you have installed that you should be good to go.  Be sure to uninstall the Power Tools and then install them again to get it to come up.

 

Ed B.

Posted in TFS


My Samsung BlackJack



I switched from Sprint to AT&T as my cell phone carrier recently. Why? Sprint's Customer Service Sucks!... I will leave it at that. So far AT&T is awesome. I picked up the BlackJack as my new phone. This phone is really for the working professional, I got the unlimited data plan so I am able to read email, cruise the Internet, IM, Google Map, monitor my stocks and use my phone as a modem. Life is really great with this phone.

If you are looking for a great work phone, then I would recommend the BlackJack.

 

Ed K.

Posted in


Code Coverage is not enabled for this test run



Have you ever seen this? Scratch your head for hours? What the heck is wrong, all I want to see is my Code Coverage from my tests!!!!

No worries, I get asked this question everyday. Here is how to make sure you instrument Code Coverage during your tests.

Here is what you probably see:

NotWorking 

Go to the "Test" menu on your tool bar and "Edit your Test Run Configurations"

SelectTestMenu

Click on the "Code Coverage" List Item and select the artifacts to instrument:

SelectApp

Now rerun your test(s) and you will have code coverage :)

 

Thanks,

Ed K.

Posted in VSTS


Visual Studio 2008 (Orcas) Where is my Object Test Bench functionality??



image

 

I do not see the "Create Instance" or "Invoke Static Method"..... uggghh I know this happened in VS2005 but it was fixed in SP1.

If I get an answer I will post it up here as an update.

UPDATE: It magically appeared today. Wierd.

 

Thanks,

Ed K.

Posted in VSTS


Tangerine - WPF Exemplar



It's been a while since I last blogged something but that's because I've been hard working on our latest exemplar at Infragistics.  It's a WPF "reference application" and is released.... RIGHT NOW!  So if you want to learn some good techniques about including a WPF application in an enterprise realm, take a look at Tangerine!

It's available both as a ClickOnce deployment, or if you really want to dig in, head to the Full Source Code and documentation download.

Learn Windows Presentation Foundation and NetAdvantage for WPF

Use Tangerine, our first exemplar for WPF, to not only learn WPF and NetAdvantage for WPF but also to learn good practices for enterprise application development across the board. This solution provides a full application, including complete source code, as well as several accompanying papers to help guide you in your application development. In addition to using it as a learning tool, the solution has been architected in such a way as to make it easy for you to reuse it in your own development, either in whole or in part.

Tangerine v1.0 is a WPF-based asset browser application. It has a pluggable architecture so that you can provide any number of different back-end asset providers while reusing the same snazzy UI that's based on Infragistics NetAdvantage for WPF toolset. In our first release, we have supplied an Amazon Web Services' E-Commerce Service provider so that you can use the application to browse and search the Amazon.com catalogue. You can use the links below to both run the application (via ClickOnce deployment) now or download the solution and papers.

To learn more about the solution, check out Introducing Tangerine, which describes the tools we used to build Tangerine as well as an overview of the accompanying papers.

We've got quite a few exciting things and a number of solutions to problems solved.  We've also included 6 white papers to help you learn a little more about the project...

Delve into Tangerine

The best way to really dive into Tangerine is to go ahead and download the complete solution so that you can explore the code. However, for your convenience, you can delve into the accompanying papers online.

  • Introducing Tangerine (PDF/XPS) [~1.2 MB] - The best way to get started learning about the solution.
  • Story (PDF/XPS) [~800 KB] - Tells the story of the application’s development, including key decisions and problems solved along the way.
  • Vision & Scope (PDF/XPS) [~410 KB] - The original, unaltered vision & scope document that started the development process that you can use as an example and to get a feel for how the application changed over time. It is an artifact of the application’s development.
  • Requirements (PDF/XPS) [~650 KB] - The original, unaltered requirements document that can be used as an example of how to do scenario-based requirements w/o falling into the rut of prescribing an implementation. It is another artifact of our development.
  • Architecture (PDF/XPS) [~700 KB] - An architectural overview of the solution—a good starting point before delving into the code.
  • Perspectives on WPF (PDF/XPS) [~370 KB] - Discusses learning WPF from the viewpoint of different developer/designer roles.

How about some screen shots?  This is the home screen:

Tangerine

This is the "Glance View" which uses the xamCarouselListBox to show of browse or search results in an animated fashion:

Tangerine

Last but not least, this is the "List View" which uses the xamDataGrid to show off the same browse/search results but in a tabular data fashion:

Tangerine

Just want to say thanks to the other members on my team in the User Experience Group and to our GREAT designers in the Visual Design Group!  (They're really awesome by the way.  We've got 5 now!)

 

Ed B.

Posted in WPF