Archives / 2004 / March
  • Personalization Changes in VS.NET 2005 CTP

    I started trudging my way through some more hands on labs, and when I got to the personalization HOL, the suggested web.config entries wouldn't work:

    property name="NickName" type="System.String"
    property name="Address" type="System.String"

    So, after doing some digging around the newsgroups...I found a thread in one of the private Whidbey newsgroups, stating that personalization had been changed, and that you need to use the following format in the CTP drop:


            <add name="NickName" type="System.String"/>
            <add name="Address" type="System.String"/>
            <add name="SelectedTheme" type="System.String"/>


    Happy Whidbey Coding!


  • VS.NET 2005 CTP & ASP.NET - Round 2

    I started digging into ASP.NET 2.0 some more today, playing with the new security controls & data binding. I've very impressed in how both of these work, with the ability to "open" things up by providing your own providers & databinding against custom business objects.

    I was able to throw together a very simplistic secured application using the security controls in a matter of minutes.  Sure, it didn't look pretty, but I was able to register, log in, change my password, and logout without writing more than 5 lines of code.  One word comes to my mind... "wow".  I wanted to dive in further, and see if I could create my own provider, but I decided against that for now because I wanted to get into the nitty gritty stuff.

    So...I travelled along, following the Hands on Labs from PDC, and only got as far as databinding.  Again, one word comes to mind..."wow".  It was one thing seeing Scott give a demo on it, but was a completely different experience when actually creating data-bound pages with ease.  So far, I've only had a beef with the IDE when trying to bind against business logic layers that return something other than DataSet or DataTable (List<T> just doesn't like to show up in the Wizard).  But, after looking at the code to reference a business object, I was able to use a List<T> return type, and again...was thuroughly amazed.

    After my rant from yesterday, I'm starting to get more used to the environment.  It still would be nice to go back to the traditional way if we wanted, but I can handle without it for now. So...I guess my next steps are to continue going through the Hands on Labs, and eventually create a working website that showcases everything I've learned.


  • Reporting Bugs in VS.NET 2005 CTP

    As I'm starting to use VS.NET 2005 CTP more and more, I'm coming across some bugs...duh!  Well, I was hunting around the IDE to see if there was a "Submit a Bug" menu item, or a shortcut to a website...however I could not find anything.

    Then it dawned on me...I bet theres a newsgroup for this in the private sector...sure enough there was.  So, I've posted a few bugs there, and will do so for future ones, and I would suggest everyone else doing the same (unless MS has another form of collecting bug submissions that I'm not aware of).  So if you want access, point you're preferreed news reader to:

    Newsgroup: microsoft.private.whidbey.aspnet.bugs
    Username: privatenews\VSUser
    Password: Password

    This news server also has some other whidbey related newsgroups that I've subscribed too as well, but there isn't that much activity.  Lets turn that around and make that the place to go for help & bug submissions!


  • VS.NET 2005 & ASP.NET Projects

    Well I started to get into using ASP.NET in VS.NET 2005 CTP this morning, and I definately have to say, its much further along than the windows forms.  So far I'm really impressed with it, and I would like to share some of my experiences & impressions:

    • When adding a Web.config file to a web site, the debug attribute in compilation is set to "false". Why is that? When I'm developing an application in this stage, I want it set to "true".
    • I miss not having "Add new Webform" or "Add new User Control" from the context menu for a project.  I realize that they're are more options that you can choose from, but sometimes all I need is a webform/user control.  Maybe we could see these come back, which will not prompt you like in VS.NET 03, but will add the file, then automatically allow you to edit the file name?
    • I like the new interface to open up websites, with the ability to choose your site via UNC, Local IIS, FTP, Remote Sites (FP Extensions?), and Source Control.  I've not tested all of these, but probably will in the near future.
    • Typing HTML is now XHTML compliant! VS.NET auto-reformats it so it is complaint.
    • When I attempted to add a new item, no templates were visible, however I didn't know I had to choose a language...after doing so, the templates were populated in the list view.
    • The new Wizard control is very sweet...though adding controls to different wizard steps produces duplicate control ids.

    And then I stopped - because I couldn't figure out how to add code classes to perform actual processing logic...that will wait till later...however, I do have a major rant about this...

    I really hate how web applications are now supposed to be built.  We have to use a "Code" folder to place all code which is to be compiled whenever you view a webpage.  We have no option to "Build" projects, or web applications finding syntax errors, or incorrectly referenced namespaces requires you to go to your web browser, hit refresh, and see the detailed error report.  So - why do I hate this, well I want to know what my build errors are prior to viewing the webpage, I want to build to sum it up... I want the old functionality back!  Now, if they're is a way of doing this (and I believe there is), please let me know.  I only say this because we're breaking a HUGE enterprise rule, and that is deploying source code with applications, and when you're developing applications for clients, this is a big NO NO because the source code could fall into someone's lap that isn't supposed to have it.

    Now that my rant is over, please let me know how to develop like this, I really hate not having that functionality present, or very apparent.


  • Scott Guthrie on Data with ASP.NET in VS.NET 2005

    I just finished watching Scott Guthrie's episode on MSDN TV on "Data with ASP.NET in Visual Studio 2005", and I definately have to say that this is one of the better demonstrations of databinding I've seen for Whidbey.  During the first half of the demo, it was the "quick-n-dirty" way of creating data-bound pages, which in corporate environments, have no play for "reality".  This half went back to my earlier rants (which I can't find :( ) about why some properties are set the way they are...and that is to provide the quickest & dirtiest way of providing a working demo for non-technical users in the least amount of time.

    However, the second half of the demo was right up every enterprise and corporate developers alley... databinding with the use of business tier objects.  This was by far the best & easiest example of how to do this.  Being able to do this in future versions has really amazed me, only because this is THE only way business applications should be using databinding.

    Great job & Thanks a TON Scott!!


  • New Utility: Resizer

    How often do you need to resize & compress images after taking a TON of pictures on your digital camera?  I've come across this issue many times, and resizing & compressing 50+ images at a time is always a pain.  Now, with Resizer (current version 0.2), this pain is illeviated by allowing you to load a directory of images, select which ones to resize, choose a size, then sit back...wait...and view the resized images.  The wizard based approach allows any non-technical user to resize images with ease.

    Resizer is available as freeware, and source code is not available.  Please post any comments/suggestions/bugs to this blog.

    Download Resizer Now! (You will need the .NET framework 1.1.4322 to run this application).


  • XP SP2 RC1 - Dead, after 3 days

    Well, it took 3 days to officially kill my computer after installing Windows XP SP2 RC1.  Well, it didn't necessarily kill it, but it would freeze during the bootup.  That was only the peak of things this evening, however earlier this afternoon everything just shut blue screen of death, nothing.

    So, after booting into Safe Mode, I was able to successfully uninstall SP2 RC1 and all the extra beta updates from Windows Update, and all is well once again.  Phew, good thing I don't have to rebuild my laptop this weekend...would have been dificult since I'm at my parents.


  • BlogJet BETA Released

    BlogJet Beta Release Notes
    March 25, 2004

    * Multiple categories support.
    * Quick test of FTP settings.
    * pMachine support.
    * "Delete Draft files after posting" option in settings.
    * New keyboard shortcuts:
       - Ctrl+Tab - switch between Normal/Code view.
       - Ctrl+M - indent
       - Ctrl+Alt+M - outdent
       - Ctrl+Shift+N - numbering
       - Ctrl+Shift+L - bullet style
       - Ctrl+Shift+I - insert image
       - Ctrl+Shift+V - attach voice
       - Alt+D - select text in Title bar
       - F5 - change account

    * BlogJet This! did not work with long selection.
    * Draft files handling errors.
    * Login window when opening draft.
    * Installer issue on "Launch BlogJet".
    * Printing from code editor did not work.
    * Fixed various issues with b2-based blogs.
    * Ctrl+A, Ctrl+K in code editor did not work.
    * Fixed issue with blog URL for Blogware.
    * Code tab wouldn't appear with large fonts.
    * "Access violation at address 005489A4" fixed.
    * Some main window shortcuts worked in Login dialog.
    * Sometimes "t" didn't work in editor - fixed.

    Download here!


  • VS.NET 2005 CTP - First Impressions

    Well, I just finished installing VS.NET 2005 CTP, and first I have to say - great job on the installation VS.NET Team!  This was the shortest install I've ever seen for VS.NET.  It didn't eve look like the thing was installing, I thought I was still installing Pre-Reqs...but no - its done.  Here were some of my first impressions/insights/notable items:

    • The splash screen is funky, some text is overlayed on the image, and the separate images for whats installed look like crap...but I digress because it is a non-Alpha version.
    • Upon the first launch, I had to choose some layout that I really didn't understand... and well, I chose the wrong one, and my solution explorer/class view were on the left, and toolbox was on the right.  After trying to just drag them over there, I realized you had to make them sticky prior to moving it.  Bug? I think so.
    • I definately like the new look of it, very Office 2003 ish...though, I wish it could support my current theme like Office 2003 products.
    • Startup time is tremendously faster...but I haven't opened up any projects yet, or started VS.NET with any projects, so who knows about that.  It is much obliged on the speed increase though :)
    • Some of the icons in the menus are still "old" looking.  Its really hit & miss on which ones are updated and which ones are not.  Am I really that picky?
    • I'm definately diggin' all the new project types.  You've really outdone yourself on these.  Even the Excel and Word Applications/Templates are in there.  I'm not really sure why I would want to use those, but I'm sure theres a reason.
    • I like the option to automatically add a project into source control right when you're creating it.  Saves a lot of headache later on when you're trying to figure out how to do it.
    • So I launched up a Windows Forms app... I definately like the new look of the toolbox & tabbed items... Another thing to note, the grid lines are gone...and I really can't find out how to turn them on.  I guess I'll just get used to not having them.
    • Woah - the properties for a project got revolutionized...instead of a dialog its all in the editor area.  Very sweet lookin too.  It does seem a little laggy switching between everything, but maybe thats just VPC for ya.  Either way, still uber cool looking.
    • When in Debug mode, and an exception is thrown, a very nice window is shown... Well, mostly nice - its using Magenta for most of the window...eek!
    • I did get my first error message trying to preview data after I setup a data connection. Doh!  Mental note...don't do that again.
    • Dropping components with no UI is done just like before, however a nice Magenta (why magenta?) area is shown instead.  Uber ugly, but I can live with it.
    • Ohh - found some more magenta, the grid lines for the "Task List" are the pretty color we've all got to know and love.

    Well, I think thats about it for tonight...very cool stuff.


  • Downloaded VS.NET 2005 CTP - Now What

    Okay, so you just finished downloading the massive 2.67 GB .IMG file from MSDN, and go figure, you don't have a DVD burner available.  Time's crunching away until Apprentice starts, you haven't eaten, and all you want to do is get VS.NET 2005 CTP installed on that freshly installed VPC image.

    But wait, theres a problem, that darn .IMG file is for burning DVDs only...VPC can't mount it. Man, that sucks - so with the help of a little Googling, I found Undisker which allowed me to open the .IMG file and extract the contents to my hard drive.  And the crowd goes wild!  Now, I have 5 minutes left until Apprentice, can I get it started installing?


  • VS.NET 2005 available on MSDN

    Yeah, thats right...its ready for you to download.  I'm downloading it at work and at home, both are going to take about 4 hours since its a 2.6GB file.  So, if your a MSDN subscriber, hop online and grab it!


  • Securing Connection Strings

    On Monday, my team at work got together and a pow-wow about security and how we can be more pro-active in developing applications.  As we went through sessions 2 & 3 from DevDays, we had a lengthly discussion on how we should proceed in securing the connection strings.  As most of you know, the OpenHack, and "best" method for securing connection strings, is by using DPAPI to encrypt it, and then store that encrypted string in a ACL'd registry key.

    As this is a nice security model to follow, it doesn't work all that well in the development arena, when you have multiple machines that are hosting some version of an application.  As we discussed, we found that it would cause more of a headache when setting up a new application, as we'd have to create those ACL'd registry settings, do the encryption, etc. etc. manually.  Sure, a small application or batch could be used, but its still a pain to have to remember that you need to do it on each machine.

    Another major item concerning storing the connection string in the registry, was that it breaks (what we think) the web application line.  By storing specific settings in the registry, you're starting to walk into the windows application arena.  It just doesn't make sense to us to provide that form of security when we feel its crossing that line.

    Now, you may be starting to disagree with me, and thats fine.  We're still going to take an approach to encrypt the connection string in the Web.Config file, but not use DPAPI.  But - why wouldn't we want to use DPAPI, you ask?  Well, DPAPI is encryption/decryption is specific to the machine, thus decrypting a string on Machine B would not decrypt properly that was encrypted on Machine A.  (If my understanding is incorrect, please let me know - as this is a major setback for using DPAPI for us).  So, whats the big deal...well, you're going back to the model of having to manually configure each machine again, which isn't that easy to do in some environments.  So, we feel that using a specific encryption algorithm with a key is the best method, since it could be ported from machine to machine without having any problems.

    I do have to agree, that if you wanted to take that extra security step by securing your encrypted connection string in a ACL'd registry key, that its a wise choice, however in most cases, its just overkill. Also, you won't ever have the option to do something like that on a shared hosting environment, so most web applications that single developers have, don't provide that form of security.

    Well, I think thats all for my rant about securing connection strings, I'd love to hear your feedback.


  • Dogfooding my NNTP Plugin

    Yesterday & Today I decided to start being more proactive in newsgroups, and as such I wanted to start dogfooding my NNTP NG Posting Plugin. I definately have to say that reading & responding to newsgroup postings is extremely easy.  Since I really never posted to newsgroups, I never really used it, I just developed it because there was a need in the community for it.  However, after using it several times, I'm definately stoked about it...and I would have to say that dogfooding is always a good idea on whatever application you're using. Maybe I'll find something I like or don't like about it that I can change.  Gotta love it.

    Now, to find out how to add my signature for replies...


  • Installing XP SP2 RC1

    Well I thought long and hard all day about installing XP SP2 RC1 on my laptop that I use for work and home.  I think I'm going to take the plunge since I've seen some pretty positive comments about RC1 being pretty stable.  So, lets just hope tomorrow I won't be rebuilding my laptop, and rather be working more securely & testing out SP2.  If I find anything quirky, I'll definately post it.  Wish me luck :)

    PS - I hope I have better luck than Graemef.


  • MSDN Security Briefings

    I just ran across some free briefings put on by MSDN about security for developers.  It just so happens there's a briefing tomorrow in my town...yay! I'll be there!

    Here are the abstracts:

    Writing Secure Code - Best Practices
    In this session for experienced developers, you will build upon existing knowledge of secure coding best practices to learn about analyzing, mitigating and modeling threats. The session will discuss established threat modeling methodologies and tools and show how they can be applied with other best practices to minimize vulnerabilities and limit damage from attacks.

    Essentials of Application Security
    In this session for experienced developers, you will gain knowledge and skills essential for the creation of secure applications. The session will cover important security concepts and discuss the need for implementing security at every stage of the development process. You will learn how to secure data and communications and how to implement effective authentication and authorization methods. You will also learn about application filtering and compatibility issues following software updates.

    These sessions don't look to be duplicates of DevDay veterans, which is great.  And, now that my company is on the road to developing secure applications, this is just another step up for me to learn and bring back more information.  Check out the briefings to see if there's one near you!

    Update: G. Andrew Duthie has stated that the content is different from DevDays, minus a bit of overlap.  Thats great!


  • Centrall IL Dot Net User Group - Upcomming Events

    I've been starting to put together a nice lineup for future events for the Central IL Dot Net User Group based out of Bloomington, IL.  Below is a brief summary of whats to come:

    • April 7, 2004 - Nick Lewis from Microsoft will be speaking about Web Hack
    • May 5, 2004 - Brian Bussing and Jason Wrage from Integrity Technology Solutions will be speaking on SIF, SOA, and Integration.
    • June 2, 2004 - Eric Sink from SourceGear will be presenting. His topic is undetermined still.
    • October 6, 2004 - Jeff Prosise, a speaker from INETA will be speaking about ASP.NET hacking and security.

    I will be constantly updating our Upcoming Events page, so make sure you stay tuned if you're interested in our group.  Also, if you're in or around the Central IL area, and wish to speak, just contact me, and I'd be more than happy to coordinate a time when you can.


  • Snow?

    EEEK! So I wake up this morning, go to my office, sit down in my chair... then I glance to my left - ITS WHITE OUT!  AHHH! Why does it have to snow in the middle March?  Well, I guess thats okay, because its supposed to be in the 60's by the end of the week.


  • Thinking Toys

    A coworker of mine was just complaining how the cleaning crew had thrown away his bent-up paperclip that he played with while thinking this last weekend.  This made me start to wonder what I play with when thinking about a problem while programming.  It turns out that I actually have 2 different items. 

    My main "thinking toy" is a pen, funny enough.  I, for some reason, like to take the cap off & on many times during the day.  This has, unfortunately, led to the pen cap not staying on that well, and as such I've had many run-ins with the ink.  My second "toy" is a stress ball that looks like a car.  Most of the bumper paint has been worn off, so its obviously had some good use.

    What types of "thinking toys" do you use, and have you actually stopped and thought - "Why am I playing with this?"


  • "The http redirect request failed."

    Ever got this message attempting to open a solution in VS.NET 2003? Well, the full error message is "The web server reported the following error when attempting to open or create the project at the following URL: The http redirect request failed." A co-worker ran across this multiple times on Friday, and got entirely fed up with the problem that he'd have to refresh the entire project from VSS or delete the /bin directory each time. I guess the root cause of this is something with the page named: "get_aspx_ver.aspx". After a call to MS, he came back with a solution:

    protected void Application_BeginRequest(object sender, EventArgs e)
      string ver = Request.ServerVariables["URL"].ToString();

      if(ver.IndexOf("get_aspx_ver.aspx") >= 0)

    After the previous code was added to the global.asax file, our solutions started opening without any problem.

    [Previously Posted on old Weblog on August 18, 2003]


  • Encode HTML - Have validateRequest = True

    A co-worker and I had a situation today in which we wanted a particular TextBox control to allow HTML. The only problem, is that validateRequest must be done across the entire website, or for the particular page. Because of these restrictions, and the fact that the UserControl being built is placed in a dynamic page for a portal, we had to research ways to allow HTML posted entries but still keep validateRequest=True.

    After doing a little bit of research, I came across the idea of replacing the character representation of common HTML elements via Javascript then decoding that information with Server.HtmlDecode.

    The code is as follows:

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Test.WebForm1"
          <form runat="server">
             <script language="javascript">
                function encodeMyHtml(toEncode) {
                   return toEncode.replace(/&/gi, '&amp;').replace(/\"/gi, '&quot;').replace(/</gi, '&lt;').replace(/>/gi, '&gt;');


             <asp:TextBox Runat="server" ID="tbEncodedText" TextMode="MultiLine" Columns="100" Rows="10" >
             <asp:Button Runat="server" ID="btnSubmit" Text="Submit My HTML" OnClick="btnSubmit_Click"/>
             <asp:Literal Runat="server" ID="outputHTML" />
    Then in my code-behind I have this in my Page_Load function to add the onclick attribute:
    private void Page_Load(object sender, System.EventArgs e)
          btnSubmit.Attributes.Add("onclick", "this.form." + tbEncodedText.ClientID + ".value = encodeMyHtml(this.form." + tbEncodedText.ClientID + ".value);");

    Then my button event, I have:
    private void btnSubmit_Click(object sender, EventArgs e)
       outputHTML.Text = Server.HtmlDecode(tbEncodedText.Text);
       tbEncodedText.Text = Server.HtmlDecode(tbEncodedText.Text);

    Overall, this provides a nice solution to not having your entire web application or page allow HTML elements.

    [Previously Posted on old Weblog on July 17, 2003]


  • Reading Eventlog Entries

    I was asked by my boss the other week, in my spare time at work, to create a script or windows service that would read all entries in the Application Event Log for that day. He pointed me to a link that used VBScript and some wacky dll named "winmgmnts". This seemed like a pain, and I was like...I know you can write to Event Logs with .NET, why couldn't you read them...sure enough, you can. The following code is used to read all entries for the current day of 3 defined logs. This, obviously, can be expanded further...which is what I intend to do.

    using System;
    using System.Diagnostics;

    public class MyClass
      public static void Main()
        int month = DateTime.Today.Month;
        int day = DateTime.Today.Day;
        int year = DateTime.Today.Year;

        string[] logNames = new string[] {"Application", "Security", "System"};

        foreach(string log in logNames)
          EventLog appLog = new EventLog(log);

          foreach(EventLogEntry entry in appLog.Entries)
            if(entry.TimeGenerated.Month == month && entry.TimeGenerated.Day == day && entry.TimeGenerated.Year == year)

    [Previously Posted at old Weblog on October 1, 2003]


  • Tab Key Emulation

    Today, in the project I'm currently working on, I had to figure out a way of emulating the tab key by pressing the Enter key. I had found a very complicated script that required you to know the next id/name of the textbox or control that would need focus next...and since I'm creating 4+ textboxes in a datagrid, plus the ability of dynamic columns (all containing textboxes), this just wasn't going to be an easy task. As I set out, Google pointed me to a very helpful thread post. All you had to do is capture the enter key code and return the tab key code...simple, and works excellent!

    [Previously Posted on old Weblog from October 9, 2003]


  • Links 2004 Players?

    Well I just purchased Links 2004 for the XBox yesterday, and the game is great.  I know about a month ago, there was a lot of hoopla about .NET community geeks, like myself, were getting together regularly to play a few rounds.  I unfortunately don't remember who you were, but if you want to add me to your friends list to catch me online playing sometime, my username is MHawley


  • BlogJet Beta Released

    BlogJet has released Beta. Download it from here.

    BlogJet Beta Release Notes
    March 13, 2004

    * FeedDemon's "Blog this" support.
    * Gutter for code editor.
    * Enabled FTP settings for dasBlog.

    * Fixed bugs with custom images paths.
    * Normal/Code tabs blinking eliminated.
    * Unable to remove links fixed.
    * Fixed bug with voice upload.
    * Fixed shortcuts in code editor.
    * Other bug fixes.


  • .NET Framework 1.1 SP1

    I had downloaded XP SP2 Beta last night to install on my Virtual PC so I could try out Whidbey.  Well, after I tried running the installer for Vault, I realized I didn't have the 1.1 framework installed, so the installation couldn't continue.  I figured, why go re-download, when I know I have the .NET framework on the SP2 Beta CD.  To my suprise, it installed the 1.1 framework, as well as SP1 for the 1.1 framework.  Does anyone have any info pointing to the changelog for this SP?  I'm intrigued to find out what was fixed.


  • DevDays - Chicago, Wrapup

    DevDays was definately worth the wait.  I had a wonderful time learning about security in web applications as well as a brief intro into SmartClients. 

    Now for the wrapup...

    The opening keynote was geared more towards marketing.  It was such a pleasure to see the different applications that are new and revolutionary - which included VS.NET 2003, InfoPath, BizTalk 2004, and WhiteHorse.  Well, as you can probably tell theres a bit of sarchasim in that statement, but seeing the integration of InfoPath and BizTalk 2004 was pretty cool.  I felt that the speaker (Todd Kimble) hit a lot of "duh" points with VS.NET - this is DevDays for pete's sake, not a marketing blitz - we know what VS.NET is and how to use it!

    I then attended the first SmartClient session, where Jon Rauschenberger dissed all web developers - in pure humor of course, so I'm not offended.  This was a great session for me, mainly because I didn't exactly know what SmartClients were, so having it explained to me was a great plus.  I didn't have enough interest, however, to stick around for the other 3 sessions - I was more interested in the ASP.NET Security going on in the other room.

    The next session was led by Todd Kimble again, who did a MUCH better job than the opening key note.  It was, obviously, more technically oriented, and basically scared the crap out of everyone in the audience.  He all of us how SQL Injection attacks, Cross Site Scripting (XSS), and input tampering can cause major security risks for all web applications.  This session actually was the highlight of the day for me, as it opened my eyes to what can actually happen, and what data hackers can obtain...very scary stuff.

    The third session was led by Jacob Cynamon.  I felt that this session wasn't a bad session, however, it wasn't as breath taking as the last one, so it was hard for me to actually concentrate.  The content Jacob showed was very valuable, though I think I may have to review it at a later date to get the full effect.

    The last session was led by Nick Lewis, which basically showed Microsofts OpenHack.  As he stated in his first few minutes, it was kind of a wrapup of the last few sessions - and it was.  The content was great, Nick showed us a TON of code and how to do things, but like the 3rd session - I'm just going to have to delve into the OpenHack source code to get the full effect.

    The closing keynote was great! Jon Raushenberger demo'd Whidbey, and this was the first time I actually go to see it in action.  Jeff Key and I were just sitting there picking apart the bugs as they popped up, which was fun.  There were some irks that I noted during this presentation that I didn't like about Whidbey, but I really need to get in and start playing with it before I express my views openly.  That, and it could just be a limitation of the pre-beta release bits too.

    So, overall DevDays was great.  It was awesome to meetup with Jeff Key (we actually hung out the entire day), Adam Kinney, Erik Porter, my coworker Brian Bussing, and Ryan Rinaldi. It was a great time at the brewery to just sit back, geek it out, and talk .NET/Longhorn/work and much much more.

    Update: Thanks to Ryan, his name is now in the listing!  I tried finding your website, but I was using .com instead of .net


  • Off to DevDays

    Well its about 2:30, and I'm packing up my laptop (well not really because I'm using it to write this blog post) to head on out of Bloomington and travel up to Chicago for DevDays tomorrow.  Glad to see that a few of us have gotten in contact about a meetup to eat/drink afterwards tomorrow.  If your heading to DevDays, Chicago - stop on by Rock Bottom Brewery afterwards!  Jeff Key, Adam Kinney, Erik Porter and myself (along with my coworker) will be there having a good time.  I'll probably be able to check my email a few times tonight, so if you wanna meet up, drop me a line and I'll give you my cell phone number.

    Now... onto DevDays 2004!


  • Updated Utility: WebDeploy

    Updated: Please View this post for the latest version.

    WebDeploy has hit v0.6 with a ton of new features that are very appealing to developers.  This updated version is still the same simple windows application that it was, but it has been beefed up quite tremendously.  Below is a screen shot of the new main form

    Main form of WebDeploy showing new UI

    Now, for the good stuff...the stuff you've all been waiting for...the changelog:

    • Ability to upload files via FTP.
    • N-number of profiles that are easily switchable via the "File" menu.
    • New Profile configuration dialog that replaces the previous "Configuration" dialog.
    • N-number of FTP Profiles for each WebDeploy profile.
    • Added Last Modified Date Checking as an option.
    • Added a "Copied Files" dialog which will list the files copied during the last deployment.
    • Updated Version Checking with "On-Demand" checking via the "Help" menu.
    • Setup will automatically convert previous settings if you chose to retain your settings during the uninstall.
    • Executables are now obfuscated (sorry code sniffers).

    Like I stated previously, I'm providing WebDeploy as Freeware, and the source code is not available, however, if anyone would like to help me in creating graphics to make the UI better, I would be open to letting you see the source.  Contact me if you would like to help.  Also, if you have any further suggestions/comments/ideas/problems, please do not hesitate to contact me or post them on this blog post.

    If you wish to download WebDeploy, click here. You will need the .NET Framework 1.1.4322 to run WebDeploy.


  • DevDays - Chicago

    I know Jeff and Adam threw out their plea (is it really a plea?) for attendees of the DevDays, Chicago event next Wednesday, but I really haven't heard back from either of them about a possible meetup before/during/after DevDays.  So, if you're going to DevDays, Chicago on March 10th, shoot me an email.  I'd like to meet anyone and everyone there!


  • Central Illinois Dot Net

    Last night hosted our first "real" meeting for the Central Illinois .NET User Group based out of Bloomington, IL.  I say "real", because every meeting prior to last night, were just brief get-to-know-you meetings, and discussions on what we'd like the group to do.

    Last night's meeting was great, for 2 reasons.  One, I got appointed as "Program Director" for the club.  I thought this role would be great, only because I get to create the ideas behind each meeting, and setup speakers from INETA, Microsoft, or other local companies to come and talk to us.  So, be may be contacted by me if I want you to speak :)

    Secondly, we had 2 great speakers that talked about accessibility of web and windows applications.  The speakers, who are employees of State Farm Insurance, are disabled themselves and do a multitude of conferences, classes, and whatnot.  They were both very entertaining to listen to, as they've been working very closely together for quite some time, so all the friendly quirkness comes out in their talks.  I believe that our group got a ton of information out of them, as we're all now aware of the "dos" and "donts" of making an application. 

    Some key items I wanted to stress with the community, are the following:

    • When creating web applications, make sure you use the "alt" attribute for images, describing what the image is portraying.  Without these, a webpage could be completely blank to a screen reader.
    • Always keep the navigation/menus, and commonly used items in the same place.  By moving them around on the screen, it can confuse users who have to memorize where items are.
    • Make sure you provide descriptive instructions on what needs to be done.  An example that was used, was don't say "Press the red image to continue", but rather say "Press the red triangle to continue."
    • Make sure when you develop a UI, that it goes to your users to have them actually test it out, and see if it is logical and easyto use to them.  If a disabled person gets confused with your UI, then the UI is worthless. It should be well laid out for disabled & non-disabled persons.
    • Make sure that if you have an e-commerce site, that you have a return policy. 

    Well, the last item is more of a joke, rather than a "do" or "dont".  One of the speakers, who is blind, always scours a website prior to purchasing anything, for the return policy,  only because sometimes the wrong item is ordered, and he had no idea it was coming -- so when he wanted a sweater, he really got a BMW... big difference on the credit card.

    I encourage anyone who is in the Central Illinois area, to come to our meetings.  We meet the first Wednesday of every month at the Microsoft office in Bloomington, IL.  For more information on our group and see our up-and-coming schedule, visit for more information. 

    Just as a heads-up, our next meeting will have a speaker talking about security in .NET.  My guess is that it will be something similar to what we're hearing at DevDays.


  • Why I Built WebDeploy

    I've received multiple comments on why I developed WebDeploy rather than just using XCopy or VS.NET's inherint "Copy" tool.  I just wanted to take a brief moment to share why WebDeploy was built:

    1. I wanted an easy to use tool that would allow me to deploy my personal and work web applications (or anything for that matter) without having to really think about it.
    2. Most work environments require you to take the completed web applications and deploy them from a staging server, aka a User Acceptance Testing (UAT) server.
    3. I like to use the GUI over the command line.
    4. Deploy web applications easily across FTP (a feature soon to be added).

    To explain #2 - in most work environments, developers use VS.NET on their local machines to build the applications. Then, a build script/process takes over to get a working build on a development server.  This is where the major problem comes into do I get a build on UAT or on the Live server?  Well, almost all of the time, your UAT & Live servers don't have VS.NET installed...and more often than not, they don't have NAnt installed either...this means you have to manually copy the files from Development to UAT and then from UAT to Live.  Thats where WebDeploy fits alleviates the headache of moving files from Development to UAT and then from UAT to Live servers.

    To explain #4 - XCopy or VS.NET's "Copy" tool doesn't have FTP support.  Sure, the Whidbey version of "Copy" probably will have, but Whidbey is still a year out, what should we use until then?

    So, I hope my explanation on why I built WebDeploy explains answers and gripes from those saying the same can be done with XCopy or "Copy"..because in practice, it really cant.


  • Plugin Release: NewsGator NNTP Plugin v1.0

    Version 1.0 of the NewsGator NNTP Plugin to allow posting to newsgroups has been released. This version includes instant notification of updated versions, as well as refinement of the sending username and email per the RFC spec.  This version solves the 441 error, where you may receive a message saying your email address doesn't conform to internet standards.

    Visit the NewsGator NNTP Plugin page to view more information and download the plugin!


  • System.IO Woes

    I've been working on a Web Deployer windows application the last week or so, and everything was working great until I refactored some code the other night.  In a separate thread, I'm traversing through a directory (and subdirectories) getting the size of all the files needing to be copied.  Just after that, I start traversing through that same directory, attempting to copy the file to a destination. However, after refactoring code into 1 method for all the traversing, I've been unable to copy any of the files, and am getting a "The process cannot access the file ... because it is being used by another process."

    If you have any idea or could help me out, that would be great.


  • MSDN Connections

    As Frank stated, MSDN Connections (Australia) is up and running.  However, when I tried to register, it told me that I must change my country to Australia to get into it.  Well, since I don't live in Australia, I don't want to do that, so I guess for the masses, we'll have to wait until MSDN Connections is available for the US or other countries.