العودة   منتدى رياض الجنة - 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

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

الساعة الآن 01:00 PM.


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