![]() |
|
الدرس الرابع والسبعون - ASP.net - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138) +---- الموضوع : الدرس الرابع والسبعون - ASP.net (/showthread.php?tid=5672) |
الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 بسم الله الرحمن الرحيم . السلام عليكم ورحمة الله وبركاته . في درسنا السابق جربنا التعامل مع Visual Studio وعمل صفحات ويب غير تفاعليه ، في هذا الدرس سنجرب تجربتنا الأولى مع المواقع التفاعلية . تجربة ASP.net : قم بفتح الأدوات Standerd ، قم برسم مربع نص TextBox واداة عنوان Label وزر أمر Button ، في زر الأمر قم بكتابة الكود التالي : C#: كود : Label1.Text= TextBox1.Text;vb.net: كود : Label1.Text= TextBox1.Textوجرب ... في الواقع لقد قمت بعمل اول صفحة ASP.net لك . ماذا حدث فعلياً ؟ لو فتحت صفحة ال HTML ستجد أن لديك كود HTML عادي يحتوي على فورم ، في الواقع فإن ما تم هو حدوث Submit إلى السيرفر حيث قام بارسال بيانات الفورم كاملة إلى السيرفر ، وهناك على السيرفر تمت معالجة البيانات وتم اعادة الصفحة التي تحتوي على Label يحتوي على المحتوى Ahmed او اياً كان محتوى مربع النص قبل الارسال ، لو جربت مشاهدة الكود HTML الخاص بالصفحة الناتجة ستجد الجزء التالي من الكود : كود : [color=#000080]<p>[/color]كما ذكرنا ، تمت معالجة البيانات ، وتم اعادة الناتج إلى Label1 ، اما الاكواد وخلافه فهي في السيرفر فقط . انواع ارسال البيانات . في أي Form هناك طريقتين لارسال البيانات هي POST و GET ، في الطريقة الأولى وهي الافتراضية يتم ارسال بيانات ال Form مباشرة ، اما في GET فيتم ارسالها في عنوان المتصفح ، جرب تعديل الفورم الخاص بنا ليصبح بالشكل التالي : كود : [color=#ff8000]<form id=[COLOR=#0000ff]"form1"[/color] runat=[color=#0000ff]"server"[/color] method=[color=#0000ff]"get"[/color]>[/COLOR]قم بتجربة الموقع مرة أخرى ، لاحظ الصورة التالية : كما ترى ، يتم ارسال كافة محتويات الفورم في العنوان ، طبعاً معظم المتصفحات تضع حدوداً على طول الفورم أما في حالة POST فليست هناك اي قيود . لكل واحدة منهم طريقة قراءة فيما لو اردت قراءتها منفصلة بالكود ، وهو ما قد نتعرف عليه في مرات قادمة إن شاء الله تعالى . الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 Code Behind : من ضمن المميزات الجديدة التي ظهرت مع ASP.net عن ASP القديمة هي فصل الكود عن التصميم ، في صفحة ASP Classic قديمة كنت ترى هذا الكود مثلاً : <% كود : v_Id = request.querystring("id")أما في ASP.net فاصبحت أكوادك في ملف بامتداد *.cs في حين اصبح التصميم في ملف منعزل بامتداد *.aspx : وبرغم ذلك ما زلت قادراً على دمجهم في ملف واحد إن احببت ذلك وهي طريقة ما زال يفضلها الكثيرين ، وايضاً قد تحتاج في بعض الاحيان لتطعيم ملف ال aspx ببعض اكواد ال ASP خصوصاً في المشاريع المتشعبة . الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 محتويات مشروع ال ASP.net : لو قمت بتصفح ال Website Directory الموجود على يمين المتصفح ، ستجد انه يحتوي اضافة لملفات مشروعك على المجلدات التالية - حتى لو لم تكن موجودة فهذه الاسماء القياسية لكتابتها - : App_Browsers : يحتوي على الملفات التي تقتنص نوع المتصفح وتتعامل مع كل متصفح بناء على امكانياته . App_Code : يحتوي على ملفات الاكواد والفئات Classes التي تخص صفحات الويب . App_Data : يحتوي على ملفات قواعد البيانات . App_GlobalResources : تحتوي على ملفات المصادر *.resx . App_Themes : يحتوي على الملفات التي تعني بالمظهر والستايلات الخاصة بالمشروع . App_WebReferences : في حالة وجود بروكسي Proxy اوي اي نوع من ال Web Service يستخدمها تطبيقك يتم وضعها هنا . Bin : يحتوي على الملفات الجاهزة مثل ملفات ال *.dll والتي يتم استخدامها في برنامجك . الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 Compilation Cycle - دورة الترجمة : في حالة كون الملف Single File ، يتم ترجمة الملف بكامل محتوياته إلى فئة Class مشتقة من System.Web.UI.Page باسم نفس الصفحة اضافة ل _aspx . أما في حالة استخدامك لل Mode الخاص بعمل Code Behind ، فسيتم عمل نفس الخطوات ولكن بدمج ثلاث ملفات سوية ، الملف المسمى الذي يحتوي على ال InitializeComponent() يتم عمل Compile له ، ليتم لاحقاً اشتقاق الملف المتكون من CS + ASPX منه وليس من System.Web.UI.Page مباشرة . *** الصور منقولة ...
الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 محتويات System.Web.UI.Page : تحتوي هذه الفئة على مجموعة من الخصائص والفئات التي ستفيدك في عملك ، منها : Application : التعامل مع متغيرات التطبيق وما يختص بالموقع . Cache : للتعامل مع الكاش الخاص بهذا الموقع . IsPostBack : لمعرفة هل الصفحة يتم عمل Load لها من جديد أم انه يتم عمل Load لها بناء على عملية Submit حدثت من الصفحة . MasterPageFile : تحديد الصفحة الماستر ، سنتعرف عليها لاحقاً . Request : ال Http Rquest ، سنتعرف عليها في الدرس التالي . Response : ال Http Response ، سنتعرف عليها في الدرس التالي . Server : الوصول إلى الدوال الخاصة بالتعامل مع السيرفر ضمن HttpServerUtility . Session : التعامل مع ال Session ، تستخدم لتخزين بعض القيم وسنتعرف عليها لاحقاً . Theme : لتحديد الثيم - لا اعرف ترجمة له - الخاص بهذه الصفحة . الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 التعامل مع Request . عملية ال Request هي عملية ارسال بيانات إلى السيرفر لتنفيذ مهمة ما عليها ، عملية ارسال البيانات يطلع عليها اسم Request . مثال : بعد ادخال البيانات الشخصية تقوم بالضغط على زر ( ارسال ) هذا الزر يقوم بمهمة Request . في العادة ، يتم تعريف ال Action وهي الصفحة التي يتم ارسال البيانات إليها ، كما يتم تحديد اسلوب الارسال Get أو Post التي شرحناها سابقاً وذلك في تعريف الفورم بالشكل التالي مثلاً : كود : <form name="form1" id="form1"كود : [SIZE=3]action="Process.asp" method = "GET">[/SIZE]كود : [color=#ff8000]<form id=[COLOR=#0000ff]"form1"[/color] runat=[color=#0000ff]"server"[/color]>[/COLOR]هذا يعني افتراضياً ان الصفحة التي سيعود فيها هي نفس الصفحة كما ان طريقة الارسال الافتراضية هي POST . غير ان ASP.net لا تتيح لك الوصول مباشرة إلى Http Rquest ، ولكنها تمنحك هذه الخاصية ضمن System.Web.UI.Page.Request والتي تجد فيها الدوال والخصائص التالية : ApplicationPath : مسار الموقع على السيرفر . Browser : نوع متصفح المستخدم ، وهي فئة تحتوي على عدد كبير من المعلومات . Cookies : معرفة ملفات الكوكيز التي تم ارسالها من قبل المستخدم . HttpMethod : نوعية الارسال Set او Get . Form : محتويات الفورم الذي تم ارساله للسيرفر في حالة كون الارسال Post . QueryString : محتويات الفورم الذي تم ارساله للسيرفر في حالة كون الارسال Get ، حيث يقوم بقراءة محتويات ال URL مباشرة حتى لو لم تكن من ضمن محتويات الفورم . IsSecureConnection : لمعرفة هل يتم تطبيق اتصال Http آمن ام لا . RawUrl : معرفة ال URL بدون اي اضافات . ServerVariables : الوصول والتعامل مع مجموعة متغيرات السيرفر . UserHostAddress : معرفة IP العميل . UserHostName : معرفة اسم المستضيف للعميل . MapPath() : دالة تقوم بتحويل المسار المطلوب إلى مسار حقيقي على السيرفر . SaveAs() : حفظ محتويات ال http على ملف على السيرفر . وسنستعرض لبعض الامثلة عن استخدام Request . قراءة بيانات التي تم ارسالها في Form : لو كنت تستخدم اسلوب Post : كود : [SIZE=3]firstName = Request.Form("txtFirstName")[/SIZE]كود : [SIZE=3]firstName = Request.QueryString ["txtFirstName"][/SIZE]وبرغم انك تستطيع قراءتها مباشرة باستخدام ال ID كما شرحنا في أول الدروس ، إلا انك ستحتاج لهذه الطريقة في عمليات أخرى اضافية . معرفة احصائيات المتصفح المرسل : C#: كود : [SIZE=3]string theInfo = "";[/SIZE]كود : [SIZE=3]Dim theInfo As String = "" [/SIZE]الدرس الرابع والسبعون - ASP.net - RaggiTech - 14-10-12 التعامل مع Response : العملية العكسية لعملية Request ، حيث تمثل عملية نقل البيانات من السيرفر إلى العميل مرة أخرى ، حيث تشكل الناتج الذي سيتم ارساله للمستخدم ، وتحتوي على الخصائص والدوال التالية : ContentEncoding : نظام الترميز المستخدم في الناتج . Cookies و Cache : كما في حالة ال Request ولكن في العملية العكسية . IsClientConnected : للتأكد من استمرارية اتصال المستخدم حتى اللحظة . Clear() : مسح كافة محتويات ال Body وال Headers . End() : انهاء عمليات المعالجة وارسال ما تم انهاءه فقط . Flush() : ارسال ما تم انجازه للعميل . Redirect() : تحويل العميل إلى URL جديد . Write() : كتابة على الصفحة . مثال على الكتابة باستخدام Write : C#: كود : [SIZE=3]Response.Write("<u>This is javascript code</u>");vb.net: كود : [SIZE=3]Response.Write("<u>This is javascript code</u>") |