A production-ready contact management system implementing clean 3-tier architecture with C# and SQL Server.
┌─────────────────────────────────────────────┐
│ ConsoleApp-PresentationLayer │ ← User Interface
├─────────────────────────────────────────────┤
│ ContactsBusinessLayer │ ← Business Logic
├─────────────────────────────────────────────┤
│ ContactsDataAccessLayer │ ← Data Persistence
└─────────────────────────────────────────────┘
contacts-management-system/
├── ConsoleApp-PresentationLayer/
│ ├── Program.cs
├── ContactsBusinessLayer/
│ ├── Contacts.cs
├── ContactsDataAccessLayer/
│ ├── ContactsDataAccess.cs
│ ├── Dataacces_Helper.cs
└── README.md
- Clean Architecture: Strict separation of concerns
- SOLID Principles: Maintainable and extensible codebase
- Database Integration: Full CRUD operations with SQL Server
- Error Handling: Comprehensive exception management
- Scalable Design: Easy to extend and modify
Layer | Technology |
---|---|
Presentation | C# Console Application |
Business | C# Class Library |
Data Access | ADO.NET + SQL Server |
Development | Visual Studio 2022 |
# Clone the repository
git clone https://github.com/aboubakr-jelloulat/Dot-Net-Tiered-Architecture.git
# Open in Visual Studio
cd contacts-management-system
start ContactsManagementSystem.sln
# Build and run
dotnet build
dotnet run --project ConsoleApp-PresentationLayer
ConsoleApp-PresentationLayer
│
└── ContactsBusinessLayer
│
└── ContactsDataAccessLayer
Benefit | Description |
---|---|
Maintainability | Single responsibility per layer |
Testability | Independent layer testing |
Scalability | Easy feature additions |
Flexibility | Technology-agnostic design |
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push to branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Built with ❤️ by Software Engineers