SlideShare ist ein Scribd-Unternehmen logo
1 von 31
En. Mohammad Alyan 
@MhdAlyan
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
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
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
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
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
Course Outlines 
 Hash Functions(Such as , MD5 ,SHA-n) 
 Entity Authentication (Such as : by Random Numbers !) 
 Digital Signature 
 PKI 
 CA 
05 7 تشرين الثاني، 14
When You relies The Concept , 
Every Thing Will Go Easy  
05 8 تشرين الثاني، 14
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
Homework (Course Project ) 
Resources Management Strategies 
05 10 تشرين الثاني، 14
Introduction to .NET Framework 
1- Assemblies
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
Outlines 
 .NET Assemblies and .NET Library 
 Overlap between the programming languages 
 Advantages offered by .NET. 
 Creating Assembly 
 Assemblyinfo.cs File 
05 13 تشرين الثاني، 14
Before .NET 
ملف تنفيذي لكل نظام تشغيل  ترجمة  شيفرة مصدرية  
المشاكل :  
البرنامج التنفيذي غير محمول على عدة أنظمة تشغيل.  
في حال أردنا تنفيذ البرنامج على نظام تشغيل أخر فإننا بحاجة إلى إعادة  
ترجمة الشيفرة المصدرية على النظام الجديد. 
05 14 تشرين الثاني، 14
.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
What is CLR ? 
تتضمن مجموعة من الخدمات .NET و هي عبارة عن محرك تنفيذي لتطبيقات الـ  
مثل: 
إدارة الذاكرة  
native code إلى MSIL تحويل كود الـ  
Exception Handling  
Debugging  
05 16 تشرين الثاني، 14
Managed Code Vs Unmanaged Code 
(CLR) شيفرة مُدارة من قبل الطبقة الوسطية  
التخلص من التعامل مع المؤشرات و عملية تحرير الأغراض المحجوزة ضمن  
. “Garbage Collector” الذاكرة عن طريق ما بعرف ب جامع النفايات 
الشيفرة غير المُدارة هي الشيفرة التي تتعامل فوراً مع نظام التشغيل .  
الشيفرة الغير المُدارة أسرع من الشيفرة مدارة .  
05 17 تشرين الثاني، 14
Components 
المكون : هو عبارة عن برنامج يحوي شيفرة تنفيذية وليس شيفرة مصدرية  
بإمكان البرامج الأخرى أن تستخدمه دون الحاجة إلى لإعادة ترجمة الشيفرة  
المصدرية ودون الحاجة لمعرفة الشيفرة المصدرية الخاصة بالمجمعة مما يوفر 
نوعا من الأمن . 
مكون ثنائي . DLL يمكن إعتبار ملف  
05 18 تشرين الثاني، 14
Components Advantages 
مزايا المكونات :  
إعادة استخدام البرامج الفرعية في برامج عديدة  
المجمعة التي قمت ببنائها يمكنك أن تقوم ببيعها ويمكنك أن توقعها ب اسم  
لتكون وحيدة على مستوى العالم ولحفظ Strong Name فريد يُسمى 
حقوقك من السرقة أو الاستخدام غير المشروع . 
05 19 تشرين الثاني، 14
Static Linking 
.h , .cpp سابقا , كنا نقوم بربط ملفات C++ كما في  
المساوئ:  
يتم جلب كود استدعاء التابع من المكتبة قبل الترجمة .  
المكتبات مفتوحة ويمكن لأي أحد أن يرى الكود ويعدل عليه .  
بطيئة , لأنها تتطلب إعادة ترجمة , أي أن الشيفرة المصدرية للبرنامج  
تستعمل الشيفرة المصدرية للمكتبة . 
كل برنامج يريد أن يستعمل هذه المكتبة يقوم بتحميل كود التابع إلى الذكرة  
الرئيسية وبالتالي لدينا برنامجين يستخدمان نفس الكود للتابع لكنه مكرر. 
05 20 تشرين الثاني، 14
DLL before .NET 
وفي بدايات ظهور الويندوز قامت شركة مايكروسوفت بتحقيق .NET قبل  
فكرة الربط الديناميكي والتي تتلخص تعتمد على مفهوم المكونات وقد 
ولكنها كانت تعاني من بعض المشاكل منها : , COM سمتها 
هو COM علما أن المصدر الرئيسي لمكونات COM صعوبة تعلم وبرمجة  
. ATL باستخدام مكتبة C++ لغة 
صعب جداً ويحتاج إلى معلومات موجودة في مسجل COM تثبيت مكونات  
النظام وإزالة تثبيت المكون تحتاج إلى جهد كبير أيضا . 
05 21 تشرين الثاني، 14
DLL after .NET 
الفكرة بإختصار هي وضع كل ما يهمنا من معلومات ضمن المجمعة نفسها  
.» بيانات وصفية « على شكل 
لن يحتاج إلى أية معلومات ضمن )DLL,EXE( هذا يعني أن المجمعة  
مسجل النظام . 
ضمن المجمعة يتم تخزين أرقام الإصدارات الخاصة بالمجمعة , مثل :  
. Shape يليها 1.1 Shape 1.0 
05 22 تشرين الثاني، 14
DLL Vs EXE 
له خرج وقد لا يكون له دخل . EXE ملف ال  
ليس له دخل وليس له خرج . DLL ملف ال  
كلمف EXE في البنية هما متشابهان تمام ا كًما يمكن استخدام ملف  
DLL 
.NET في بيئة 
05 23 تشرين الثاني، 14
.NET Assemblies and .NET Library 
.NET أن أي كود سي شارب سيستخدم مكتبة من مكتبات  
writeline الذي يستخدم التابع Hello world أبسط مثال هو برنامج  
لكن كيف يتم ذلك . , Console الموجود ضمن الصف 
فأن محرك زمن system من فضاء الأسماء Method كلما استدعينا  
سيضمن تحميل المجمعة ومعرفة التابع الذي قمت )CLR( التنفيذ المشترك 
وفي أي namespace باستدعائه من المكتبة التي قمت بتحميلها )في أي 
وذلك من خلل البيانات الوصفية ) method هذا ال Class 
MetaData 
05 24 تشرين الثاني، 14
Overlap between the programming 
languages 
بإنشاء لغات برمجة جديدة مع أنها جميعا تترجم Microsoft لماذا تقوم  
؟ Managed Code إلى 
إن العديد من المبرمجين حساسين جداً للغة التي يبرمجون بها فكل منهم يحب  
خاص للغة معتاد عليه. syntax 
مثل .NET الدور التسويقي لجذب جميع المبرمجين للعمل تحت منصة  
متوافقة مع جافا C# كما يوجد محاولات لجعل C++VB.NET ,Delphi 
أنتاج منتج بواسطة فريق عمل وكل شخص يعمل على لغة مختلفة عن  
الأخرى وبالتالي نكون قد أنتجنا المنتج بواسطة عدة لغات برمجة . 
05 25 تشرين الثاني، 14
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
Advantages offered by .NET 
.NET والذي يدير تنفيذ جميع مجمعات (CLR) محرك زمن التنفيذ المشترك  
)JAVA تماما بال JVM مثل ال CLR ( بغض النظر عن اللغة التي كتبت بها 
المتوسطة( والتي تنتجها جميع مترجمات لغات Microsoft لغة ( MSIL لغة  
.NET 
مثلً أن C# حيث يمكن للمكونات المكتوبة بلغة CLS مواصفات اللغة المشتركة  
مع إمكانية الوراثة الكاملة بين الأصناف VB تستخدم في 
05 27 تشرين الثاني، 14
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
Shared and Private Assemblies 
المجمعات الخاصة  
خاصة فقط بالتطبيق  
المجمعات المشتركة  
)C:windowsAssembly( مشتركة لجميع التطبيقات وتقع في مكان مركزي  
. GAC هذه المجمعة يجب أن تكون موقعة بمفتاح مُشفر , قبل وضعها في  
05 29 تشرين الثاني، 14
Assemblyinfo.cs File 
قد يتسائل البعض عن هذا الملف وما هي وظيفته , إذ أنه يتولد بشكل تلقائي مع  
.NET مشروع في بيئة 
يستخدم هذا الملف لضبط صفات المجمعة في بيانها )ضمن المجمعة نفسها( .  
كل تعليمة موضوعة ضمن الأقواس المربعة "[]" مثل  
[assembly:AssemblyVersion("1.0.0.0")] 
يكفي أن نعلم الآن أن كل تعليمة من هذه التعليمات تقوم ( Attribute تمثل صفة 
بإعداد خاصية من خصائص المجمعة ( 
في بداية كل تعليمة أن الصفة موجهة للمجمعة نفسها assembly تشيرالكلمة  
. method أو منهج class وليس لأي صف 
05 30 تشرين الثاني، 14
Assemblyinfo.cs File 
لكل مجمعة اسم و رقم إصدار ومعلومات أخرى وهي كلها متوفرة على شكل  
.Assemblyinfo.cs ضمن الملف Attributes 
EXE أو dll في حال إصدار منتج وقمنا بترقية وتحديث مجمعاتنا سواء كانت  
نقوم بتوقيع المجمعة ب اسم فريد لضمان حقوق شركتك من السرقة وللسماح  
للبرامج من التأكد من أن هذه المجمعة موقعة )موضوع أمني بحت(. 
أربعة أرقام هي : .NET للإصدار في مجمعة  
(Major Version ) إصدار رئيسي  
(Minor Version) إصدار ثانوي  
(Build Number) رقم البناء  
(Revision) رقم الطبعة  
05 31 تشرين الثاني، 14

Weitere ähnliche Inhalte

Andere mochten auch

Login System with Windows/Microsoft Live using OAuth php and mysql
Login System with Windows/Microsoft Live using OAuth php and mysqlLogin System with Windows/Microsoft Live using OAuth php and mysql
Login System with Windows/Microsoft Live using OAuth php and mysqlthesoftwareguy7
 
10 system.security.cryptography
10 system.security.cryptography10 system.security.cryptography
10 system.security.cryptographyMohammad Alyan
 
2 second lesson- attributes
2 second lesson- attributes2 second lesson- attributes
2 second lesson- attributesMohammad Alyan
 
Fax With Sangoma Gateway
Fax With Sangoma GatewayFax With Sangoma Gateway
Fax With Sangoma GatewayHossein Yavari
 

Andere mochten auch (6)

Login System with Windows/Microsoft Live using OAuth php and mysql
Login System with Windows/Microsoft Live using OAuth php and mysqlLogin System with Windows/Microsoft Live using OAuth php and mysql
Login System with Windows/Microsoft Live using OAuth php and mysql
 
10 system.security.cryptography
10 system.security.cryptography10 system.security.cryptography
10 system.security.cryptography
 
Introduction To ERP
Introduction To ERPIntroduction To ERP
Introduction To ERP
 
2 second lesson- attributes
2 second lesson- attributes2 second lesson- attributes
2 second lesson- attributes
 
Fax With Sangoma Gateway
Fax With Sangoma GatewayFax With Sangoma Gateway
Fax With Sangoma Gateway
 
Models for hierarchical data
Models for hierarchical dataModels for hierarchical data
Models for hierarchical data
 

Ähnlich wie 1 first lesson -assemblies

الدليل العلمي لنظام الدي سبيس
الدليل العلمي لنظام الدي سبيسالدليل العلمي لنظام الدي سبيس
الدليل العلمي لنظام الدي سبيسAml Sindi
 
Using Ubuntu Linux as environment for the development of sites using php
Using Ubuntu Linux as environment for the development of sites using phpUsing Ubuntu Linux as environment for the development of sites using php
Using Ubuntu Linux as environment for the development of sites using phpObieda Ananbeh
 
Licenses Linux, Open Source programs
Licenses Linux, Open Source programsLicenses Linux, Open Source programs
Licenses Linux, Open Source programssunsyria
 
From Scratch....من الأول
From Scratch....من الأولFrom Scratch....من الأول
From Scratch....من الأولAbd4llA
 
Visual basic.net احترف فيجوال بيسك
Visual basic.net احترف فيجوال بيسك Visual basic.net احترف فيجوال بيسك
Visual basic.net احترف فيجوال بيسك Abdalwahab Noureldien
 
ملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزمياتملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزمياتomo6767g
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافالبرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافMohamed E. Saleh
 
Required Programs To Start Developing in Laravel
Required Programs To Start Developing in LaravelRequired Programs To Start Developing in Laravel
Required Programs To Start Developing in LaravelAliSuliman33
 
VB.net Database Chapter 1
VB.net Database Chapter 1VB.net Database Chapter 1
VB.net Database Chapter 1Haytham Malek
 
الحزم و التحزيم في سلاكوير
الحزم و التحزيم في سلاكويرالحزم و التحزيم في سلاكوير
الحزم و التحزيم في سلاكويرkhalid hamdani
 
الموضوعات الموقع
الموضوعات الموقعالموضوعات الموقع
الموضوعات الموقعguest14c7e5
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1jadalkinani1
 
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...hossamzee
 
C++ function (1) c++2
C++ function (1) c++2C++ function (1) c++2
C++ function (1) c++2MohammedDoos
 

Ähnlich wie 1 first lesson -assemblies (20)

الدليل العلمي لنظام الدي سبيس
الدليل العلمي لنظام الدي سبيسالدليل العلمي لنظام الدي سبيس
الدليل العلمي لنظام الدي سبيس
 
Using Ubuntu Linux as environment for the development of sites using php
Using Ubuntu Linux as environment for the development of sites using phpUsing Ubuntu Linux as environment for the development of sites using php
Using Ubuntu Linux as environment for the development of sites using php
 
Licenses Linux, Open Source programs
Licenses Linux, Open Source programsLicenses Linux, Open Source programs
Licenses Linux, Open Source programs
 
Chapter4 part1
Chapter4 part1Chapter4 part1
Chapter4 part1
 
From Scratch....من الأول
From Scratch....من الأولFrom Scratch....من الأول
From Scratch....من الأول
 
Visual basic.net احترف فيجوال بيسك
Visual basic.net احترف فيجوال بيسك Visual basic.net احترف فيجوال بيسك
Visual basic.net احترف فيجوال بيسك
 
ملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزمياتملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
ملف بوروبينت اساسيات برمجة الحاسب والخوارزميات
 
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحترافالبرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
البرمجة | أقوي مجالات العمل والربح من الانترنت..دليلك نحو الاحتراف
 
Required Programs To Start Developing in Laravel
Required Programs To Start Developing in LaravelRequired Programs To Start Developing in Laravel
Required Programs To Start Developing in Laravel
 
VB.net Database Chapter 1
VB.net Database Chapter 1VB.net Database Chapter 1
VB.net Database Chapter 1
 
Android 1
Android 1Android 1
Android 1
 
الحزم و التحزيم في سلاكوير
الحزم و التحزيم في سلاكويرالحزم و التحزيم في سلاكوير
الحزم و التحزيم في سلاكوير
 
الموضوعات الموقع
الموضوعات الموقعالموضوعات الموقع
الموضوعات الموقع
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
برمجه حاسب1
برمجه حاسب1برمجه حاسب1
برمجه حاسب1
 
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
يوم البرمجيات الحرّة 2014 - البرمجيّات الحرّة و بناء واجهات التطبيق البرمجيّة...
 
NetBeans Tut CH1
NetBeans Tut CH1NetBeans Tut CH1
NetBeans Tut CH1
 
C++
C++C++
C++
 
C++
C++C++
C++
 
C++ function (1) c++2
C++ function (1) c++2C++ function (1) c++2
C++ function (1) c++2
 

Mehr von Mohammad Alyan

Mehr von Mohammad Alyan (10)

Blue ocean strategy arabic
Blue ocean strategy arabicBlue ocean strategy arabic
Blue ocean strategy arabic
 
Apple case study
Apple case studyApple case study
Apple case study
 
Introduction to Industry Life Cycles
 Introduction to Industry Life Cycles  Introduction to Industry Life Cycles
Introduction to Industry Life Cycles
 
Crowd funding
Crowd fundingCrowd funding
Crowd funding
 
Coursera
CourseraCoursera
Coursera
 
Course index
Course indexCourse index
Course index
 
التفكير- مصنع للإبداع
التفكير- مصنع للإبداعالتفكير- مصنع للإبداع
التفكير- مصنع للإبداع
 
Cloud computing
Cloud computing Cloud computing
Cloud computing
 
Linq introduction
Linq introductionLinq introduction
Linq introduction
 
10 1 otp all
10 1 otp all10 1 otp all
10 1 otp all
 

1 first lesson -assemblies

  • 1. En. Mohammad Alyan @MhdAlyan
  • 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
  • 10. Homework (Course Project ) Resources Management Strategies 05 10 تشرين الثاني، 14
  • 11. Introduction to .NET Framework 1- Assemblies
  • 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