a trace of thought on...BizTalk Server, Team Foundation Server, AppFabric, etc. RSS 2.0
 Wednesday, 13 May 2009
You see quite a few code samples for retrieving "FullName" (or other properties) from an Active Directory that look like this:
string directoryPath = "WinNT://somedomain/someuser";
string fullName;

DirectoryEntry directoryEntry = new DirectoryEntry(directoryPath);
if (directoryEntry.Properties["FullName"].Value != null)
fullName = directoryEntry.Properties["FullName"].Value.ToString();

One issue with this code is that when "somedomain" actually corresponds to the local machine name (because your are trying to retrieve the "FullName" of a local account), it can take an extremely long time to run. This is probably because the underlying framework is off trying to find a domain controller before falling back to the local security store.

To work around this, consider code that would look like the following when formulating the directory path:

string[] identities = windowsIdentity.Name.Split('\\');
string directoryPath;
// special case needed for "off domain" case.
directoryPath = "WinNT://localhost/" + identities[1];
directoryPath = "WinNT://" + identities[0] + "/" + identities[1];
Using "localhost" will cause the property retrieval to be just about instantaneous, whereas using the computer name (from a local account Windows identity) results in up to a twelve second delay.

Wednesday, 13 May 2009 08:24:59 (Central Standard Time, UTC-06:00)  #    Comments [4] -
 Saturday, 04 April 2009
I had a chance to do a talk on profiling code for Microsoft's "Build Your Skills" event on March 24th in St. Louis (and March 31st in Minneapolis).  I mentioned a utility I'd written for cleaning up performance session files that are generated from URLs (so that only DLL/EXE remain.)  You can find that here.  In addition, you can find the slides here.  All sorts of fun details on profiling terminology, types of profiles, resigning assemblies (or turning off assembly verification), etc.  I'm hoping to record a screen cast of the talk soon...

Fantastic turnout at both locations, and really great questions - thanks to those who attended!

Saturday, 04 April 2009 13:18:10 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Monday, 09 March 2009
I'll be giving a talk for Microsoft's "Build Your Skills" event on March 24th in St. Louis (and March 31st in Minneapolis) on the topic of code profiling.  We'll look at the profiling tools built into Visual Studio Team System Developer, and a few others to boot.  You can get all the details here.  There is a whole slate of great talks planned for the day, so register now if you're in the area...

Monday, 09 March 2009 07:33:47 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Thursday, 06 November 2008

A tool that has been an important part of the BizTalk Deployment Framework has been updated by Loren – see the codeplex project here.

XmlPreProcess is a general purpose tool in its own right for managing configuration files across multiple environments.  The tool has pulled in previously separated functionality (the excellent stuff done by Tom) so that it can consume spreadsheets (that describe environment variations) directly, rather than needing a separate process for that.  Very slick stuff !


Thursday, 06 November 2008 09:29:05 (Central Standard Time, UTC-06:00)  #    Comments [0] -
Deployment Framework | General
 Thursday, 16 October 2008

I’m not able to attend the PDC this year, but its been interesting to watch the definition of Oslo take better shape after watching it for a long while.

I was reading Jon Flander’s post on the topic, where he reiterated the “Oslo as language, model repository, and visual editor aka Quadrant” theme.  The language, known as “M” – draws this quote from John: “visual models are useful for a certain portion of the developer population, but for the most part developers like to write code, which means text.”

Text is good.  I can store text in a version control system, and branch it when needed.  I can merge it with well-known tools later on, and compare the differences between versions easily.  I can have multiple developers work on it at once with a sane reconciliation process upon check-in. 

Even visual models that have a textual representation behind the scenes struggle with these basics…because the text is not first class – it is (often) just a convenient serialization format that is sufficiently opaque for the benefits of text to be lost.

So I’m all for “M”.  It will be fun to watch the vision unfold further. 

Thursday, 16 October 2008 19:25:04 (Central Standard Time, UTC-06:00)  #    Comments [2] -
 Tuesday, 24 June 2008

Jeff Brand has tagged me to answer a few questions on how I got started in this business…

I never do anything personal in this space, so this will be a first.  Here goes:

How old were you when you started programming?

Ummm, my grandfather supplied us with a TRS-80 Model 1 Level 1 (4k, cassette drive) when I was about 8 years old.  It started there, and proceeded through everything Radio Shack had to offer for quite some time.  No artsy Commodores/Amigas/Apples at our house…

What was your first language?


What was the first real program you wrote?

Gosh.  I tried my hand at writing a basic word processor for the TRS-80 – I think I called it TextStar.  I’m sure I lost some school reports as a result.  In that general timeframe were some text-based adventure games, too…

What languages have you used since you started programming?

Hmmm.  Basic and QuickBasic as a kid.  Pascal and Fortran in college.  C and C++ in all my early jobs in this field (along with VB6 to test all those COM components...)  After that, the only language I’ve approached seriously is C#.  (Does BizTalk count?)  I dabbled in a lot of other languages, but haven’t done project work, where you learn all the ins and outs…

What was your first professional programming gig?

As a college intern at CyberOptics, writing all kinds of applications for laser and vision-based inspection systems.  Very fun stuff, and some of the best mentoring I’ve ever had.  And hey, what doesn’t spell fun like writing your WndProcs for Windows 3.0 ?

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

Certainly!  This has been a great industry to be a part of.  I had serious dreams of pursuing music as a career at one time, but as David Chappell once said, regardless of what artistic value you might attach to a given gig, you’re really just there to sell beer.

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

Focus on the practice/art, more so than individual technologies.  Realize that the people you work with are the first order function for success, rather than a given technology choice.

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

I’ve always had the most fun when I’ve had the opportunity to work with a team that is “long-lived”, small, and dangerously focused. 

Often in this industry we work with team sizes (and organizational dynamics) that breed ineffectiveness.  It is amazing how much more apt you are to wake up before the alarm when team productivity is at its peek — and “in the zone” becomes normal.

Who am I calling out?

Loren Halvorsen

Matt Milner

Jon Flanders

Stephen Kauffman




Tuesday, 24 June 2008 10:57:47 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Wednesday, 13 February 2008

“Error creating UDDI entries... Error 285023” – are you getting this while attempting to get the ESB Guidance up and running? 

If your event log has an entry containing “UDDI_ERROR_AUTHTOKENREQUIRED_NOTOKENPUBLISHATTEMPT” chances are you have anonymous authentication enabled for your UDDI virtual directory.  Turn it off, and try again.  If this isn’t the issue (or you are having other UDDI issues while installing the ESB Guidance) try cranking up logging to “verbose” for the UDDI service itself.  (See Administrative tools, UDDI Services, properties on your machine.)  There is generally enough context in there to troubleshoot…


Wednesday, 13 February 2008 09:42:33 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Monday, 11 June 2007
I’ll be doing two talks on Team Foundation Server at the upcoming Minnesota Developers Conference (MDC 2007) on August 22nd, 2007.  One talk will be on release management (branching strategies, deployment, etc.) and another on options for using Scrum with TFS.  Should be a great conference all around – four great tracks and what looks to be a great keynote on BizTalk RFID solutions.
Monday, 11 June 2007 12:47:56 (Central Standard Time, UTC-06:00)  #    Comments [1] -
 Tuesday, 19 September 2006

Late notice (again) but if you can…be sure to join us at 6:00 pm on Thursday, September 21st at the local Microsoft office in Bloomington.  You can register here.

Scott Colestock (me) will be presenting this month on the topic of relating what you learn during performance testing of a BizTalk application to your operations/monitoring strategy.  Should be good fun (really!) and of course we’ll have the usual food and beverages.

Tuesday, 19 September 2006 13:29:51 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Thursday, 19 January 2006

Late notice, I know, but if you can...be sure to join us at 6:00 pm at the local Microsoft office in Bloomington!

Jim Gaudette will be discussing reusability in BizTalk, and hey, food and beverages provided.

Thursday, 19 January 2006 11:43:41 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Thursday, 13 October 2005

I had the pleasure of delivering a short talk at the Business Process Integration & Workflow Conference last week in Redmond.  The whole conference was great, especially meeting quite a few folks in person I'd only conversed with via email.  Being notified of MVP status for BizTalk on Friday was a great cap to the week!

Although the sample I presented during my talk isn't quite ready to release, the slides (on scatter/gather scenarios in BizTalk) can be downloaded here.

Thursday, 13 October 2005 15:46:25 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Tuesday, 13 September 2005

I’ve been involved a bit in getting a local BizTalk user group started – and really looking forward to seeing it get off the ground!  The first time we’ll meet is Thursday, September 22nd from 6:00pm – 7:30pm, at the Microsoft offices in Bloomington.

You can expect the focus to be both on present development and operational issues for BizTalk 2004, as well as early hands-on time with BizTalk 2006.  Food, beverages, fellow biztalkers…gotta love it.

Tuesday, 13 September 2005 08:13:30 (Central Standard Time, UTC-06:00)  #    Comments [4] -
 Thursday, 01 September 2005

Unfortunately, I won't be able to make it to the PDC this year...However, a good colleague by the name of Jordan Terrell has put together this great PST file for the PDC with all the sessions as calendar appointments. (Open as a data file in Outlook, and in the Calendar view, you will be able to select a calendar corresponding to each of the conference tracks.)

Thursday, 01 September 2005 10:30:12 (Central Standard Time, UTC-06:00)  #    Comments [1] -
 Friday, 22 July 2005

Will this be the last place on the web that trumpets the BizTalk 2006 beta?  Likely not, but I did see it in quite a few places today.

Head to http://beta.microsoft.com with your passport and 'BizTalkBetaTeam' for a guest ID, and then wait patiently.  (While you're waiting, consider building out a VPC image with VS2005 beta 2 and, presumably, the latest SQL 2005 bits.  SQL 2000 would be fine as well, as BizTalk 2006 will not require SQL 2005.)

This...is going to be a great release.  Nothing so revolutionary that you can't leverage all the skills that you (or your staff) have already learned.  Yet, there are many, many important feature additions and "rough edges" removed.

Rattling off a few of the new items:

  • In-order delivery for any adapter that supports it (i.e. MSMQ, MQSeries, etc.)  In 2004, only MSMQ/T supported this.  (Of course, a faulty orchestration can break first-in-first-out - more on that in a later post.)
  • The introduction of an "Application" concept for grouping BizTalk assets - which extends to orchestrations, role links, send port groups, send ports, receive ports, receive locations, policies, schemas, maps, pipelines, other resources (e.g. soap proxies),  you name it!  Just as importantly, the management infrastructure understands applications - so health/management views can be narrowed down appropriately.
  • The management infrastructure has been completely encapsulated in an MMC - HAT is largely hidden.  More interesting is that the MMC can manage multiple BizTalk groups - and can do so remotely (by definition...)
  • A packaging/deployment solution that looks good - we'll have more to say about that in the coming weeks!  The developer experience in particular looks to be quite good.  Likely still some value-add to be done on the server side.
  • Ability to route failed messages - and subscribe in your orchestrations.
  • Calling pipelines from within orchestrations (no more loopback adapter or similar solutions needed...)
  • Zoom and expand/collapse-state-preservation within orchestrations.  (So when you collapse that big group or scope shape, it will stay collapsed across close/re-open.)
  • BAM integration with SQL Notification Services.
  • "Operator Role" has been defined to make allocating administration tasks a bit easier from a security perspective.
  • Pipelines can have per-instance configuration - saving you from recreating what were essentially a lot of duplicate pipelines!  (This was possible in 2004, I believe - but not exposed cleanly.)

This will be fun...I look forward to exploring the beta bits (man, the CTP was pretty short-lived...!)


Friday, 22 July 2005 17:09:29 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Monday, 09 May 2005

Just a few notes on what I'll be up to in the next month or two...

Do you use the Deployment Framework for BizTalk?  Or just have general questions on automating BizTalk deployments?  You can attend my session at TechEd 2005 - Friday June 10th, 10:45am to 12:00pm in the BPI Cabana, where I'll be doing a talk on those topics...

I'll also be speaking at the Microsoft DevCon event on my "other favorite" topic, Windows Mobile.  The focus will be on what is new for Visual Studio 2005 in the mobile arena...The conference will also be covering the new Team System offerings, ASP.NET 2.0, and quite a few other VS2005 topics.  Check it out...

Monday, 09 May 2005 08:10:41 (Central Standard Time, UTC-06:00)  #    Comments [3] -
Deployment Framework | General
 Thursday, 24 March 2005

A short while ago, I did a presentation for the Twin Cities .NET user group on log4net.  (You might recall an earlier blog entry where I discussed using log4net with BizTalk 2004...) 

The presentation was not specific to BizTalk 2004 - instead, it attempts to describe why I think the log4net library is so very well thought out.  You can grab it here, if you like.

The last slide references Loren Halvorsen's comparison of log4net and the new Microsoft Enterprise Library Logging Block, which I would recommend taking a look at (the comparison, that is.)  Tom Hollander (among many others!) later weighed in with this piece.

Lastly, 1.2.9 beta of log4net has recently become available (release notes here)....However, my extensions to log4net have not yet been updated to reflect this new drop.  I'll be sure to post when I'm able to update.

Thursday, 24 March 2005 16:07:03 (Central Standard Time, UTC-06:00)  #    Comments [0] -
 Tuesday, 03 February 2004

'Nuff said.

Tuesday, 03 February 2004 16:55:54 (Central Standard Time, UTC-06:00)  #    Comments [0] -
<2016 December>
About the author:

Scott Colestock lives, writes, and works as an independent consultant in the Twin Cities (Minneapolis, Minnesota) area.

© Copyright 2016
Scott Colestock
Sign In
All Content © 2016, Scott Colestock
DasBlog theme 'Business' created by Christoph De Baene (delarou)