المشاركات

عرض الرسائل ذات التصنيف Visual Basic

Visual Basic - بدء عملية الربط (Initiating the Bind)

📘 درس Visual Basic - بدء عملية الربط (Initiating the Bind) 🔹 ما هي عملية الربط؟ عملية الربط (Binding) هي آلية تحميل الـ Assemblies الضرورية للتطبيق في وقت التشغيل. يبدأ CLR البحث عن الـ Assembly المطلوب عند محاولة استدعاء كود أو كائن منه. ✅ خطوات الربط الأساسية يحدد CLR اسم الـ Assembly والنسخة المطلوبة. يبحث عنه في Global Assembly Cache (GAC). يبحث في مجلد التطبيق والمجلدات المعرفة في Probing. إذا لم يتم العثور، تظهر خطأ FileNotFoundException. 💻 مثال تتبع مسار الربط يمكنك تشغيل أداة Fuslogvw المرفقة مع .NET Framework لتتبع كيف تم البحث عن الـ Assemblies ومعرفة أسباب فشل الربط.

Visual Basic - تجهيز وتوزيع تطبيقات .NET Framework (Packaging and Distributing)

📘 درس Visual Basic - تجهيز وتوزيع تطبيقات .NET Framework (Packaging and Distributing) 🔹 ما المقصود بالتجهيز والتوزيع؟ تجهيز التطبيق يعني جمع جميع الملفات المطلوبة (EXE، DLL، الموارد) في حزمة واحدة قابلة للتثبيت أو النسخ على جهاز المستخدم. التوزيع هو عملية نشر هذه الحزمة للمستخدمين النهائيين. ✅ أساليب تجهيز وتوزيع التطبيقات إنشاء ملف Setup باستخدام Visual Studio Installer. نشر ClickOnce. النسخ اليدوي للمجلد الناتج من Build. 💻 مثال إعداد مشروع Setup يمكنك إضافة مشروع جديد من نوع Setup Project في Visual Studio، ثم تحديد: المجلدات التي تحتوي الملفات. شروط التثبيت. إنشاء اختصارات على سطح المكتب. بعد ذلك تولد ملف MSI لتوزيعه.

Visual Basic - استخدام Codebases و Probing في النشر

📘 درس Visual Basic - استخدام Codebases و Probing في النشر 🔹 ما هو Codebase؟ Codebase هو مسار يحدد أين يمكن للنظام العثور على ملفات الـ Assembly إذا لم تكن في المجلد الافتراضي للتطبيق. 🔹 ما هو Probing؟ Probing هو آلية بحث تلقائي يستخدمها CLR للبحث عن الـ Assemblies المطلوبة في مجلدات محددة مثل bin أو مجلدات فرعية تعرفها في التكوين. ✅ مثال على تكوين Codebase وProbing في ملف app.config

Visual Basic - تحديد موقع الـ Assembly (Locating the Assembly)

📘 درس Visual Basic - تحديد موقع الـ Assembly (Locating the Assembly) 🔹 ما هو الـ Assembly؟ الـ Assembly هو ملف التنفيذ الرئيسي لتطبيقك (EXE أو DLL) يحتوي على الكود المترجم، التعريفات، والموارد اللازمة لتشغيل التطبيق. ✅ أهمية تحديد موقع الـ Assembly تحميل الملفات المرتبطة في وقت التشغيل. قراءة المسارات النسبية للموارد. إدارة التكوين والتحديثات. 💻 مثال الحصول على مسار الـ Assembly الحالي Dim location As String = System.Reflection.Assembly.GetExecutingAssembly().Location MessageBox.Show("مسار Assembly: " & location)

Visual Basic - مقدمة حول نشر التطبيقات (Deploying Applications)

📘 درس Visual Basic - مقدمة حول نشر التطبيقات (Deploying Applications) 🔹 ما هو نشر التطبيقات؟ نشر التطبيقات يعني تجهيز ملفات البرنامج لتوزيعها على أجهزة المستخدمين، مع ضمان عمل التطبيق بشكل صحيح بعد التثبيت. ✅ أنواع النشر في .NET نشر يدوي عبر نسخ الملفات. إنشاء حزمة تثبيت باستخدام Setup Project. النشر باستخدام ClickOnce. 💻 مثال مبسط على النشر بـ ClickOnce يمكنك النشر بسهولة من Visual Studio: من قائمة المشروع اختر "Publish". حدد المسار (مجلد - URL - قرص). اتبع معالج النشر حتى النهاية.

Visual Basic - مقدمو البيانات (Data Providers)

📘 درس Visual Basic - مقدمو البيانات (Data Providers) 🔹 ما هو Data Provider؟ مقدم البيانات هو مكوّن برمجي يوفّر الوظائف الأساسية للاتصال بقاعدة البيانات وتنفيذ الأوامر والاستعلامات. يحدد كيفية تواصلك مع أنواع مختلفة من قواعد البيانات. ✅ أمثلة على مقدمي البيانات في .NET SqlClient: الاتصال بـ SQL Server. OleDb: الاتصال بملفات Access أو Excel. Odbc: الاتصال بأنواع قواعد بيانات أخرى باستخدام ODBC. 💻 مثال على استخدام SqlClient Dim conn As New SqlClient.SqlConnection("Data Source=.;Initial Catalog=MyDB;Integrated Security=True") conn.Open() Dim cmd As New SqlClient.SqlCommand("SELECT * FROM Employees", conn) Dim reader As SqlClient.SqlDataReader = cmd.ExecuteReader() While reader.Read() Console.WriteLine(reader("Name").ToString()) End While conn.Close()

Visual Basic - مقدمة حول الوصول إلى البيانات (Introduction to Data Access)

📘 درس Visual Basic - مقدمة حول الوصول إلى البيانات (Introduction to Data Access) 🔹 ما هو الوصول إلى البيانات؟ الوصول إلى البيانات يعني قراءة البيانات من مصدر مثل قاعدة بيانات أو ملف، أو تعديلها وتخزينها. في Visual Basic، يمكنك استخدام ADO.NET لإدارة الاتصال ومعالجة البيانات. ✅ خطوات أساسية للوصول إلى البيانات إنشاء اتصال بقاعدة البيانات. فتح الاتصال. تنفيذ استعلامات SQL. قراءة النتائج أو تحديث البيانات. إغلاق الاتصال بعد الانتهاء. 💻 مثال مبسط على الاتصال بقاعدة بيانات Dim conn As New SqlClient.SqlConnection("Data Source=.;Initial Catalog=MyDB;Integrated Security=True") conn.Open() ' تنفيذ العمليات هنا conn.Close()

Visual Basic - التعامل مع أحداث النماذج (Handling Form Events)

📘 درس Visual Basic - التعامل مع أحداث النماذج (Handling Form Events) 🔹 ما هي أحداث النماذج؟ هي أحداث تحدث أثناء دورة حياة النموذج مثل التحميل (Load)، الإغلاق (Closing)، أو التنشيط (Activated). يمكنك كتابة كود مخصص للتعامل مع هذه الأحداث. ✅ أمثلة على أهم الأحداث Load: عند تحميل النموذج لأول مرة. FormClosing: قبل إغلاق النموذج. Activated: عند تنشيط النموذج. 💻 مثال التعامل مع حدث FormClosing Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) _ Handles Me.FormClosing MessageBox.Show("سيتم إغلاق النموذج الآن") End Sub

Visual Basic - إضافة معالجات الأحداث (Adding Event Handlers)

📘 درس Visual Basic - إضافة معالجات الأحداث (Adding Event Handlers) 🔹 ما هو معالج الحدث؟ معالج الحدث هو إجراء (Method) يتم تنفيذه تلقائيًا عند حدوث حدث محدد مثل النقر على زر أو تحميل النموذج. ✅ كيفية إضافة معالج حدث يدويًا يمكنك إضافة معالج الحدث باستخدام الكلمة المفتاحية AddHandler لربط الحدث بالإجراء. 💻 مثال إضافة معالج حدث للزر AddHandler Button1.Click, AddressOf Button1_Click Private Sub Button1_Click(sender As Object, e As EventArgs) MessageBox.Show("تم الضغط على الزر") End Sub

Visual Basic - النماذج الأم والتابعة (Parent and Child Forms)

📘 درس Visual Basic - النماذج الأم والتابعة (Parent and Child Forms) 🔹 ما هي النماذج الأم والتابعة؟ في تطبيقات MDI يمكن إنشاء نموذج رئيسي (Parent Form) يحتوي على نماذج فرعية (Child Forms)، حيث يتم عرض النوافذ الفرعية داخل الإطار الرئيسي. ✅ فوائد استخدام النماذج الأم والتابعة تنظيم واجهة المستخدم. إدارة عدة مستندات في نافذة واحدة. تسهيل التنقل بين النوافذ الفرعية. 💻 مثال على إنشاء نافذة تابعة داخل نافذة أم Dim child As New ChildForm() child.MdiParent = Me child.Show()

Visual Basic - LINQ

8.7 Visual Basic - LINQ LINQ (Language Integrated Query) هي تقنية لكتابة استعلامات على البيانات (مثل المصفوفات والقوائم) بطريقة موحدة وسهلة القراءة. 🔹 استعلام LINQ على مصفوفة Dim numbers() As Integer = {1, 2, 3, 4, 5} Dim evens = From n In numbers Where n Mod 2 = 0 Select n For Each num In evens Console.WriteLine("عدد زوجي: " & num) Next ✅ النتيجة: عدد زوجي: 2 عدد زوجي: 4 🔄 استعلام LINQ على List Dim names As New List(Of String) From {"علي", "سارة", "أحمد"} Dim query = From name In names Where name.StartsWith("س") Select name For Each n In query Console.WriteLine("الاسم: " & n) Next ✅ النتيجة: الاسم: سارة 📊 ترتيب العناصر باستخدام Order By Dim sorted = From num In numbers Order By num Descending Select num For Each n In sorted Console.WriteLine(n) Next ✅ النتيجة: 5 4 3 2 1 🧠 ملاحظات...

Visual Basic - Compiler

8.6 Visual Basic - المترجم (Compiler) المترجم (Compiler) هو الأداة التي تقوم بتحويل كود Visual Basic إلى تعليمات قابلة للتنفيذ على جهاز الكمبيوتر (IL - Intermediate Language). 🔹 كيف يعمل المترجم يقرأ كود VB.NET. يحوّله إلى تعليمات وسيطة (IL). يقوم CLR (الـ Runtime) بتشغيل هذه التعليمات. ✅ عند الضغط على "تشغيل" في Visual Studio، تتم هذه الخطوات تلقائيًا. 🔄 خيارات التحويل (Build Configurations) ' Debug Mode: لتصحيح الأخطاء وتشغيل البرنامج خطوة بخطوة ' Release Mode: لتحسين الأداء وحجم الملف التنفيذي ✅ يمكنك التبديل بينها من شريط الأدوات العلوي في Visual Studio. ⚙️ معرّفات المترجم Compiler Directives #Const IsTest = True Sub Main() #If IsTest Then Console.WriteLine("تشغيل في وضع الاختبار") #Else Console.WriteLine("تشغيل عادي") #End If End Sub ✅ النتيجة: تشغيل في وضع الاختبار 🧠 ملاحظات مهمة يمكنك إضافة رموز تعريفية باستخدام #Const . تأكد من اختيار الوضع الصحيح...

Visual Basic - Null-Coalescing

8.5 Visual Basic - Null-Coalescing Null-Coalescing Operator يُستخدم لتحديد قيمة افتراضية في حال كان المتغير فارغًا (Nothing). 🔹 استخدام If لتعيين قيمة افتراضية Dim x As Integer? = Nothing Dim y As Integer = If(x.HasValue, x.Value, 100) Console.WriteLine("القيمة: " & y) ✅ النتيجة: القيمة: 100 🔄 استخدام If مباشرة مع Null-Coalescing Dim a As Integer? = Nothing Dim b As Integer = If(a, 50) Console.WriteLine("القيمة: " & b) ✅ النتيجة: القيمة: 50 🔹 مثال مع وجود قيمة Dim z As Integer? = 25 Dim result As Integer = If(z, 0) Console.WriteLine("القيمة: " & result) ✅ النتيجة: القيمة: 25 🧠 ملاحظات مهمة المعامل If(nullable, default) مفيد لتجنب الأخطاء عند التعامل مع Nullable. يوفر طريقة قصيرة بدل التحقق من HasValue يدويًا. يمكنك استخدامه مع الأنواع Nullable أو المراجع (Reference Types).

Visual Basic - Nullable Types

8.4 Visual Basic - الأنواع القابلة لأن تكون Null (Nullable Types) Nullable Types تعني أنه يمكنك تعريف متغير من نوع قيمة (مثل Integer أو Date) ويكون مسموحًا أن يحتوي على Nothing . 🔹 تعريف متغير Nullable Dim x As Nullable(Of Integer) = Nothing ✅ هنا عرفنا عدد صحيح يمكن أن يكون فارغًا. 🔄 تعيين قيمة ثم قراءتها x = 5 If x.HasValue Then Console.WriteLine("القيمة: " & x.Value) Else Console.WriteLine("لا توجد قيمة") End If ✅ النتيجة: القيمة: 5 🔹 التحقق إذا كان المتغير يحتوي على قيمة Dim y As Integer? = Nothing If y.HasValue Then Console.WriteLine("القيمة: " & y.Value) Else Console.WriteLine("لا توجد قيمة") End If ✅ النتيجة: لا توجد قيمة 🧠 ملاحظات مهمة يمكنك استخدام ? كاختصار لكتابة Nullable. يجب دائمًا التحقق باستخدام HasValue قبل استخدام .Value . تستخدم Nullable Types كثيرًا مع قواعد البيانات لتخزين القيم الفارغة.

Visual Basic - Math

8.3 Visual Basic - الرياضيات (Math) يوفر Visual Basic الكلاس Math الذي يحتوي على دوال ثابتة لإجراء العمليات الرياضية مثل الجذر التربيعي والأس. 🔹 حساب القيمة المطلقة Dim x As Integer = -10 Dim absValue As Integer = Math.Abs(x) Console.WriteLine("القيمة المطلقة: " & absValue) ✅ النتيجة: القيمة المطلقة: 10 🔄 حساب الجذر التربيعي Dim sqrtValue As Double = Math.Sqrt(25) Console.WriteLine("الجذر التربيعي: " & sqrtValue) ✅ النتيجة: الجذر التربيعي: 5 🔢 حساب القوة (الأس) Dim power As Double = Math.Pow(2, 3) Console.WriteLine("2 أس 3 = " & power) ✅ النتيجة: 2 أس 3 = 8 📈 الحصول على القيمة العظمى أو الصغرى Dim maxVal As Integer = Math.Max(10, 20) Dim minVal As Integer = Math.Min(10, 20) Console.WriteLine("الأكبر: " & maxVal) Console.WriteLine("الأصغر: " & minVal) ✅ النتيجة: الأكبر: 20 الأصغر: 10 🧠 ملاحظات مهمة كل الدوال في الكلاس Math هي دوال ثابتة (Shared). يم...

Visual Basic - Date and Time

8.2 Visual Basic - التاريخ والوقت (Date and Time) يوفر Visual Basic الكلاس DateTime للعمل مع التواريخ والأوقات، مثل الحصول على التاريخ الحالي أو إضافة أيام. 🔹 الحصول على التاريخ والوقت الحالي Dim now As DateTime = DateTime.Now Console.WriteLine("الوقت الحالي: " & now) ✅ النتيجة: الوقت الحالي مع التاريخ والساعة الحالية. 📅 إنشاء تاريخ معين Dim myDate As New DateTime(2025, 7, 1) Console.WriteLine("التاريخ: " & myDate.ToShortDateString()) ✅ النتيجة: التاريخ: 01/07/2025 🔄 إضافة أيام للتاريخ Dim futureDate As DateTime = myDate.AddDays(10) Console.WriteLine("بعد 10 أيام: " & futureDate.ToShortDateString()) ✅ النتيجة: بعد 10 أيام: 11/07/2025 ⏳ حساب الفارق بين تاريخين Dim diff As TimeSpan = futureDate - myDate Console.WriteLine("عدد الأيام بين التاريخين: " & diff.Days) ✅ النتيجة: عدد الأيام بين التاريخين: 10 🧠 ملاحظات مهمة يمكنك استخدام ToShortDateString() لطباعة التاريخ فقط...

Visual Basic - Enums

8.1 Visual Basic - التعدادات (Enums) التعداد (Enum) هو نوع بيانات خاص يُستخدم لتعريف مجموعة من القيم الثابتة ذات أسماء مفهومة بدلاً من استخدام أرقام صماء. 🔹 إنشاء Enum Enum Day Sunday Monday Tuesday Wednesday Thursday Friday Saturday End Enum ✅ هنا أنشأنا Enum باسم Day يحتوي على أيام الأسبوع. 🔄 استخدام Enum في متغير Dim today As Day = Day.Monday Console.WriteLine("اليوم: " & today) ✅ النتيجة: اليوم: Monday 🔢 معرفة القيمة الرقمية للتعداد Dim num As Integer = CType(today, Integer) Console.WriteLine("رقم اليوم: " & num) ✅ النتيجة: رقم اليوم: 1 🔹 تعيين قيم مخصصة للعناصر Enum Status Pending = 1 InProgress = 3 Completed = 5 End Enum ✅ هنا أعطينا لكل حالة قيمة رقمية محددة. 🧠 ملاحظات مهمة القيم تبدأ افتراضيًا من 0 إذا لم تحددها. يمكنك تغيير القيم لتناسب احتياجك. يفضل استخدام Enums لزيادة وضوح الكود وتقليل الأخطاء.

Visual Basic - Throw

7.4 Visual Basic - Throw تُستخدم الكلمة Throw لإطلاق استثناء يدويًا (إثارة خطأ) إذا تحقق شرط معين أثناء تنفيذ البرنامج. 🔹 مثال بسيط على Throw Dim age As Integer = -5 If age ✅ النتيجة: سيتم إطلاق استثناء برسالة: العمر لا يمكن أن يكون سالبًا 🔄 استخدام Throw داخل Try...Catch Try Throw New InvalidOperationException("هذا استثناء مخصص") Catch ex As InvalidOperationException Console.WriteLine("تم القبض على الخطأ: " & ex.Message) End Try ✅ النتيجة: تم القبض على الخطأ: هذا استثناء مخصص 🔄 إعادة إطلاق الاستثناء Try Dim x As Integer = 0 Dim y As Integer = 5 / x Catch ex As Exception Console.WriteLine("حدث خطأ: " & ex.Message) Throw End Try ✅ النتيجة: بعد طباعة رسالة الخطأ سيتم إعادة إطلاق الاستثناء ليتوقف البرنامج أو يتم التقاطه في مستوى أعلى. 🧠 ملاحظات مهمة يمكنك إنشاء استثناء مخصص باستخدام New Exception("رسالة") . استخدام Throw داخل Catch يعيد إطلاق الخطأ الأصلي. ...

Visual Basic - Finally

7.3 Visual Basic - Finally تُستخدم الكلمة Finally لتحديد كود يتم تنفيذه دائمًا سواء حدث استثناء أم لا، مثل غلق الملفات أو تحرير الموارد. 🔹 مثال على استخدام Finally Try Dim x As Integer = 10 Dim y As Integer = 0 Dim result As Integer = x / y Catch ex As DivideByZeroException Console.WriteLine("لا يمكن القسمة على صفر") Finally Console.WriteLine("تم تنفيذ كتلة Finally") End Try ✅ النتيجة: لا يمكن القسمة على صفر تم تنفيذ كتلة Finally 🔄 مثال بدون حدوث خطأ Try Dim x As Integer = 10 Dim y As Integer = 2 Dim result As Integer = x / y Console.WriteLine("النتيجة: " & result) Catch ex As Exception Console.WriteLine("حدث خطأ") Finally Console.WriteLine("تم تنفيذ كتلة Finally") End Try ✅ النتيجة: النتيجة: 5 تم تنفيذ كتلة Finally 🧠 ملاحظات مهمة كتلة Finally تنفذ دائمًا حتى لو لم يحدث خطأ. مفيدة في غلق الملفات أو تحرير الموارد. لا يشترط كتابة Catch إذا ...

Visual Basic - Try Catch

7.2 Visual Basic - Try Catch تُستخدم بنية Try...Catch لمعالجة الاستثناءات (الأخطاء) أثناء تشغيل البرنامج ومنع توقفه المفاجئ. 🔹 مثال بسيط على Try...Catch Try Dim numbers() As Integer = {1, 2, 3} Console.WriteLine(numbers(5)) Catch ex As Exception Console.WriteLine("حدث خطأ: " & ex.Message) End Try ✅ النتيجة: حدث خطأ: Index was outside the bounds of the array. 🔄 التعامل مع أنواع محددة من الأخطاء Try Dim x As Integer = 5 Dim y As Integer = 0 Dim result As Integer = x / y Catch ex As DivideByZeroException Console.WriteLine("لا يمكن القسمة على صفر") Catch ex As Exception Console.WriteLine("حدث خطأ آخر: " & ex.Message) End Try ✅ النتيجة: لا يمكن القسمة على صفر 🧠 ملاحظات مهمة يمكنك استخدام أكثر من Catch للتعامل مع أنواع أخطاء مختلفة. يُنصح دائمًا بكتابة Catch ex As Exception كآخر اختيار عام. الاستخدام الجيد لـ Try...Catch يساعد في جعل البرنامج أكثر استقرارًا.