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.
21 September 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
7 September 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.
6 September 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).
5 September 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.
13 June 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.
10 June 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.
21 September 2010
Introducing SQL Server CE 4.0 CTP
When I came across a story on the newest version of SQL Server CE by Scott Guthrie, as well as a blog post in the SQL Server CE team blog, I was amazed that it was possible to run on a web server for ASP.NET application in the Medium Trust mode without any installation. This literally means that finally one can use SQL for storing data even though their hosting plan, for example, doesn’t allow having a SQL Server database.
12 September 2010
Facebook Graph API and Its JavaScript SDK
Facebook has recently released a new tool for accessing its vast amount of data. The name of the tool is the Graph API. The Graph API allows you to literally interact with any Facebook object, including users, their photos, posts, groups, pages, as well as connections between object, i.e. listing people’s friends, group members and page fans, etc. Moreover, this interaction isn’t only single-directional, in fact you can also modify object, add and delete them
10 September 2010
Design Patterns are not a Silver Bullet and the State of the Programming Blogosphere
Design patterns are not a universal tool that can be applied to any project or be used with any programming language. Quality code can be produced without implementing any pattern or even without using OOP. One shouldn’t think of their colleagues as of bad developers if they don’t know the names of fancy design patterns. Moreover, not any single programming project is a business application.
4 January 2010

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way. My personal thoughts tend to change, hence the articles in this blog might not provide an accurate reflection of my present standpoint.

© Mike Borozdin