Mike Borozdin's Blog

A blog about programming, web and IT in general

Follow Me



The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© 2014 Mike Borozdin

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

Tags: ,
Posted on Sunday, January 20, 2013
Comments (0)

How To Test For CreatedDate and LastModifiedDate in Salesforce.com APEX

Quite often you need to test a piece of functionality that processes date fields in Salesforce.com. Every object in Salesforce.com has system fields - CreatedDate and LastModifiedDate - which signify when a record was created, and when it has been updated the last time.

It used to be pretty difficult priot to the Winter '13 release, which has dramatically simplifed such testing.

I wrote this post for the Cloudreach Dev Blog, a blog of the company I work for. Please, continue reading there.

Posted on Wednesday, January 16, 2013
Comments (0)

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

Posted on Tuesday, November 22, 2011
Comments (0)

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

Posted on Wednesday, September 21, 2011
Comments (0)

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

Posted on Wednesday, September 07, 2011
Comments (0)

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

Posted on Tuesday, September 06, 2011
Comments (0)

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

Tags: ,
Posted on Monday, September 05, 2011
Comments (0)

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

Posted on Monday, June 13, 2011
Comments (0)

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

Posted on Friday, June 10, 2011
Comments (0)

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

Posted on Tuesday, September 21, 2010
Comments (0)