Hi,
from now on I will be blogging from http://blog.u2u.info/DottextWeb/peter/
I would like to thank dotnetjunkies for enabling me to blog through their site but since we started our own blog at U2U (see www.u2u.info for more blogs) I am moving there.
Peter
Ok, first week of my holiday is over, and I've read some...
First one was "The Davinci Code" by Dan Brown (ISBN 0-552-14951-9). Great read, I couldn't stop reading it. Nothing with .NET of course, not even BizTalk :), but still grappling; a real thriller filled with codes and some nice parts about Da Vinci (you wouldn't think, would you?). You have been warned, only read it when you have time to spare!
The other one is called "Eats, Shoots & Leaves" by Lynne Truss (ISBN 1-86197-612-7). This is a non-fiction book about punctuation. We all known where to put our commas, semicolons and quotes in our code but do we know where to put it in our english? Well, I certainly don't. This books is an unofficial guide to writing correct english, and reading the back of the book, which is about a panda by the way, explains a lot. Putting a comma in the wrong spot can give a sentence a completely different meaning; that is why this book will have you laughing on the floor and you will learn a lot in the same time. Great!
Another one I have been reading is "Patterns Of Enterprise Application Architecture" by Martin Fowler & co (ISBN 0-321-12742-0). This book earns a place next to GOF. That should be enough to get you running out the door to get a copy.
Of course I also did some other things, real holiday things, like driving to Spain, read, swim, sleep, play with the kids, visit Barcelona (had to see the TEMPLE EXPIATORI SAGRADA FAMÍLIA) since I have never been there (true!).
Ok, two more weeks of holiday to look forward to...
Ever wondered why links in the BizTalk mapper can be labelled (BizTalk Server 2004 of course :) )?
Well, create a new map in BizTalk and add the string concat functoid. Drag and drop a couple of links from your source fields to the functoid.
Now open the functoid parameter dialog. You will see your source fields as xpath expressions, no problem for a techie but still not that readable.
If you label your links they will appear in the functoid parameter dialog, making the arguments of your functioid easier to read. Cool.
Now let's look at an example that makes labelling your links really useful!
Remove the source links of the string concat functiod, and add a couple of uppercase functoids as inputs for your concat functoid by linking them.
Now open up the concat functoid's arguments dialog. You will see three arguments, each as "Uppercase". Just think about opening up an existing map and trying to find out which argument will be appended to another?! No way.
Now label the links between the uppercase and concat functoid. Open the arguments dialog box. Now you can see which argument will be appended first, etc... Cool!
Hi,
a couple of days ago someone asked me how to keep several assemblies part of the same solution in sync. Some time ago I used the following technique:
Create a new assembly, for example called Build, with a class called VersionInf
namespace BestPractices.Build
{
public class VersionInfo
{
public const string Version = "1.0.0.0";
public const string Company = "SomeCompany";
public const string Product = "MyQualityProduct";
public const bool DelaySign = false;
public const string KeyFile = @"c:\SN.snk";
}
}
After building this assembly you can use it in other assemblies' AssemblyInfo like this (removed all comments to save space):
using System.Reflection;
using System.Runtime.CompilerServices;
using BestPractices.Build;
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany(VersionInfo.Company)]
[assembly: AssemblyProduct(VersionInfo.Product)]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: AssemblyVersion(VersionInfo.Version)]
[assembly: AssemblyDelaySign(VersionInfo.DelaySign)]
[assembly: AssemblyKeyFile(VersionInfo.KeyFile)]
[assembly: AssemblyKeyName("")]
Because constants are copied to the dependent assembly you actually only need the build assembly at-compile time.
Now each assembly will have the same version, keyfile, etc... If you want to update the version (like in a daily-build scenario) you only have to update the VersionInfo.cs file.