الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ما هي كلاسات asp ؟

مغلق
بدأه أنس عبد الله في 13 يناير 2003 · 3 رد · 845 مشاهدة · في منتدى تصميم صفحات الويب
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم...

هل يمكن توضيح طريقة عمل الكلاسات في لغة asp ؟

#2

أخ أنس عذرا لضيق الوقت

لكن هذا مقال جميل يخص هذا الموضوع

http://www.eggheadcafe.com/articles/20011227.asp

سأشرحه حال انتهاء اختباراتي أو ليتكوم أحد الأعضاء بذلك ..

You can fly while you can touch the sky

#3

يجب أن تحدد اللغة .. هل هي jscript أم ال vbscript ؟؟ حيث لا يوجد شئ اسمه لغة ASP .. إذا أردت نصيحتي فإن الكلاسات في ال vbscript أفضل بكثير من jscript وهي أقرب ماتكون إلى الكلاسات الحقيقية عنها في jscript .. لذلك سوف أشرح في vbscript ..

ببساطة ...:

أولا يتم تعريف الكلاس كالتالي :

class ClassName



end class

يتم داخل الكلاس كتابة التوابع أو الاجرائات وتعريف المتحولات التي تسمى members لهذا الكلاس .. يوجد توعين لتعريف المتحولات والتوابع داخل الكلاس وهما private أو public ..

الprivate لا يسمح للوصول له من خارج ال class أما ال public فمن اسمه يعني أنه يسمح للوصول إلى العنصر من خارج الكلاس .. ال private هي فقط لحماية المتحولات من العبث من خارج الكلاس ..

مثال على كلاس لموظف :

class Employee

  private ID, Name



  public function SetName(name)

       Name = name

  end function



  .... ' Other functions goes here

end class

أولا لا يتم تعريف المتحولات ب Dim بالكلاس بل يستخدم private أو public ..

يمكن أيضا تعريف خصائص للكلاس أو property وهي تشبه المتحولات بكيفية استخدامها ولكنها أيضا تشبه التابع في كيفية برمجتها .. مثلا التابع SetName يمكن برمجته كخاصية تسمى Name .. ولمعرفة الأكثر في هذا راجع ال MSDN قسم VBscript/Language Reference/Statements/Property Get, Let, Set

أما عن كيفية الاستخدام فهي سهلة .. وإليك المثال التالي :

dim obj

set obj = new Employee



obj.SetName("whatever")



set obj = nothing

new وظيفتها انشاء كائن عن الكلاس من أجل استخداه و set = nothing تقوم بافراغه من الذاكرة .. طبعا ليس من المهم افراغه من الذاكرة لأن vbscript تقوم بذلك تلقائيا ولكن قد يكون الأمر مهم كما سوف نراه الآن .. والمعلومات القادمة غير موجودة في ال MSDN ..

يوجد تابعين خاصين بالكلاس واسمهما :

Class_Initialize : يتم استدعائه عند عمل New ويسمى بال constructor

Class_Terminate : يتم استدعئه عند عمل set = nothing ويسمى بال destructor ..

وأفضل مثال على السابق وهو الأمر الذي يفضل أن يتبعه مبرمجين ال asp بالنسبة للداتابيس .. رأيت أن أكثرهم يقومون بتعريف dbconn كمتحول عام في ملف وتتم عملية ال include بعدها .. طبعا هذا قد يعمل أحيانا ولكنه عقيم في المشاريع الضخمة .. الأفضل من هذا هو وضع كل توابع الوصول إلى الداتابيس في كلاس منفصل والمثال القادم يصف هذا :

class LessonsDb

	private obj_dbconn



	' Description: Opens the conenction with the database

	' Returns: none

	'

	public sub Class_Initialize

  Set obj_dbconn = Server.CreateObject("ADODB.Connection")

  obj_dbconn.Open(Application("ConnectionString"))

	end sub



	' Description: Closes the conenction with the database

	' Returns: none

	'

	public sub Class_Terminate

  obj_dbconn.Close	

	end sub



	' Description: Returns the recordset that has the given secId

	' Returns: the recordset

	'

	public function GetSection(secId)

	end function



	' Description: edits a section in the table

	' Returns: true if succeeded

	'

	function EditSection(secid, caption, description)

	end function



end class

لاحظ كيف متحول ال obj_dbconn الآن أصبح داخل الكلاس وهو private ..

ومن أجل استخدام الكلاس السابق وبكل بساطة نكتب الكود التالي :

dim db

set db = new LessonsDb



db.EditSection(1, "test", "descritp")



set db = nothing

أرجو أنه قد أوصلت المعلومة صحيحة .. وشكرا :)

Coding on the Cloud and for the Cloud!

My Blog

#4

و الله ما قصرت اخ هاني .....(f)

هذا الموضوع مغلق.

مواضيع مشابهة