المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : بوابة بدر: مشاريع ClassLibrary في لغة سي شارب C#,2013


Eng_Badr
14-04-2013, 04:21 PM
مشاريع ClassLibrary في لغة سي شارب C#
تحميل,تنزيل,2013,2014,ماى ايجى,تحميل مباشر,عرب سيد,برابط مباشر,سريع,تورنت,عربي,معرب,مجانا,فاينال,انجليزي,فر نسي,اخر اصدار,برابط واحد,صاروخ
مشاريع ClassLibrary في لغة سي شارب C#
<div>[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]


مشاريع ClassLibrary في لغة سي شارب C#

كيف تصنع ملفات DLL في سي شارب C#

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

مقدمة:حول المشاريع من نوع Class Library :

طبعا الهدف من استخدام هذا النوع من المشاريع هو إنشاء مكتبات الربط الديناميكي أو كما يعرفها
غالبية مستخدمي ويندوز العاديين بملفات DLL.

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

ماهي ملفات DLL ؟؟

هي عبارة عن مكتبات ممكن أن تحتوي على كلاس واحد أو على عدة كلاسات ,, طبعا يقوم مبرمج هذه المكتبات بكتابة الكثير من الدوال داخل هذه الكلاسات أو يقوم بكتابة برامج صغيرة
وبعد أن ينتهي من عمل ملف DLL الخاص به يقوم باستخدامه بمشاريعه الأخرى أي انه يقوم باستعمال تلك الدوال التي قام بتعريفها بداخل الملف والهدف من كل هذا هو اختصار الوقت فعلى سبيل المثال :لو انك كنت تريد برمجة عدة برامج وكنت تريد كتابة نفس الدوال في كل تلك البرامج
وعندها سيكون عليك إعادة كتابة هذه الدوال من جديد في كل برنامج على حدة وهذا سيكلفك الكثير من الوقت والجهد ولاختصار كل هذا ببساطة قم بعمل مشروع من نوع Class Library
وقم بكتابة جميع هذه الدوال فيه وبعد أن تنتهي اصنع ملف DLL وبعد ذلك قم باستخدامه بجميع مشاريعك وفي كل مرة ستجد الدوال جاهزة للاستخدام دون أن تحتاج لتعريفها ثانيتا .
طبعا يوجد شركات متخصصة ببرمجة مكتبات الربط الديناميكي إذا قمت بالبحث على شبكة الانترنت ستجدها .

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

سأقوم بشرح كيفية إنشاء ملفات DLL بلغة سي شارب C# وذلك خطوة خطوة عن طريق مثال عملي لنبدأ على بركة الله :
سأقوم باستخدام بيئة تطوير فيجوال ستيديو 2008

المثال العملي:الخطوات:

أولا:بعد أن تفتح برنامج فيجوال ستيديو قم باختيار مشروع جديد New Project ثم اختر من قائمة المشاريع النوع Class Library شاهد الصورة التالية :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]











وبعدها ستفتح لك بيئة التطوير مشروعا جديد من نوع Class Library وفيه كلاس اسمه Class1 وتلقائيا ستظهر أمامك نافذة الاكواد الخاصة بهذا الكلاس شاهد الصورة :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]


[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

ثانيا:سنقوم الآن بكتابة دالتين داخل الكلاس :

الدالة الأولى : سنقوم بتسميتها Circle ومهمتها هي حساب محيط الدائرة .

الدالة الثانية : سنقوم بتسميتها Ran ومهمتها هي عندما نقوم بتمرير أربعة أرقام لها فتجري عليها بعض الحسابات الرياضية وتعود برقم عشوائي .

لكن قبل أن نقوم بتعريف الدوال سنقوم بتعريف تعداد من نوع enum ولتعريف هذا التعداد اذهب إلى نافذة الاكواد الخاصة بالكلاس وبين السطرين التاليين :
كود:
public class Class1
{

}
قم بكتابة الكود التالي:

كود:
public enum Math101 { Tareeh, Jamee, Darb, Taqseem }
الشرح :في الكود السابق قمنا بتعريف تعداد من نوع enum وأسميناه Math101 وجعلنا فيه أربعة تعدادات .
سنقوم باستخدامه بتعريف الدالة الثانية Ran طبعا سأشرح لاحقا ما هي الفائدة من هذا التعداد.

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

ثالثا:سنقوم الآن بتعريف الدوال :


1- الدالة Circle : ولتعريف هذه الدالة اذهب إلى نافذة الاكواد الخاصة بالكلاس وبين نفس السطرين السابق ذكرهما :

كود:
public class Class1 { }
اكتب الكود التالي :

كود:
public double Circle(double A) { double BR; double XX; BR = 2 * 3.14; XX = BR * A; return XX; }
شرح الكود:
السطر الأول: في هذا السطر نقوم بتعريف دالة من نوع double وأسميناها Circle وجعلنا لها وسيط واحد من نوع double وهو الوسيط A وفائدته هي تمرير قيمة عددية للدالة .
السطر الثاني :نقوم بفتح القوس الذي يعتبر بداية الدالة .
السطر الثالث والرابع :نقوم بتعريف متغيرين من نوع double وهما BR و XX .
السطر الخامس :نقوم بإسناد العملية الحسابية 2*3.14 إلى المتغير BR .
السطر السادس :العملية الحسابية وهي القيمة التي ستمررها للوسيط A ستضرب بالقيمة المخزنة بالمتغيرBR والتي هي كما ذكرنا سابقا 2*3.14 وستخزن نتيجة الضرب بالمتغير XX .
ملاحظة:تمثل القيمة التي ستمررها للوسيط A مساحة نصف قطر الدائرة وسيتم ضربها بBR
لتكون النتيجة النهائية هي حجم محيط الدائرة وهذا هو الهدف من إنشاء هذه الدالة .
السطر السابع :إعادة قيمة المتغيرXX لتكون النتيجة النهائية للدالة .
السطر الأخير : إغلاق القوس والذي يعني نهاية الدالة .

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]


2- الدالة Ran :طبعا وكما ذكرنا سابقا بأن مهمة هذه الدالة هي بأننا نقوم بتمرير أربعة أرقام لها فتقوم هي بإجراء بعض الحسابات الرياضية عليها لتكون النتيجة النهائية رقم عشوائي ولتعريف هذه الدالة في نفس نافذة الاكواد وخلف الدالة السابقة قم بكتابة الكود التالي:

كود:
public double Ran(double AA, double BB, double VV, double RR, Math101 XXX) { double XR; double dR; double LK; double TH; const double GF = 2.556; XR = AA * BB; dR = VV + RR - XR; LK = 4.5 * dR ; if (XXX == Math101.Jamee) { TH = LK + GF; return TH; } else if (XXX == Math101.Tareeh) { TH = LK - GF; return TH; } else if (XXX == Math101.Darb) { TH = LK * GF; return TH; } else if (XXX == Math101.Taqseem) { TH = LK /GF; return TH; } return 0; }
شرح الكود:
السطر الأول : نقوم بتعريف دالة من نوع double ونسميها Ran ونجعلها بخمسة وسطاء
أربعة من نوع double والخامس يمثل التعداد Math101 الذي عرفناه سابقا .
والهدف منها هو تمرير القيم العددية للدالة .
السطر الثاني :فتح القوس الذي يعني بداية الدالة .
الأسطر الثالث الرابع الخامس السادس :تعريف أربعة متغيرات من نوع double وهي :
XR,,dR,,LK,,TH .
السطر السابع :تعريف الثابت GF وهو من نوع double ثم إسناد القيمة الثابتة له وهي 2.556 .
السطر الثامن :ضرب القيمتين الممررتين للوسيطين AA و BB ببعضهما وتخزين نتيجة الضرب بالمتغير XR .
السطر التاسع :جمع القيمتين الممررتين للوسيطين VV و RRمع بعضهما ثم طرح قيمة المتغير XR منها وتخزين النتيجة النهائية في المتغير dR .
السطر العاشر:ضرب العدد 4.5 بقيمة المتغير dR وتخزين النتيجة بالمتغير LK .
بالنسبة لباقي الأسطر :سنستخدم الجملة الشرطية if طبعا كما ذكرنا سابقا الوسيط الخامس في الدالة والذي هو XXX يمثل التعداد Math101 الذي عرفناه سابقا وبالتالي شرح الكود هو :
إذا كان XXX يساوي Math101.Jamee عندها قم بجمع قيمة المتغير LK مع قيمة الثابت GF
وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة
وإلا إذا كان XXX يساوي Math101.Tareeh عندها قم بطرح قيمة المتغير LK من قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وإلا إذا كان XXX يساوي Math101.Darb عندها قم بضرب قيمة المتغير LK مع قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وإلا إذا كان XXX يساوي Math101.Taqseem عندها قم بتقسيم قيمة المتغير LK مع قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وأخيرا أغلق قوس نهاية الدالة.

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

رابعا:وبعد أن تنتهي من كتابة الاكواد يجب أن يكون الشكل النهائي لنافذة الاكواد الخاصة بالكلاس هكذا :

كود:


كود:
شرح الكود: السطر الأول : نقوم بتعريف دالة من نوع double ونسميها Ran ونجعلها بخمسة وسطاء أربعة من نوع double والخامس يمثل التعداد Math101 الذي عرفناه سابقا . والهدف منها هو تمرير القيم العددية للدالة . السطر الثاني :فتح القوس الذي يعني بداية الدالة . الأسطر الثالث الرابع الخامس السادس :تعريف أربعة متغيرات من نوع double وهي : XR,,dR,,LK,,TH . السطر السابع :تعريف الثابت GF وهو من نوع double ثم إسناد القيمة الثابتة له وهي 2.556 . السطر الثامن :ضرب القيمتين الممررتين للوسيطين AA و BB ببعضهما وتخزين نتيجة الضرب بالمتغير XR . السطر التاسع :جمع القيمتين الممررتين للوسيطين VV و RRمع بعضهما ثم طرح قيمة المتغير XR منها وتخزين النتيجة النهائية في المتغير dR . السطر العاشر:ضرب العدد 4.5 بقيمة المتغير dR وتخزين النتيجة بالمتغير LK . بالنسبة لباقي الأسطر :سنستخدم الجملة الشرطية if طبعا كما ذكرنا سابقا الوسيط الخامس في الدالة والذي هو XXX يمثل التعداد Math101 الذي عرفناه سابقا وبالتالي شرح الكود هو : إذا كان XXX يساوي Math101.Jamee عندها قم بجمع قيمة المتغير LK مع قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وإلا إذا كان XXX يساوي Math101.Tareeh عندها قم بطرح قيمة المتغير LK من قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وإلا إذا كان XXX يساوي Math101.Darb عندها قم بضرب قيمة المتغير LK مع قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وإلا إذا كان XXX يساوي Math101.Taqseem عندها قم بتقسيم قيمة المتغير LK مع قيمة الثابت GF وخزن النتيجة النهائية في المتغير TH ثم اعد قيمة المتغير THلتكون النتيجة النهائية للدالة وأخيرا أغلق قوس نهاية الدالة. رابعا:وبعد أن تنتهي من كتابة الاكواد يجب أن يكون الشكل النهائي لنافذة الاكواد الخاصة بالكلاس هكذا : using System; using System.Collections.Generic; using System.Linq; using System.****; namespace My_Class_Library_DLL { public enum Math101 { Tareeh, Jamee, Darb, Taqseem } public class Class1 { public double Circle(double A) { double BR; double XX; BR = 2 * 3.14; XX = BR * A; return XX; } public double Ran(double AA, double BB, double VV, double RR, Math101 XXX) { double XR; double dR; double LK; double TH; const double GF = 2.556; XR = AA * BB; dR = VV + RR - XR; LK = 4.5 * dR ; if (XXX == Math101.Jamee) { TH = LK + GF; return TH; } else if (XXX == Math101.Tareeh) { TH = LK - GF; return TH; } else if (XXX == Math101.Darb) { TH = LK * GF; return TH; } else if (XXX == Math101.Taqseem) { TH = LK /GF; return TH; } return 0; } } }



[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

خامسا: الآن احفظ المشروع ثم قم ببناء أو إنشاء ملف DLL النهائي وذلك من القائمة Build ثم اختر Build My Class Library شاهد الصور القادمة :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

تجربة الملف

سادسا : الآن يجب أن نقوم بتجربة ملف DLL الذي صنعناه بأنفسنا ولعمل ذلك :
بعد أن تفتح فيجوال ستيديو قم باختيار مشروع جديد New Project من نوع
Windows Forms Application شاهد الصورة التالية :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]


ستفتح لك بيئة التطوير مشروعا جديدا وفيه نافذة فارغة ثم قم بإدراج زر Button وأيضا قم بإدراجLabel .

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

سابعا: قم باستدعاء أو إضافة ملف DLL الذي صنعناه بأنفسنا إلى مشروعك وذلك عن طريق القائمة Project اختر Add Reference شاهد الصور التالية :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

ثامنا:اذهب إلى نافذة الاكواد الخاصة بالفورم واكتب فيها الاكواد التالية :

في قسم التصريحات العام :

كود:
using My_Class_Library;
الشرح:لتتمكن من استخدام الدوال التي قمت بتعريفها والموجودة داخل ملف DLL الذي صنعته
يجب أن تقوم باستدعاء فضاء الأسماء الخاص به والذي هو My_Class_Library وذلك باستخدام الكلمة المحجوزة Using .

الآن في حدث النقر للزر Button1 والذي يكون على هذا الشكل :

كود:
private void button1_Click(object sender, EventArgs e) { }
اكتب الكود التالي :

كود:
Class1 A = new Class1(); double JK; JK = A.Ran(5, 5, 5, 5, Math101.Jamee); label1.**** = Convert.ToString(JK);
شرح الكود :
السطر الأول : نقوم باستدعاء نسخة من الكلاس الموجود داخل مكتبة DLL وذلك عن طريق تعريفه بالمتغير A والهدف من هذا كي نستطيع استخدام الدوال الموجودة بداخله .
السطر الثاني : تعريف متغير من نوع double اسمه JK .
السطر الثالث:استدعاء الدالة Ran وتمرير أربعة أرقام لوسطائها وكما ذكرنا سابقا أن عمل هذه الدالة هو عندما تقوم بتمرير أربعة أرقام لها تقوم بإجراء بعض الحسابات الرياضية عليها لتعود بالنهاية برقم عشوائي سيتم تخزين هذا الرقم داخل المتغير JK .
السطر الأخير : يتم إسناد قيمة الدالة النهائية المخزنة داخل المتغير JK ليتم عرضها بواسطة الأداة Label .

شاهد هذه الصورة لترى الشكل النهائي للكود :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

وأخيرا قم بتشغيل البرنامج لتجربة كل ما قمنا بعمله شاهد الصورة التالية :

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]


[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

أتمنى أن يعجبكم أسلوبي بالشرح

[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]
[فقط الأعضاء المسجلين والمفعلين يمكنهم رؤية الوصلات]

















































مشاريع ClassLibrary في لغة سي شارب C#
تحميل,تنزيل,2013,2014,ماى ايجى,تحميل مباشر,عرب سيد,برابط مباشر,سريع,تورنت,عربي,معرب,مجانا,فاينال,انجليزي,فر نسي,اخر اصدار,برابط واحد,صاروخ
مشاريع ClassLibrary في لغة سي شارب C#