الهيكلية الاحترافية لمشروع C# Windows Forms مع SQL Server، و طريقة الاتصال بقاعدة البيانات

✅ الهيكلية الاحترافية لمشروع Windows Forms مع SQL Server 




نوصي بتقسيم المشروع إلى الطبقات التالية (Layers) لتحقيق تنظيم واحترافية:
1. Presentation Layer (واجهة المستخدم - Forms) 
يحتوي على النوافذ والواجهات (Windows Forms) لا يحتوي على منطق التعامل مع قاعدة البيانات مباشرة.
2. Business Logic Layer (BLL) 
يحتوي على المنطق الخاص بالعمليات، مثل التحقق من صحة البيانات قبل إرسالها إلى قاعدة البيانات. 
3. Data Access Layer (DAL) مسؤول عن جميع عمليات الاتصال بقاعدة البيانات.
 يستخدم SqlConnection و SqlCommand مع SqlParameter. 
4. Entities (اختياري) كائنات 
تمثل الجداول في قاعدة البيانات (Class لكل جدول).


 🧩 مثال على الهيكل في مشروع Visual Studio

MyApp/
│
├── MyApp.Presentation/    ← واجهات المستخدم (Forms)
│     └── MainForm.cs
│
├── MyApp.BLL/             ← منطق الأعمال
│     └── CustomerManager.cs
│
├── MyApp.DAL/             ← طبقة البيانات
│     └── DatabaseHelper.cs
│     └── CustomerRepository.cs
│
├── MyApp.Entities/        ← الكيانات (اختياري)
│     └── Customer.cs
│
└── App.config             ← يحتوي على Connection String



🔌 الاتصال بقاعدة بيانات DATA على .\
SQLEXPRESS 

1. كتابة Connection String في App.config:
<configuration>
  <connectionStrings>
    <add name="DefaultConnection"
         connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DATA;Integrated Security=True"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>



2. استخدام الاتصال داخل الكود:
using System.Configuration;
using System.Data.SqlClient;

public class DatabaseHelper
{
    private readonly string _connectionString;

    public DatabaseHelper()
    {
        _connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
    }

    public SqlConnection GetConnection()
    {
        return new SqlConnection(_connectionString);
    }
}

comments

أحدث أقدم