الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دورة كامله حول C#.NET , ADO.NET, ASP.NET

بدأه Im.NET في 1 يونيو 2011 · 12 رد · 3,339 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

نظرا لقدر استفادتي من المنتدى الجميل صراحة , وفضله على المبرمج العربي

قررت وباذن الله ان اعرض دورة كامله حول مادة MCTS كاملة ان شاء الله (C#.NET , ADO.NET, ASP.NET) , وستكون الدوره ان شاء الله حصريه على منتدياتنا

كيفية الشرح :

- سيتم عرض مادة بسيطه تحتوي على رؤوس اقلام يتم توضيحها عن طريق امثله عملية على الكومبايلر وسأكون باذن الله جاهز

لاي استفسار

وسيتم وضع الدروس بالتسلسل في هذا الموضوع بقدر الاستطاعه ان شاء الله

#2

في البدايه المقدمه اخذتها من احد المنتديات لانها معلومات ثابته لا تتوضح الا مع التعلم لاللغه

ما هو مفهوم بيئة الدوت نيت ؟

بيئة الدوت نيت هى الاساس القادم لتطوير تطبيقات تستطيع ربط نظم ومعلومات و اجهزه و مستخدمين فى إطار موحد و مخصص

تقع منصة الدوت نيت فى نقاط اساسيه :

1- أدوات التطوير Developer Tools : الواجهه البرمجيه والادوات(لغات البرمجه) التى يستخدمها المطور لتصميم و إنشاء الحلول لبيئة الدوت نيت .... تدعم دوت نيت حوالى 24 لغه برمجه

2- مجموعة من الخوادم Servers : السيرفرات التى تمثل البنية التحتيه لبناء وتطوير و تنفيذ الحلول لبيئة الدوت نيت مثل MS SQL Server او E-Commerce Server او BizTalk Server

3- خدمات الويب Xml Web Service : مجموعه من الخدمات المحدده للقيام بالعمليات الروتينيه و الوسائل التى تساعد المطور فى تطوير خدماته الخاصه

4- العملاء Clients : و المقصود بها الاجهزه التى تستخدم انظمة تشغيل مدمج معها إطار عمل الدوت نيت... هناك مشروع مونو لنقل الدوت نيت على اللينكس

5- خبرة المستخدمين User Experinece : البرمجيات التقليده والمدمجه مع خدمات الويب لتقدم كل ما يحتاجه المستخدم

ربما تبدو هذه النقاط مقدمه نظريه لا فائده منها و لكنى تعلمت ان معرفة هيكلية (معمارية) بيئة العمل هامه جداً

بيئة عمل الدوت نيت تقدم نموذج عمل بالبرمجه الكائنيه ( سنفهم معناها لاحقاً) و هو ما يضمن سلامة تنفيذ الكود باستخدام قواعد التحقق من الصحه وقت التنفيذ RunTime بمعنى انه لايمكن لبرنامجك ان يتخطى حدوده و يحاول الوصول إلى كائنات اخرى فى تطبيق اخر مالم يسمح له هذا التطبيق او ربما يحاول تطبيقك او ما سنسميه كائنك ان يقوم بعمليه لم تحددها له

إطار عمل الدوت نيت Dot Net FrameWork

إطار العمل هو بمثابة القلب النابض للدوت نيت و هو يحتوى على مكونين رئيسيين :

1- Common Langauge RunTime او (CLR)

2- DotNet Class Library

Common Langauge RunTime او (CLR)

او ما يطلق عليه بيئة العمل المشتركه و هى البيئه التى يتم تنفيذ كل تطبيقات الدوت نيت فيها تقدم هذه البيئه الكثير للتطبيقات العامله بها

البرامج التى يتم عمل Compilation لها تحت بيئة الدوت نيت لا يتم تحويلها مباشره إلى Native Code بل يتم تحويلها إلى MSIL ( Microsoft Intermediate Language ) تماماً مثل تطبيقات الجافا التى يتم تحويلها إلى Byte Code و بالتالى هذا يجعل تطبيقات الدوت نيت قابله للعمل على اى نظام تشغيل يحتوى على ال CLR بعد ذلك يتم تحويل كود ال MSIL إلى Native Code بواسطة مترجم وقت التنفيذ (Just In Time Compiler ) تحويل الكود إلى MSIL شئ ممتع فهو يجعلك تعمل تحت منصة الدوت نيت باستخدام لغتك المفضله (التى يجب ان تدعم تحويل الكود إلى MSIL )

يبقى شئ يجب ان نوضحه هنا و هو ان الكود الذى يتم تنفيذه تحت بيئة الدوت نيت يسمى managed code و يسمى كذلك لانه يستخدم ململم النفايات GC لتحرير الذاكره من الكائنات الغير مستخدمه و ما غير ذلك فيسمى unmanaged code

دعنا نوضح النقطه السابقه الخاصه بكيفية تنفيذ ال managed code بشئ من التفصيل

كما ذكرنا فان ال CLR هى المسئوله عن تحميل المجمعات (Assemblies) و الكائنات (Objects) الخاصه بتطبيقك فى الذاكره ... بعد ان يتم تحميل الكود و يبدأ تنفيذه تستمر ال CLR فى العمل لمراقبة تنفيذ ال managed code خاصتك لتقدم له الخدمات الموجوده بالشكل الموضح اعلاه

ايضاً لكى تتاكد من ان برنامجك يعمل فى بدون اى عوامل خارجيه تؤثر على عمله

ماذا بعد ان تنتهى دورة حياة تطبيقك ؟

تقوم ال CLR بتحرير الذاكره من كائنات تطبيقك باستخدام ميكانيكيه داخليه تسمى ال Garbage Collector او ململم النفايات (مثل تطبيقات جافا)

قبل ان يبدأ ال CLR فى هذه المكانيكيه فهو يقوم بتحميل نفسه فى ال Windows Hosting Process

دعنا نلقى نظره عن قرب من هذه العمليه

المترجمات التى تدعم ال managed code مثل VB.NET مثلاً تقوم باضافة ترويسة (Header) تقوم بتوليد managed assembly file هذا الملف يجعل نظام التشغيل ويندوز يقوم اوتوماتيكياً بتحميل ملف MSCOREE.DLL الذى يقوم ببدأ جلسة عمل لل CLR لتطبيقك عن طريق تحميل ملف MSCORWKS.DLL

افترض ان تطبيقك ينتج ملف اسمه MyApp.exe و انظر إالى الصوره التاليه لتستوعب هذه الفكره باختصار شديد

هل معنى هذا ان تطبيقات الدوت نيت ستعمل على اى منصه مثل جافا ؟

نظرياً نعم حيث انه من المفترض ان منصة الدوت نيت منفصله عن نظام التشغيل و لكن تقنياً حتى الان لا تعمل تطبيقات الدوت نيت إلا من خلال منصة الويندوز و إن كان هناك مجهودات مبذوله لنقل منصة الدوت نيت إلى لينكس من خلال مشروع مونو

2- مكتبة فئات الدوت نيت DotNet Class Library

تأتى بيئة الدوت نيت محمله بأكثر من 5 الآلاف فئه Class جاهزه تساعد المطور فى إنشاء التطبيقات المختلفه بكل سلاسه فهى تقدم له كل الاكواد التى يتكرر تنفيذها و لكن مغلفه مما يعطى امن للكود اثناء تنفيذه كما تجعل ذهن الطور يتجه نحو ما هو المطلوب تاديته من البرنامج و يترك التفاصيل الفرعيه لفئات الدوت نيت

هذه الفئات Classes تقع فى 7 مجموعات رئيسيه :

1- فئات التعامل مع هياكل البيانات Data Structures

2- فئات التعامل مع ادوات الادخال والاخراج IO management

3- فئات ادوات تطبيقات الويندوز و الويب Windows and Web Controls

4- فئات الوصول إلى البيانات Database access

5- فئات تعدد خيوط المعالجه Multithreading

6- Remoting

7- فئات الانعكاس Reflections

كل هذه الفئات يمكن الوصول إليها من اى لغة تدعم الدوت نيت اى ان المطور الذى يستخدم الفيجوال بيسك دوت نيت سيستخدم هذه الفئات كما هو الحال مع المطور الذى يستخدم ال #C مثل المطور الذى يستخدم Perl.NET مثل المطور الذى يستخدم Delphi.Net

كل ال Implementaion الخاصه بإطار عمل الدوت نيت يتم شحنها مع مجموعه كبيره من الفئات المبنيه بداخلها (المدمجه معها)

مكتبة فئات إطار العمل FCL تحتوى على مجموعه كبيره من الفئات تتنوع فى استخداماتها من دوال ال API التى تم تغليفها ووضعها فى صوره امنه للمبرمج يستطيع التعامل معها داخل الدوت نيت - فئات للتعامل مع قواعد البيانات - فئات للتعامل مع الواجهه الرسوميه للمستخدم - فئات للتعامل مع تنسيق النص - فئات للتعامل مع المجموعات COLLECTIONS - فئات للتعامل مع ال Program Security و هكذا ترى ان لديك مكتبه كبيره جداً من الفئات القابله للاستخدام

و لكن ليس كل الفئات قابله للاستخدام داخل كل انواع التطبيقات فقد نجد فئات تستخدم فى تطبيقات الويندوز windows application و لكن لا تستخدم بداخل تطبيقات الويب web application او ال mobile applications او العكس

يجب ان تحذر استخدام مكتبة الفئات إلا للمنصات التى تعمل عليها فقط اى لا تحاول استخدام مكتبه للتعامل مع السيكيورتى مثلاًُ مع نظام لا يدعم السيكيورتى

ليس ان تحوبل الكود فقط إلى MSIL يسمح لك بالعمل عبر المنصات المختلفه بل ايضاً معرفتك باى مكتبه من الفئات قابله للعمل عبر تلك المنصات

التحديدات specification الخاصه بال CLI عرفت مجموعه من الفئات الاساسيه التى يجب توافرها لاى DOT NET FrameWork Implementaion هذه الفئات تعرف باسم Base Class Library او اختصاراً BCL

استخدامك لل BCL يضمن لك قابلية عمل تطبيقك على اى منصة عمل تستخدم إطار عمل الدوت نيت و لكن استخدامك لاى فئه خارج اطار ال BCL قد يعرض برنامج لعدم التوافقيه مع منصة العمل التى يجرى عليها تطبيقك

هذا جدول يوضح اهم المجمعات Assemblies داخل مكتبة الفئات

ال Microsoft.VisualBasic يقوم بمهمتين رئيسيتين لمبرمجى الفيجوال بيسك دوت نيت

المهمه الاولى : تقدم وسائل المساعده التى تقوم بتحويل الكود إلى MSIL

المهمه الثانيه : تقدم وصول مباشر للطرق و الثوابت التى تشبه تلك الموجوده فى الاجيال الاولى من الفيجوال بيسك

و بالتالى فكما ترى ان هناك اعتماديه من مبرمجى فيجوال بيسك دوت نيت على هذا المجمع

مميزات بيئة عمل الدوت نيت

هذه المزايا ساسردها من وجهة نظرى و لكن هناك العديد من المصادر التى تسهب فى هذا الجزء

1 - تكاملية بيئة الدوت نيت بما تحمله من دمج لنظام التشغيل و ادوات التطوير و السيرفرات المستخدمه

حقيقة هذه احدى مزايا و عيوب مايكروسوفت فى نفس الوقت

2 - لغة واحدة لجميع الاغراض

الان يمكن فعلاً كتابة تطبيقات الويب و تطبيقات بيئة الخادم / العميل و التطبيقات المكتبية فى نفس الوقت بنفس اللغة بدون ان تحتاج شركتك لمبرمجين بلغات اخرى .... الم نواجه فى معظم الاحوال كمبرمجين الحاجة لاستخدام لغات اخرى لانشاء مشروعات ويب مثلاً فكنا نضطر لتعلم احدى اللغات مثل ASP او PHP او غيرها

اما الان فيمكنك نقل خبرتك لاستخدام ASP.NET مباشرة باستخدام VB.NET او C# بدون الحاجة لتعلم لغات جديدة ( ترى هل سيوفر هذا على الشركات بدون الحاجة للحصول على مبرمجين جدد)

3 - الامان Security

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

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

الان اصبح بالامكان استخدام Code Access Security و Evidence-based security و Role Based Security و Application Domain و استخدام التشفير Encryption بدون الحاجة للعديد من الاكواد المعقدة فى معظم الاحيان حيث توفر بيئة الدوت نيت العديد من الفئات داخل فضاءات الاسماء System.Security

صفحات ال ASP.NET و العديد من الانماط لحماية المحتوى

4 - السرعة فى ASP.NET

تختلف ASP.NET عن سابقتها ASP فى كونها Compiled و ليست Interpreted هذا بالاضافة لامكانية استخدام ال Caching لصفحات معينة كما يمكن تحديد فترة زمنية لهذا التخزيم مما يزيد من كفائتها

5 - انشاء خدمات ويب Web Services

لا شك ان خدمات الويب اصبحت تلعب دوراً هاماً الان فى ال Business Logic و ال Code Reuse فركزت عليها مايكروسوفت فى بيئة الدوت نيت و اصبح بالامكان برمجة او استخدام خدمات الويب مباشرة من داخل تطبيقك

6 - برمجة تطبيقات الاجهزة الذكية Mobile & Smart Applications

ميزة جديدة مع الدوت نيت و إن كانت غير منتشرة مع انتشار تطبيقات جافا فى الاسواق ... ما زلنا ننتظر الجديد من مايكروسوفت لهذه السوق الجديدة

العديد من المميزات التى ربما لم اتطرق إليها هنا و لكن يمكن البحث عنها فى الانترنت ...... بيئة الدوت نيت رائعه و مليئة بالمزايا مهما كانت لغة برمجتك المفضلة لربما احببت ان تلقى نظرة للدوت نيت

#3

اولا :

Namespace

set of related classes by its function

System Namespace: access and perform with system functionality

بمعنى ان كل نيم سبيس مرتبطه بوظائف محدده نستدعيها وقت الحاجه والفائده منها التخفيف من الحمل على الكومبايلر يستطيع تنفيذ الجزء المطلوب

وباستخدام مصادر محدده

Console Class: located in System Namespace Represents the standard input, output,

and error streams for console applications. This class cannot be inherited

#4
Im.NET كتب:

في البدايه المقدمه اخذتها من احد المنتديات لانها معلومات ثابته لا تتوضح الا مع التعلم لاللغه

إذن عليك وضع رابط للمصدر.

#5

اخي العزيز

موفق و الى الامام

لكن اريد منك ان تأخذ على نفسك عهدا الاستمرار

لان معظم الدورات الكبيره تبدأ و لا تنتهي....

و يعطيك الف عافيه

المهندس

#6

شكرا لك

وأرجوا الإستمرار وعدم التوقف

الله يوفقك

لا إلة إلا أنت سبحانك إني كنت من الظالمين

#7

مشكورين يا اخواني . والله يقدرني على التكمله

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

الصوره ستوضح الامر

post-245953-029839200 1307011509_thumb.p

اذن ممكن ان يحتوي ال solution

على اكثر من بروجيكت

وكذلك باقي الصوره

من namespaces , fille.cs وغيرها

المرفقات
c#1.png
#8

module2:

1- comments

الكومنت هي سطور ليس لها علاقه بالبرنامج هي فقط سطور توضيحيه لكي تساعدنا على فهم الكود بعد فتره من كتابته وهي

لا تطبق اي لا تؤثر على سرعة البرنامج

تكتب على الشكل التالي

//This is first comment.

2-Variables

- يجب ان تبدأ بحرف او (_) او (@)

- ليست كلمه محجوزه من اللغه مثل ( int , doube)

-لا يوجد بها فراغات

3- notations

وهي طريقه لكتابة المتغيرات باللغه

هنا نوعين وهما

Camel

مثل : firstOf

Pascal

مثل: FirstOf

#9

Data Types

هناك نوعين من الdata types

Value Type

Refrence Type

هذه الصوره ستوضح الفكره :

post-245953-040870600 1307012868_thumb.p

- Value Type

وتنقسم الى قسمين

1- value type ------------- مثل:

integral

byte

short

long

int

float

char

وغيرها

2-user defined

enum

struct

اما الReference Type

فينقسم ايضا الى

1- built-in مثل

object

array

string

2- User defined

class

Interface

delegates

event

المرفقات
c#2.png

تم تعديل هذه المشاركة بواسطة Im.NET في 2 يونيو 2011 في 14:35

#10
Im.NET كتب:

مشكورين يا اخواني . والله يقدرني على التكمله

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

الصوره ستوضح الامر

post-245953-029839200 1307011509_thumb.p

اذن ممكن ان يحتوي ال solution

على اكثر من بروجيكت

وكذلك باقي الصوره

من namespaces , fille.cs وغيرها

الكلاس أنا عارفه

بس ممكن تشرح الباقي

وشكرا لك

لا إلة إلا أنت سبحانك إني كنت من الظالمين

#11

عزيزي انا ممكن اعمل برنامج وتطبيق كامل ولكن يكون على شكل اجزاء

مثلا انا عندي الsolution وهي تطبيق كامل

يمكن لهذا التطبيق ان يحتوي على اكثر من بروجكت اي ان الsolution يمكن ان يكون على شكل اجزاء وهي بروجكت

ويمكن كذلك ان يكون كل بروجكت يحتوي على اكثر من ملف c#

وبالنسبه للnamespace

هي مجموعه من الكلاس المترابطه

ارجو ان اكون وضحتها

#12

سنتطرق الان لوضوع مهم جدا بالبرمجه وهو Conversation Type

وهو التحويل من data type لاخرى

وهو نوعين :

1- Widining

post-245953-060857800 1307013536_thumb.p

int n1=80;

double n2=n1;

2- Narrowing

post-245953-018737100 1307013657_thumb.p

double n1= 10;

int n2=n1;

هناك 4 طرق لعمل التحويل

1- casting

DT1 v1 =value;

DT2 v2=(DT2)v1;

مثلا

double m1=20;

int m2=(int)m1;

2- convert command

DT1 v1=value;

DT2 v2 = convert.Toframeworksystemtypeof DT2(v1);

وسيتم توضيحها لاحقا

3- using parse

وهي للتحويل من string ل numaric

string avg = "80.6";

double avgs =double.parse(avg);

4- tostring Method

من اي data type ل string

decimal salary = 800;

string thesal = "the salary is " + salary.Tostring();

ان شاء الله في الدرس القادم سنتطرق للswitch

وبعدها لل Methods

وهي البدايه الحقيقه لل C# بالتوفيق للجميع

المرفقات
c#3.pngc#4.png
#13

جزاك الله كل خير علي المجهود الممتاز ونريد المزيد ان شاء الله والتواصل المستمر وجعله الله في ميزان حسناتك

mahmoud adb elrahman fawzy

مواضيع مشابهة