Alex Hoffman
Perspective on development, management and technology
-
Upgrading 1.x Projects and Friend Assemblies
I'm finding that one new change required on upgrading a project from .NET 1.x to 2.0 occurs when wanting to make an assembly's internals accessible to another assembly i.e. creating a friend assembly.
-
Publishing Your Schedule From Outlook
I’m currently managing a team that uses Lotus Notes. Because I need to use Outlook through my company’s mail server, making my schedule public – so that team members using Notes can see my schedule and schedule meetings with me – was problematic until I realised that I can have Outlook publish my schedule in standard vCalendar format.
-
Sending Better Emails
Like lots of people, I tend to live in world of a gazillion emails and have a reasonable system in place for handling the flood. However, this post at 43 Folders reminded me that I haven't put as much thought into sending mail. I think it is well worth a read.
Amongst the particular things I already like to do with sending emails is clarify the subject of any replies I make. For example, if I'm sent an email with the subject of "Team Meeting", I will modify it to "[Tue 3pm 290505] Team Meeting". Also, I ensure that I always address the person by name, and put my name at the bottom. Makes it so much easier when reading a long email that has gone back and forth.
Now, I'll consider prepending "FYI: " or "RA: " or "RI: " to the subject of every email I send, as suggested in that post. Perhaps the first line of the body should be a legend - "(FYI=for your information, RA=request action, RI=request information)"?
-
Website: Graphical User Interface Gallery
Feeling nostalgic? Check out Guidebook: Graphical User Interface Gallery.
-
Definitions and "Application"
Ralf Westphal has been pondering the meaning of the term "application". I always find definitions important because all too often I find myself talking at cross purposes with others, because we are actually talking about different things. Part of the problem is that one really needs to clarify the perspective or audience the definition is addressing. For example to a .NET developer, a component might be "an object that implements IComponent", whereas, to a general audience a component might be "something that is a part of a larger system or structure".
-
Tips for Mastering E-mail Overload
Stever Robbins has some great Tips for Mastering E-mail Overload (via 43 Folders)
-
MS Longhorn (lite) due to ship in second-half 2006
Update 23-Jul-06: This topic is now out of date.
Update: see also this post by Scoble and the comments to that post relating to deployment.
Microsoft Longhorn is now due to ship in second-half 2006 without WinFS, Indigo and Avalon*. Beta 1 due June 2005. -
Solaris 10 - "a powerhouse monument to human achievement"
Christopher Frazier points out how proud Sun are of Solaris and the new Solaris logo.
-
Quote of the Week
"The difference between theory and practice is that in theory, there is no difference between theory and practice, but in practice, there is." -
System.ComponentModel
With much of the Java and OO world discussing Inversion of Control (IoC) patterns, also dubbed "dependency injection" by Martin Fowler, its worth remembering that the .NET Framework has always included a "service locator" pattern which allows a component to access shared "services".
It can be used to support a pattern which provides a mechanism by which one can loosely-couple components - i.e. eliminate hard coded dependencies between objects. [For those lightweight container aficionados here, .NET's implementation provides for Type 1 (interface) IoC injection of a "Service Locator" into each .NET Component]
It's widely used in the Framework and in tools like Microsoft Visual Studio. For example, it underpins the Windows Forms Designer architecture, and it is the mechanism through which Windows Forms Controls inherit aspects of the underlying Form. You could use it to share say a particular ToolBar across Forms, but it goes much further than that - really to the heart of OO and how one can wire together objects without introducing hard-wired dependencies.