2. Course Outlines
Introduction to .NET Framework and How CLR Works.
Assembly (EXE ,DLL) How does it work
Attributes (meta Data).
Reflection in .NET
How To Publish your project
XML Manipulation .
ADO.NET From Novice to Professional
History of ADO.NET and old Techniques to Data Base Manipulation.
Examples for All SqL statements in C#
Advance Concepts in DB (Such as Transaction , Trigger and Stored
Procedures)
05 2 تشرين الثاني، 14
3. Course Outlines
Multithreading From Novice To Professional OS and Process Concepts.
Delegates.
All Operation at the Thread (start,stop,pause,resume).
Threads Synchronization Concepts.
Threads Synchronization implementation Techniques:
Using Lock.
Atomic Operations
Semaphore .
Mutex.
Monitor.
05 3 تشرين الثاني، 14
4. Course Outlines
Deadlock How it happen and How To Avoid Deadlock in Multithreading
Applications.
Parallel Programming Examples
Thread Pools Concepts and Example.
Memory management and Pointers in C# (unsafe Code)
Reference Type Vs Value Type .
Heap Vs Stack
Garbage Collector .
Release unmanaged Resources (such as Opened Files , DB Connections)
How To write unsafe Code in C#.`
05 4 تشرين الثاني، 14
5. Course Outlines
Network Applications Programming With Sockets.
Networking Applications Models.
Client Server Model.
Socket Concepts .
Sequential Server.
Multithreaded Servers.
Resources Management
Thread Pool
Concepts for Asynchronous Programming Technique.
FTP Server .
Chat Server.
05 5 تشرين الثاني، 14
6. Course Outlines Discover System.Security.Cryptography(How To Ensure Secure Layer for our
Applications)
Understand Security Objectives (Security Requirements) , Security
Mechanism .
Explaining Security Requirements such as :
Confidentiality
Data Integrity
Availability
Authentications
None Repudiation .
Symmetric Encryption(Such as : AES) .
Asymmetric Encryption(Such as : RSA).
05 6 تشرين الثاني، 14
7. Course Outlines
Hash Functions(Such as , MD5 ,SHA-n)
Entity Authentication (Such as : by Random Numbers !)
Digital Signature
PKI
CA
05 7 تشرين الثاني، 14
8. When You relies The Concept ,
Every Thing Will Go Easy
05 8 تشرين الثاني، 14
9. Homework (Course Project )
Airline Server
Bank
DB
Airline
DB
Thread
Client 5 Client 4 Client 3 Client 2 Client 1
Secure channel
Network
Connection
05 9 تشرين الثاني، 14
12. Outlines
Before .NET Framework
.NET Framework How it Works What is CLR ?
Managed Code Vs Unmanaged Code
Components
Components Advantages
Static Linking
DLL before .NET
DLL after .NET
DLL Vs EXE
05 12 تشرين الثاني، 14
13. Outlines
.NET Assemblies and .NET Library
Overlap between the programming languages
Advantages offered by .NET.
Creating Assembly
Assemblyinfo.cs File
05 13 تشرين الثاني، 14
14. Before .NET
ملف تنفيذي لكل نظام تشغيل ترجمة شيفرة مصدرية
المشاكل :
البرنامج التنفيذي غير محمول على عدة أنظمة تشغيل.
في حال أردنا تنفيذ البرنامج على نظام تشغيل أخر فإننا بحاجة إلى إعادة
ترجمة الشيفرة المصدرية على النظام الجديد.
05 14 تشرين الثاني، 14
15. .NET ,How it Works ?
VB.NET Code C# Code
إذا قمنا ببناء (EXE قد تكون ,Assembly تمثل مُجمّعة MSIL شيفرة
)Class Library إذا قمنا ببناء (DLL ملف تنفيذي( أو
JIT For Apple JIT For Linux JIT For Win
شيفرة الآلة لنظام
Windows التشغيل
شيفرة الآلة لنظام
Apple التشغيل
شيفرة الآلة لنظام
Linux التشغيل
05 15 تشرين الثاني، 14
16. What is CLR ?
تتضمن مجموعة من الخدمات .NET و هي عبارة عن محرك تنفيذي لتطبيقات الـ
مثل:
إدارة الذاكرة
native code إلى MSIL تحويل كود الـ
Exception Handling
Debugging
05 16 تشرين الثاني، 14
17. Managed Code Vs Unmanaged Code
(CLR) شيفرة مُدارة من قبل الطبقة الوسطية
التخلص من التعامل مع المؤشرات و عملية تحرير الأغراض المحجوزة ضمن
. “Garbage Collector” الذاكرة عن طريق ما بعرف ب جامع النفايات
الشيفرة غير المُدارة هي الشيفرة التي تتعامل فوراً مع نظام التشغيل .
الشيفرة الغير المُدارة أسرع من الشيفرة مدارة .
05 17 تشرين الثاني، 14
18. Components
المكون : هو عبارة عن برنامج يحوي شيفرة تنفيذية وليس شيفرة مصدرية
بإمكان البرامج الأخرى أن تستخدمه دون الحاجة إلى لإعادة ترجمة الشيفرة
المصدرية ودون الحاجة لمعرفة الشيفرة المصدرية الخاصة بالمجمعة مما يوفر
نوعا من الأمن .
مكون ثنائي . DLL يمكن إعتبار ملف
05 18 تشرين الثاني، 14
19. Components Advantages
مزايا المكونات :
إعادة استخدام البرامج الفرعية في برامج عديدة
المجمعة التي قمت ببنائها يمكنك أن تقوم ببيعها ويمكنك أن توقعها ب اسم
لتكون وحيدة على مستوى العالم ولحفظ Strong Name فريد يُسمى
حقوقك من السرقة أو الاستخدام غير المشروع .
05 19 تشرين الثاني، 14
20. Static Linking
.h , .cpp سابقا , كنا نقوم بربط ملفات C++ كما في
المساوئ:
يتم جلب كود استدعاء التابع من المكتبة قبل الترجمة .
المكتبات مفتوحة ويمكن لأي أحد أن يرى الكود ويعدل عليه .
بطيئة , لأنها تتطلب إعادة ترجمة , أي أن الشيفرة المصدرية للبرنامج
تستعمل الشيفرة المصدرية للمكتبة .
كل برنامج يريد أن يستعمل هذه المكتبة يقوم بتحميل كود التابع إلى الذكرة
الرئيسية وبالتالي لدينا برنامجين يستخدمان نفس الكود للتابع لكنه مكرر.
05 20 تشرين الثاني، 14
21. DLL before .NET
وفي بدايات ظهور الويندوز قامت شركة مايكروسوفت بتحقيق .NET قبل
فكرة الربط الديناميكي والتي تتلخص تعتمد على مفهوم المكونات وقد
ولكنها كانت تعاني من بعض المشاكل منها : , COM سمتها
هو COM علما أن المصدر الرئيسي لمكونات COM صعوبة تعلم وبرمجة
. ATL باستخدام مكتبة C++ لغة
صعب جداً ويحتاج إلى معلومات موجودة في مسجل COM تثبيت مكونات
النظام وإزالة تثبيت المكون تحتاج إلى جهد كبير أيضا .
05 21 تشرين الثاني، 14
22. DLL after .NET
الفكرة بإختصار هي وضع كل ما يهمنا من معلومات ضمن المجمعة نفسها
.» بيانات وصفية « على شكل
لن يحتاج إلى أية معلومات ضمن )DLL,EXE( هذا يعني أن المجمعة
مسجل النظام .
ضمن المجمعة يتم تخزين أرقام الإصدارات الخاصة بالمجمعة , مثل :
. Shape يليها 1.1 Shape 1.0
05 22 تشرين الثاني، 14
23. DLL Vs EXE
له خرج وقد لا يكون له دخل . EXE ملف ال
ليس له دخل وليس له خرج . DLL ملف ال
كلمف EXE في البنية هما متشابهان تمام ا كًما يمكن استخدام ملف
DLL
.NET في بيئة
05 23 تشرين الثاني، 14
24. .NET Assemblies and .NET Library
.NET أن أي كود سي شارب سيستخدم مكتبة من مكتبات
writeline الذي يستخدم التابع Hello world أبسط مثال هو برنامج
لكن كيف يتم ذلك . , Console الموجود ضمن الصف
فأن محرك زمن system من فضاء الأسماء Method كلما استدعينا
سيضمن تحميل المجمعة ومعرفة التابع الذي قمت )CLR( التنفيذ المشترك
وفي أي namespace باستدعائه من المكتبة التي قمت بتحميلها )في أي
وذلك من خلل البيانات الوصفية ) method هذا ال Class
MetaData
05 24 تشرين الثاني، 14
25. Overlap between the programming
languages
بإنشاء لغات برمجة جديدة مع أنها جميعا تترجم Microsoft لماذا تقوم
؟ Managed Code إلى
إن العديد من المبرمجين حساسين جداً للغة التي يبرمجون بها فكل منهم يحب
خاص للغة معتاد عليه. syntax
مثل .NET الدور التسويقي لجذب جميع المبرمجين للعمل تحت منصة
متوافقة مع جافا C# كما يوجد محاولات لجعل C++VB.NET ,Delphi
أنتاج منتج بواسطة فريق عمل وكل شخص يعمل على لغة مختلفة عن
الأخرى وبالتالي نكون قد أنتجنا المنتج بواسطة عدة لغات برمجة .
05 25 تشرين الثاني، 14
26. VB.NET Code C# Code
إذا قمنا ببناء (EXE قد تكون ,Assembly تمثل مُجمّعة MSIL شيفرة
)Class Library إذا قمنا ببناء (DLL ملف تنفيذي( أو
JIT For Apple JIT For Linux JIT For Win
شيفرة الآلة لنظام
Windows التشغيل
شيفرة الآلة لنظام
Apple التشغيل
شيفرة الآلة لنظام
Linux التشغيل
05 26 تشرين الثاني، 14
27. Advantages offered by .NET
.NET والذي يدير تنفيذ جميع مجمعات (CLR) محرك زمن التنفيذ المشترك
)JAVA تماما بال JVM مثل ال CLR ( بغض النظر عن اللغة التي كتبت بها
المتوسطة( والتي تنتجها جميع مترجمات لغات Microsoft لغة ( MSIL لغة
.NET
مثلً أن C# حيث يمكن للمكونات المكتوبة بلغة CLS مواصفات اللغة المشتركة
مع إمكانية الوراثة الكاملة بين الأصناف VB تستخدم في
05 27 تشرين الثاني، 14
28. Creating Assembly
, Add new Item ثم نضيف Class Library ننشئ مشروع جديد من النوع
الأن لدينا VB.net إذا كنا نعمل vb و C# إذا كنا نعمل cs ثم نختار ملف
.namespace فارغ ضمن Class ,
تحوي System.Data : مثل namespace يمكن أن تحوي المجمعة أكثر من
و System.Data.OLeDB مثل namespace أكثر من
System.Data.SqlClient
يمثل المجمعة dll فينتج لدينا ملف )Shift+f6= build( نقوم ببناء المشروع
ليستعمله في أي Add Reference يمكن أن يعطيه لأي شخص ليقوم بعمل
.NET لغة تحت منصة
05 28 تشرين الثاني، 14
29. Shared and Private Assemblies
المجمعات الخاصة
خاصة فقط بالتطبيق
المجمعات المشتركة
)C:windowsAssembly( مشتركة لجميع التطبيقات وتقع في مكان مركزي
. GAC هذه المجمعة يجب أن تكون موقعة بمفتاح مُشفر , قبل وضعها في
05 29 تشرين الثاني، 14
30. Assemblyinfo.cs File
قد يتسائل البعض عن هذا الملف وما هي وظيفته , إذ أنه يتولد بشكل تلقائي مع
.NET مشروع في بيئة
يستخدم هذا الملف لضبط صفات المجمعة في بيانها )ضمن المجمعة نفسها( .
كل تعليمة موضوعة ضمن الأقواس المربعة "[]" مثل
[assembly:AssemblyVersion("1.0.0.0")]
يكفي أن نعلم الآن أن كل تعليمة من هذه التعليمات تقوم ( Attribute تمثل صفة
بإعداد خاصية من خصائص المجمعة (
في بداية كل تعليمة أن الصفة موجهة للمجمعة نفسها assembly تشيرالكلمة
. method أو منهج class وليس لأي صف
05 30 تشرين الثاني، 14
31. Assemblyinfo.cs File
لكل مجمعة اسم و رقم إصدار ومعلومات أخرى وهي كلها متوفرة على شكل
.Assemblyinfo.cs ضمن الملف Attributes
EXE أو dll في حال إصدار منتج وقمنا بترقية وتحديث مجمعاتنا سواء كانت
نقوم بتوقيع المجمعة ب اسم فريد لضمان حقوق شركتك من السرقة وللسماح
للبرامج من التأكد من أن هذه المجمعة موقعة )موضوع أمني بحت(.
أربعة أرقام هي : .NET للإصدار في مجمعة
(Major Version ) إصدار رئيسي
(Minor Version) إصدار ثانوي
(Build Number) رقم البناء
(Revision) رقم الطبعة
05 31 تشرين الثاني، 14