A Code Review Is More Useful Than You Think

Recently, I came across a situation which once again proved the immense value in having code reviews. I was working on a tricky part of an application that involved substantial design work. As part of our 'Definition of Done', I had to submit my code for a peer review. The review turned out to be invaluable - after all, it's always useful to get the second pair of eyes to look at your work.

I wrote this article for my company’s blog where you can read it now.

Sunday, June 08, 2014

My Agile Journey

There can be debates whether the Agile Software Development processes have become mainstream or not, but most of the software development houses are trying to adopt the Agile practices. Yet, coming from academia or, say, a less agile environment, such practices can be misunderstood.

In this post, I am going to tell how I have become an avid agile practitioner and what has helped in that glorious journey. More...

Sunday, January 20, 2013

Handling the Double-Click Event with the Visio API

I have already covered the Visio event model in one of the previous posts. Unfortunately, not every event can be handled in that easy way. For instance, the double-click event requires a totally different approach.

In order to handle the double-click on a shape you have to use ShapeSheet More...

Tuesday, November 22, 2011

Reading and Writing Visio Shape Information with C#

Often, you want to either to read or put some additional information regarding shapes in your diagram. For instance, you have an application for drawing a layout of your office. Obviously, every piece of equipment or furniture your have has some information, such as its name, code and any other information related to facility management. There are two ways of reading/writing such kind of information. The first one is to make use of Visio custom properties, while the second one is to store that kind of information in a database. The former is relatively simple, as it doesn’t require to have any additional layer, such as database. At the same time, the latter is more versatile, as it allows integrating Visio application with other business application by querying a database. In the tutorial we cover the first option, that is using custom properties of Visio. More...

Wednesday, September 21, 2011

Understanding Visio Event Model

In the previous chapters we have already seen an important Visio event, DocumentOpened, which is triggered each time you open a new diagram. However, the Visio API supports tons of other events and some of them are necessary for building sophisticated applications around Visio. Provided you have an application with an embedded Visio control and users can use the application to modify diagrams. Obviously, you want to keep track of such changes and, say, record them in a database. Visio events allows you to receive notifications every time such a change occurs. More...

Wednesday, September 07, 2011

Analysing Parent-Child Relations in Visio

This is the second part of the Developing for Visio series. Today, we’ll speak about how to analyse programmatically parent-child relationships in Visio diagrams. Often, especially in block diagrams there are boxes that contain other boxes.


However, during iterating through shapes in a Visio diagram such a relationship is not preserved.More...

Tuesday, September 06, 2011

Developing Applications for Visio with Visual Studio (VSTO, Windows Forms, WPF, XBAP)

This tutorial demonstrates how to extend the Visio functionality by writing an Visio add-in with VSTO, creating a standalone application with both Windows Forms and WPF, and finally by building a browse application with WPF (XBAP). More...

Monday, September 05, 2011

WPF DataGrid CheckBox Single Click Checking/Unchecking

WPF DataGrid has a very annoying behaviour of forcing users to click twice on a checkbox in order to check or uncheck it. There are a number of solutions proposing handling mouse preview events and switching a DataGrid into the edit mode manually. The problem with such solutions is that the require writing quite a lot of extra code that seems to be an overkill for such a minor, yet irritating problem. I propose a better option, to use a DataGridTemplateColumn instead of DataGridCheckBoxColumn.

Indeed, you can easily place a CheckBox inside a DataGridTemplateColumn, bind it to a corresponding property and it will be checkable/uncheckable with a single click. More...

Monday, June 13, 2011

Copying Databases with SQL Server Express Management Studio

Often you need to make a full copy of a database, for example, if you you want to change something and see how it goes without ruining a production database. And if you happen to use SQL Server Express edition you are not so fortunate because famous Copy Database Wizard does not seem to be unavailable in  SQL Server Express Management Studio. There is a simply solution, however. It is using the backup and restore features. More...

Friday, June 10, 2011

Graphical Tools for SQL Server CE 4.0

When I was writing my introductory post about the newly released version of SQL Server or more precisely about just a CTP (Community Technology Preview) version, I complained about an apparent lack of graphical tools similar to SQL Server Management Studio or at least similar to Visual Studio Server Explorer. Such a lack made an exploration of indeed promising features of SQL Server CE 4.0 a slightly tricky task. However, as I pointed out in my previous post that shouldn’t  actually prevent programmers from playing with this database, because in spite of non-existence of GUI tools there was already an API released, thus it was possible to interact with the database system by just issuing SQL statements from C# or any other .NET language.

However, I was wrong in my statement about a lack of GUI tools, in fact they do exists. More...

Tuesday, September 21, 2010