Recently I have stumbled upon a strange exception that raised in my application. It has led to an exception with a confusing message “Could not determine storage version; a valid storage connection or a version hint is required.” Thankfully I have solved this issue finally.
In my previous post I showed you a standard template of WiX installer. Today you will see how to add a custom action to the installer so you can perform more customized operations during the application installation process.
WiX Toolset is a technology to create Windows installers for your software. It is open source and free for use, but as many of free things is not super user friendly. The creation of the installer is XML based. In this post I will try to present a kind of boilerplate template which you can use to quickly create most of the need installer.
One of the beauties of xml, is that it can be extended without breaking applications. You can add element to the xml document tree and the application should not crash or fail while consuming this xml. This is what we can read on the w3schools.com xml tutorial. But how is this with serialization of the xml?
The XML data type allows storing a xml content in our SQL Server database. The great feature is that we can also attach an XSD schema to it and have the xml content automatically validated. Here I am going to show you how to set it up together with Entity Framework Code First.
Entity Framework migrations is indeed a great feature. It makes you don’t need to worry about the database schema updates almost at all. There are however few things you must know to properly understand and use EF migrations. This post describes few of those things.
Application settings in .net applications is a mechanism that allows you to define, modify and easily access a collection of settings. Depending on the setting scope (user or application) they are stored in a .config file deeply under your %USER_PROFILE% folder or in your application’s .exe.config or web.config file. In this post I will show a way to change that behavior and make settings be stored in database.