This project is a comprehensive .NET application developed as part of a hands-on course aimed at becoming acquainted with industrial-level software architecture and design. The project covers the complete lifecycle of a .NET project, including a visualization layer built with WPF.
- Introduction
- Table of Contents
- Installation
- Usage
- Features
- Dependencies
- Configuration
- Examples
- Contributors
To set up the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/your-repository/project-management-dotnet.git
- Install Visual Studio 2022 with .NET 7.0 and C# 11.
- Open the solution file
dotNet5784_8589_0954.slnin Visual Studio. - Restore NuGet packages if required.
- Build the solution to ensure all dependencies are resolved.
Run the application through Visual Studio by setting the appropriate project as the startup project and running it. Follow these detailed steps for common operations:
- Open the solution in Visual Studio.
- Set the startup project to
PL(Presentation Layer). - Press
F5to start debugging, orCtrl+F5to run without debugging.
- Navigate to the task management section of the application.
- Click on "Add New Task."
- Fill in the task details including name, start date, end date, and any dependencies.
- Click "Save" to add the task to the project.
- Select the task you want to update.
- Modify the start date or end date as required.
- The system will automatically update any dependent tasks based on the new dates.
- Click "Update" to save changes.
- Navigate to the Gantt Chart section.
- Tasks will be displayed with color coding based on their status.
- Use the scroll features to explore different time frames.
- Full .NET 7.0 structure with C# 11: Leveraging the latest .NET framework and C# language features for modern application development.
- Data Handling with LINQ and XML: Efficient data collection management and querying using LINQ. XML DOM manipulation for data storage and retrieval.
- GUI Development with WPF: Building a robust and user-friendly graphical user interface using the Windows Presentation Foundation (WPF) framework.
- Multithreaded Development: Implementing multithreading to enhance application performance and responsiveness.
- Design Patterns: Applying essential design patterns such as Singleton, Factory Method, Dependency Injection, and Observer to ensure a scalable and maintainable architecture.
- Multi-tier Architecture: Structuring the application into separate layers for data access, business logic, and presentation to promote separation of concerns and reusability.
- Automatic Schedule Creation with Milestones: Automating the creation of project schedules, including milestone tracking.
- Support for Projected End Date and Deadline: Adding functionality to track and manage project deadlines and projected end dates.
- InJeopardy Status: Introducing a status indicator for tasks that are at risk of not meeting deadlines.
- Update Chain of Tasks: Automatically updating dependent tasks when a task's start or end date is modified.
- Deletion Flag: Implementing a deletion flag for soft-deleting tasks or records.
- Lazy Singleton Implementation: Utilizing lazy initialization for the Singleton pattern to ensure efficient resource usage.
- Custom Styling: Enhancing the user interface with custom styles to improve aesthetics and usability.
- Circular Dependency Check: Adding a feature to detect and handle circular dependencies in project tasks.
- Color-coded Gantt Chart: Displaying a Gantt chart with tasks color-coded by their status for better visualization.
- .NET 7.0
- Visual Studio 2022
- C# 11
- Git
Configuration details such as app settings and connection strings can be found in the appsettings.json file and adjusted as necessary for your environment.