Advanced C# Course summer 2012 En. Mohammad Alyan @MhdAlyan
Jun 29, 2015
Advanced C# Course summer 2012
En. Mohammad Alyan@MhdAlyan
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)
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.
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#.`
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.
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).
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
04/13/2023 11:49 PM 8
When You relies The Concept , Every Thing Will
Go Easy
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
04/13/2023 11:49 PM 10
Homework (Course Project )
Resources Management Strategies
Advanced C# Course Introduction to .NET
Framework1- 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
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
04/13/2023 11:49 PM 14
Before .NET مصدرية تشغيل ترجمة شيفرة نظام لكل تنفيذي ملف: المشاكل
. تشغيل أنظمة عدة على محمول غير التنفيذي البرنامج فإننا أخر تشغيل نظام على البرنامج تنفيذ أردنا حال في
النظام على المصدرية الشيفرة ترجمة إعادة إلى بحاجةالجديد.
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
04/13/2023 11:49 PM 16
What is CLR ?و هي عبارة عن محرك تنفيذي لتطبيقات الـ.NET
تتضمن مجموعة من الخدمات مثل: إدارة الذاكرةتحويل كود الـMSIL إلى native codeException Handling Debugging
04/13/2023 11:49 PM 17
Managed Code Vs Unmanaged Code الوسطية الطبقة قبل من مCدارة ( CLR)شيفرة األغراض تحرير عملية و المؤشرات مع التعامل من التخلص
النفايات جامع ب بعرف ما طريق عن الذاكرة ضمن المحجوزة“Garbage Collector. ” مع a فورا تتعامل التي الشيفرة هي المCدارة غير الشيفرة
التشغيل . نظام. مدارة الشيفرة من أسرع المCدارة الغير الشيفرة
04/13/2023 11:49 PM 18
Components: شيفرة المكون يحوي برنامج عن عبارة وليس تنفيذيةهو
مصدرية شيفرة إلعادة إلى الحاجة دون تستخدمه أن األخرى البرامج بإمكان
الشيفرة لمعرفة الحاجة ودون المصدرية الشيفرة ترجمةمن a نوعا يوفر مما بالمجمعة الخاصة . األمنالمصدرية
ملف إعتبار ثنائي .DLLيمكن مكون
04/13/2023 11:49 PM 19
Components Advantages: المكونات مزايا
عديدة برامج في الفرعية البرامج استخدام إعادة تقوم أن يمكنك ببنائها قمت التي أن ببيعهاالمجمعة ويمكنك
Cسمى فريد اسم ب توقعها لتكون Strong Nameيأو السرقة من حقوقك ولحفظ العالم مستوى على وحيدة
المشروع . غير االستخدام
04/13/2023 11:49 PM 20
Static Linking في ملفات++ , .Cكما بربط نقوم كنا h , .cppسابقا:المساوئ
. الترجمة قبل المكتبة من التابع استدعاء كود جلب يتم. عليه ويعدل الكود يرى أن أحد ألي ويمكن مفتوحة المكتبات , , المصدرية الشيفرة أن أي ترجمة إعادة تتطلب ألنها بطيئة
للمكتبة . المصدرية الشيفرة تستعمل للبرنامج كود بتحميل يقوم المكتبة هذه يستعمل أن يريد برنامج كل
يستخدمان برنامجين لدينا وبالتالي الرئيسية الذكرة إلى التابع. مكرر لكنه للتابع الكود نفس
04/13/2023 11:49 PM 21
DLL before .NET قبل.NET شركة قامت الويندوز ظهور بدايات وفي
فكرة بتحقيق والتي الديناميكي الربطمايكروسوفتسمتها وقد المكونات مفهوم على تعتمد , COMتتلخص
منها : المشاكل بعض من تعاني كانت ولكنها وبرمجة تعلم الرئيسي COMصعوبة المصدر أن a علما
لغة COMلمكونات مكتبة++ Cهو .ATLباستخدام مكونات معلومات COMتثبيت إلى ويحتاج a جدا صعب
في إلى النظام مسجلموجودة تحتاج المكون تثبيت وإزالة. a أيضا كبير جهد
04/13/2023 11:49 PM 22
DLL after .NET ضمن معلومات من يهمنا ما كل وضع هي بإختصار الفكرة
نفسها المجمعة. » وصفية »بيانات شكل على
( المجمعة أن يعني أية( DLL,EXEهذا إلى يحتاج لنالنظام . مسجل ضمن معلومات
الخاصة اإلصدارات أرقام تخزين يتم المجمعة ضمن: , a مثًال بالمجمعة
Shape 1.0 يليهاShape 1.1.
04/13/2023 11:49 PM 23
DLL Vs EXE ال دخل .EXE ملف له يكون ال وقد خرج له ال خرج .DLLملف له وليس دخل له ليس متشابهان هما البنية aفي ملف تماما استخدام يمكن كما
EXE كلمفDLL بيئة . NETفي
04/13/2023 11:49 PM 24
.NET Assemblies and .NET Library مكتبات من مكتبة سيستخدم شارب سي كود أي NET.أن برنامج هو مثال التابع Hello worldأبسط يستخدم الذي
writeline الصف ضمن يتم , Consoleالموجود كيف لكنذلك .
استدعينا األسماء Methodكلما فضاء فأن systemمنالمشترك ) التنفيذ زمن تحميل( CLRمحرك سيضمن
المكتبة من باستدعائه قمت الذي التابع ومعرفة المجمعةأي ) في بتحميلها قمت أي namespaceالتي Classوفي
ال خًالل ( methodهذا من الوصفية البياناتوذلكMetaData
04/13/2023 11:49 PM 25
Overlap between the programming languages
تقوم أنها Microsoftلماذا مع جديدة برمجة لغات بإنشاءإلى تترجم a ؟Managed Codeجميعا
يبرمجون التي للغة a جدا حساسين المبرمجين من العديد إنيحب منهم فكل .syntaxبها عليه معتاد للغة خاص
تحت للعمل المبرمجين جميع لجذب التسويقي الدوريوجد C++VB.NET ,Delphiمثل NETمنصة . كما
لجعل جافا# Cمحاوالت مع متوافقة لغة على يعمل شخص وكل عمل فريق بواسطة منتج أنتاج
بواسطة المنتج أنتجنا قد نكون وبالتالي األخرى عن مختلفةبرمجة . لغات عدة
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
04/13/2023 11:49 PM 27
Advantages offered by .NET المشترك التنفيذ زمن جميع( CLR )محرك تنفيذ يدير والذي
بها )NETمجمعات . كتبت التي اللغة عن النظر CLRبغضال بال JVMمثل a (JAVAتماما
لغةMSIL ( لغةMicrosoft ) جميع تنتجها والتي المتوسطةلغات . NETمترجمات
المشتركة اللغة المكتوبة CLSمواصفات للمكونات يمكن حيثفي# Cبلغة تستخدم أن a الكاملة VBمثًال الوراثة إمكانية مع
األصناف بين
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 .منصة تحت لغةليستعمله
04/13/2023 11:49 PM 29
Shared and Private Assemblies الخاصة المجمعات
بالتطبيق فقط خاصة
المشتركة المجمعات مركزي مكان في وتقع التطبيقات لجميع \C:\windows )مشتركة
Assembly ) , في وضعها قبل مCشفر بمفتاح موقعة تكون أن يجب المجمعة هذه
GAC.
04/13/2023 11:49 PM 30
Assemblyinfo.cs File , يتولد أنه إذ وظيفته هي وما الملف هذا عن البعض يتسائل قد
بيئة في مشروع مع تلقائي NET.بشكل الملف هذا بيانها لضبطصفات يستخدم في المجمعة
. ) نفسها) المجمعة ضمن "][" مثل المربعة األقواس ضمن موضوعة تعليمة كل
[assembly:AssemblyVersion("1.0.0.0")]
صفة من ) Attributeتمثل تعليمة كل أن اآلن نعلم أن يكفيتقوم التعليمات خصائصالمجمعة هذه من خاصية (بإعداد
تشيرالكلمةassembly موجهة الصفة أن تعليمة كل بداية فيصف ألي وليس نفسها منهج classللمجمعة .methodأو
04/13/2023 11:49 PM 31
Assemblyinfo.cs File كلها وهي أخرى ومعلومات إصدار رقم و اسم مجمعة لكل
شكل على الملف Attributesمتوفرة ضمنAssemblyinfo.cs .
كانت سواء مجمعاتنا وتحديث بترقية وقمنا منتج إصدار حال فيdll أوEXE
من المجمعة بتوقيعنقوم شركتك حقوق لضمان فريد اسم بموقعة المجمعة هذه أن من التأكد من للبرامج وللسماح السرقة
بحت ) أمني (.موضوع. مجمعة في هي :NETلإلصدار أرقام أربعة
( رئيسي (Major Versionإصدار( ثانوي (Minor Versionإصدار( البناء (Build Numberرقم( الطبعة ( Revisionرقم