تطوير تطبيقات سطح المكتب
تعلم كيفية بناء تطبيقات سطح مكتب احترافية باستخدام C# و .NET و WPF. هذا المسار يغطي الأساسيات، MVVM، Entity Framework، Async Programming، والمشاريع العملية.
C# Fundamentals
ما هذا؟
C# (C-Sharp) هي لغة برمجة حديثة متعددة الاستخدامات من Microsoft، تستخدم لتطوير تطبيقات سطح المكتب، الويب، الألعاب (Unity)، وتطبيقات الهواتف.
المواضيع المغطاة
• Syntax Basics (الكود الأساسي، التعليقات، using)
• Variables & Data Types (int, string, bool, double, var)
• Control Flow (if/else, switch, for, while, foreach)
• Functions (Methods, Parameters, Return Types, Overloading)
• OOP (Classes, Objects, Inheritance, Encapsulation, Polymorphism)
الهدف
🎯 أساس قوي في اللغة
مصادر التعلم
.NET Fundamentals
ما هذا؟
.NET هو إطار عمل (Framework) من Microsoft يوفر بيئة لتشغيل وتطوير التطبيقات. يتضمن مكتبات ضخمة وأدوات لتسهيل التطوير.
المواضيع المغطاة
• ما هو .NET (Core vs Framework vs .NET 5/6/7/8)
• CLR & Runtime Concept (Common Language Runtime)
• Project Structure (ملفات المشروع، المجلدات)
• NuGet Packages (إدارة المكتبات الخارجية)
الهدف
🎯 تفهم البيئة اللي شغال فيها
مصادر التعلم
WPF (UI Framework) 🔥
ما هذا؟
WPF (Windows Presentation Foundation) هو إطار عمل لبناء واجهات مستخدم غنية لتطبيقات سطح المكتب باستخدام XAML.
المواضيع المغطاة
• ما هو WPF؟
• XAML Basics (لغة تصميم الواجهات)
• Controls (Button, TextBox, ListView, DataGrid, ComboBox)
• Layout (Grid, StackPanel, WrapPanel, DockPanel)
• Styling and Templates
المشروع
🎯 Simple UI App (Form + Navigation)
مصادر التعلم
Event-Driven Programming
ما هذا؟
البرمجة بالحدث (Event-Driven Programming) هي نموذج برمجي يعتمد على الأحداث (مثل نقرات المستخدم) لتنفيذ الأكواد.
المواضيع المغطاة
• Events & Handlers (الأحداث ومعالجي الأحداث)
• User Interaction (التفاعل مع المستخدم)
• Input Handling (معالجة المدخلات: Keyboard, Mouse)
• Custom Events (إنشاء أحداث مخصصة)
الهدف
🎯 تتعامل مع المستخدم
Data Binding 🔥
ما هذا؟
ربط البيانات (Data Binding) هو آلية تربط واجهة المستخدم بمصدر البيانات تلقائياً، مما يقلل من الكود البرمجي ويحسن الصيانة.
المواضيع المغطاة
• Binding Basics (OneWay, TwoWay, OneTime)
• Two-Way Binding (ربط ثنائي الاتجاه)
• ObservableCollection (لتحديث الـ UI تلقائياً)
• INotifyPropertyChanged (إعلام الـ UI بالتغييرات)
الهدف
🎯 ربط UI مع البيانات مباشرة
MVVM Architecture 🔥🔥
ما هذا؟
MVVM (Model-View-ViewModel) هو نمط معماري يفصل واجهة المستخدم عن منطق الأعمال، مما يجعل الكود أكثر تنظيماً وقابلية للاختبار والصيانة.
المواضيع المغطاة
• Model (البيانات ومنطق الأعمال)
• View (واجهة المستخدم - XAML)
• ViewModel (الوسيط بين Model و View)
• Commands (ICommand لمعالجة الأحداث)
• Separation of Concerns (فصل المسؤوليات)
• Data Binding between View and ViewModel
المشروع
🎯 تطبيق منظم باستخدام MVVM
مصادر التعلم
Local Database
ما هذا؟
دمج قاعدة بيانات محلية (SQL Server أو SQLite) مع تطبيق WPF لتخزين البيانات بشكل دائم.
المواضيع المغطاة
• Database Integration (ربط قاعدة البيانات)
• CRUD Operations (Create, Read, Update, Delete)
• Entity Framework (ORM - Object Relational Mapping)
• LINQ Queries (لغة الاستعلام)
• Migrations (تحديث قاعدة البيانات)
المشروع
🎯 App مع قاعدة بيانات
مصادر التعلم
Working with Files
ما هذا؟
التعامل مع نظام الملفات: قراءة وكتابة الملفات النصية، JSON، و XML.
المواضيع المغطاة
• File System (قراءة وكتابة الملفات باستخدام File, FileInfo, Directory)
• JSON (Serialize, Deserialize باستخدام Newtonsoft.Json أو System.Text.Json)
• XML (قراءة وكتابة ملفات XML)
Advanced UI & UX
المواضيع المغطاة
• Styling & Themes (تنسيق الواجهة، السمات)
• Custom Controls (إنشاء عناصر تحكم مخصصة)
• Animations Basics (الرسوم المتحركة)
• Triggers و Visual States
Async Programming ⚡
ما هذا؟
البرمجة غير المتزامنة (Asynchronous Programming) تسمح بتنفيذ عمليات طويلة دون تجميد واجهة المستخدم.
المواضيع المغطاة
• async / await (الكلمات المفتاحية)
• Task (تمثيل عملية غير متزامنة)
• Threading Basics (أساسيات المعالجة المتعددة)
• Avoid Deadlocks (تجنب التوقف)
• ConfigureAwait
الهدف
🎯 تطبيق سريع بدون تهنيج
Dependency Injection
ما هذا؟
حقن الاعتماديات (Dependency Injection) هو نمط تصميم يقلل الاقتران بين المكونات ويسهل اختبار الكود وصيانته.
المواضيع المغطاة
• DI Concept (مفهوم حقن الاعتماديات)
• Services (تسجيل الخدمات واستخدامها)
• Clean Code Structure (هيكلة الكود النظيف)
• Constructor Injection
• DI Containers (Microsoft.Extensions.DependencyInjection)
Project 1 🔥: Task Manager App
فكرة المشروع
تطبيق إدارة المهام (Task Manager)
قم ببناء تطبيق كامل لإدارة المهام باستخدام WPF و MVVM و Entity Framework.
المتطلبات
• CRUD Operations على المهام
• Database (SQL Server أو SQLite)
• MVVM Architecture
• Data Binding
• Async Operations
Advanced Concepts 🚀
المواضيع المغطاة
• Logging (تسجيل الأحداث باستخدام Serilog أو NLog)
• Error Handling (معالجة الأخطاء بشكل احترافي)
• Configuration Files (appsettings.json، التكوينات)
• Global Exception Handling
Deployment 📦
المواضيع المغطاة
• Build .exe (إنشاء ملف تنفيذي)
• Installer Setup (إنشاء مثبت باستخدام ClickOnce أو WiX أو Inno Setup)
• Publish App (نشر التطبيق)
• Self-Contained vs Framework-Dependent Deployment
Final Project 🔥🔥: Full Desktop System
فكرة المشروع
نظام إدارة متكامل (Store / Clinic / Library)
قم ببناء نظام كامل باستخدام جميع المفاهيم التي تعلمتها.
المتطلبات التقنية
• WPF + MVVM Architecture
• Database (SQL Server / SQLite)
• Entity Framework Core
• Async Programming
• Dependency Injection
• Clean Architecture (Separation of Concerns)
• Logging & Error Handling
• Deployment (Installer)
الميزات المقترحة
• نظام مستخدمين (Login, Roles: Admin, User)
• CRUD Operations (منتجات / عملاء / موظفين)
• Search and Filter (بحث وتصفية)
• Reports (تقارير PDF أو Excel)
• Dashboard (لوحة تحكم بإحصائيات)
• Dark/Light Theme