Well 12/21/2012 has come and gone. The world is still here and my application still needs to be completed. Fortunately companies like Inersoft (http://www.intersoftpt.com) and IdeaBlade (http://www.ideaBlade were not sitting around awaiting the end of the world but instead were continuing to improve already great products and release versions of their award winning software designed to make my job as a developer easier.
I am currently working on creating a database application in .net using SQL Server as the backend. After talking to my users and studying the various options, i decided that a desktop application was to be the main development focus at his time. Since the future might take me down a different path and my application would probably be run over the internet and over other devices such as smart phones and tablets, I wanted to ensure that my application could be easily converted to work on those platforms with the least amount of conversion work. Based on careful consideration of price, ease of use, support, documentation and examples, and releases of updates and fixes, I decided to use Intersoft Client UI for the creation of my user interface and IdeaBlade’s Devforce for the development of the entity framework. I had looked at other UI controls from various companies including ComponentOne, Syncfusion, and Infragistcs. One of the major reasons i chose Intersoft over these other companies was that Intersoft uses the same controls for both WPF and Silverlight. Later as i moved my application from a desktop app to a web based or device based app, it would mean a smoother and faster conversion. In addtion, i found the documentation very helpful and full of examples and tutorials. The Intersoft staff is very helpful and friendly and is always willing to provide assistance to questions posed. I should add that I am not an Intersoft employee but a loyal user of the product. A major decision in developing my application was what framework to use. I decided to use Model View ViewModel (MVVM) as it ties in nicely with the WPF/Silverlight philosophy. The next decision was what MVVM framwork to use. There are a variety out there to choose from including the option to create my own. Using an existing framework while certainly very viable and giving me the benefit of saving me hours of my work. While there are many free ones to choose from it meant one more thing to learn and I felt that many of the existing ones were overkill for what I needed. I know that many developers have strong feelings for their particular favorite MVVM framework. I dont’ want to get into a religious war over which one is the best.
A part of choosing the Intersoft controls was the built in support for MVVM. This feature is not an addon to the controls but is built into the very core of the controls. So I decided to roll my own MVVM framework using the Intersoft UI controls. In the next blog, we will explore the MVVM framework more closely. Now that i had the UI figured out, I needed to work on the interface to the SQL Server database. Again my choices were many. Due again to support, documentation and tutorials, frequent updates, and an ease of usage, I decided to use Devforce 2010 from IdeaBlade. I should also add here that I am not an employee of IdeaBlade. Devforce would shield my application from the data. The built in object mapper would map my classes to the tables in the database and provide easy to learn and use ways to access the data.
One of the major restrictions on the application was that it had to be in .net 4. Many of my clients were still using older operating systems both on the server and work stations and that limited the .net framework to version 4. Over time i will get my clients moved newer operating systerms and over to .net 4.5 and then update my application accordingly.
Well thats enough introduction. In the next blog we wil begin to discuss design philisophy and how the MVVM framework that i rolled. Over the next few months will take the application from the design phase to the development phase.
Have a happy and safe holidays.