Pre- and Post-Release Checklist for an ASP.NET Application with IIS and SQL

Releasing an ASP.NET application requires careful planning to ensure a smooth deployment without disruptions. Below is a checklist that I use to cover essential pre- and post-release checks, focusing on database changes, application performance, and stability.

Pre-Release Checklist

TaskCheckbox
Prepare the Code and Database Changes
Peer-review all code changes. Make sure all code changes are reviewed and approved through pull requests.☐
Run automated tests (unit, integration, and functional tests).☐
Ensure proper logging and error-handling mechanisms are in place.☐
Compile the code in Release Mode and make sure it does not throw any errors.☐
Make a list of the files that need to be updated in live. Views/ASPX/ASCX/CSS/JS☐
Make a list of any hard-coded value that needs to be changed in any file.☐
Gather a list of newly added or updated third-party libraries, NuGet packages, or other resource files, such as images.☐
Verify all SQL table schema changes (new tables, column modifications, constraints, etc.) and prepare the script.
Use ALTER TABLE instead of DROP TABLE to prevent data loss.
☐
Review and test stored procedures, triggers, and views. Make the script ready.☐
Verify new indexes are optimized and do not impact write operations.☐
Make a script if you need to add any new data to any table. Or update any existing data in any table.☐
Ensure that the SQL script does not have any hardcoded value that requires changing the live environment.☐
Make a list of what changes in in web.config or appsettings.json.☐
Make a list of any new application settings that are required in live(e.g., API keys).☐
Make a list of any dependent systems that need to be updated. Review and list any scheduled jobs and background services that need to change with this release.☐
Make a list of any site setup changes required in IIS for this release.☐
Database Backup
Take a full backup of the production database just before the start of the release process.☐
Prepare a rollback plan in case of deployment failure.☐
Deployment Package Preparation
Generate and package build the files (e.g., DLLs, CSS, JS files). Make sure the ddl is made in release mode. Minify css/js files.☐
Organize and test the SQL scripts with a test database.☐
Testing
Run all unit tests.☐
Perform integration testing with the database and external services.☐
Conduct performance testing.☐
Perform regression testing to ensure existing functionality works.☐
Documentation
Document release notes with changes, new features, and known issues.☐
Create a step-by-step deployment guide.☐
Communication
Notify stakeholders about the release schedule and potential downtime.☐
Brief the development, QA, and operations teams on the release process.☐

Follow the step-by-step deployment guide to make the release. For a major release, it is recommended to schedule downtime and include a maintenance page for the user.

Once the release is done, this is the post-release checklist.

Post-Release Checklist

TaskCompleted
Verify that the application is running correctly in the production environment.☐
Perform tests on critical functionalities.☐
Check logs for unexpected errors or warnings.☐
Validate integrations with external systems (APIs, third-party services, etc.).☐
Monitor database performance and query execution times.☐
Perform real-user testing to ensure functionalities work as expected.☐
Validate security settings post-release.☐
Gather user feedback and address any reported issues promptly.☐
Be prepared to roll back changes if critical issues arise.☐
Communicate fixes and updates to stakeholders as necessary.☐

This checklist ensures a structured and thorough approach to deploying your ASP.NET application and minimizing risks to ensure a smooth production environment. Let me know if I have missed anything!