Fervent Coder

Coding Towards Utopia...by Rob Reynolds
posts - 278 , comments - 431 , trackbacks - 0

My Links

News


Rob Reynolds

Subscribe to Fervent Coder RSS
Subscribe to Fervent Coder by Email

About Me

I manage several open source projects. Need...
   ...package management for Windows?
   ...automated builds?
   ...database change management (migrations)?
   ...your application to check email?
   ...a monitoring utility?

I also write for



Like what you are reading? Want to buy me a cup of coffee?
PayPal - The safer, easier way to pay online!

Archives

Post Categories

Image Galleries

Sites

Code

Chocolatey Community Feed Update!
Average approval time for moderated packages is currently under 10 hours! In my last post, I talked about things we were implementing or getting ready to implement to really help out with the process of moderation. Those things are: The validator - checks the quality of the package The verifier - tests the package install/uninstall and provides logs The cleaner - provides reminders and closes packages under review when they have gone stale. The Cleanup Service We've created a cleanup service, known ......

Posted On Saturday, January 16, 2016 8:34 AM | Comments (0) | Filed Under [ Code chocolatey ]

Symbolic Regular Expression Exploration
This is a pretty sweet little tool. Rex (Regular Expression Exploration) is a tool that allows you to give it a regular expression and it returns matching strings. The example below creates10 strings that start and end with a number and have at least 2 characters: > rex.exe "^\d.*\d$" /k:10 This is something I could use to validate/generate the Regular Expressions I have created with both UppercuT and RoundhousE. Check out the video below: Margus Veanes - Rex - Symbolic Regular Expression Exploration ......

Posted On Saturday, April 17, 2010 2:02 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Running Tarantino With MSBuild
To set up Tarantino to run you follow the instructions from my last couple of posts. Once you've done that, you set up a file to run the project. This is how you set up your folder structure. Under db are two folders, Create and Update. In MSBuild, all of the required files to run, plus my MSBuild file (tarantino.proj). Here is how you set up a batch file to call MSBuild to run your database updates. This file is named dbdeploy.bat. @echo on SET DIR=%~d0%~p0% C:\WINDOWS\Microsoft.NET\Fr... ......

Posted On Wednesday, March 25, 2009 6:46 AM | Comments (0) | Filed Under [ Code ]

this.Log– Source, NuGet Package & Performance
Recently I mentioned this.Log. Given the amount of folks that were interested in this.Log, I decided to pull this source out and make a NuGet package (well, several packages). Source The source is now located at https://github.com/ferventc... Please feel free to send pull requests (with tests of course). When you clone it, if you open visual studio prior to running build.bat, you will notice build errors. Don’t send me a pull request fixing this, I want it to work the way it does now. ......

Posted On Wednesday, December 19, 2012 11:21 PM | Comments (0) | Filed Under [ Code NuGet ]

From Zero To Deployed Contest–Winner Announced PLUS Extension To Most Creative
Recently we had a contest to see who could beat my time to get from no code to deployed. Thanks to everyone that participated and everyone that thought about participating in the contest. Most Creative From Zero To Deployed Contest Extended! Unfortunately there were not enough entries to award the most creative video for ZtD. So what we are doing is extending the most creative until May 15, 2011 @ 11:59 PM CST. This gives you almost two months to get your videos in! If you entered before, you are ......

Posted On Monday, March 21, 2011 12:09 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther UppercuT RoundhousE chucknorris gems ]

NHibernate Event Listener Registration With Fluent NHibernate
I’m a huge fan of NHibernate. It has excellent documentation and just makes the whole job of getting things into and out of the database much more enjoyable. There is a whole series of posts on NHibernate from one of the committers, Ayende. When Fluent NHibernate (FNH) came out, it was like butter on sliced bread. FNH makes it even easier to use NHibernate. Ayende had a post a while back on how to use Event Listeners. That helped me to get to event listeners set up. Event Listeners namespace somethingimportant.we.hope.... ......

Posted On Wednesday, November 18, 2009 1:04 AM | Comments (3) | Filed Under [ Code ]

RoundhousE: Configuration
This week I introduced RoundhousE and it’s getting quite a stir. Let’s take a look at the configuration. We are going to focus on the MSBuild/NAnt task configuration for now because the console isn’t yet complete. The console will actually have at least this much if not more (we’ve talked about how to use it to create the migration scripts and not just run them). Because we like to be able to infer things, we have determined that there are only two required items. Thus – the minimal configuration: ......

Posted On Sunday, November 15, 2009 4:06 AM | Comments (9) | Filed Under [ Code RoundhousE ]

RoundhousE DB Migration: Action Shots
I just started the appetites with my last post on RoundhousE. RoundhousE itself has a migration sample to help you get familiar with how it works. You can get to that by using a subversion client to download the source. When you download the RoundhousE source from SVN and run build.bat, you get a code_drop folder. Go in there and look at the deployment folder for a sample run. Prerequisites: Locally installed (and running) SQL Server 2008 Run That Bad Boy When you get into the code_drop folder, take ......

Posted On Friday, November 13, 2009 1:17 AM | Comments (2) | Filed Under [ Code RoundhousE ]

Super D to the B to the A – AKA Script for reducing the size of a database
The following is a script that I used to help me clean up a database and reduce the size of it from 95MB down to 3MB so we could use it for a development backup. I will note that we also removed some of the data out. I shared this with a friend recently and he used this to go from 70GB to 7GB! UPDATE: Special Note Please don’t run this against something that is live or performance critical. You want to do this where you are the only person connected to the database, like a restored backup of the ......

Posted On Friday, December 14, 2012 9:43 AM | Comments (1) | Filed Under [ Code ]

Refresh Database–Speed up Your Development Cycles
Refresh database is an workflow that allows you to develop with a migrations framework, but deploy with SQL files. It’s more than that, it allows you to rapidly make changes to your environment and sync up with other teammates. When I am talking about environment, I mean your local development environment: your code base and the local database back end you are hitting. Refresh database comes in two flavors, one for NHibernate and one for Entity Framework. I’m going to show you an example of the one ......

Posted On Wednesday, December 12, 2012 5:08 PM | Comments (2) | Filed Under [ Code RoundhousE chucknorris NuGet ]

Virtual Alt.NET – UppercuT Automated Builds
Tomorrow on February 24th, 2010, I’m going to be giving a presentation on UppercuT (UC) at Virtual Alt.NET (VAN). If you are interested in learning about an automated build tool that will save you time and get you to a professional build in moments, not days, you can log into the VAN around 8PM CST on Wednesday (tomorrow). You don’t even have to go to a physical place to see the presentation! You can hang out from the comfort of your own home and watch me walk through how easy it is to use UC. Here ......

Posted On Tuesday, February 23, 2010 10:09 PM | Comments (0) | Filed Under [ Code UppercuT chucknorris ]

SidePOP XMLConfigurator
From my previous post on SidePOP, I wanted to make it even easier to configure SidePOP. So instead of the configure_mail_watcher() from the last post, this is what it looks like now: private void configure_mail_watcher() { EmailWatcherConfigurator configurator = new SidePopXmlConfigurator(); foreach (EmailWatcher emailWatcher in configurator.configure()) { emailWatcher.MessagesReceived += runner_messages_received; emailWatcher.start(); } } Pretty. Notice that Runner became EmailWatcher and instead ......

Posted On Tuesday, December 8, 2009 1:29 PM | Comments (1) | Filed Under [ Code chucknorris SidePOP ]

How To Check Email Programmatically - SidePOP
Background Sending email has long been easy to do with the .NET Framework. There really hasn’t been a facility for checking email though. I recently had a need to be able to check email with and send a response with Bombali (a monitoring tool). I went searching for examples or a solution I could use. I found a few articles on this from a few years ago including the .NET POP3 MIME Client. I never found anything that was free and I never found anything that was easy to configure. Those who know me ......

Posted On Tuesday, December 8, 2009 12:38 AM | Comments (3) | Filed Under [ Code chucknorris SidePOP ]

Command Line Parsing on Windows with Mono.Options
When you have command line arguments to parse (whether on Windows or Linux), the place to look is Mono.Options. To date, I have not found anything better to get the job done. It is a single C# file if you do not want to download the entire Mono Library to use it. I was first introduced in Mono 2.2. The equivalent product is NDesk.Options by Jonathan Pryor. His single Options.cs file has been implemented as Mono.Options. To demonstrate how easy command line parsing can be, I’m going to show you is ......

Posted On Sunday, November 22, 2009 12:49 PM | Comments (1) | Filed Under [ Code RoundhousE chucknorris ]

RoundhousE: Version Your Database
Versioning your database is as important as versioning your code. How much time do we waste currently before we are even productive when we have to fix or enhance something in a database? RoundhousE versions your database how you want. The recommended way is to version based on source control, but that may not be your solution. But for a moment let’s pretend it is. Why would versioning your database based on source control be a big help? What happens if you get a prod fix (or work order) to fix a ......

Posted On Thursday, November 19, 2009 1:26 AM | Comments (1) | Filed Under [ Code RoundhousE ]

HowTo: Use .NET Code on a Network Share From Windows
If you use VMWare/VirtualPC and you want to offload your source code repositories to your host OS and code from it inside the VM, you need to do a few things to fully trust the share. I’ve found that I keep heading out and searching on this every time I need it so I thought I would write it down this time to save myself the trouble next time. CasPol Changes Save the following as caspol.bat: %WINDIR%\Microsoft.NET\Fram... -q -machine -ag 1.2 -url file://e:/* FullTrust %WINDIR%\Microsoft.NET\Fram... ......

Posted On Wednesday, December 12, 2012 1:08 AM | Comments (0) | Filed Under [ Code ]

DropkicK–Deploy Fluently
DropkicK (DK) has been in development for over two years and has been used for production deployments for over a year. Dru Sellers originally posted about DK back in 2009. While DK isn’t yet as super easy to grok as some of the other ChuckNorrisFramework tools and offers little in the idea of conventions, it is still a stellar framework to use for deployments. DK works well in environments where you know all of the environments you will deploy to ahead of time (although not required due to the ability ......

Posted On Sunday, October 23, 2011 1:32 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther RoundhousE chucknorris DropkicK ]

Published Applications AKA _PublishedApplications
Less maintenance. Less work to package during your automated builds. Too easy. Remember Our Old Friend _PublishedWebsites? You’ve probably seen the _PublishedWebsites folder when building websites in automated builds. If not you can stop paying attention now. Still with me? Great! So you know how it packages up everything nicely with content files going where they should with nearly ZERO cost to your build scripts. All you need to do is override the output directory (OutDir) and you get this feature. ......

Posted On Monday, March 21, 2011 12:22 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther UppercuT ]

AppHarbor - Azure Done Right AKA Heroku for .NET
Easy and Instant deployments and instant scale for .NET? Awhile back a few of us were looking at Ruby Gems as the answer to package management for .NET. The gems platform supported the concept of DLLs as packages although some changes would have needed to happen to have long term use for the entire community. From that we formed a partnership with some folks at Microsoft to make v2 into something that would meet wider adoption across the community, which people now call NuGet. So now we have the ......

Posted On Friday, February 18, 2011 6:12 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther UppercuT RoundhousE chucknorris gems ]

UppercuT v1.2–NuGet Support
For those that have not yet heard, NuGet went v1 recently along with a whole slew of tools from the Microsoft folks. I’ve been lucky to be a part of the NuGet project and see it take shape over the past few months with community input and contributions. Even though v1.0 was released, we are already moving forward with getting ideas and prioritizing features for the next version. To follow the announcement, UppercuT (UC) v1.2 now includes support for NuGet out of the box. Plus, it will handle versioning ......

Posted On Sunday, January 23, 2011 8:48 PM | Comments (2) | Filed Under [ Code UppercuT chucknorris ]

The Evolution of Package Management for .NET
The thing to realize is that the destination is never the most important part of the journey. It’s the journey itself. When you start a journey, you are never fully sure where it is going to end up. We started the journey down package management for .NET three times with Nu[bular] (we in this context means the nu team, not me in particular, I was only involved in the last reboot) before we decided to try an existing infrastructure with Ruby Gems. I have always said that I would use the best tool ......

Posted On Wednesday, October 6, 2010 1:03 PM | Comments (0) | Filed Under [ Code Personal ApplicationsToysOther gems ]

Herding Code Talks About Nu
Dru and I were recently featured on Herding Code Podcast. In the podcast we talk about everything from package management in general to Nubular (Nu) to other package management systems (OpenWrap, Bricks, and Horn, although horn was/is slightly different) to the possibility of Microsoft releasing a package management system. It was a good time and I enjoyed doing the podcast, but the herding code guys start recording at an insane 10:30 PM! I have no idea how I made it through the whole thing and was ......

Posted On Friday, August 27, 2010 1:29 AM | Comments (2) | Filed Under [ Code UppercuT RoundhousE chucknorris gems ]

Gems For .NET – Community Response
There has been a lot of response in the community about this gems idea we’ve been talking about. I even had the opportunity to sit down with Nick Quaranto, the guy behind Rubygems.org, over coffee Sunday and talk about where we think we are going and what it will take to get there. One of the biggest things that everyone wants to see carrying this idea forward is that we migrate off of Rubygems.org and have our own gem server. And we all agree this is a great idea. There are just two things that ......

Posted On Monday, July 19, 2010 1:29 PM | Comments (0) | Filed Under [ Code gems ]

How To – Gems And .NET – Dependencies (References)
In my last post I didn’t mention dependencies. Dependencies are their own animal. They require a couple more things to be in place. Let’s talk about those things. In the .NET world, the dependency for compiled bits is usually an exact version of a reference. Let me explain. So for example, you have a reference to log4net, and you don’t ILMerge it into your assembly. You now have a dependency that the DLL needs to be there and a particular version (outside of redirecting the bindings). So what I’m ......

Posted On Saturday, July 17, 2010 7:57 AM | Comments (1) | Filed Under [ Code UppercuT gems ]

How To - Gems And .NET
In my last post I showed gems being used for .NET. Now let’s talk about How. Most of this stuff I’ve learned over the past two days, so if I have a mistake here or you have a better idea, please don’t hesitate to offer a better solution. The GemSpec The Gem::Specification reference is your friend. In order to create a gem, you need to define a gem specification, commonly called a “gemspec”. A gemspec consists of several attributes. Some of these are required; most of them are optional. From here ......

Posted On Friday, July 16, 2010 2:27 AM | Comments (0) | Filed Under [ Code UppercuT RoundhousE chucknorris gems ]

The Future of .NET Open Source Software Delivery
Imagine we are awhile into the future. How do you get open source releases down to your project so that you can use them? How do you get the products down to your computer so that you can use them? Is it easier or harder than the way we’ve always done it before? The Past and Present Before we can go there, let’s look at what we do now (the past is really the same for us here). Let’s say I want to use NHibernate. What do I do? There are basically three paths we all follow in this process. 1. Never ......

Posted On Monday, July 26, 2010 11:30 PM | Comments (5) | Filed Under [ Code CastleProject UppercuT gems ]

How To – UppercuT and Gems
In a previous post I mentioned how I was going to show you how UppercuT (UC) has the ability to make gems stupid simple to create and publish. You ask if gems can get any easier and to that I answer, “Why YES, they can!” How about just filling out the information for the gemspec, running a build and having a nice, shiny new gem ready for publishing? Rock The Gems Basically you want to get the latest release of UppercuT. You can download it or grab the source and compile. There are already instructions ......

Posted On Wednesday, July 21, 2010 1:34 AM | Comments (0) | Filed Under [ Code UppercuT chucknorris gems ]

Gems - Package Management For .NET
The Ruby community has enjoyed a great user experience with a package management system they use called Gems. A gem is a package (or a library), compressed with some additional metadata, and can be either source files or binaries. Let’s focus on binary gems. We have the same concept in .NET (DLLs/EXEs). You may have references to other DLLs. When you want to update a reference you are using on a project, you may also need to update its dependencies as well. And so on and so forth. A package management ......

Posted On Thursday, July 15, 2010 11:37 PM | Comments (3) | Filed Under [ Code CastleProject UppercuT RoundhousE chucknorris SidePOP gems ]

RoundhousE – ADO.NET over SMO
One thing most database change management tools use is SQL Server Managment Objects (SMO). Most do that because ADO.NET doesn’t allow the batch statement separator keyword GO in sql statements. So most people write off the ability to use a database change tool for sql server without actually having the sql server installed on the machine that is running the tool. This is not a reality in some organizations, especially when licenses for SQL server are limited. Split the GO Recently, a few guys have ......

Posted On Tuesday, February 23, 2010 9:49 PM | Comments (1) | Filed Under [ Code RoundhousE chucknorris ]

Warmup – Getting Started
What if there was a tool out there that could let you specify a structure for a project (visual studio solution + everything else) and save you up to 3+ hours of work every time you started a new project? Warmup was an idea by Dru Sellers to remove all of the setup work required every time you set up a new project. You know, create the solution, add projects, put in your references, etc. Then how about getting the infrastructure for your service/website/console set up as well with things like IoC, ......

Posted On Monday, February 1, 2010 8:10 AM | Comments (1) | Filed Under [ Code chucknorris ]

Windows Mobile Phone Bug: Text/SMS messages coming in from 2016 – Need a fix?
If you are seeing text messages coming in from the year 2016 and thinking this is a total WTF (mate?!), put down the phone. There is no need to break the phone. It’s fine. Nearly all WM phones are experiencing this right now. I repeat, there is no need to break the phone! There is a fix for this that requires maybe five minutes of your time. DISCLAIMER: You do this on your own terms. I am in no way liable if you follow these instructions and damage or render useless anything at all including but ......

Posted On Tuesday, January 5, 2010 11:28 PM | Comments (2) | Filed Under [ Code Personal ]

Two Major Milestones for RoundhousE and UppercuT
This last year I had a focus to get more involved in Open Source (OSS). The year before I had been involved a little by submitting a patch here and there, but 2009 was a big year for me in OSS. I now manage 4 open source projects that have solved a need for me and others. Coming up on the end of the year it was important for me to get some final touches into at least two projects to finish out the year. UppercuT UppercuT (UC), for those of you who have never heard of it, is an automated build tool ......

Posted On Friday, January 1, 2010 2:55 PM | Comments (0) | Filed Under [ Code UppercuT RoundhousE chucknorris ]

Lessons In Building An Email Parser
The Classic Infinite Email Loop When building an email parser, one must think about validating an email address that sends you a message. Just because that email address is where the message says it is from does not really mean that is a valid email address. Some of you can already see where I’m going with this. I was building something in Bombali that would respond to emails when receiving them. When Bombali received a message from an address, Bombali would send a response. No checking on the address. ......

Posted On Friday, December 18, 2009 3:15 AM | Comments (0) | Filed Under [ Code chucknorris SidePOP ]

Enter The Dragon: RoundhousE DB Migrations
One of the coolest projects I have been working on is how to solve issues with database versioning and migration. A project dubbed RoundhousE. RoundhousE is an open source automated database deployment (change management) system that allows you to use your current idioms and gain much more. Currently it only supports Microsoft SQL Server, but there are future plans for other databases. It seeks to solve both maintenance concerns and ease of deployment. We follow some of the same idioms as other database ......

Posted On Wednesday, November 11, 2009 4:51 PM | Comments (9) | Filed Under [ Code RoundhousE ]

Sproc Executing Slow? It Might be This
So you have stored procedure and it’s having issues. When you run it, it returns really fast. When .NET runs it, its like a dog. The first thing you learn about SQL Server is that it has something called ARITHABORT and it is turned on in SQL Management Studio and OFF in ADO.NET. Yeah you heard that right. OFF. So when you find this out, your first thought is WTF, mate?! Why do we have to make this hard on ourselves? Reference post: http://sqladvice.com/blogs/... ......

Posted On Friday, November 6, 2009 12:02 PM | Comments (7) | Filed Under [ Code ]

UppercuT - Automated Builds - Getting Started Part 3 (Configure UppercuT.config)
In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. Now we need to edit the UppercuT configuration. Let’s UppercuT our code! UppercuT.config 1. Navigate to the Settings folder and open the UppercuT.config file in your favorite editor. 2. Take a moment to familiarize yourself with all of the options available in the configuration file. 3. Copy the name of the solution file (minus .sln). 4. Select the current value of the project.name property. Currently ......

Posted On Friday, May 29, 2009 7:36 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 2 (Add UppercuT to Your Project)
In Part 1 we downloaded or built from source control. We are now ready to add UppercuT to our project. Let’s UppercuT our code! Add UppercuT to Your Project 1. We open the folder at the top level of the project (usually just under trunk or a branch). Below you can see we have a project called MoneyQIFGenerator and it has no automated build love yet. 2. We already have a references folder (lib) so we are going to do something differently when bringing in UppercuT. For any existing project this could ......

Posted On Friday, May 29, 2009 7:27 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - VersionBuilder
UppercuT comes with VersionBuilder. A common problem many of us have is versioning our DLL assemblies and keeping track of what’s in production versus what’s in source control. If you rock with Subversion, UppercuT has this problem solved. So how do you take advantage of VersionBuilder? UppercuT automatically generates an assembly version file for you during build. All you need to do is hook every project up to it. Notice in the same directory the solution is in, after you run build.bat, there is ......

Posted On Thursday, May 21, 2009 3:10 PM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - CruiseControl.NET Integration
So now you are rolling with UppercuT, but you don’t yet have Continuous Integration (CI). You can make that happen with CruiseControl.NET (or any other CI server like TeamCity or Hudson). This article is geared to CruiseControl.NET (CC.NET), although there will be future articles on other CI servers. This is specifically geared towards CC.NET 1.4 and above, because it takes advantage of preprocessors. First a few sideline notifications and then we'll get right into it. UppercuT Compatibility with ......

Posted On Thursday, May 21, 2009 6:46 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - User Group

If you have questions, you want to know about new features, or you want to get more involved, feel free to join the group.

http://groups.google.com/group/chucknorrisframework

Posted On Wednesday, May 20, 2009 5:43 PM | Comments (0) | Filed Under [ Code UppercuT ]

Uppercut - Automated Builds - DeploymentBuilder
UppercuT comes with DeploymentBuilder. What is DeploymentBuilder? Perhaps you maintain a bunch of deployment scripts that point to all your different environments. We now you can define a template batch file and let UppercuT create all of those deployments scripts for you. It's less for you to maintain, and you no longer have to update a bunch of different scripts. Just one or a couple depending on the types of deployment. To help people better understand what it can do, we've included a starting ......

Posted On Tuesday, May 19, 2009 4:24 PM | Comments (1) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - ConfigBuilder
UppercuT comes with ConfigBuilder. What is ConfigBuilder? ConfigBuilder will build a configuration file per environment so you no longer have to maintain a bunch of configuration files. In any project you have app.config (or web.config) files. You just create a .template file next to it. The web.config has a file next to it named web.config.template. What do you name the app.config template files? You have to name the file based on what app.config becomes when visual studio builds the application. ......

Posted On Sunday, May 17, 2009 10:15 PM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - UppercuT.config
Recently I posted about UppercuT, the insanely easy to use build framework. There are so many things you can do with UppercuT, that it may make your life easier. We decided to make it even easier to use UppercuT by using a convention most people in the .NET world understand, the .config file. This replaces the build.settings.bat file for those of you who were using it. All you need to do now is navigate to the Settings folder and open the UppercuT.config file in your favorite editor. Get Building ......

Posted On Sunday, May 17, 2009 5:29 PM | Comments (4) | Filed Under [ Code UppercuT ]

UppercuT - The Insanely Easy to Use Automated Build Framework
UppercuT is the insanely easy to use Automated Build Framework! Automated Builds as easy as (1) solution name, (2) source control path, (3) company name for most projects!!! Uppercut was recently called NAnt for the masses! UppercuT is for developers who want a powerful build framework without a lot of set up work. UppercuT is for anyone who needs a standard way of building applications across an entire organization. UppercuT is for anyone who wants to concentrate on just writing code. What can UppercuT ......

Posted On Friday, May 8, 2009 4:53 PM | Comments (3) | Filed Under [ Code UppercuT ]

UppercuT and Mono Migration Analyzer
If you are using UppercuT, you will be pleased to know that it now supports Mono Migration Analyzer (MoMA for short). All you have to do is upgrade. And with the design of UppercuT, we’ve made it super simple to upgrade. How hard is it to upgrade UppercuT? Just drop in the files in your build folder, check for changes to the lib folder (especially in the NAnt directory) and new folders, and then check for any changes to the .bat files and UppercuT.config and you’re done. Mono Migration Analyzer Here ......

Posted On Sunday, October 25, 2009 2:05 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT – Elegant Solution to Strong Naming
Here’s how you can sign a set of assemblies in a project with a key using UppercuT: 1. Open the UppercuT.config file. 2. Change the following to “true”: 3. Done. Did I mention that creates a private key if it is not there as well?! This was from a patch sent in by Dru Sellers. Thanks Dru! With this knowledge you shall build ......

Posted On Saturday, September 26, 2009 12:09 AM | Comments (0) | Filed Under [ Code UppercuT ]

What is Your Alt.NET?
Passion. I love what I do and I get very passionate about it. I love to argue about the best way to go about architecting a system, learn things from others and teach others about the ways of the pragmatic developer. I love being surrounded by people who are very logical and can design whole systems in their heads (not that they do because that can be error prone) and see bugs before they even write a piece of code. I like it when people can go from high level to very technically deep, like up to ......

Posted On Tuesday, December 11, 2007 2:32 PM | Comments (0) | Filed Under [ Code Personal ]

UppercuT Presentation Afterthoughts
The presentation for TopDNUG went pretty well. There were some good questions and back and forth. The room really seemed to come alive when in a matter of less than ten minutes I added UppercuT to two different Open Source projects (Reflexil and Quartz.NET) and had them off of the ground and building. Full builds, too. With versioning, compiling, unit testing, packaging, etc. I also unveiled the new logo for UppercuT: Here is the slide deck: UppercuT Presentation (may need to be renamed to .pptx) ......

Posted On Friday, September 25, 2009 11:57 PM | Comments (0) | Filed Under [ Code UppercuT DNUG ]

UppercuT – Automated Builds - Change is Good
Recently I reported that there were going to be some changes to UppercuT. And there have been. These are a summary of some of the most significant changes: Uppercut now reports it's version. This is helpful to know where you are versus the current version. It also reports the time when it finishes a build. Custom Replacement Tasks are now implemented. This is to add a task to the custom folder that completely replaces the normal workings of the build step it is replacing. A pre or post custom step ......

Posted On Wednesday, September 23, 2009 12:31 AM | Comments (0) | Filed Under [ Code UppercuT ]

Universal NAnt Script for Gallio
So Gallio has been out for a little while and I admit that I am a little slow when it comes to looking at new frameworks. I mean there is so much to look at and only so much time in the day allocated to programming. Anyway, there really isn’t much documentation out there yet for using Gallio with NAnt. I am of the thought that is due to all of the people who are really smart with builds are using Rake and/or PSake now. So I set off to create another universal script. This basically follows the conventions ......

Posted On Sunday, September 20, 2009 10:37 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT Undergoing Some Major Changes

I’m slimming it down and rethinking some of the idioms it is currently using. Stay tuned…

Posted On Monday, September 14, 2009 10:51 PM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT – Mark an Application Executable to Use More Than 2GB of Memory (Large Address Aware)
If you’ve ever built a .NET application that runs out of memory constantly, it’s because you are hitting a 2GB limit. You may have known about marking an assembly “/largeaddressaware”. You may have not. The process of doing this is actually somewhat easy once you learn about it. You normally just start a Visual Studio Command Prompt (found in Start Menu under Microsoft Visual Studio version/Visual Studio Tools). Then you find the compiled application and run the following command: editbin /largeaddressaware ......

Posted On Thursday, August 20, 2009 1:42 AM | Comments (2) | Filed Under [ Code UppercuT ]

Topeka .NET User Group Meeting – Moved to August 20th

Due to scheduling conflicts, the meeting has been moved to Thursday August 20th.  http://groups.google.com/group/topekadotnet/browse_thread/thread/d8ed379f3b94858

 

Posted On Saturday, August 1, 2009 6:44 AM | Comments (0) | Filed Under [ Code DNUG ]

Topeka Dot Net User Group (DNUG) Meeting - August 20th, 2009
Topeka DNUG is free for anyone to attend! Mark your calendars now! Speaker Dru Sellers is the Solution Architect for Federal Home Loan Bank in Topeka, KS. He has been programming professionally for over 8 years and spends most of his time in C# and VB.Net, Castle, and junk punches people who 'touch' his database. Topic Object Oriented Databases and other non-relational options Are you tired of writing SQL to maintain your databases? Are you using an object relational mapper and sick of the mapping? ......

Posted On Thursday, July 23, 2009 6:48 AM | Comments (0) | Filed Under [ Code DNUG ]

.NET Binding Redirects – Updating Referenced Assemblies Without Recompiling Code

I wanted to keep link love – but blog wouldn’t let me keep the link with the .NET in it when I edited it. The link is now here: http://ferventcoder.com/archive/2009/07/19/net-binding-redirects-ndash-updating-referenced-assemblies-without-recompiling-code.aspx

Posted On Sunday, July 19, 2009 6:14 PM | Comments (0) | Filed Under [ Code ]

.NET Binding Redirects – Updating Referenced Assemblies Without Recompiling Code
Have you ever seen this error? System.IO.FileLoadException: Could not load file or assembly ‘nameOfAssembly’, Version=specificVersion, Culture=neutral, PublicKeyToken=publicKey’ or one of it's dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) This means you’ve replaced the specific version of the third party assembly with either an earlier or an updated version. The assembly that uses it is compiled to point to a specific ......

Posted On Sunday, July 19, 2009 3:15 PM | Comments (2) | Filed Under [ Code ]

log4net Note: Always Keep Your Logs On the Same Server
From what I have seen and used, log4net is one of the best tools out there for implementing logging (the best?)! That said, we noticed something recently that is very interesting. Let’s say you have a service. You keep it running all of the time. You have implemented logging for it. You keep those logs on a separate server for whatever reason. For purposes of discussion the server the service is on is the “app server” and the server the logs are on is the “log server.” When you reboot that log server, ......

Posted On Thursday, July 16, 2009 5:00 PM | Comments (0) | Filed Under [ Code ]

UppercuT – Added Pre-Task Hooks for Custom Tasks
Tonight I committed pre-task hooks for custom tasks in UppercuT. What has been available up to this point is only the post-task custom hooks. Now you can hook in before a task runs and run your own custom tasks! This is done the same way as the post run custom tasks. The naming convention here is *.pre.build in the name. For example _compile.pre.build would be the pre-task custom tasks for _compile.build. The post task custom tasks are now moving to a *.post.build naming standard. For now using the ......

Posted On Thursday, July 2, 2009 12:28 AM | Comments (0) | Filed Under [ Code UppercuT ]

TortoiseSVN Missing Context Menu After Vista Upgrade from Home to Ultimate
Recently I upgraded Vista Home to Ultimate. I could not get the context menu back. I thought I was going crazy trying to get it back. I uninstalled and reinstalled many a time trying to get it back. I still couldn’t get TortoiseSVN to show up. So I uninstalled and started a rampage through the registry to find what I needed to remove. I came across this key: HKEY_CURRENT_USER\Software\... It had an entry for Context Menus (which I had modified). I backed the key up and deleted it. Then re-installed ......

Posted On Monday, June 29, 2009 8:03 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Subversion 1.6, Tree Conflicts, and the Incompatibility of Subversion 1.5: What You Need to Know
NOTE: Subversion's new tree conflicts feature is something you need to learn about. Otherwise it will bite you later and you will be left with an uncommitted change and confusion about how to get it committed. Take a few moments to read this article. SVN 1.6 Client + 1.5 Server = "Error: Aborting commit: 'C:\SVN\source-branch\src\i... remains in conflict " and the file is gone. It's just gone! Subversion 1.6 has been out for awhile and quite a few of us just upgraded our TortoiseSVN clients ......

Posted On Wednesday, June 10, 2009 6:26 AM | Comments (8) | Filed Under [ Code ]

SQL Server 2005/ SQL Server 2008 - Rebuild or Reorganize ALL Indexes in a Database
I found this gem while looking at a database that needed all indexes rebuilt. I actually had to create the programmatic way of doing rebuilding all indexes in a database based on the information in these posts: http://blog.sqlauthority.co... http://www.sql-server-perfo... http://www.sqlservercurry.c... ......

Posted On Tuesday, June 9, 2009 10:38 PM | Comments (2) | Filed Under [ Code ]

How to Programmatically Install A Windows Service (.NET) on a Remote Machine (with or without Dependencies) - Part One
Sometimes there is no good way to do things on remote computers except through something as low level as WMI (Windows Management Instrumentation). Installing a service is a great example of this. Fortunately for us, Jared Boelen has already figured this out. I recommend reading his posts on how to do this. We are not going to get into the actual MS Build Task that he put forth this time, just the code that would allow you to install a service remotely. NOTE: This is based heavily on Jared's code ......

Posted On Sunday, September 21, 2008 12:50 AM | Comments (1) | Filed Under [ Code ]

MSBuild.Community.Tasks - WebDirectoryCreate / WebDirectorySettings Patch Accepted
It appears that my patch finally got accepted and rolled into MSBuild Community Tasks. I posted it back in December and just saw the commit email in the last two weeks. It is the first patch I have submitted to Open Source that has been accepted (also the only patch submitted so far). I plan on submitting patches to this and possibly to Nant as I start working heavily in tasks in the near future. One of which will be ServiceCreate based on one I found from a guy, except adding the ability to set ......

Posted On Saturday, September 20, 2008 10:08 AM | Comments (0) | Filed Under [ Code ]

UppercuT - TeamCity Integration - Part 4 (Code Drop / Artifacts of the Build)
In Part 1 we create a project. In Part 2 we set up the Build Configuration. In Part 3 we ran the build. Now we are just going to note how we get to our code. Code Drop / Artifacts TeamCity stores all artifacts in a database. So for every build, the drop location is not a physical disk location, it’s actually in a database. This is why we called zip.bat instead of build.bat. We have to download the items from TeamCity and want to just download the one file. If we download that file and unzip it, we ......

Posted On Monday, June 8, 2009 7:05 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - TeamCity Integration - Part 3 (Run the Build)
In Part 1 we create a project. In Part 2 we set up the Build Configuration. This time we will Run the build. Run the Build Project 1. Click on Projects. 2. You can see that the new project has not run before due to the question mark. 3. Let’s kick it off. Click {Run |…}. 4. The page refreshes automatically to show that we are running. 5. NOTE: The first build may fail due to folder cleaning that is happening at the same time. You will see a note in the build log that it is deleting items at the same ......

Posted On Monday, June 8, 2009 6:58 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - TeamCity Integration - Part 2 (Create a Build Configuration)
Last time we created a project. This time we will set up the build configuration with it. Create a Build Configuration 1. Click {add a build configuration} for this project. 2. In the [Name:] field, we need to add something descriptive. We are building the trunk on every change. Let’s call it Bombali Trunk CI. 3. In [Artifact paths:] enter code_drop/*.zip. 4. In the Fail build if: section, ensure that these settings are checked: a. build process exit code is not zero b. at least one test failed c. ......

Posted On Monday, June 8, 2009 6:52 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - TeamCity Integration - Part 1 (Create a TeamCity Project)
Integrating UppercuT with TeamCity is actually very easy. We will go through the steps to set up and run a build. Let's start with Creating a project. Create A Project 1. Log into TeamCity. 2. Go to Administration. 3. Click on create project. 4. Type a name for your project. Try to use an identifying name. In our example, we are using Bombali. We also add a nice description about the project. Choose what is most appropriate for you. 5. Click {Create}. Next we will create a Build Configuration. UppercuT ......

Posted On Monday, June 8, 2009 6:39 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Test Category Filters
I'm happy to announce that UppercuT now has test category filters. The NUnit Task had them by default. To get categories added to MbUnit Task, I had to go back to the source code and add them. I followed the same format that NAnt-Extensions used: <mbunit report-types="Html;Xml;Text" report-filename-format="${f... report-output-directory="${... halt-on-failure="true" failonerror="true" > <assemblies> <exclude name="${dirs.build}\*Databa... /> <exclude ......

Posted On Saturday, June 6, 2009 12:20 PM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 0 (Prerequisites)
In all discussion about how to get started, I didn't mention that there are prerequisites to using UppercuT. Well, really there is only one prerequisite. Prerequisites Source control command line tool on the path If you are unsure, open a command line and type svn to find out if you already have it installed. Download In our case Subversion Command line client. You can get that from Collabnet (you will have to register) at http://www.collab.net/downl... Note: If you have installed VisualSVN, ......

Posted On Wednesday, June 3, 2009 6:50 AM | Comments (0) | Filed Under [ Code UppercuT ]

NDepend and CruiseControl.NET
NDepend is one of the best code analysis tools out there for determining code quality! It does so with some advanced metrics and I can say I still don't understand all of it, but we take advantage of the areas we do understand! It will help point you to possible problems with code during code reviews and it has some nice images to help visualize what's going on in your code. You can even hook it up to CruiseControl.NET (CC.NET) and see reports for NDepend per build. We are going to talk about how ......

Posted On Tuesday, June 2, 2009 6:29 AM | Comments (1) | Filed Under [ Code ]

UppercuT - Automated Builds - TeamCity Integration Coming
This is a quick update to note that TeamCity is on it's way to being supported. I was given a patch for this and I am about verify that it works (it came from a trusted source through, so I am pretty sure it will). You know what the greatest part of the patch was? It was one line of code. <property name="version.build" value="${environment::get-v... if="${environment::variable... /> We don't even need a setting to determine if the build server is ......

Posted On Monday, June 1, 2009 8:59 PM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 8 (Next Steps)
In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. In Part 4 we updated our reference folders if we needed to. In Part 5 we built our code successfully. In Part 6, we checked into source control. In Part 7, we automatically ignored folders for SVN. What are the next steps to take advantage of the power of UppercuT? The Power of UppercuT UppercuT comes with many great features! You now have automated build ......

Posted On Saturday, May 30, 2009 12:52 PM | Comments (9) | Filed Under [ Code UppercuT ]

AutoTest.NET Changes Now in Source

The changes I made recently to AutoTest.NET have made it back into source control.

Get the code at http://code.google.com/p/autotestnet/source/checkout

Posted On Friday, May 8, 2009 4:07 PM | Comments (0) | Filed Under [ Code ]

Nothin But .NET Coming to KC End of August
I attended JP's Nothin But .NET last November in Philadelphia and it was the best course I have ever been to! Sooner than you know it will be in Kansas City this year. It starts Monday, August 31, 2009 at 8:00 AM and goes through Friday, September 04, 2009 at 10:00 PM. I can tell you from experience it will probably be over more like at 4AM on Saturday morning! If the price looks like a lot, keep in mind that this price is REALLY CHEAP for the amount of training and learning that you receive. This ......

Posted On Thursday, March 19, 2009 6:57 PM | Comments (0) | Filed Under [ Code Personal ]

ALT.NET Conference: Take 2 - Seattle
Registration looks like it just opened up! See you there if you get a seat! This event is April 18-20 at Digipen in Seattle, WA. As with the first conference, ALT.NET is free, but only accepts the first 150 people to sign up ......

Posted On Tuesday, February 12, 2008 3:59 PM | Comments (1) | Filed Under [ Code ]

UppercuT - Automated Builds - Getting Started Part 7 (TortoiseSVN Global Ignore List)
In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. In Part 4 we updated our reference folders if we needed to. In Part 5 we built our code successfully. In Part 6, we checked into source control. This is a recommendation on automatically ignoring folders for SVN. TortoiseSVN Global Ignore List Because TortoiseSVN is the most commonly used client, it’s worth mentioning the Global Ignore list. You benefit ......

Posted On Saturday, May 30, 2009 7:43 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 6 (Source Control & What NOT to Check In)
In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. In Part 4 we updated our reference folders if we needed to. In Part 5 we built our code successfully. Now we are ready get this into source control. Let's UppercuT our code! Artifacts of the Build UppercuT outputs some files and folders that should never be checked into source control. These are basically the same as what is in your bin directories with ......

Posted On Saturday, May 30, 2009 7:35 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 5 (Build IT!)
In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. In Part 4 we updated our reference folders if we needed to. Now we are ready to build. Let's UppercuT our code! BUILD IT! What You’ve Been Waiting For 1. Open a command line in the current folder. There is an excellent tool called StExBar that will allow you to do this by pressing {Control} + {M}. 2. Type build. Press {Enter}. 3. Now watch UppercuT in action. ......

Posted On Saturday, May 30, 2009 7:24 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 4 (External Libraries / Tools)
In Part 1 we downloaded or built from source control. In Part 2 we added UppercuT to our project. In Part 3 we set up the UppercuT configuration. This is a small update into where you keep your external references. If you keep them where UppercuT defaults to, you can skip this step. External Libraries/Tools It’s important to note that not everyone keeps their references to external libraries (lib) in the same location in source control. That’s fine, but it requires a little additional work. In the ......

Posted On Saturday, May 30, 2009 7:13 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Getting Started Part 1 (Get UppercuT)
So you've decided to UppercuT your code and you want to get started. You are making a step in the right direction when you choose to use automated builds. As you read through this, you will see how easy it is to get into the world of automated builds. As you read through some of the other documents, you will learn just how powerful UppercuT is. The first thing you need to do is download or pull the source to your computer and build it. Get UppercuT Download 1. Head out to http://code.google.com/p/up... ......

Posted On Friday, May 29, 2009 7:13 AM | Comments (0) | Filed Under [ Code UppercuT ]

UppercuT - Automated Builds - Custom Tasks
UppercuT provides hook points to custom tasks so that you can customize UppercuT without ever having to touch the files in BuildScripts. This makes it extremely easy to upgrade UppercuT versions when you keep your custom build scripts separated from UppercuT’s build scripts. To add custom tasks, all you need to do is create them in a folder next to BuildScripts called BuildScripts.Custom. These are the points were custom tasks are called (in order): _compile.build calls BuildTasks.Custom\_compile.... ......

Posted On Thursday, May 21, 2009 10:46 PM | Comments (0) | Filed Under [ Code UppercuT ]

AutoTest.NET - AutoSpec for .NET
Recently I mentioned I mentioned that I wanted AutoSpec in .NET, but it looks like James Avery has already created it awhile back as AutoTest.NET. I gave the project a little automated build love using UppercuT (a super simple to use build framework. Automated builds as easy as 1 (solution name), 2 (source control path), 3 (company name)). Then I noticed the project looked like it wanted to use log4net, but hadn't really sat down and put that in yet. So I added that as well, plus a few more logging ......

Posted On Sunday, April 26, 2009 4:39 AM | Comments (1) | Filed Under [ Code ]

AutoSpec
I was on my way home this evening when I was thinking of a test generation framework that could help me write some of the tests I always write to test construction setters, properties and null inputs to methods. Basically the tag line was going to be "AutoSpec - For those of us that are Test Driven but want to automate some of the mundane tests." Once I got home, I started to look if anything like this is out there and came across something different. I came across a Ruby product called AutoSpec. ......

Posted On Saturday, April 25, 2009 11:34 PM | Comments (0) | Filed Under [ Code ]

The Tarantino Project - Database Change Management
The Tarantino Project is a very simple to use database change management system that uses an application or NAnt deployment tasks to do so. I've been checking out Tarantino for about a week and I just started using it today and wanted to share my experience with how easy it is to use. To use Tarantino, all you have to do is follow a couple of conventions. You create a folder for a particular database. Then you have two folders under that, Create and Update. You name each sql task you want it to do ......

Posted On Tuesday, March 24, 2009 5:56 AM | Comments (3) | Filed Under [ Code ]

The Tarantino Project and MSBuild
One feature I wanted to see in Tarantino is the ability to use either NAnt or MSBuild. So I sent in a patch to add MSBuild. If you want to be able to use MSBuild 2.0 with Tarantino, just apply the patch and rebuild. :D I've also included the patch with this post. Tarantino MSBuild Patch Update: I noticed that patches do not include binary files. In the lib\MSBuild folder, these are what need to be added. log4net.dll Microsoft.SqlServer.BatchPa... Microsoft.SqlServer.Connect... Microsoft.SqlServer.Replica... ......

Posted On Monday, March 23, 2009 10:52 PM | Comments (2) | Filed Under [ Code ]

Git - Distributed Version Control - New User Resources
JP recently talked me into it, so I finally took the plunge and decided to try Git using http://github.com. If you are new like me, there are some guides out there to help you get up to speed on Git pretty fast. A few starter notes, and I will release you to the resources available. Git is distributed source control, so each local copy has all of the history. That means you have all of the history of a project on your local machine. When using Git, there is the idea of staging, committing, and pushing. ......

Posted On Sunday, March 15, 2009 3:14 PM | Comments (2) | Filed Under [ Code ]

Universal NAnt Script for MbUnit
If you run automated builds using NAnt, you may or may not know about the MbUnit Task you can add to NAnt. MbUnit has pretty good directions for how to do get their task setup. I've been out to their site a couple of times trying to remember the exact details of the mbunit NAnt task. Dru put the thought into my head, why not make the concept of running the tests a more generic and universal item so that you can just drop a couple of files into a project and be done? I thought about this for awhile ......

Posted On Tuesday, January 27, 2009 10:40 PM | Comments (5) | Filed Under [ Code ]

The DevHuddle
The DevHuddle. This is a term I started using to identify what my team does to plan development work for an iteration. Basically this is where we sync up and get everyone on an even playing field for consistency, map out our plans and design and coordinate who is going to do what. Why a huddle? In football the team gets the orders (prioritized stories) from the coach (project manager) and then the quarterback (team lead) explains the plan and how the players (the developers) are going to carry it ......

Posted On Tuesday, December 30, 2008 9:13 PM | Comments (0) | Filed Under [ Code ProjectManagement ]

The Real Reason to Use IoC/DI (Inversion of Control/Dependency Injection) and a Container Like Windsor
Can you imagine maintenance where you would only have to change a configuration? How about not having to touch existing production code but be able to completely change the behavior of an existing application?! The real reason to use a dependency injection container is Maintenance. When considering that after you write your first line of code, everything from that point on is maintenance, maintenance is a pretty big deal. Containers make changes seamless. Actually, interface-based development makes ......

Posted On Sunday, December 14, 2008 1:11 AM | Comments (2) | Filed Under [ Code CastleProject ]

Interesting Error with .NET Framework 3.5 SP1 Install
Thought you should know. :D Awesome ......

Posted On Friday, December 12, 2008 2:00 PM | Comments (1) | Filed Under [ Code Personal ]

Caveat to Adding the Everyone Account in VisualSVN Server
You may experience issues after allowing the Everyone special account in VisualSVN Server, such as not being able to commit code. VisualSVN Server is a great product to manage Subversion for you! Recently I posted on how to allow anonymous access to your repository and set up the special "Everyone" account, but I recently think I found a bug in it. It may be expected behavior for what the Everyone account represents, but for me, it's quite unexpected. Once I add the Everyone account , it will override ......

Posted On Wednesday, December 10, 2008 8:47 PM | Comments (1) | Filed Under [ Code ]

Kansas City Day of Dot Net : Inversion Of Control With Windsor Container
Today I gave a presentation on Windsor Container at KC's Day of Dot Net. The presentation went pretty smoothly, other than accidentally unplugging the projector link. :D I introduced fluent interfaces into my presentation code this time around and it seemed to be somewhat well received. I also added Mass Transit's startable facility to the Windsor configuration and showed how easy it is to use Windsor to leverage production level code. Thanks to all that came! I appreciate the interest and the great ......

Posted On Saturday, December 6, 2008 3:03 PM | Comments (0) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Wrap up
Over the past few days I have been honored to be at the Nothin but .NET Developer Boot Camp in Philadelphia, PA. I have also been posting updates every day. A few people have asked me if this course is worth it. I would say if you want to be passionate about what you do (or if you already are), then the answer is a resounding YES!! The sheer amount of benefit you get from knowledge and participation, you may feel like you are a bandit making out with only having had to pay the extremely reasonable ......

Posted On Monday, November 24, 2008 12:28 AM | Comments (4) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Day 5
Friday was the last day of the training course and today we went over a couple of patterns and had a discussion on Domain Driven Design. After the discussion, we were released to continue working on our end to end solution. The team I was on (Go Conquistadors!) got all the way down to the database second out of four teams. We were first to have all parts vertical though. Then we started to refine our design even more. And that is where we left the solution on Friday night. People Bowing Out As the ......

Posted On Sunday, November 23, 2008 11:45 PM | Comments (0) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Day 4
So you may notice this post is a little late. The course moved to an open format today and the last people left for the night at 4:30 AM. That's 9 AM to 4:30 AM. Basically today we got direction from JP and then formed groups that we worked with all day to implement an end to end solution from the point that we were already at. One of the things you will push yourself for today is understanding fluent interfaces to whatever extent that you can. The other part is how to build them. They are much harder ......

Posted On Friday, November 21, 2008 4:49 AM | Comments (0) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Day 3
Today the most important thing is Coffee! When you take this course (not if *grin*) you definitely need to get coffee after lunch. Some things of note today: Group Interaction There is a lot more group interaction with tasks and the tasks are getting to a point where they take quite a bit lot longer to complete. Group dynamics has definitely picked up and come into play a lot more because by the third day you are much more comfortable with everyone. I am seeing personalities coming out as we get ......

Posted On Thursday, November 20, 2008 1:04 AM | Comments (1) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Day Two
Today has been awesome! More of what we learned yesterday, plus more. We got more in depth into certain patterns and have had a huge helping of BDD all day long. The format has been that JP has written the specs and we get the tests to pass. The format looks like it will start to shift to JP doing less and less code and us doing more and more of it. Three Project Solution So one thing I immediately picked up on is the 3 project solution. One of the projects holds all of the automation and automated ......

Posted On Tuesday, November 18, 2008 8:39 PM | Comments (0) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Day One EOD Update
Today I learned I have a lot to learn! Patterns, Delegates, Lambdas, PSake, Extension Methods, etc, etc, etc. Photo credit to Hikako. So far we have went through patterns and principles. Ones that come to mind are the Strategy Pattern, Static Gateway Pattern, Decorators, and Specification Pattern. We also got into SRP (single responsibility principle), OCP (open closed principle), Composition over Inheritance, BDD (behavior driven design), DDD (domain driven design), and then we talked a little about ......

Posted On Monday, November 17, 2008 10:19 PM | Comments (0) | Filed Under [ Code Personal ]

Nothin but .NET Developer Boot Camp - Day One Midday Update

My brain hurts. That is all.

Delegates FTW!!!!

Posted On Monday, November 17, 2008 3:50 PM | Comments (2) | Filed Under [ Code Personal ]

Going Back to Boot Camp
In 1998 I went through Basic Combat Training for the United States Army. It was 9 weeks of grueling, awesome and exhausting training. It was training that definitely pushed the limits of your body and mind. I learned quite a lot and the training forever shaped the person I am today. Next week, I will have the opportunity to go to Boot Camp again, but this time it will be for .NET development. JP Boodhoo, a great guy who I met at Alt.NET, conducts a course known as Nothin' But .NET Developer Boot ......

Posted On Tuesday, November 11, 2008 8:02 PM | Comments (4) | Filed Under [ Code Personal ]

Call For Input: Branch Development Syncing Issue
All of the code we write must be tested and accepted by users before it can go into production. Which brings about a unique possibility of a syncing issue when we are doing so in a branch development scenario. The image below is a great reference. Say we have two imaginary branches, one for features and two for production fixes. In reality there would probably be a branch for every production fix and multiple branches for on-going development. The trunk is code that has been released to production. ......

Posted On Thursday, October 23, 2008 1:34 PM | Comments (3) | Filed Under [ Code ]

From Zero to Continuous Integration Presentation: Tulsa TechFest 2008
Thanks to all who made it through my talk on Continuous Integration, as it was pretty dry with lots of page refreshing to show changes as we were building. I am thinking this presentation isn't geared towards a fast format or I wasn't quite ready for it. Either way, CI is an important tool to leverage anywhere code is being written, even if it is a dry talk. :D Here are the files and the configuration that show how to connect up to SVN, VSS, TFS, and Vault. Also there is a triggered build in here ......

Posted On Thursday, October 9, 2008 4:13 PM | Comments (5) | Filed Under [ Code ]

Enhancing VisualSVN Server to Allow Anonymous Access
Rick Strahl had a great recent post on Running VisualSVN Server for Subversion Source Control. I have been running VisualSVN Server for my repositories for a little while now and especially love how painless the setup is. Not to mention that VisualSVN Server is 100% free! One part that I especially liked was the part I have been missing and that is anonymous access to repositories. I have been thinking about having this for awhile and with Rick's post I was able to allow it: Anonymous Repository ......

Posted On Saturday, October 4, 2008 2:50 PM | Comments (9) | Filed Under [ Code ApplicationsToysOther ]

SharpZipLib Versus 7-Zip for Large File Sets
Recently I was asked to help out when we had a need to reduce the size of a directory of rolling backups. And when I say size, I am talking around 12GB a day backup sizes. This was already a compressed directory, but I found that if we zip up the folders, we can get even better compression (to the tune of 60+% more room). First note: Windows built-in zipping utility is not so good, it won't even try to compress anything that size. Instead it throws an error. Nice. Basically I started working with ......

Posted On Tuesday, September 23, 2008 11:21 PM | Comments (3) | Filed Under [ Code ]

Defining MSBuild And NAnt Tasks Together in the SAME Class
I haven't seen ANYONE talk about putting MSBuild together with NAnt. To me, writing two separate classes (one for MSBuild and one for NAnt) is repetition. There may be a reason to keep them separate (and that might have to do with keeping other required assemblies around, i.e. NAnt.Core.dll when just wanting MSBuild), but I have not found a really good reason yet to separate them. If someone does, please let me know. I just made the two play nice together in my last post ......

Posted On Sunday, September 21, 2008 5:23 AM | Comments (1) | Filed Under [ Code ]

How to Programmatically Install A Windows Service (.NET) on a Remote Machine (with or without Dependencies) - Part Two
Last time we created WmiService. Now we are going to create the Tasks so that we can call it from the build script. This time we are going to get our Create Service and Delete Service into our Automated Deployment Scripts of MS Build and/or NAnt. Let's define our tasks. The MS Build Tasks <CreateService MachineName="serverName" ServiceName="aService" ServiceDisplayName="A Service" PhysicalLocation="C:\Locati... StartMode="Automatic" UserName="user" Password="password" Dependencies="MSMQ,hlpsvc" ......

Posted On Sunday, September 21, 2008 5:09 AM | Comments (0) | Filed Under [ Code ]

Do Not Store Environment Files in Source (i.e. config files) - Just Say No To Environment Files Period
Environment files in source control are a big No No. Environment files are a big No No anywhere. Period. Except one place - where they are used. You should ONLY maintain ONE local environment file. You should only store in source that one file that is needed to run the code locally. If you have a config.DEV, config.TEST, config.PROD, etc. YOU ARE WRONG! Stop this, you are causing yourself more pain! Every time you update one value, you have to update it in several places. You are violating DRY (don't ......

Posted On Sunday, September 7, 2008 2:12 PM | Comments (3) | Filed Under [ Code ]

Tools Matter: Automated Builds / Automated Deployments
Recently Oren posted about how Tools Matter. I agree completely (110%!). I remember a time when we didn't have automated builds and most assuredly didn't have automated deployments either. I remember how long it took to get an environment set up. Our testers would ask us to put the latest code in an environment and it would literally take over an hour sometimes to get the environment updated because we would deploy first to a DEV environment and then a TEST environment for them. Then we would have ......

Posted On Sunday, September 7, 2008 12:04 PM | Comments (3) | Filed Under [ Code ]

Windows Services: Update Configuration Without Restarting The Service Follow up
I recently posted on How To Receive Configuration Updates without restarting a .NET Windows Service. For some reason it never showed up in Google Reader. I guessed the reader maybe missed it for some reason. Perhaps it was something in the naming of my post. Like I mentioned in the article, it is possible to update the configuration and not have to restart the service. I was interested in learning how when I saw that log4net was doing it. I didn't take quite the same path they did, but I was influenced ......

Posted On Sunday, September 7, 2008 11:27 AM | Comments (0) | Filed Under [ Code ]

.NET Windows Services: How to Receive Configuration Updates without Restarting the Service
Something I have been working on recently is a utility that will watch the configuration file and let me know when it changes. It is a work in progress (I am always tweaking code) even though it works now and I am always open for feedback. I was heavily influenced by looking at how log4net implemented the same thing with the XMLConfigurator (although they used a custom way of getting the file). Basics of How to Receive Configuration Updates Without Restarting a Service To start setting up a configuration ......

Posted On Friday, September 5, 2008 1:06 AM | Comments (2) | Filed Under [ Code ]

Inserting into Microsoft SQL Server Database Identity Columns
This came up in a discussion the other day so I thought I would share it. CREATE TABLE dbo.TestIdentity ( ID bigint identity(1,1) --primary key ,[Desc] char(20) ) INSERT INTO dbo.TestIdentity ([Desc]) values ('first') INSERT INTO dbo.TestIdentity ([Desc]) values ('second') SET IDENTITY_INSERT TestIdentity ON --note the identities being inserted INSERT INTO dbo.TestIdentity (ID,[Desc]) values (1200,'id-third') INSERT INTO dbo.TestIdentity (ID,[Desc]) values (1,'id-fourth') -–this works until you set ......

Posted On Saturday, August 23, 2008 7:11 PM | Comments (0) | Filed Under [ Code ]

Test Driven Success Story Plus Side Effects of Good Design
Once you understand good design and the benefits, you don't go back. One of our projects at work has nearly 800 tests in it (across 5 test projects). The point isn't that we have 100% test coverage (because I doubt we do). The point is that we know how a method behaves when sent empty and null values, and also for nearly every edge case in addition to the happy path. Most of these are 800 tests are logical unit tests. Some are system integration tests (parts of the system working with each other). ......

Posted On Saturday, August 23, 2008 2:16 PM | Comments (7) | Filed Under [ Code ]

Continuous Integration Enhancement : The Broken Build Token!
I thought I would post about this because I find myself putting notes about this in comments here and there. One of our team members bought the rabies plush doll from ThinkGeek a little over a month ago. From the site: Most folks never realize how cute microbes can be when expanded 1,000,000 times and then fashioned into cuddly plush. Until now, that is. Keep one on your desktop to remind yourself that there is an "invisible" universe out there filled with very small things that can do incredible ......

Posted On Wednesday, August 20, 2008 1:14 AM | Comments (1) | Filed Under [ Code ProjectManagement ]

.NET Framework 3.5 SP1: No More Need for CasPol on Network Shares
http://www.infoq.com/news/2... In the past, one could not run managed code from network shares due to security reasons. That feature was introduced in .NET from the beginning to prevent security attacks coming from network locations. The feature did not resolve the respective security threats because unmanaged code always was allowed to run in such a circumstance. A pool organized by Brad Adams, Program Manager at Microsoft, shows that many people would like to have ......

Posted On Tuesday, August 19, 2008 10:22 PM | Comments (3) | Filed Under [ Code ]

Calling PowerShell Functions with Parameters
This threw me for a loop today. You can't call a PowerShell function with commas "," or parentheses "()" and have it believe it goes to both parameters. Try running the following and see what your output is on every line call to "foo." function foo([string]$a, [string]$b) { Write-Host "a:", $a, " b:", $b } foo("A", "B") foo "A", "B" foo "A" "B" foo("A", "B") "C" rm function:/foo You may find you get different results than you may first expect. I did. Reference: http://weblogs.asp.net/soev... ......

Posted On Tuesday, August 19, 2008 7:29 PM | Comments (1) | Filed Under [ Code ApplicationsToysOther ]

TFS 2005 Team Build Error: Referenced Assembly Missing (Not In Build Folder)
You may run into this at some point. TFS Team Build may not deploy some assembly file you needed. If you look through the logs, you will see something like this (cleaned up for readability): C:\WINDOWS\Microsoft.NET\Fr... /noconfig /optionstrict+ /rootnamespace:Company.Proj... /doc:obj\Release\Company.Pr... /define:"CONFIG=\"Release\"... /reference:..\libs\Castle\C... ..\libs\Castle\Castle.Dynam... ......

Posted On Tuesday, August 19, 2008 7:21 PM | Comments (5) | Filed Under [ Code ]

Possible Performance Counter Corruption Or Performance Counters are Just Disabled | SQL Server 2008 Installation Errors
If you are installing SQL Server 2008 (or anything for that matter) and it won't let you continue for the following reason: Rule "Performance counter registry hive consistency check" failed. The performance counter registry hive is corrupted. What does this mean? This may mean that the value in HKEY_LOCAL_MACHINE\SOFTWARE... NT\CurrentVersion\Perflib under Last Counter and the last number value in Counter under HKEY_LOCAL_MACHINE\SOFTWARE... NT\CurrentVersion\Perflib\009 ......

Posted On Sunday, August 10, 2008 5:21 PM | Comments (19) | Filed Under [ Code ApplicationsToysOther ]

Always Use Nullables for Dates Follow-up
I have always wondered why you can't have an "empty" date in VB and C#. I had some good feedback on my recent post on nullable dates and I wanted to clarify why I think nullables are great for dates. The point I am trying to get across is that with dates, in a business sense, you either have a date or you don't. You never really have a 01/01/0001. Using 01/01/0001 or 01/01/1753 is a hack for lack of being able to say that you have an empty date. I am going to make a quick comment on strings. Strings ......

Posted On Friday, August 8, 2008 7:04 PM | Comments (1) | Filed Under [ Code ]

SQL Server 2008 Ready - VS2008 SP1 Coming Aug11
On MSDN you are greeted with this: The fun begins: Thanks Steve ......

Posted On Thursday, August 7, 2008 9:49 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Always use Nullables for Dates: C# and VB.NET
Always use Nullables for dates at the least. Trust me on this. I dogged Nullables for the longest time because I thought they were buggy, then I realized today when testing that I was using them wrong. Nullables allow you to actually have null values, which for dates is arguably a must. Why? Keep reading... Tip: Never call Nullable.Value. The nullable item will error out if it is a null value. This is where I was going wrong and thought they were buggy. Just call the nullable item and it will return ......

Posted On Wednesday, August 6, 2008 9:47 PM | Comments (13) | Filed Under [ Code ]

How Did I Get Started Programming?
How old were you when you started programming? Well, most people don't know that I am still kind of new to computers. I grew up poor and my first experience with computers was in high school (Apple IIs and Craptastic Macs). I almost failed keyboarding class in 7th grade (required a minimum of 27 WPM with less than 4 errors/minute). I actually didn't own a computer until I was in my second semester of college. It was a Gateway and it broke so much I got good at fixing computers. That was 1998. I have ......

Posted On Monday, August 4, 2008 10:16 PM | Comments (0) | Filed Under [ Code Personal ]

End2End Automated Testing: Second Day & More Thoughts on Why Automation
How about doing a full regression of the system under development every ten minutes? Second Day Automation Testing One of the things I neglected to mention (on purpose) in my End2End post the other day was that you also test for the second day. In this test you are sending in new items and updating some existing items. You also leave some of the items from the first day completely alone to see what happens to them. This is done in the same way as the first, except you look for a second input file ......

Posted On Wednesday, June 25, 2008 10:38 AM | Comments (0) | Filed Under [ Code ]

Problem Solver or Developer?
My friend Raymond just posted a great perspective on development. I have come to the conclusion that I am a problem solver. That’s my business. Whether its process management, software architecture, personal growth for my development team or trying to keep my daughter from stealing my son’s toys, I solve problems. I totally agree with Raymond about being a problem solver. I have been saying that for years, so it's nice to see someone else come to this conclusion as well. One thing I have learned ......

Posted On Thursday, December 27, 2007 11:54 PM | Comments (0) | Filed Under [ Code Personal ]

Automated Deployment - MSBuild.Community.Tasks - WebDirectoryCreate / WebDirectorySettings Example
From my previous post of WebDirectoryCreate I have an example script of how you would use MSBuild Community Tasks to Set up Virtual Directories and/or do updates to the current virtual directory. The below is an example of how you can create or update virtual directories. This is what you would add to the MSBuild.proj file. <PropertyGroup> <!-- Virtual Directory Items--> <EnableVirtualDirectoryS... <VirtualDirectoryApplica... ......

Posted On Tuesday, December 18, 2007 11:49 PM | Comments (6) | Filed Under [ Code ]

MSBuild.Community.Tasks - WebDirectoryCreate / WebDirectorySetting / WebDirectoryDelete
Recently I submitted a patch for the MSBuild.Community.Tasks because there were certain tasks that were not working for us. I decided to blog about this because there are others that indicated they were having the same issues. In IIS, you are able to specify more than one website with the same ports. By default, the WebDirectoryCreate task will always loop through and choose the last website with that port. If you do have more than one website with the same ports, you need to distinguish differences ......

Posted On Tuesday, December 18, 2007 11:08 PM | Comments (0) | Filed Under [ Code ]

Subversion 1.5.0 Released
Subversion (SVN) just released version 1.5.0 recently on June 18, 2008. With it comes bug fixes and boosts in performance. It is highly recommended that you reference the release notes, and pay attention to merge tracking: Merge tracking means Subversion keeps track of what changes have been merged where. This reduces the overhead involved in maintaining branches, and gives users a way to inquire what changes are merged — or are available to be merged — on different lines of development. VisualSVN ......

Posted On Monday, June 23, 2008 2:44 PM | Comments (0) | Filed Under [ Code ]

End2End Automated Testing: Calling Applications Remotely
Calling a remote application, you want it to run almost always in its native directory and not against your calling End2End code's directory. Why? You don't want to have to verify whether the application uses or will use any kind of relative paths. You want your End2End Tests to work in any respect. So you can implement the basic code for starting a process using the System.IO and System.Diagnostics .Net libraries. Public Sub RunApplication(ByVal filePath As String, ByVal args As String, ByVal waitForExit ......

Posted On Monday, June 23, 2008 8:44 AM | Comments (1) | Filed Under [ Code ]

End2End Automated Testing: Setting Network Permissions Automatically
When setting network permissions, you are going to want to use a random permission name that you can clean up once the test is complete. The "-q" in the call for CasPol is very important, because it quietly and automatically sets the permission. You can implement the basic code for starting a process using the System.Diagnostics .Net library. Private Const FRAMEWORK_DIRECTORY As String = "Microsoft.NET\Framework\v2... Public Sub AssignNetworkPermission(ByVal remoteDirectory As String, ByVal ......

Posted On Monday, June 23, 2008 8:41 AM | Comments (0) | Filed Under [ Code ]

End2End Automated Testing
We have started an initiative this year. We call it End2End Automated Testing. The idea is based on a couple of factors. Many times in the past we have not had an easy way to verify our configuration, security and deployment to an environment in an automated way. The second is that regression testing is a very arduous process for our QA staff when it must be completed. How do we give time back to our testers and verify everything in a given environment is correct? With automation of course! So what ......

Posted On Monday, June 23, 2008 1:26 AM | Comments (4) | Filed Under [ Code ]

Develop for Maintenance
One thing I always keep noticing is that people will develop things without even giving a thought to maintenance. This somehow seems impolite to me. I suffer from Coder Alzheimer's, which means I can't remember a thing I wrote after not seeing after three weeks. That is why I think about things like maintenance. I am seeing all new code if I have been away from it for awhile! Now that is not completely true, but imagine how it may be for the guy who has never seen your stuff. Challenge: How Easy ......

Posted On Wednesday, June 11, 2008 7:48 PM | Comments (12) | Filed Under [ Code Personal ]

Technology Adoption Lifecycle: In Response To "Why Alt.NET?"
Scott C Reynolds (no known relation) wrote an excellent post a few weeks ago that is definitely worth reading on Why Alt.NET. He talks about the us vs. them and the reasoning that might be behind it. I will forgo the use of labels that may be seen as derisive and divisive, and state my observation from my career that developers fall into two very broad camps: those who at least lurk but maybe participate in "community" activities (blogs, conferences, mailing lists, etc) and those who, for whatever ......

Posted On Tuesday, April 15, 2008 7:35 PM | Comments (2) | Filed Under [ Code Personal ProjectManagement ]

THE Best Methodology on How to Successfully Develop Software
I know you see this post and think that I am going to shock you with the best approach to software development and I am! The great thing is I am not a consultant being paid for this so you don't have to spend countless thousands of dollars for me to come into your organization and tell you what processes are working for you and what you need to change to have successful projects. Why not? Shockingly, I don't want to take your money! I don't want your organization's money either. What I really want ......

Posted On Sunday, April 6, 2008 1:16 AM | Comments (0) | Filed Under [ Code ProjectManagement ]

Inversion of Control Containers
One of the questions that I received during my recent presentation was how many different inversion of control containers are there for .NET? I managed to name about four off of the top of my head. Scott Hanselman just did a post listing more than ten .NET IOC Containers. Check it out here: http://www.hanselman.com/bl... ......

Posted On Saturday, March 15, 2008 11:39 AM | Comments (0) | Filed Under [ Code ]

.NET User Group Presentation - Windsor Container: Inversion of Control/Dependency Injection
A while ago I spoke about giving a presentation at the .NET User Group meeting. I gave that presentation on Tuesday and it went pretty well. I am still working on a possible video podcast of the presentation. Here is the Visual Studio solution (be sure to read the readme file): IoC_Example.zip Here are all of the references. Interfaceshttp://www.c-shar... ......

Posted On Thursday, March 6, 2008 10:10 PM | Comments (0) | Filed Under [ Code Personal ]

ALT.NET Conference Seattle Filling Up Fast
81 spots have been filled since 4PM CST when registration opened (about 3:30 hours ago). There is still time if you want a spot! Hurry though, at this rate registration will close off soon. There are only 150 spots total. http://altdotnet.org/events... ......

Posted On Tuesday, February 12, 2008 7:42 PM | Comments (2) | Filed Under [ Code Personal ]

Real Life Examples of Agile Development
I just saw this challenge to find real life examples of agile development by Tom Perry. He was hanging Christmas lights and found a way to incorporate test driven development (TDD) and continuous integration (CI) into putting up the lights. He put up his lights, then turned them on and found he had a problem. I had broken the first rule of agile development - Test First! Of course, any reasonably competent handyman would have known to try plugging in each strand of lights before beginning the life ......

Posted On Friday, December 28, 2007 1:11 AM | Comments (4) | Filed Under [ Code Personal ]

BlogSeries - Define Your Work Environment: The People With Which You Work
One of the things I have been thinking about is the caliber of the people I would work with. I think there are several types I would like to work with (or probably already do and like it!). As I mentioned at the start of this series, this is my definition of my perfect work environment. This almost definitely is not what you would see as the perfect environment and that is okay. I invite you to come up with your own ideas and put them together. Technical PM - While I have had the type of PM I really ......

Posted On Tuesday, December 11, 2007 11:23 PM | Comments (0) | Filed Under [ Code Personal ProjectManagement ]

BlogSeries: What if You Could Define Your Work Environment?
Over the next month or two I will be blogging about a topic that is likely to make you think. If I were to ask you what your perfect work environment was, what would you say? I would like you to think about the people you work with. If you could work with anyone you wanted to and have your boss be anyone you wanted, who would it be (or you could be the boss)? I would like you to think about programming languages. Would you pick just one or would you like to leave the door open to whatever best fit ......

Posted On Tuesday, December 4, 2007 10:16 AM | Comments (1) | Filed Under [ Code Personal ApplicationsToysOther ProjectManagement ]

Reporting Services Fix - Report Viewer 2005 SP1 Redistributable Package
Apparently the issue I was having has been fixed in the Report Viewer 2005 Service Pack 1 from April 2007. The Microsoft Technician mentioned this: I tested your issue and it seems that it has already been fixed in the Report Viewer Redistributable SP1. I was able to reproduce the issue on version 8.0.50727.762 of the Report Viewer control and then I tried with 8.0.50727.817 and it worked correctly. Can you go here: http://support.microsoft.co... and download/install the package. Once that ......

Posted On Thursday, November 29, 2007 12:28 PM | Comments (0) | Filed Under [ Code ]

Reporting Services Workaround
Last week I posted about a bug in the SQL Reporting Services Report Viewer for ASP.NET. I think today after someone's suggestion we found a possible workaround. If we subscribe to the DrillThrough event on a report and then reset our ReportViewer before displaying the report, it works as it should. Add the below to the default.aspx Code Behind File. Private Sub rvReports_Drillthrough(ByVal sender As Object, ByVal e As Microsoft.Reporting.WebForm... Handles rvReports.Drillthrough ......

Posted On Wednesday, November 28, 2007 4:33 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Impressions on ALT.Net
A little over a month ago, I drove down to Tulsa TechFest with Dru. I think the best part of the whole conference was not the presentations, not the speaking (although I learned new things), but the face time with some of the people. I would have to say that hanging out with the ALT.Net crowd was pretty awesome in and of itself (I didn't get to attend that conference down in Austin because I wasn't speedy enough). Having the chance to hang out and play pool with David Laribee (the Godfather of ALT.Net), ......

Posted On Tuesday, November 27, 2007 10:55 PM | Comments (0) | Filed Under [ Code Personal ]

IoC/DI using Windsor Container
This is a modified version of the presentation that I gave at Tulsa TechFest. It is being prepared for the Topeka .NET User Group Meeting where I will most likely be giving a presentation in January or February. There are a lot of things that bear the name Windsor, as I highlight in the beginning of my presentation. Download Solution - IOC_Example.zip To run the solution you need both AdventureWorks and Northwind installed. You can run Northwind on SQL Server 2005 with 2000 compatibility mode set ......

Posted On Tuesday, November 27, 2007 6:49 PM | Comments (0) | Filed Under [ Code CastleProject ]

Tulsa TechFest 2007
Last month I had the pleasure of going to Tulsa TechFest for the second time and I have to say that I am more impressed with it this time versus the last time I visited. The last time I went I was on military leave and I was at Ft. Sill during the time so I came over because my buddy Tim was talking and I hadn't yet seen him give any presentations. I went back this year to give a presentation on Interface based development, Inversion of Control, and Dependency Injection. My examples of this were ......

Posted On Tuesday, November 27, 2007 6:03 PM | Comments (0) | Filed Under [ Code Personal CastleProject ]

Reporting Services 2005 BUG - Report Linking and Paging - ASP.NET Report Viewer
Download Solution - ReportingTests.zip There is an interesting thing that happens when you use Reporting Services 2005. You find that sometimes things don't quite work like you want them to and you don't know why. Such as sorting on a boolean (not going to happen). Or Rich textboxes. Nope, that's vNext. Or wanting it to actually USE the white space that I have put into the report instead of ignoring it on a web page (pre tag anyone?). So what you do instead is start looking for ways around these ......

Posted On Wednesday, November 21, 2007 10:10 PM | Comments (10) | Filed Under [ Code ApplicationsToysOther ]

VS2008 RTM: Confirmed
Microsoft has confirmed that VS2008 is released. Finally I am downloading it... :D Update: Those that are not seeing it in the tree, look here instead: http://msdn2.microsoft.com/... Scroll down to Top Subscriber downloads and look for it there ......

Posted On Monday, November 19, 2007 11:28 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

VS2008 Bits Technorati
Following the rumor mill on Technorati it appears that a few people have posted pictures of VS2008 being up. The pictures the person linked are to the database edition though. In my last post, I showed that I don't even see it in the tree. Others have mentioned that Microsoft confirmed it would be out this week in this blog post. Frans Bouma has also posted that VS2008 is available (Team Suite) ......

Posted On Monday, November 19, 2007 10:49 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Rumor: VS2008 bits on MSDN
Unofficially I heard this morning that the bits are up, but I don't see them yet on MSDN Subscriber Downloads. I will say that the section for VS2008 has disappeared on MSDN. I need to hit a better server. :D ......

Posted On Monday, November 19, 2007 10:34 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Recently Read at Ayende
The best thing I have read all month is Ayende @ Rahien's message:

Which means that if the "hacked" server tells the DB to think that it is Super Mario, it will believe it.


That's awesome!! :D

Posted On Monday, November 19, 2007 9:23 AM | Comments (0) | Filed Under [ Code ]

VS2008 Beta2 Available
http://weblogs.asp.net/scottgu/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx

Posted On Friday, July 27, 2007 9:07 AM | Filed Under [ Code ApplicationsToysOther ]

DevConnections - The Way of The ReSharper (R#)
R# is a tool that I use and absolutely love. I recommend this for anyone who uses Visual Studio and programs in C# or VB.NET. Those that use R#, we see the benefits that it brings and the absolute productivity boost that you get using it. You immediately think, why wasn't this stuff in here to begin with?! It brings about a great set of refactoring tools, and it lets you know when you open a set of code if it is going to compile or not. You can find usages in a file (it will put color codes as to ......

Posted On Friday, November 16, 2007 10:13 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Continuous Integration Helpers: CCNetConfig and CIFactory
If you use CruiseControl.NET or are thinking about setting it up, it can be daunting because of the XML document that you have to write for the configuration. If you already have it set up, you definitely want to check out CCNetConfig, a configuration editor for CruiseControl.NET. It works like many of the configuration editors such as the WCF configuration editor (comes with .NET Framework 3.0 I believe) or the Enterprise Library Configuration Editor. Definitely something worth looking at. CIFactory ......

Posted On Friday, November 9, 2007 10:01 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

DevConnections - Panel Discussion: Open Source on the Microsoft Technology Stack
I really enjoyed this discussion. I knew I wanted to go to this when I saw that it was Scott Hanselman (great podcaster and now a Microsoft employee), Phil Haack (of SubText and now Microsoft), Rob Conery (of SubSonic and now Microsoft developing Subsonic full time), and Shaun Walker (of DotNetNuke). I love how panel discussions take on a life of their own, depending on the audience. This was definitely like that because we had some interesting people in the audience. Among the crowd, the first person ......

Posted On Friday, November 9, 2007 1:29 AM | Comments (0) | Filed Under [ Code ]

DevConnections - MVC Framework for ASP.NET
This was my first chance to see the MVC (model view controller) Framework as when I was at Tulsa TechFest, I was presenting at the same time and didn't get to see Palermo's version of it. I was blown away by Scott Hanselman's great presentation skills. He is definitely a great speaker. Phil Haack was also in the audience (the new PM for the MVC Framework). I am really excited about seeing this come out. Like Monorail, you can also plug in Brail or NVelocity as well as the default. Being able to have ......

Posted On Wednesday, November 7, 2007 2:48 PM | Comments (0) | Filed Under [ Code CastleProject ]

DevConnections - ASP.NET & VS Keynote - Scott Guthrie
Scott Guthrie gave a great keynote this morning. As is turns out VS 2008 is almost complete and we are not getting a copy here at the conference. We will get one mailed to us however after they release it. Which means we will not really be one of the first to get it. :( Visual Studio 2008 - Of course this is going to be able to be used immediately by us due to the fact that you can target .NET Framework 2.0. That means we can just install and continue developing the same applications with AJAX integration ......

Posted On Tuesday, November 6, 2007 12:21 PM | Comments (0) | Filed Under [ Code Personal ApplicationsToysOther ]

DevConnections in Vegas
So here I find myself at DevConnections again. I came because I had such an enjoyable experience in Orlando last year. This year I am hoping for the same. This is my first time at the Vegas DevConnections and it looks like many more people come out here than go to Orlando. They also have more co-conferences at the same time. I am looking forward to the WCF presentations and the first one I will be headed to is a pre-conference workshop on SOA with Michele Leroux Bustamante. The post-conference session ......

Posted On Monday, November 5, 2007 11:56 AM | Comments (3) | Filed Under [ Code Personal WCF ]

Windsor is Like Dad Helping with a 6th Grade Science Project...
You remember when you were in sixth grade and you did your science project all on your own, but Sally and Billy had their fathers help them? Your project looked like a sixth grader put it together, and Sally's project, well it looked more like a professional did it. Sally's project looked much more professional than yours...and why was that? Was it because Sally was just very creative and good at that kind of stuff and you weren't? Was it because she had better access to resources to complete hers? ......

Posted On Wednesday, October 17, 2007 11:07 AM | Comments (6) | Filed Under [ Code CastleProject ]

WCF Faulted State Question
I'm calling a WCF service with a windows application. If the service errors (say you throw an exception from the service), it goes into the faulted state and I can't use the proxy anymore for calls. In light of realizing that your proxy can only fault once, and not wanting to do one of the two things below (from Jeff's post): Subscribe to the Faulted event of the communication object. Check the State property of the communication object before executing a service operation. I will add option three: ......

Posted On Tuesday, October 16, 2007 2:17 PM | Comments (4) | Filed Under [ Code WCF ]

WCF Impersonation - Specifying Windows Authentication Credentials on the Service Host Side of the WCF Equation
We don't want to use AspNetCompatibility mode in case we ever want to take advantage of net.tcp or another custom binding, so is there a way to specify and implement impersonation (read: userName=,password=) on the WCF Service Host side? Did Microsoft in their infinite wisdom leave this out? I posed this question to my friend Dru today after we were having trouble finding a way to do it. So there are plenty of articles on WCF Impersonation out there, but nearly all of them originate from the client ......

Posted On Wednesday, October 3, 2007 1:29 AM | Comments (8) | Filed Under [ Code ApplicationsToysOther WCF ]

WCF in IIS with Websites that have Multiple Identities
Error Description: "This collection already contains an address with scheme http. There can be at most one address per scheme in this collection. Parameter name: item" A fantastic<sarcasm> thing you may come across using WCF when you deploy to a production network is that your networks group uses more than one identity per website (most likely due to different host headers). Below is a picture of what it looks like in IIS. You get there when you right click on the website (in IIS) and select ......

Posted On Tuesday, October 2, 2007 11:56 PM | Comments (14) | Filed Under [ Code ApplicationsToysOther WCF ]

Restricting Export Options in Report Manager
This doesn't really seem to be out there a lot, but a colleague of mine found this for me recently. http://sqljunkies.com/WebLo... Now if we can figure out how to override the default output so we can tell SQL Server Reporting Services (SSRS) not to ignore whitespace. Reports look great in everything BUT HTML when you want more than one space on items ......

Posted On Tuesday, October 2, 2007 2:45 PM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

Interface based Development
This is a great article on the benefits of interface based development. I might be doing a presentation on that when I go to Tulsa TechFest in October, so you might be seeing more blog posts than normal by me. http://www.c-sharpcorner.co... ......

Posted On Thursday, September 6, 2007 10:20 AM | Comments (2) | Filed Under [ Code ]

Silverlight RC1 released

http://weblogs.asp.net/scottgu/archive/2007/08/01/vs-2008-javascript-intellisense-for-silverlight.aspx

Posted On Thursday, August 2, 2007 7:34 AM | Comments (0) | Filed Under [ Code ApplicationsToysOther ]

My End of Year Roadmap to Becoming a Better Person (and Developer)
Recently I was tagged by Russ on the Justice Gray challenge. Personal Something I have been attempting over the last few years is to be healthier. What does that mean? Well for my wife and I that means making healthier decisions when we eat. We find the good substitutes. Over the past two years we realize that is not enough. A healthy diet is a good step in the right direction, but you need that level of exercise to be the catalyst for a healthy lifestyle. -I think I want to run in something, probably ......

Posted On Tuesday, July 24, 2007 11:18 PM | Comments (3) | Filed Under [ Code Personal ApplicationsToysOther ]

Powered by: