This Windows Forms application streamlines deployment and management of IIS-hosted web applications, including backend APIs, Angular frontends, and ReportViewer web apps. It helps automate tasks such as site backup, stopping/starting IIS sites, file cleanup, and content publishing.
- IIS Site Discovery: Lists all IIS websites with status and physical paths.
- Selective Site Management: Choose one or more sites for backup and deployment.
- Backup: Backup entire site directories with progress reporting.
- Stop/Start IIS Sites: Control IIS sites via AppCmd commands.
- Delete Site Files: Safely delete files/folders while excluding critical folders (e.g.,
Documents
). - Deploy Content: Copy backend, frontend, and report files from source folders to target sites.
- Configuration Sync: Copy/update configuration files (
web.config
,appsettings.json
) after deployment. - File/Folder Validation: Validates backend, frontend, and report folders for expected files/folders before deployment.
- Progress Reporting: UI progress bars and colored status messages update in real-time.
- Publish Button: Executes the full deployment process (backup, stop site, delete files, deploy content, config sync, start site) as a single automated action.
Figure 1: Initial Load with No Site Selected
Figure 2: Site Selected with Backup, Backend, Frontend, and Report Paths Set
Figure 3: Backup and Copy Progress Indicated with Percentage and File Count
Figure 4: Deployment Complete, Site Restarted and Running
Note: The Publish button triggers the entire deployment workflow, automating backup, site stopping, file cleanup, content deployment, configuration synchronization, and site restarting in one seamless process.
- .NET 8 Windows Forms
- Infragistics WinForms UltraGrid control
- PowerShell (to retrieve IIS site info)
- Windows AppCmd utility for IIS control
- JSON serialization with
System.Text.Json
Documents/
,runtimes/
- Config files:
appsettings.json
,web.config
,efpt.config.json
,libman.json
- DLLs matching patterns
Microsoft.*.dll
,System.*.dll
index.html
,assets/
- JS and CSS files matching dynamic regex patterns like
main.*.bundle.js
- Directories like
bin
,Content
,fonts
,Scripts
,SqlServerTypes
- Files such as
About.aspx
,Default.aspx
,ReportViewer.aspx
,Site.Master
, etc.
- Launch the app with administrative privileges.
- Select sites from the IIS list to backup/deploy.
- Set backup destination and deployment source folders (backend, frontend, report).
- Use buttons to perform backup, stop/start sites, delete files, copy configs, and deploy content.
- Monitor status messages and progress bars for real-time feedback.
- Uses PowerShell to list IIS sites with name, physical path, and state.
- Uses Windows AppCmd to stop and start IIS sites.
- Recursively copies or deletes files and folders with UI progress updates.
- Validates expected file sets before deployment to avoid incomplete releases.
- Clone or download the repository.
- Open in Visual Studio 2022+ and build the solution.
- Ensure you have the required
.NET SDK 8
and Infragistics(InfragisticsUltimate2022.2
) controls installed. - Ensure IIS is installed and configured on your machine.
- Ensure you have the necessary permissions to manage IIS sites.
- Ensure the required backend, frontend, and report folders are structured as expected.
- Ensure the
appsettings.json
and other config files are correctly set up in the backend folder. - Ensure the Angular frontend is built and the output folder is ready for deployment.
- Ensure the ReportViewer web app files are in the correct structure.
- Ensure the
bin
,Content
,fonts
,Scripts
, andSqlServerTypes
folders are present in the ReportViewer folder. - Ensure the
main.*.bundle.js
files are present in the Angular build folder. - Ensure the
About.aspx
,Default.aspx
,ReportViewer.aspx
, andSite.Master
files are present in the ReportViewer folder. - Ensure the
appsettings.json
,web.config
, and other config files are present in the backend deployment folder. - Run the executable as Administrator (required for IIS control).
- Configure the backup and deployment folders before publishing.
- Click the Publish button to execute the deployment workflow.
- Monitor the progress and status messages for feedback.
- After deployment, verify the sites are running correctly in IIS.
- Check the IIS Manager to confirm site status and content.
- Review the logs for any errors or warnings during deployment.
- The tool is designed to work with IIS sites structured similarly to Demo deployments.
- It is not intended for use with non-IIS web servers or applications.
- The application is built using .NET 8 and requires the latest version of Visual Studio for development.
- Administrative rights are required for IIS operations.
- The UI leverages Infragistics UltraGrid for a rich user experience.
- The application is designed to be user-friendly, with clear instructions and progress indicators.
- The tool is suitable for developers and system administrators who manage IIS-hosted web applications.
- The application is extensible and can be modified to include additional features or support for more complex deployment scenarios.
Md Hasibul Islam Shanto
LinkedIn: bdshanto
This project is licensed under the MIT License.