العودة   منتدى رياض الجنة - Riad Al-Ganah > الرياض التقنية > روضة الكورسات والدورات التقنية والعلمية > روضة دورات تقنية الـ .NET بلغاتها المختلفة > دورة .NET 2008 من منتدى فيجوال بيسك للعرب

دورة .NET 2008 من منتدى فيجوال بيسك للعرب مقدم الدورة : أحمد جمال ، نوع الدورة : كتابية مصحوبة بصور ، حالة الدورة : انتهت ، عدد الدروس : 80 درس . مستوى الدورة : من البداية للاحتراف .

إضافة رد

  #1  
قديم 03-11-2010, 06:44 PM
الصورة الرمزية khaledbelal
khaledbelal khaledbelal غير متواجد حالياً
مبرمج المنتدى
الادارة تكليف لا تشريف
 
تاريخ التسجيل: Oct 2009
العمر: 34
المشاركات: 3,606
افتراضي الدرس الرابع والسبعون : ASP.net - دورة .net 2008

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

في درسنا السابق جربنا التعامل مع Visual Studio وعمل صفحات ويب غير تفاعليه ، في هذا الدرس سنجرب تجربتنا الأولى مع المواقع التفاعلية .

تجربة ASP.net :
قم بفتح الأدوات Standerd ، قم برسم مربع نص TextBox واداة عنوان Label وزر أمر Button ، في زر الأمر قم بكتابة الكود التالي :
C#:
كود PHP:
Label1.TextTextBox1.Text
vb.net:
كود PHP:
Label1.TextTextBox1.Text 
وجرب ... في الواقع لقد قمت بعمل اول صفحة ASP.net لك .

ماذا حدث فعلياً ؟

لو فتحت صفحة ال HTML ستجد أن لديك كود HTML عادي يحتوي على فورم ، في الواقع فإن ما تم هو حدوث Submit إلى السيرفر حيث قام بارسال بيانات الفورم كاملة إلى السيرفر ، وهناك على السيرفر تمت معالجة البيانات وتم اعادة الصفحة التي تحتوي على Label يحتوي على المحتوى Ahmed او اياً كان محتوى مربع النص قبل الارسال ، لو جربت مشاهدة الكود HTML الخاص بالصفحة الناتجة ستجد الجزء التالي من الكود :
كود بلغة HTML:
<p>
        <span id="Label1">Ahmed</span>
    </p>
    <p>
        <input name="TextBox1" type="text" value="Ahmed" id="TextBox1" />
    </p>
    <p>
        <input type="submit" name="Button1" value="Button" id="Button1" />
    </p>
كما ذكرنا ، تمت معالجة البيانات ، وتم اعادة الناتج إلى Label1 ، اما الاكواد وخلافه فهي في السيرفر فقط .

انواع ارسال البيانات .
في أي Form هناك طريقتين لارسال البيانات هي POST و GET ، في الطريقة الأولى وهي الافتراضية يتم ارسال بيانات ال Form مباشرة ، اما في GET فيتم ارسالها في عنوان المتصفح ، جرب تعديل الفورم الخاص بنا ليصبح بالشكل التالي :
كود بلغة HTML:
<form id="form1" runat="server" method="get">
قم بتجربة الموقع مرة أخرى ، لاحظ الصورة التالية :



كما ترى ، يتم ارسال كافة محتويات الفورم في العنوان ، طبعاً معظم المتصفحات تضع حدوداً على طول الفورم أما في حالة POST فليست هناك اي قيود .

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

Code Behind :

من ضمن المميزات الجديدة التي ظهرت مع ASP.net عن ASP القديمة هي فصل الكود عن التصميم ، في صفحة ASP Classic قديمة كنت ترى هذا الكود مثلاً :
كود بلغة HTML:
<%
v_Id = request.querystring("id")
response.write "<form action=test7.asp?id=" & v_id & " method=post>"
response.write("<font color=red><b><center>Write your C.V.</center></b></font><br>")
%>
   <table>
  
       <tr><td>Computer Skills :</td><td>
  <input type=text name=v_cs size=30></td></tr>
 <tr><td>Characteristics :</td><td>
  <input type=text name=v_char size=30></td></tr>
 <tr><td>Interest's :</td><td>
  <input type=text name= v_inter size=30></td></tr>
 <tr><td>******** Skills :</td><td>
  <input type=text name=v_ls size=30></td></tr>
 <tr><td>Education :</td><td>
      <textarea name=v_edu cols =30 rows=6>write your Study Field here</textarea></td</tr>
   <tr><td>Experince :</td><td>
  <textarea name=v_exp cols =30 rows=6>write your Experiences here</textarea></td</tr>
             </table><br>
             <hr width=75%>
 <center>
 <font color=red><b><center>Join Demand</center></b></font><br>
 <textarea name=v_Join cols=40 rows=9 WRAP=physical></textarea><br><br>
<input type=submit value= Continue>
<input type=reset value=Erase> 
</center>  
 </form>
أما في ASP.net فاصبحت أكوادك في ملف بامتداد *.cs في حين اصبح التصميم في ملف منعزل بامتداد *.aspx :



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

محتويات مشروع ال ASP.net :

لو قمت بتصفح ال Website Directory الموجود على يمين المتصفح ، ستجد انه يحتوي اضافة لملفات مشروعك على المجلدات التالية - حتى لو لم تكن موجودة فهذه الاسماء القياسية لكتابتها - :

App_Browsers : يحتوي على الملفات التي تقتنص نوع المتصفح وتتعامل مع كل متصفح بناء على امكانياته .
App_Code : يحتوي على ملفات الاكواد والفئات Classes التي تخص صفحات الويب .
App_Data : يحتوي على ملفات قواعد البيانات .
App_GlobalResources : تحتوي على ملفات المصادر *.resx .
App_Themes : يحتوي على الملفات التي تعني بالمظهر والستايلات الخاصة بالمشروع .
App_WebReferences : في حالة وجود بروكسي Proxy اوي اي نوع من ال Web Service يستخدمها تطبيقك يتم وضعها هنا .
Bin : يحتوي على الملفات الجاهزة مثل ملفات ال *.dll والتي يتم استخدامها في برنامجك .

Compilation Cycle - دورة الترجمة :

في حالة كون الملف Single File ، يتم ترجمة الملف بكامل محتوياته إلى فئة Class مشتقة من System.Web.UI.Page باسم نفس الصفحة اضافة ل _aspx .



أما في حالة استخدامك لل Mode الخاص بعمل Code Behind ، فسيتم عمل نفس الخطوات ولكن بدمج ثلاث ملفات سوية ، الملف المسمى الذي يحتوي على ال InitializeComponent() يتم عمل Compile له ، ليتم لاحقاً اشتقاق الملف المتكون من CS + ASPX منه وليس من System.Web.UI.Page مباشرة .



*** الصور منقولة ...

محتويات System.Web.UI.Page :

تحتوي هذه الفئة على مجموعة من الخصائص والفئات التي ستفيدك في عملك ، منها :

Application : التعامل مع متغيرات التطبيق وما يختص بالموقع .
Cache : للتعامل مع الكاش الخاص بهذا الموقع .
IsPostBack : لمعرفة هل الصفحة يتم عمل Load لها من جديد أم انه يتم عمل Load لها بناء على عملية Submit حدثت من الصفحة .
MasterPageFile : تحديد الصفحة الماستر ، سنتعرف عليها لاحقاً .
Request : ال Http Rquest ، سنتعرف عليها في الدرس التالي .
Response : ال Http Response ، سنتعرف عليها في الدرس التالي .
Server : الوصول إلى الدوال الخاصة بالتعامل مع السيرفر ضمن HttpServerUtility .
Session : التعامل مع ال Session ، تستخدم لتخزين بعض القيم وسنتعرف عليها لاحقاً .
Theme : لتحديد الثيم - لا اعرف ترجمة له - الخاص بهذه الصفحة .

التعامل مع Request .

عملية ال Request هي عملية ارسال بيانات إلى السيرفر لتنفيذ مهمة ما عليها ، عملية ارسال البيانات يطلع عليها اسم Request .
مثال : بعد ادخال البيانات الشخصية تقوم بالضغط على زر ( ارسال ) هذا الزر يقوم بمهمة Request .

في العادة ، يتم تعريف ال Action وهي الصفحة التي يتم ارسال البيانات إليها ، كما يتم تحديد اسلوب الارسال Get أو Post التي شرحناها سابقاً وذلك في تعريف الفورم بالشكل التالي مثلاً :
كود بلغة HTML:
<form name="form1" id="form1"
كود PHP:
[size=3]action="Process.asp" method "GET">[/size]
[
size=3]...[/size]
[
size=3]</form>[/size
في .net نفس النظام ايضاً ، ولكن يتم تعريف الفورم بطريقة مختلفة قليلاً :
كود PHP:
<form id="form1" runat="server"
هذا يعني افتراضياً ان الصفحة التي سيعود فيها هي نفس الصفحة كما ان طريقة الارسال الافتراضية هي POST .
غير ان ASP.net لا تتيح لك الوصول مباشرة إلى Http Rquest ، ولكنها تمنحك هذه الخاصية ضمن System.Web.UI.Page.Request والتي تجد فيها الدوال والخصائص التالية :

ApplicationPath : مسار الموقع على السيرفر .
Browser : نوع متصفح المستخدم ، وهي فئة تحتوي على عدد كبير من المعلومات .
******s : معرفة ملفات ال****ز التي تم ارسالها من قبل المستخدم .
HttpMethod : نوعية الارسال Set او Get .
Form : محتويات الفورم الذي تم ارساله للسيرفر في حالة كون الارسال Post .
QueryString : محتويات الفورم الذي تم ارساله للسيرفر في حالة كون الارسال Get ، حيث يقوم بقراءة محتويات ال URL مباشرة حتى لو لم تكن من ضمن محتويات الفورم .
IsSecureConnection : لمعرفة هل يتم تطبيق اتصال Http آمن ام لا .
RawUrl : معرفة ال URL بدون اي اضافات .
ServerVariables : الوصول والتعامل مع مجموعة متغيرات السيرفر .
UserHostAddress : معرفة IP العميل .
UserHostName : معرفة اسم المستضيف للعميل .
MapPath() : دالة تقوم بتحويل المسار المطلوب إلى مسار حقيقي على السيرفر .
SaveAs() : حفظ محتويات ال http على ملف على السيرفر .

وسنستعرض لبعض الامثلة عن استخدام Request .

قراءة بيانات التي تم ارسالها في Form :

لو كنت تستخدم اسلوب Post :
كود PHP:
firstName Request.Form("txtFirstName"
ولو كنت تستخدم اسلوب GET :
كود PHP:
firstName Request.QueryString ["txtFirstName"
فقط لا تنس اضافة ; لتعرف نفسك كونك مبرمج C# .

وبرغم انك تستطيع قراءتها مباشرة باستخدام ال ID كما شرحنا في أول الدروس ، إلا انك ستحتاج لهذه الطريقة في عمليات أخرى اضافية .

معرفة احصائيات المتصفح المرسل :
C#:
كود PHP:
string theInfo "";
string isAOL string.Format("Is AOL? {0} <br/>",Request.Browser.AOL);
string isActivex string.Format("Support ActiveX? {0} <br/>",Request.Browser.ActiveXControls);
string isBetastring.Format("Is Beta? {0} <br/>",Request.Browser.Beta);
string is**** = string.Format("Support **** Applets? {0} </br>",Request.Browser.****Applets);
string is******string.Format("Support ******s? {0} <br/>",Request.Browser.******s);
string isVB string.Format("Support VB******? {0} <br/>",Request.Browser.VB******); 
vb.net:
كود PHP:
Dim theInfo As String "" 
Dim isAOL As String String.Format("Is AOL? {0} <br/>"Request.Browser.AOL
Dim isActivex As String String.Format("Support ActiveX? {0} <br/>"Request.Browser.ActiveXControls
Dim isBeta As String String.Format("Is Beta? {0} <br/>"Request.Browser.Beta
Dim is**** As String String.Format("Support **** Applets? {0} </br>"Request.Browser.****Applets
Dim is******As String String.Format("Support ******s? {0} <br/>"Request.Browser.******s
Dim isVB As String String.Format("Support VB******? {0} <br/>"Request.Browser.VB******) 

التعامل مع Response :

العملية العكسية لعملية Request ، حيث تمثل عملية نقل البيانات من السيرفر إلى العميل مرة أخرى ، حيث تشكل الناتج الذي سيتم ارساله للمستخدم ، وتحتوي على الخصائص والدوال التالية :

ContentEncoding : نظام الترميز المستخدم في الناتج .
******s و Cache : كما في حالة ال Request ولكن في العملية العكسية .
IsClientConnected : للتأكد من استمرارية اتصال المستخدم حتى اللحظة .
Clear() : مسح كافة محتويات ال **** وال Headers .
End() : انهاء عمليات المعالجة وارسال ما تم انهاءه فقط .
Flush() : ارسال ما تم انجازه للعميل .
Redirect() : تحويل العميل إلى URL جديد .
Write() : كتابة على الصفحة .

مثال على الكتابة باستخدام Write :

C#:
كود PHP:
Response.Write("<u>This is ********** code</u>");
Response.Write("***************('hiiiii');</******>"); 
vb.net:
كود PHP:
Response.Write("<u>This is ********** code</u>"
Response.Write("***************('hiiiii');</******>"


توقيع : khaledbelal



(أَفَأَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا بَيَاتاً وَهُمْ نَآئِمُونَ {97} أَوَ أَمِنَ أَهْلُ الْقُرَى أَن يَأْتِيَهُمْ بَأْسُنَا ضُحًى وَهُمْ يَلْعَبُونَ {98}
أَفَأَمِنُواْ مَكْرَ اللّهِ فَلاَ يَأْمَنُ مَكْرَ اللّهِ إِلاَّ الْقَوْمُ الْخَاسِرُونَ {99}).
سورة الأعراف.

رد مع اقتباس
إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
الدرس الثالث والسبعون : مقدمة إلى تطوير المواقع - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 03-11-2010 06:37 PM
الدرس الثاني والسبعون : مقدمة إلى Mono - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 03-11-2010 06:31 PM
الدرس الواحد والسبعون : XML Commenting - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 03-11-2010 06:29 PM
الدرس الرابع والخمسون : Gdi+ - دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 03-04-2010 06:14 PM
الدرس الرابع عشر : this دورة .net 2008 khaledbelal دورة .NET 2008 من منتدى فيجوال بيسك للعرب 0 02-19-2010 07:58 PM

استضافة الحياة

الساعة الآن 02:18 AM.


Powered by vBulletin® v3.8.4, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. , TranZ By Almuhajir
النسخة الفضية
Ads Management Version 3.0.1 by Saeed Al-Atwi

SlamDesignzslamDesignzEdited by Riad Al-Ganah Team - جميع الحقوق محفوظة لشبكة رياض الجنة

Privacy Policy Valid XHTML 1.0 Transitional By SlamDesignz Valid CSS Transitional By SlamDesignz