العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

 
أدوات الموضوع انواع عرض الموضوع
  #1  
قديم 02-28-2010, 05:44 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس السابع والأربعون : .net assemblies - دورة .net 2008

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

موعدنا هذه الفترة مع ال .net assemblies ، لن نطيل فيها كثيراً ولكننا سنعرف النقاط الاساسية فيها فيما يمكنك الاطلاع على المزيد عنها من خلال msdn

ال namespace .
في نفس ال namespace يمكن لجميع المكونات تحته ان ترى بعضها البعض ، لذا دوماً وفي مشاريعك الجديدة اجعل namespace موحد لجميع مكونات برنامجك .
C#:
كود PHP:
namespace example
{
class 
someclass
{
void method(){
}
}

vb.net:
كود PHP:
Namespace example 
    
Class someclass 
        
        
Private Sub method() 
            
        
End Sub 
    End 
Class 
    
End Namespace 
أما لو كان لدينا كلاس classCar في namespace باسم آخر ، فلن يمكنك كتابة الكود التالي ضمن الدالة السابقة method
C#:
كود PHP:
void method(){
classCar x=new classCar();

vb.net:
كود PHP:
Private Sub method() 
    
    
Dim x As New classCar() 
End Sub 
لكن يمكننا عمل import لل example لتتمكن من تعريف الكلاس بالشكل التالي :

C#:
كود PHP:
using example;
namespace 
example
{
class 
someclass
{
void method(){
}
classCar x=new classCar();
}

vb.net:
كود PHP:
Imports example 
Namespace example 
    
Class someclass 
        
        
Private Sub method() 
            
        
End Sub 
        
Private As New classCar() 
    
End Class 
    
End Namespace 

تغيير ال Default Namespace :

لتغيير مجال الاسماء الافتراضي :



Format of a .NET Assembly

إذا قمت بفتح ملف الاسمبلي ب dumpbin.exe مثلاً يمكنك ان تلاحظ أن مكلف الاسمبلي يتكون من العناصر التالية :
Win32 file header

هنا ستجد معلومات عن نوع هذا الملف ، هل هو console ام GUI ام dll وكيفية تنفيذه على نظم التشغيل من ويندوز

CLR file header
يحتوي على المعلومات التي لا بد لأي .net application ان يدعمها ، يحتوي على طريقة كتابة ال managed file ووجود ال resources من عدمه وخلافه .

لا تهمك كثيراً المعلومات السابقة للنقطتين السابقتين ، لإنك لن تتعامل معها سوى إذا ما كنت تحتاج لبناء كومبايلر خاص بك تحت بيئة عمل .net .

CIL code
الكود الخاص ببرنامجك ، يتم ترجمته فوراً باستخدام JIT التي تحدثنا عنها سابقاً ، سيكون عنها درس مستقل إن شاء الله .

Type ****data
تحتوي على تفاصيل الانواع الخارجية التي تستخدمها في برنامجك .

An assembly manifest
الرابط بين ملفات الاسمبلي المختلفة ، تحدد اصدار الاسمبلي وخلافه .

Optional embedded resources
اي ملف اسمبلي يمكن ان يحتوي على اي عدد من ملفات الريسورس تشير إلى صور وايقونات وخلافه .

Private Assemblies

ال Private Assemblies ملف اسمبلي يعمل من خلال مسار البرنامج او التطبيق ، حيث لن يبحث ال visual studio عن هذا الملف سواء في الريجستري او في أي مكان آخر ، فقط سيبحث في مسار البرنامج عنه .
في حالة حذف برنامجك يتم حذف هذه الملفات معه ، ايضاً يمكنك نقل التطبيق بعد عمل setup له مباشرة كونه لا يتعامل مع أي شيء يخص النظام .
ملفات الاسمبلي الافتراضية او ال dll التي تقوم بعملها هي من هذا النوع .

Shared Assemblies

هذا هو النوع الثاني ، هنا لن تكون وحدك من يستخدم ملف ال dll هذا ، بل إن بإمكان الملف التعامل مع اكثر من تطبيق على نفس الجهاز ، مثلاً System.Windows.Forms.dl ، عادة ما تجدها في ملف الاسمبلي الموجود في الويندوز ولا يتم حذفها مع حذف برنامجك .

اول نقطة ستتعامل معها لإنشاء ملف اسمبلي من هذا النوع هو ضرورة وجود اسم uniqe لهذا الملف حتى لا يتضارب مع باقي الملفات الأخرى ، أيام ال COM كان هناك ما يعرف باسم COM globally unique identifier (GUID) ، حيث يتم اعطاء اسماء مختلفة لكل COM جديد ، الآن اصبح عليك اعطاءه ما يعرف باسم strong name والذي لا يعدو كونه 128 بت من الارقام تشترك المكونات التالية في تحديده :

- اسم ملف الاسمبلي .
- نسخة ملف الاسمبلي .
- public key value الموجودة في AssemblyKeyFile .
- في حالة وجود اي اعدادت اقليمية في AssemblyCulture .
- digital signature يتم تكوينه باستخدام hash بين محتويات ملف الاسمبلي وال public key .

لعمل public key نستخدم البرنامج SDK’s sn.exe بالشكل التالي مثلاً :
كود PHP:

sn 
-k MyTestKeyPair.snk 
يمكنك ايضاً عمل ذلك مباشرة من خلال فيجوال ستوديو.نت من خلال Properties page ثم Signing .

*** لم اقم بتجربة محتويات هذا الدرس لذا من يجد خطأ اتمنى منه ابلاغي به .


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد


تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس السابع والخمسون : Wpf 2d - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 2 03-05-2010 06:57 PM
الدرس الثاني والأربعون : ال Gc دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-26-2010 04:17 PM
الدرس السابع والثلاثون : Automatic Properties دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-25-2010 02:52 PM
الدرس السابع : if statement - دورة سي شارب 2008 khaledbelal دورة CSharp 2008 من منتديات حور العين الاسلامية 0 02-22-2010 09:35 PM
الدرس السابع عشر : مقدمة إلى مبادئ Oop دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-19-2010 08:16 PM

استضافة الحياة

الساعة الآن 06:19 PM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz