31
Advanced C# Course summer 2012 En. Mohammad Alyan @MhdAlyan

1 first lesson -assemblies

Embed Size (px)

DESCRIPTION

Advance C# Course Winter 2012. Damascus,Syria @MhdAlyan

Citation preview

Page 1: 1  first lesson -assemblies

Advanced C# Course summer 2012

En. Mohammad Alyan@MhdAlyan

Page 2: 1  first lesson -assemblies

04/13/2023 11:49 PM 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)

Page 3: 1  first lesson -assemblies

04/13/2023 11:49 PM 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.

Page 4: 1  first lesson -assemblies

04/13/2023 11:49 PM 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#.`

Page 5: 1  first lesson -assemblies

04/13/2023 11:49 PM 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.

Page 6: 1  first lesson -assemblies

04/13/2023 11:49 PM 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).

Page 7: 1  first lesson -assemblies

04/13/2023 11:49 PM 7

Course Outlines Hash Functions(Such as , MD5 ,SHA-n) Entity Authentication (Such as : by Random Numbers !) Digital Signature PKI CA

Page 8: 1  first lesson -assemblies

04/13/2023 11:49 PM 8

When You relies The Concept , Every Thing Will

Go Easy

Page 9: 1  first lesson -assemblies

04/13/2023 11:49 PM 9

Homework (Course Project )

Airline Server

Airline DB

Bank DB

Client 1

Client 2

Client 5

Client 4

Client 3

Network Connectio

n

Thread

Secure channel

Page 10: 1  first lesson -assemblies

04/13/2023 11:49 PM 10

Homework (Course Project )

Resources Management Strategies

Page 11: 1  first lesson -assemblies

Advanced C# Course Introduction to .NET

Framework1- Assemblies

Page 12: 1  first lesson -assemblies

04/13/2023 11:49 PM 12

Outlines Before .NET Framework.NET Framework How it Works What is CLR ?Managed Code Vs Unmanaged CodeComponentsComponents Advantages Static LinkingDLL before .NETDLL after .NET DLL Vs EXE

Page 13: 1  first lesson -assemblies

04/13/2023 11:49 PM 13

Outlines .NET Assemblies and .NET Library Overlap between the programming

languagesAdvantages offered by .NET.Creating AssemblyAssemblyinfo.cs File

Page 14: 1  first lesson -assemblies

04/13/2023 11:49 PM 14

Before .NET مصدرية تشغيل ترجمة شيفرة نظام لكل تنفيذي ملف: المشاكل

. تشغيل أنظمة عدة على محمول غير التنفيذي البرنامج فإننا أخر تشغيل نظام على البرنامج تنفيذ أردنا حال في

النظام على المصدرية الشيفرة ترجمة إعادة إلى بحاجةالجديد.

Page 15: 1  first lesson -assemblies

04/13/2023 11:49 PM 15

.NET ,How it Works ?C# Code

VB.NET Code

مCجمBعة ,MSILشيفرة تكون Assemblyتمثل EXEقد ) أو) تنفيذي ملف ببناء قمنا ببناء ) DLLإذا قمنا Classإذا

Library)

لنظام اآللة شيفرةالتشغيل

Windows

لنظام اآللة شيفرةAppleالتشغيل

لنظام اآللة شيفرةLinuxالتشغيل

JIT For Win

JIT For Apple

JIT For Linux

Page 16: 1  first lesson -assemblies

04/13/2023 11:49 PM 16

What is CLR ?و هي عبارة عن محرك تنفيذي لتطبيقات الـ.NET

تتضمن مجموعة من الخدمات مثل: إدارة الذاكرةتحويل كود الـMSIL إلى native codeException Handling Debugging

Page 17: 1  first lesson -assemblies

04/13/2023 11:49 PM 17

Managed Code Vs Unmanaged Code الوسطية الطبقة قبل من مCدارة ( CLR)شيفرة األغراض تحرير عملية و المؤشرات مع التعامل من التخلص

النفايات جامع ب بعرف ما طريق عن الذاكرة ضمن المحجوزة“Garbage Collector. ” مع a فورا تتعامل التي الشيفرة هي المCدارة غير الشيفرة

التشغيل . نظام. مدارة الشيفرة من أسرع المCدارة الغير الشيفرة

Page 18: 1  first lesson -assemblies

04/13/2023 11:49 PM 18

Components: شيفرة المكون يحوي برنامج عن عبارة وليس تنفيذيةهو

مصدرية شيفرة إلعادة إلى الحاجة دون تستخدمه أن األخرى البرامج بإمكان

الشيفرة لمعرفة الحاجة ودون المصدرية الشيفرة ترجمةمن a نوعا يوفر مما بالمجمعة الخاصة . األمنالمصدرية

ملف إعتبار ثنائي .DLLيمكن مكون

Page 19: 1  first lesson -assemblies

04/13/2023 11:49 PM 19

Components Advantages: المكونات مزايا

عديدة برامج في الفرعية البرامج استخدام إعادة تقوم أن يمكنك ببنائها قمت التي أن ببيعهاالمجمعة ويمكنك

Cسمى فريد اسم ب توقعها لتكون Strong Nameيأو السرقة من حقوقك ولحفظ العالم مستوى على وحيدة

المشروع . غير االستخدام

Page 20: 1  first lesson -assemblies

04/13/2023 11:49 PM 20

Static Linking في ملفات++ , .Cكما بربط نقوم كنا h , .cppسابقا:المساوئ

. الترجمة قبل المكتبة من التابع استدعاء كود جلب يتم. عليه ويعدل الكود يرى أن أحد ألي ويمكن مفتوحة المكتبات , , المصدرية الشيفرة أن أي ترجمة إعادة تتطلب ألنها بطيئة

للمكتبة . المصدرية الشيفرة تستعمل للبرنامج كود بتحميل يقوم المكتبة هذه يستعمل أن يريد برنامج كل

يستخدمان برنامجين لدينا وبالتالي الرئيسية الذكرة إلى التابع. مكرر لكنه للتابع الكود نفس

Page 21: 1  first lesson -assemblies

04/13/2023 11:49 PM 21

DLL before .NET قبل.NET شركة قامت الويندوز ظهور بدايات وفي

فكرة بتحقيق والتي الديناميكي الربطمايكروسوفتسمتها وقد المكونات مفهوم على تعتمد , COMتتلخص

منها : المشاكل بعض من تعاني كانت ولكنها وبرمجة تعلم الرئيسي COMصعوبة المصدر أن a علما

لغة COMلمكونات مكتبة++ Cهو .ATLباستخدام مكونات معلومات COMتثبيت إلى ويحتاج a جدا صعب

في إلى النظام مسجلموجودة تحتاج المكون تثبيت وإزالة. a أيضا كبير جهد

Page 22: 1  first lesson -assemblies

04/13/2023 11:49 PM 22

DLL after .NET ضمن معلومات من يهمنا ما كل وضع هي بإختصار الفكرة

نفسها المجمعة. » وصفية »بيانات شكل على

( المجمعة أن يعني أية( DLL,EXEهذا إلى يحتاج لنالنظام . مسجل ضمن معلومات

الخاصة اإلصدارات أرقام تخزين يتم المجمعة ضمن: , a مثًال بالمجمعة

Shape 1.0 يليهاShape 1.1.

Page 23: 1  first lesson -assemblies

04/13/2023 11:49 PM 23

DLL Vs EXE ال دخل .EXE ملف له يكون ال وقد خرج له ال خرج .DLLملف له وليس دخل له ليس متشابهان هما البنية aفي ملف تماما استخدام يمكن كما

EXE كلمفDLL بيئة . NETفي

Page 24: 1  first lesson -assemblies

04/13/2023 11:49 PM 24

.NET Assemblies and .NET Library مكتبات من مكتبة سيستخدم شارب سي كود أي NET.أن برنامج هو مثال التابع Hello worldأبسط يستخدم الذي

writeline الصف ضمن يتم , Consoleالموجود كيف لكنذلك .

استدعينا األسماء Methodكلما فضاء فأن systemمنالمشترك ) التنفيذ زمن تحميل( CLRمحرك سيضمن

المكتبة من باستدعائه قمت الذي التابع ومعرفة المجمعةأي ) في بتحميلها قمت أي namespaceالتي Classوفي

ال خًالل ( methodهذا من الوصفية البياناتوذلكMetaData

Page 25: 1  first lesson -assemblies

04/13/2023 11:49 PM 25

Overlap between the programming languages

تقوم أنها Microsoftلماذا مع جديدة برمجة لغات بإنشاءإلى تترجم a ؟Managed Codeجميعا

يبرمجون التي للغة a جدا حساسين المبرمجين من العديد إنيحب منهم فكل .syntaxبها عليه معتاد للغة خاص

تحت للعمل المبرمجين جميع لجذب التسويقي الدوريوجد C++VB.NET ,Delphiمثل NETمنصة . كما

لجعل جافا# Cمحاوالت مع متوافقة لغة على يعمل شخص وكل عمل فريق بواسطة منتج أنتاج

بواسطة المنتج أنتجنا قد نكون وبالتالي األخرى عن مختلفةبرمجة . لغات عدة

Page 26: 1  first lesson -assemblies

04/13/2023 11:49 PM 26

C# CodeVB.NET

Code

مCجمBعة ,MSILشيفرة تكون Assemblyتمثل EXEقد ) أو) تنفيذي ملف ببناء قمنا ببناء ) DLLإذا قمنا Classإذا

Library)

لنظام اآللة شيفرةالتشغيل

Windows

لنظام اآللة شيفرةAppleالتشغيل

لنظام اآللة شيفرةLinuxالتشغيل

JIT For Win

JIT For Apple

JIT For Linux

Page 27: 1  first lesson -assemblies

04/13/2023 11:49 PM 27

Advantages offered by .NET المشترك التنفيذ زمن جميع( CLR )محرك تنفيذ يدير والذي

بها )NETمجمعات . كتبت التي اللغة عن النظر CLRبغضال بال JVMمثل a (JAVAتماما

لغةMSIL ( لغةMicrosoft ) جميع تنتجها والتي المتوسطةلغات . NETمترجمات

المشتركة اللغة المكتوبة CLSمواصفات للمكونات يمكن حيثفي# Cبلغة تستخدم أن a الكاملة VBمثًال الوراثة إمكانية مع

األصناف بين

Page 28: 1  first lesson -assemblies

04/13/2023 11:49 PM 28

Creating Assembly النوع من جديد مشروع نضيف Class Libraryننشئ Addثم

new Item , ملف نختار نعمل csثم كنا كنا vbو# Cإذا إذالدينا ,VB.netنعمل ضمن Classاألن . namespaceفارغ

من أكثر المجمعة تحوي أن : namespaceيمكن a مثًالSystem.Data من أكثر مثل namespaceتحوي

System.Data.OLeDB وSystem.Data.SqlClient( المشروع ببناء ملف( Shift+f6= buildنقوم لدينا فينتج

dll بعمل ليقوم شخص ألي يعطيه أن يمكن المجمعة AddيمثلReference أي في NET .منصة تحت لغةليستعمله

Page 29: 1  first lesson -assemblies

04/13/2023 11:49 PM 29

Shared and Private Assemblies الخاصة المجمعات

بالتطبيق فقط خاصة

المشتركة المجمعات مركزي مكان في وتقع التطبيقات لجميع \C:\windows )مشتركة

Assembly ) , في وضعها قبل مCشفر بمفتاح موقعة تكون أن يجب المجمعة هذه

GAC.

Page 30: 1  first lesson -assemblies

04/13/2023 11:49 PM 30

Assemblyinfo.cs File , يتولد أنه إذ وظيفته هي وما الملف هذا عن البعض يتسائل قد

بيئة في مشروع مع تلقائي NET.بشكل الملف هذا بيانها لضبطصفات يستخدم في المجمعة

. ) نفسها) المجمعة ضمن "][" مثل المربعة األقواس ضمن موضوعة تعليمة كل

[assembly:AssemblyVersion("1.0.0.0")]

صفة من ) Attributeتمثل تعليمة كل أن اآلن نعلم أن يكفيتقوم التعليمات خصائصالمجمعة هذه من خاصية (بإعداد

تشيرالكلمةassembly موجهة الصفة أن تعليمة كل بداية فيصف ألي وليس نفسها منهج classللمجمعة .methodأو

Page 31: 1  first lesson -assemblies

04/13/2023 11:49 PM 31

Assemblyinfo.cs File كلها وهي أخرى ومعلومات إصدار رقم و اسم مجمعة لكل

شكل على الملف Attributesمتوفرة ضمنAssemblyinfo.cs .

كانت سواء مجمعاتنا وتحديث بترقية وقمنا منتج إصدار حال فيdll أوEXE

من المجمعة بتوقيعنقوم شركتك حقوق لضمان فريد اسم بموقعة المجمعة هذه أن من التأكد من للبرامج وللسماح السرقة

بحت ) أمني (.موضوع. مجمعة في هي :NETلإلصدار أرقام أربعة

( رئيسي (Major Versionإصدار( ثانوي (Minor Versionإصدار( البناء (Build Numberرقم( الطبعة ( Revisionرقم