Wednesday, February 16, 2005

David Chappell & Associates

David Chappell & Associates David Chappel does a great job of presenting technology content in a way that is understandable. He writes a lot of papers for Microsoft. This site has a lot of his white papers that you can read through Articles and White Papers

A repository of design patterns. - PatternShare

PatternShare A repository of design patterns. The PatternShare community site brings together software patterns from different authors in one place to show relationships between existing patterns and encourages developers to contribute new ones.

Tuesday, February 15, 2005

Fiddler - NetMon on steroids

http://www.fiddlertool.com/fiddler/ Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet. Fiddler allows you to inspect all HTTP Traffic, set breakpoints, and "fiddle" with incoming or outgoing data. Fiddler is designed to be much simpler than using NetMon or Achilles, and includes a simple but powerful JScript.NET event-based scripting subsystem.

Great .NET UI components

Sandbar Features: * Office 2003 and Office XP style renderers supplied * Pluggable renderer support for full customisation of appearance * Toolbars can be rearranged and redocked to any side of your form * Toolbars can be pulled off the sides and "floated" in any position * Saving and restoring your users' preferred UI layout is easy with two functions * Images are supported by binding to ImageLists or direct Icon support (16x16 through 128x128) * A completely new menubar can be un/redocked like toolbars, and even host controls * Top-level menu items can be shown as context menus on any control * All library objects can be inherited to extend their functionality And at design time... * Automatic menu system conversion can copy appearance, names and even events of existing menus * Buttons can be bound to menu items to cut down on repeated code * In-situ designer support for adding/selecting/configuring toolbar items * Menu designer offers the same ease-of-use as the framework equivalent, with more capabilities * All toolbar and menu items support full drag-and-drop * Configuration of a toolbar's location in a group is made easy DotNetWidgets Docking Suite Document Manager Outlook Bar Wizard"

Monday, February 14, 2005

.NET Development

Links to lots of cool stuff on .NET devlopment on MSDN. Most of them from the MSDN mag .NET Development

Thursday, February 10, 2005

Multi-monitor task bar

This a truly cool app if you have multiple monitors. It allows you to create a seperate taskbar on your 2nd monitor (and even supports a 3rd monitor). http://www.mediachance.com/free/multimon.htm

Wednesday, February 09, 2005

ArcObjects AlterSpatialReference does not work

ESRI ArcObjects If you have attempted to use AlterSpatialReference and it does not seem to work then most probably the file is in use. If you attempted calling it from ArcCatalog, then check to see if the image is not loaded in ArcMap or ArcScene or is being used by some other application. In code, if you attempt to set the spatial reference then you need to set the GeoDatasetSchemeEdit to null (or nothing in VB). Here is an example using VC++ IDocumentPtr ipDoc; ipApp->get_Document(&ipDoc); IMxDocumentPtr ipMxDoc(ipDoc); IMapPtr ipMap; ipMxDoc->get_FocusMap(&ipMap); ISpatialReferencePtr ipSpatialReference; ipMap->get_SpatialReference( &ipSpatialReference ); IWorkspaceFactoryPtr ipWorkspaceFactory; ipWorkspaceFactory.CreateInstance(CLSID_RasterWorkspaceFactory); IRasterWorkspacePtr ipRWorkspace; IWorkspacePtr ipWorkspace; hRes = ipWorkspaceFactory->OpenFromFile(CComBSTR(strResPath), 0, &ipWorkspace); ipRWorkspace = ipWorkspace; IRasterDatasetPtr ipRasterDataset; IRasterPtr ipRaster; hRes = ipRWorkspace->OpenRasterDataset (CComBSTR(strResFileName), &ipRasterDataset); VARIANT_BOOL varCanAlter; if ( (ipSpatialReference != NULL) && (ipRasterDataset != NULL) ) { ((IGeoDatasetSchemaEditPtr)ipRasterDataset)->get_CanAlterSpatialReference(&varCanAlter); if (varCanAlter == VARIANT_TRUE ) { ((IGeoDatasetSchemaEditPtr)ipRasterDataset)->AlterSpatialReference(ipSpatialReference ); } } ipRasterDataset = NULL; //this is important - otherwise Spatial Ref wont be set //reopen raster dataset hRes = ipRWorkspace->OpenRasterDataset (CComBSTR(strResFileName), &ipRasterDataset); //...continue processing the raster

Assigning properties to delegates in C#

Assigning properties to delegates in C# - this cannot be done. So if you wanted to select a property to use at runtime, then you can use a method similar to that shown below. public class Class1 { string s1 = null; string s2 = null; private PropertyInfo _prop; public Class1(int iPropToUse) { if (iPropToUse == 1) _prop = typeof(Class1).GetProperty("PropOne"); else _prop = typeof(Class1).GetProperty("PropTwo"); } public string PropOne { get {return s1; } set {s1 = value;} } public string PropTwo { get {return s2;} set {s2 = value;} } public void SetStringValue(string s) { if (_prop != null) _prop.SetValue(this,s,null); } public string GetStringValue() { if (_prop != null) return (string) _prop.GetValue(this,null); else return "no property set"; } static void Main(string[] args) { Class1 o1 = new Class1(1); o1.SetStringValue("Hello"); Console.WriteLine(o1.GetStringValue()); Class1 o2 = new Class1(2); o2.SetStringValue("World"); Console.WriteLine(o2.GetStringValue()); int i = Console.Read(); } }

using Reflection for runtime calling of methods

See Dynamically Loading and Using Types in MSDN documentation