Friday, November 07, 2008

Microsoft tools for the little guy

hammer

As a Microsoft fan and a former MicroISV wannabe I've been very interested in two recent developments. Since Amazon EC2 was introduced I have been wishing that you could use it to run Windows servers. Note that I don't have any reason to run a Windows server in the EC2 cloud, I guess its just a jealousy thing towards those Linux guys with there cheaper computing power. Well my day finally arrived a few weeks ago when Amazon announced they will be supporting Window Server and SQL Services in the cloud. At last, world dominating power at my fingertips for $0.25-$2.00 an hour.

The second announcement I saw was Microsoft's BizSpark program. This opens up the full enterprise suite of development tools for a fledging startup for a mere $100 rather than the $2,500+ per developer you would spend for a full MSDN license. Microsoft has offered their express editions for the last two releases of Visual Studio, but they cater more to the hobbyist or occasional programmer rather than a professional developer.

With these new developments I may have to quit my job and start that MicroISV after all. Just kidding honey.

Friday, July 18, 2008

Fresh Start

I'm glad that I didn't have a new year's resolution to blog regularly because I would have failed miserably. I could list several valid reasons for not posting in over a year, but I think it primarily comes down to: 1. I'm very slow at writing because I want to be precise, and 2. as a manager my first concern was people and not technology. Now as an technical architect I'm back in a position that can reignite my passion for programming. So what am I going to post about in the coming days? Well, I've decided to dust off the codebase of an e-commerce engine that I originally wrote in 2001 in Classic ASP and Visual Basic 6. I updated most of the code in 2003 to move to C# and the ASP.NET platform. The truth is that I all the source code and needed to make some updates. I had some printouts of core logic routines and was able to salvage part of the code off the production site. (I have certainly learned some things about source control and backups in the last 7 years.) All in all, I guess it really wasn't that big of loss since there was not a smooth upgrade path between those two technologies. In 2006 I refactored the code to eliminate SQL Injection vulnerabilities; during that process I realized how pathetically the code was written. I had followed some early .NET examples that had wonky implementations and I was very immature in my craft in 2003 having just come from basically a scripting language. You may be wondering where I'm going with this. My basic goal is to get back into writing code and get back up-to-speed with some modern tools and techniques. As a spring board to accomplish this goal I am going to start with code that I have complete control of and access to. I don't have an exhaustive list of technologies and tools I want to touch but here are some that spring to mind:
  • Visual Studio 2008 and v 3.5 of the .NET Framework
  • ASP.NET MVC Architecture
  • ASP.NET AJAX
  • Linq2SQL
  • Log4Net
  • ASP.NET Providers (Membership in particular)
  • Caching
I'm not 100% sold on the MVC since it has not made a 1.0 release yet. The idea is awesome and well established in other languages but may be a bit ambitious to take on at this time. I do plan to store the code "in the cloud" but at least initially I will not be providing the source. Since I have this code deployed on a customer's site I have some concerns about exposing them to potential security vulnerabilities that could be discovered via inspection of the code. Next time I will be discussing my options for Subversion hosting, so check back for more content soon.

Labels:

Sunday, May 20, 2007

Joshua's Baptism

Today we baptized Joshua. As part of the ceremony the father offers a blessing to his child. Here is what I told Joshua:
Joshua David, we claim the promise that has been given to us in Zephaniah 3:17:
The Lord your God is with you, He is mighty to save. He will take great delight in you, He will quiet you with his love, He will rejoice over you with singing.
Joshua we love you very much and acknowledge that you are a blessing and gift from God. Our payer for you is that you will grow in wisdom, stature, in favor with God and in favor with man; and that you will come to know the Lord at an early age and grow bold in your faith remembering that the Lord is with you wherever you go.

Labels:

Tuesday, May 08, 2007

Web Projects and bin folders in VS 2005

At DAXKO we recently upgraded our web application to the from the 1.1 to the 2.0 .NET Framework. As part of this upgrade we switched our 'web application' project to 'web project'. A web project does away with the .proj file and just considers everything in that directory to be part of the project. One side effect of this setup is that your bin folder is now considered part of the project. As a result, when viewing the pending checkins window, all the binaries appear to be checked out and clutter up the window. Now you could check the binaries in but on a multi-developer team and source control with exclusive check out (VSS bleh), these files would have a very high contention rate. Searching around I found a clever solution to the clutter problem. Simply browse to the offending /bin folder in windows explorer, view the properties, and enable the hidden attribute (right below the read only check box). Go back to VS, highlight the project in the solution finder and click the refresh button. As the projects are refreshed, the binaries will disappear out of the pending checkins pane. Ah, tidiness has returned to the universe.

Labels: , ,

Tuesday, March 13, 2007

Handling ActiveX Control Events in HTML

So today I spent most of my time struggling with a seemingly simple task. All I needed to do was embed an ActiveX object on a web page and interact with it. The first step was easy; add the control to the pallet and then drag-and-drop onto the form. This left me with an object tag similar to this: Then I added button to invoke the methods on my ActiveX control: With this in place I was able to wire up the button's OnClick event and invoke the control's functions. I was feeling good about things until I realized that the methods were sub procedures, that is they did not return values. Instead the methods raise events. Now in a WinForm application this would be no big deal you just hook onto the handler and go. But how do you register for events in a web page? I spent the next few hours trying to capture an event with the construct. A few more Google searches latter I came across this ancient article[http://msdn2.microsoft.com/en-us/library/ms970419.aspx] on MSDN and my eyes were opened. Apparently by using VBScript, these events will automagically be wired up like so: Unfortunately this is an IE only solution but it works for my application since other parts are "IE Only" too, and we specify this as a requirement of our clients. Based on the 1996 date of the MSDN article I must be the only web developer on the planet without this knowledge. However I post this in hopes that I can spare others hours and hours of Google time on the same problem.

Labels: ,

Monday, October 02, 2006

VS2005 SP1 Announcement

Microsoft releases details on upcoming and much needed VS2005 SP1 while simultaneously announcing that VS2003 will not work on Windows Vista. Visual Studio 2005 SP1 Beta and Visual Studio support for Vista

Labels: ,

Tuesday, September 05, 2006

First Post!

Well, now I have a blog, a soapbox, a sounding board, a place to share all my random thoughts with the world. So what do I have to say? Of course I'm going to have some C# posts because it' s one of the few things I can speak about somewhat intelligently. However, lately I've been thinking a lot about leadership. Perhaps this is due to my current reading or the impending arrival of baby Joshua. Anyway, look for for more of these topics in the coming days...