1. Undo/Redo functionality in .NET

    You need to implement Undo/Redo functionality? Seems I have something to show you… …


  2. Ndb v. 1.0.1 was published

    Just uploaded new Ndb maintenance release.

    • Quote tables & columns names in generated SQL queries.
    • Shared Connection support added.
    • IsDbGenerated property added to DbPrimaryKeyFieldAttribute (currently supported by MySql only).
    • DbLinqAttributesLoader supports composite primary keys & IsDbGenerated flag.
    • NdbConsole now able to check mapping attributes and generate xmlreport.
    • Other minor changes
    Also now using new version model. …


  3. Languages table (MSSQL)

    Often I need languages list in database, so I decided to post it here. Hope it will save several minutes for someone ;) …


  4. Notes about temporary tables support in MSSQL

    MSSQL provides wide abilities to use it’s temporary tables. I. Visible locally.

    declare @SomeTableName table ( Id int, Title nvarchar(50) ); create table #SomeTableName ( Id int, Title nvarchar(50) )
    Note that the first table will be in memory (in most cases), but second will be stored in tempDB II. Visible to everyone:
    create table ##SomeTableName ( Id int, Title nvarchar(50) )


  5. Excel 2007 Automation under Windows Server 2008 x64

    Today I’ve run into the strange problem. I developing a windows service which should generate an Excel files. I’ve tested it’s logic using unit tests and all worked fine. But then I started testing for the windows service, I saw the following strange error: …


  6. Mysql Performance Tips

    Some MySql perfomance tips from greate “How to Kill Mysql Performance” presentation

    • Use Explain
    • Use the smallest data type possible
    • Store IP addresses as INT UNSIGNED (The INET_ATON & INET_NTOA functions will help you)
    • Persistent connection is evil
    • Heavy abstraction layer is evil
    • Learn both the benefits and drawbacks of each table engine (slide 21)
    • Clustered layout is faster for lookup by primary key operations (than Non-clustered layout) (slide 26)
    • If you don't pick a primary key, one will be created for you automatically
    • Understand query cache (slide 32)
    • Don't use stored procedures (slide 34)
    • Be aware of deep scan slowdowns
    • Be aware of COUNT(*) in InnoDB table
    • Use ON DUPLICATE KEY UPDATE
    How to Kill Mysql Performance


  7. Using Data Contracts: be aware!

    Just another “have to know” thing. …


  8. About Me

    My name is Michael Ayvazyan. I’m a programmer working remotely for the Compellotech for the last 5 years. In this blog I try to highlight interesting things about software development tools, practices, patterns, etc. I hold Open Source in high respect. Actually way back into Apr 17 2009 I published a tiny Database Access Library Ndb Library. It was developed in Test First Development in mind and it implements code-centric  approach to work with Database. I don’t work on it anymore since Entity Framework team shipped EF Code First as a part of the Entity Framework 4 release. Ndb Library was designed to work with different database engines (MySQL, PostgreSQL, SqLite, MSSQL Server are supported). In the same time it’s pretty easy to add other engines. There is another small open source project MSBuild.Scaffolding I published on Dec 8 2012. It allows to prepare solution for CI build using single Enable-Versioning command. If you are looking for details on my professional experience LinkedIn has up to date information. Also you might find it convenient to start with infographic summary. …


  9. GhostDoc

    GhostDoc is an amazing tool for everyone who is using Microsoft Visual Studio. I think what it’s a “must have” extension. …


  10. Mailing Lists (on Windows)

    Recently I needed to setup several mailing lists to use in my current project. And I’ve found great solution for this - MailEnable. …