Nov16

December IndyTFS Meeting - 2010 Release

 

Just thought I"d mention in case there are those out in Indy...

 

Lap Around VSTS 2010

Presented by Paul Hacker

This month we are going to be talking about many of the new features of Visual Studio 2010.

Paul is a Principle Consultant at Polaris Solutions, LLC in Indianapolis, with a passion for Team System. He has been working with the product since mid-2005. Paul has implemented Team System/TFS in numerous organizations. When not spending time with his family, you can find him presiding over the Indianapolis TFS SIG, Podcasting on Radio TFS, or writing tools to enhance Team System.

8:00-9:00 PM Thursday December 11th 2008 immediately following IndyNDA

The Gene B. Glick
Junior Achievement
Education Center
7435 North Keystone Ave
Indianapolis, IN 46240

Map and Directions

Thanks,

Published: Nov-16-08 | 0 Comments | 0 Links to this post

Oct07

VSTS Overview Webcast

 

A great introduction to Team System 2008 is being presented by our very own Paul Hacker.  See details below.

 

 
Microsoft Visual Studio Team System 2008 Overview
Recommended Audiences: Project Managers, Solution Architects, Software Developers, Developers, Architects

In this web-cast, we expose you to many of the new features in Microsoft Visual Studio Team System 2008. Join us for an understanding of how Visual Studio Team System 2008 can help your organization with full application lifecycle management (ALM). See how to enable your team to collaborate and communicate to ensure software quality and provide visibility into the development process.

Click here to register: https://www.clicktoattend.com/register.aspx?eventid=132384

Event Code: 132384

10/23/2008

3:00 PM - 4:30 PM

Welcome Time:
10/23/2008 2:45 PM Eastern Time

Connection information for this Webcast will be sent in your event confirmation.


About Polaris Solutions, LLC

Polaris Solutions, LLC is an Chicago based organization focused on Team System and Team Foundation Server training, implementation, and customizations along with Process Customization consulting. Polaris also offers custom windows, web and database development services. Visit them on the web at www.polarissolutions.com

Published: Oct-07-08 | 0 Comments | 0 Links to this post

Oct07

Radio TFS

I just wanted to plug a great podcast online (you can subscribe with your Zune of course), called Radio TFS.  Hosted by two excellent TFS MVP's (Mikey Gousset and Paul Hacker).  I've known Paul for a bit, but just started getting into Radio TFS. 

 

The podcast is great, it contains something for everyone.  It really is a great place to see the newer developments of Team System, plugs for great 3rd party tools, as well as basic information about Team System.  So - please check this out: http://www.radiotfs.com/

Published: Oct-07-08 | 0 Comments | 0 Links to this post

Oct05

Enterprise TFS Management

This post applies to the 2010 release - which is going to be very exciting for a number of reasons.

 

Sure we install TFS in the enterprise today, TFS does an amazing job of an enterprise SCM + a lot of other features.  Sometimes issues happen both technical and business in nature with TFS in larger scales.  And to be clear, TFS already scales quite well (check out Brian Harry's blog on the statistics of TFS within Microsoft and its usage).

 

A few issues today become evident:

- No ability to scale "out" with the application tier.  Today we can have a hot standby of course, but having a load balanced solution is today not possible.

- Project meta data (i.e. one project needs a new work item type) - that process template is visible to anyone that can create team projects.

- No project (team) isolation within the enterprise.

- No management tools that can today bring all of the enterprise configuration for TFS into one place.

 

With the Rosario (2010) release, much of this looks like it's going to be solved.  Very exciting stuff from Mario.

 

http://channel9.msdn.com/posts/VisualStudio/Enterprise-Team-Foundation-Server-Management-with-Mario-Rodriguez/

Published: Oct-05-08 | 0 Comments | 1 Link to this post

Aug04

Team Test - Selective "Dependent Requests" during Load Tests

I haven't found a lot of blog postings about this topic so I thought it would be useful to have this point out there.  When a web test is run, it makes a request and then asynchronously - it will follow and request images, stylesheets, JavaScript external files and download them.  During a load test, making these requests (especially back to the server you're monitoring) are indeed important to keep.  What if you have dependent requests (images/scripts) to external servers that you do not care as much about?  And what if those requests are failing (especially on a network for load testing) that doesn't allow external requests through.

 

You can do a few things when you want to ignore those requests:

  1. 1.) Set "Parse Dependent Requests" property to false in the request properties screen.
  2. 2.) Use a Web Test Request Plugin which can ignore selective requests.

 

Option 1 may work just fine especially if you don't have a lot requests coming back to your servers and mostly have the external references that you do not care about.  Option 1 may be a very bad thing - especially if your dependent requests are in fact (in large part) going back to the server you're monitoring (you want those requests to be made still).  But if you want to just ignore one or two of many - Option 1 may not be the best choice to make.

 

Option 2 - this requires very little code and can save a lot of time and help to ensure your load test statistics are accurate.  The downside is that it's a little bit extra code that you have to support.  It's very trivial though, I should add.

 

How the Web Test Request Plugin Fits In:

Before getting into the code, let's first have a quick look at where events are fired and how you can use the web test request plugin (at least from the perspective of this goal).  There are two events that you can override in a Web Test Request Plugin:

        • - PreRequest

        • - PostRequest

 

image

 

In the above flow, the Parse Dependent Requests happens after a response is returned from the web server.  Thereafter, Web Test will asynchronously make those dependent requests.  Therefore, below overlayed with the process is where you can inject functionality through the web test request plugin:

image

 

Therefore, the PostRequest method is the place to perform our override.  This will happen before the dependent requests have been made to the server, but after the first request has been made.

 

Below is some simple code with this process included.

class DependentRequestsFilter : WebTestRequestPlugin
    {
        private string _excludeStrings;

        public string ExcludeStrings
        {
            get { return _filter; }
            set { _filter = value; }
        }

        public override void PostRequest(object sender, PostRequestEventArgs e)
        {
            List<WebTestRequest> requestsToRemove = new List<WebTestRequest>();
            foreach (WebTestRequest request in e.Request.DependentRequests)
            {
                foreach (string excludeUrl in ExcludeStrings.Split(new char[] { ','} ))
                {
                    if (request.Url.ToLower().Contains(excludeUrl.ToLower()))
                    {
                        requestsToRemove.Add(request);
                    }
                }
            }

            foreach (WebTestRequest requestToRemove in requestsToRemove)
            {
                e.Request.DependentRequests.Remove(requestToRemove);
            }
        }

 

A few things to point out.  If you make a public property on your plugin, you'll see that when you add that plug into your web test.  The Visual Studio Property window recognizes it and allows entry.  Secondly, notice that I split the ExcludeStrings with a comma... that's to allow multiple filters.  Sometimes in web tests, you may have 10s or 100s of requests and several that need to be filtered out.  This is of course for demo purposes only, but it could be a little more robust with a check for null in there.

Published: Aug-04-08 | 177 Comments | 17 Links to this post

Jul17

My Software Development Meme (or tag I am next)

 

How old were you when you started programming?

I was about 11 years old on my family's new PC when I first did some "programming" - which I'd like to characterize as "programming-light" - because it was attempting to fix our autoexec.bat file that I had previously broke by saving it with WordPerfect!  Had to learn edlin fast!

 

What was your first language?

QBasic was the first language that I had written anything in (or attempted to write stuff in).  Now - since playing around with it - I had to learn other older ones.

What was the first real program you wrote?

Well, I was captain of my high school debate team and we really needed better software for organizing our debate tournaments.  I attempted to develop a ranking, scheduling, and bracketing algorithm to do this.  It was an ugly program written in Microsoft Excel (VBA) and rather than doing with this math and a real algorithm, I heavily used a random number generator.  This program was not successful until college when I was in the CS department.

 

What languages have you used since you started programming?

Scheme, Lisp, C, C++, VBA, QBasic, GWBasic, Visual Basic, Visual Basic.NET, VbScript, C#, SQL, T-SQL, PL/SQL, MS-DOS Batch, Bash, Java, Assembly, PowerBuilder, JavaScript, XML, HTML.

What was your first professional programming gig?

An Internet startup company that I joined before they had customers and stayed on until they were clearly going to make it - (great management, great team, and a real business plan).  I was brought in - at first - to write comments in all of the code that had been previously developed.  I ended up staying on to develop at that company (including data modeling, t-sql, vb6, mts, com+, xml, and a little .NET).

 

If you knew then what you know now, would you have started programming?

Absolutely.

 

If there is one thing you learned along the way that you would tell new developers, what would it be?

The way to move "up" in the world is not to always become a project manager.  I know those people look "large and in charge" and they do play a vital role.  Find yourself a great role model - if you like being technical - find a great technical role model and learn as much as you can.

 

What's the most fun you've ever had ... programming?

Programming... definitely my first application with ASP.NET - which was a web application to parse dependencies in SQL Server 7.0.

 

Who am I Calling Out?

Jim Morrison

Published: Jul-17-08 | 159 Comments | 0 Links to this post

Jul06

Welcome

Well, it's July and I'm starting up my blog again.  I know it has been awhile and on my old blog - I don't think I did a great job staying current on it.  A new company, a new blog - so now I'm going to be largely writing about that which interests me: Team System, SharePoint, and wherever the two shall meet.

Published: Jul-06-08 | 0 Comments | 19 Links to this post