Develop an app/module/ solution that will update a Microsoft SQL Server 2005 or newer database. The purpose of this application is to integrate the code into an existing application to update several copies of a SQL Server database that was distributed with a custom application.
## Deliverables
SQL Database Update Utility Develop an app/module/ solution that will update a Microsoft SQL Server 2005 or newer database. The purpose of this application is to integrate the code into an existing application to update several copies of a SQL Server database that was distributed with a custom application. This module should be designed to only apply any and all changes made to the database tables and stored procedures or views and functions. If not changes are detected then the application should not make any changes to the database. The module should be able to compare (using a schema saved to a XML file or other preferred method/files) the latest version of each table and apply the changes accordingly. The module should also generate the schema/necessary files from the source/latest release database that will be used when comparing to the distributed database. The module should be able to add or remove tables, table columns, change data types and all other attributes for a table or table column including default values, data type and length, precision and scale, identity, identity seed and increment, default value for column and allow nulls or not and all constraints like primary keys and all indices and table relations. The module should preserve any data in the tables as much as possible, so if a change was made to a table column that would possible cause the loss of data then the module should be designed to archive the data accordingly. Any stored procedures or views should be automatically updated and any new stored procedures or views should also be added automatically. This module should assume the SQL connection string will be passed to it. Since this application will be updating a custom application, the source database will not be accessible during the update. All database information will need to be stored in files that will be compiled into the update utility. Two interfaces should be developed for this application, one to build the SQL DB Schema and all supporting files and another that will be incorporated into an update utility. A test interface (windows forms project) will be included with the solution for testing purposes. The app should also ship with a test database for testing purposes. Either the coder can start from scratch or use the existing code that is about 90% complete. The module should be developed in Visual Studio 2005 using c# as the development language. Coding should be done in accordance with all Microsoft best practices that apply to this project. If an .exe is created the Programming Language & Development Platform: 1. Application to be developed and delivered in a Visual Studio 2005 project/solution - English (United States) edition 2. Windows class library or console project. 3. C#.NET to be the development language. Operating Platform(s): 1. Microsoft Windows English (United States) edition. 2. Designed to run on the Microsoft .NET framework 2.0 or newer. Deliverable Conditions: 1. Complete and fully-functional working program(s) in executable form as well as complete source code of all work done. 2. Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables): a) For web sites or other server-side deliverables intended to only ever exist in one place in OptiSoft Systems environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment. b) For all others including desktop software or software the OptiSoft Systems intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request. All deliverables will be considered "work made for hire" under U.S. Copyright law. OptiSoft Systems will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement). 1) I require complete and fully-functional working program(s) in executable form as well as complete source code of all work done (so that I may modify it in the future). 2) Deliverables must be in ready-to-run condition as follows (depending on the nature of the deliverables): 2a) If there are any server-side deliverables (intended to only exist in one place in the Buyer's environment) then they must be installed by the Seller in ready-to-run condition (unless specified elsewhere by the Buyer). 2b) All other software (including but not limited to any desktop software or software the buyer intends to distribute) must include a software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request (unless specified elsewhere by the Buyer). 3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. 3b) No part of the deliverable may contain any copyright restricted 3rd party components (including GPL, GNU, Copyleft, etc.) unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the seller's Seller Legal Agreement.