Fervent Coder

Coding Towards Utopia...by Rob Reynolds
posts - 276 , comments - 430 , 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

Sites

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 ]

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 ]

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 ]

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 - 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 ]

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 ]

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 ]

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 ]

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 ]

Full Code Archive

Powered by: