العودة   منتدى رياض الجنة - 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

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

الساعة الآن 12:40 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