January 2008 Entries
My work laptop is a fairly beefy machine. Dual Core Intel T7800 with 4 GBs of ram, running Vista Ultimate 32-bit. Some firmware and OS limitations limit my effective memory addressing to 3.26 GB, but still this machine is no slouch. I could never figure out what about my configuration caused seemingly simple operations like extracting the contents of a zipped file to take SO LONG. I fiddled with this setting and that setting but to no avail. Finally I got fed up and turned to the all-knowing Google. ......
I'm currently working on a WCF/WF project where we've replaced .NET's DataContractSerializer default with the NetDataContractSerializer. The following is from the MSDN help file: The NetDataContractSerializer differs from the DataContractSerializer in one important way: the NetDataContractSerializer includes CLR type information in the serialized XML, whereas the DataContractSerializer does not. Therefore, the NetDataContractSerializer can be used only if both the serializing and deserializing ends ......
Microsoft has extended the deadline for the .NET 3.5 technologies certification exam betas. There are certification tests available for WCF, WPF and Windows Workflow. You can take the exams for free, if you pass they will count towards your overall MS certification. Interested? Read more about it here ......
Any C# project can contain Workflow definitions. They're just code file and/or XAML files. The trick is getting Visual Studio to recognize the project as supporting worfklows for design-time support and compilation. To enable a project for Windows Workflow,: Open the project in visual studio. If you're using source control check out the project file so it becomes writable In the Solution Explorer, right click and select Unload Project . The project tree will disappear from the solution explorer and ......
.NET's XMLSerializer can be pretty stupid. It refuses to serialize an object if its properties are of a derived type. Consider the following example: [Serializable]public classPerson{ public stringFirstName { get; set; } public stringLastName { get; set; }}[Serializable]public classSalesReceipt{ publicPersonCustomer { get; set; }}[Serializable]public classEmployee:Person{ publicDateTime DateOfHire { get; set; }}public classtrythis{ public voidmain() { Employee employee = newEmployee{ DateOfHire = ......
This is the functional equivalent of a "type is anothertype" but for interfaces: public static bool TypeImplementsInterface(Type type, Type interfaceType) { string interfaceFullName = interfaceType.FullName; return type.GetInterface(interface... != null; } ......
The short answer is you can't. At least not without some trickery and giving the serializer some help, and even then it's not pretty. Here's the plain-jane implementation. Note: The following snippet WILL NOT WORK public interface IWorker { string WorkerName { get; set; } } [Serializable] public class ImplementedWorker:IWorker { #region IWorker Members public string WorkerName { get; set; } #endregion } [Serializable] public class WorkToDo { public IWorker Worker; } public void Tryme() { WorkToDo ......
I recently upgraded my mouse and keyboard to the Logitech Wave wireless combo. The keyboard is taking a bit of getting used to (odd location and sizing of the delete, home, and end keys) and the wave design of the keyboards is... different. Overall though I am very pleased with the hardware. The mouse seems responsive and the keyboard is packed with loads of "doohickey" keys for launching media players, my favorite applications, pictures, even Windows media center (which I had never run before getting ......
This is an adaptation of the code from the MSDN help file. I prefer it to calling Thread.Abort() as a first chance approach for terminating a thread. A word of caution: It looks as though the ThreadAbortException skips over any finalization code that might occur inside of the executing thread. For example, the background threaded code was using an IDisposable resource (like a reader/writer), I don't believe the finalizer gets called on the resource, leaving it open. In my example, I've added a flag ......
Just when you think you know all you can know about something.. Ctrl+Plus (on the number pad) will auto resize your ListView columns. Go ahead, try it! You know you want to.
I'm working on a project that involves building a library of string resources. Some of these resource values are small, consisting of a sentence or two, other resources are actually embedded XSL's, and can be quite lengthy. Visual Studio's built-in resource editor might suffice for other resource types, but is painfully inadequate for a large resource strings. My experience with the Visual Studio editor involves waiting 45-70 seconds for the initial data grid of strings to load, and another 30 seconds ......