keyboard-medium

KeyNode with Node.js and Microsoft Azure

KeyNode is a application to issue and verify software license keys. Technology stack for KeyNode is Node.js, MongoDB and Microsoft Azure. I had built this functionality with C9.io (a cloud-based IDE with a built-in source code repository and debugger), mongohq (MongoDB as a service – now part of compose.io) and appfog (Cloud PAAS built on top of CloudFoundry). It used […]

The Site44 Workflow

A light weight development workflow with real-time website deployment. I recently built a sample website to illustrate how clean, semantic html markup can be maintained when using Bootstrap’s grid system. The solution is to use a css pre-processor to incorporate Bootstrap’s LESS based mixins into your own .less files and push the Bootstrap instructions down into your stylesheets. There are […]

Understanding and Using System.Transactions

These are some resources to help grasp System.Transactions functionality and use it effectively in your projects: Features Provided by System.Transactions to create transactional applications Implementing an Implicit Transaction using Transaction Scope MSDN Magazine Articles by John Papa: ADO.NET and System.Transactions Revisiting System.Transactions These are specific to TransactionScope (the way to go in most cases): Here is a practical example of […]

ChildWindow Positioning

Silverlight ChildWindow is centered over the parent control. I have extended ChildWindow to open it at a specific position. Here is a live demo : childwindow-positioning-demo And here is the code : public partial class ChildWindowEx : ChildWindow { Point _pt = new Point(0,0); public ChildWindowEx() { InitializeComponent(); } public ChildWindowEx(Point pt) : this() { _pt = pt; } protected […]

Using Model-View-ViewModel in WPF Applications

I am presenting at SoCalCodeCamp this weekend (January 30th, 2010) – Advanced WPF – Using Model-View-ViewModel in WPF Applications. Agenda : 1. Roles of the M-V-VM triad 2. Why use M-V-VM ? 3. Characteristics of the ViewModel 4. Build a Sample WPF Application using M-V-VM Resources : MSDN Magazine Article and Sample Application Download Martin Fowler’s description of the ‘Presentation […]

ReSharper vs CodeRush + Refactor Pro

I have been playing with JetBrains ReSharper (version 4.1) and DevExpress CodeRush + Refactor! Pro (version 3.2.2) lately. I wanted to decide on which one to go with. Here are some notes – R# = ReSharper CodeRush = CodeRush + Refactor! Pro R# seems to be better for refactoring, because it does not assume that I follow a rigid work flow […]

Using NHibernate With SQLite in DbUpdater

DbUpdater (version 1.3 onwards) can be used with sqlite3. Review the files included in DbUpdater-sqlite3.zip 1. DbUpdater.exe.config must be modified. Note changes to the following keys – exe-file, exe-args, dialect, driver_class, connetion_string. 2. SchemaVersion.hbm.xml must be modified. The ‘class’ attributes value for the ‘generator’ of ‘id’ must be changed to ‘identity’. No other changes are needed here. 3. \SqlScripts\schema-version-table.sql is […]

Dial Gauge is a ProgressBar

I am not just being philosophical here. In WPF, ControlTemplates allow you to transform a control’s appearance. This is not the same as applying stylesheets. This is an entirely new level of customization. What you see in the screenshot below looks like a Dial but is actually a simple ProgressBar control wearing a “Dial” template. The Dial template was created […]

PostSharp with SharpDevelop

SharpDevelop3.0 uses MSBuild. Including PostSharp in your build process is transparent if you are doing a global install using PostSharp installer. If you are doing a per-project installation using “Binary – No Installer” download, you will need to import the PostSharp targets into your .csproj file – True C:\code\PostSharp-1.0.8.316-Binary\ For more details, read the install instructions included in the PostSharp […]

WPF – LINQ to SQL Sample

This exercise in binding a WPF ListView control with LINQ to SQL was a lot of fun ! The following image shows data from AdventureWorks sample database displayed in the ListView control. The end result is very admirable, even in this very basic demo. Feeling a complete sense of freedom is unavoidable when working with WPF. This sample demonstrates : […]

Customize log4net Output Path

The default log4net output path is relative to the startup directory of your executable. To customize the output path, you can override the base Appender’s File property in your own Appender class. The following example describes how to route the log files relative to the temp folder : public class MyOwnAppender : log4net.Appender.RollingFileAppender { public override string File { get […]

Leveraging XPATH Axes

XPATH axes come in very handy when nodes need to be selected based on (attribute’s or child element’s) values that must match those of other nodes elsewhere in the xml tree. Consider the following log4net configuration file : <?xml version=”1.0″?> <configuration> <configSections> <section name=”nhibernate” type=”System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b77a5c561934e089″ /> <section name=”log4net” type=”log4net.Config.Log4NetConfigurationSectionHandler,log4net” /> </configSections> <nhibernate> <add key=”hibernate.connection.provider” value=”NHibernate.Connection.DriverConnectionProvider” /> <add […]