Active Directory mISV

Tuesday, December 13, 2005


So my head has been bursting with ideas. New product ideas, new marketing ideas, little tweaks I want to make to the product I'm currently working on, new personal projects. The result has been small progress on a lot of projects. So now I have to refocus. Repeat after me:(sorry I'm typing to myself for a minute...Please stand by...) Finish the installer, Finish the installer, Finish the installer. Okay now that I go that out of my system. I have a new plan for my morning work. The night before I am writing down my goals for the next morning. This way I will be totally focused on the task at hand and not tempted to work on other things. Don't get me wrong all the other things are important and need to get done, but I need to finish that pesky installer first so I can get the beta copies out and announce the product.

In the spirit of being unfocused. :) I claimed the lense for Active Directory on last night. I've started modifying it the way I want it, but haven't published any of the changes yet. So if you have any favorite Active Directory resources for developers or admins let me know.


Saturday, December 10, 2005

The Transform part of my MSI plan

Since I decided to use a msi based installer I've been thinking about how to handle the transform file I wanted to make available to the user. Since the installer is pretty simple, ie only two choices to make, I decided I'd just use the Windows Installer API to write a little utility to allow the user to input their responses and generate the transform file. I'm planning to distribute this utility embedded in the msi, so it will have to be installed once manually to get the utility, which isn't a big deal since I decided to not allow the network portion of the install to happen when using the transform file.

I finished the last custom action dll today, now all that is left for the installer is to add some nice text, a EULA, and test the install on all the supported platforms. Oh, and don't forget to test the uninstall and rollback functionality. I hate installers that mess that part up.

Thursday, December 08, 2005

The Day Job

Well I didn't do any work on this microisv on Tuesday or Wednesday morning. At 4:45 pm on Monday, the email server at work died. So I got to stay until 2 am fixing it, then came back in at 6 am to make sure the early users didn't have any problems. I'll spare you all the blow by blow of fixing the problem unless you ask for it.

In more cheery news, I'm about half done with the last component of the installer a custom action to make some changes to Active Directory. It is the only part of the product or installer that makes any changes to Active Directory so I'm being extra careful with it. It looks like I'll stay on target for having the installer done by the 15th. It is quite frustrating to only have 90 minutes of coding time a day.


Sunday, December 04, 2005

Dumb time wasters

So, I had some free time earlier this afternoon and decided to work on a dll I need for a custom action for a MSI install package. In the past I've created spaghetti code because I was learning an interface and coding it for production at the same time. Then I had to go back and try to refactor the mess later. So this time I decided to only add the new code as a separate project just to learn from then I would write the production code afterward.

I fired up my code editor and started coding the test code. The first function was a very simple bit of code to get the RootDSE information from a domain. It is standard code that I've used dozens on times. So I compile the code and upload it to my test platform where...It crashes Hmm. That's weird, so I spent the next hour staring at these few lines of code. "Maybe my test platform has a problem," I thought. So I then wrote equivalent code in VBScript. It worked perfectly. So out of frustration I started looking on the web at the possibility of using a VBScript as a custom action in an MSI package. Turns out it is doable, but not advisable. That was a nice time wasting diversion. Back to staring at the C++ code. Now after an hour the problem jumps out at me. It was dumb. ADSI(The interface for talking to active directory) is COM based and I had forgotten to call CoIntialize. Now I can actually start working on the code I want to work on, but oops times up. I have other weekend obligations to got take care, so I just wasted all my development time this afternoon.

No one else was in the room, but it didn't stop me from being embarrassed.