الان جواب لكل الاسئلة وبيان بقوة asp & asp.net
النسخة المحدثة من صفحات ASP والتي تعرف ASP.NET تغيرت بشكل جذري كبير، فبعد ان كان مجموعة من اوامر Script بسيطة اصبحت الان تسمى بكل ثقة لغة برمجة متكاملة لتطوير صفحات تعمل في خوادم Servers لتعطي صفحات ويب ديناميكية DHTML. المقال التالي سيكون مدخلك المبدئي الى تطوير صفحات ASP.NET.
ي السنوات القليله الماضيه , شهدت تطبيقات الويب Web Applications تطورا فعالا وانتشارات كبيرا وصل الى حد تحول المطورين وتخصصهم في تطوير هذا النوع من التطبيقات، وجعلها مصدرا رئيسيا لدخلهم. وقد اثبتت صفحات ASP كفائتها العالية في هذا المجال خاصة ان كان يدعهما خادم قاعدة بيانات قوي كـ Microsoft SQL Server، فموقع microsoft.com مبني بالكامل على تقنية ASP مدعومة بخوادم متعددة الاغراض كـ Microsoft SQL Server، Microsoft Exchange Server و Microsoft Internet Information Server، واثبت الموقع استقراريته الكاملة رغم كثرة عدد الزوار والتي تصل الى اكثر من 5.5 ملايين زائر يوميا كما يزعم هذا الرابط من احد روابط موقع الشركة.
كما ان دعم ASP لمكونات COM احد العوامل الرئيسة التي انجحت هذه التقنية، فكل ما هو مطلوب من مطور صفحات ASP استخدام الدالة Createobject ليتجاوز حدود اللغة حتى يتمكنك من تطبيق مبادئ واساليب برمجية احترافية كالتطبيقات متعددة الطبقات nTied Applications وانجاز حلم Windows DNA، بالاضافة الى وجود عشرات الملحقات -والتي تعرف بالـ Third Partied- من مختلف الشركات التي توفر عشرات الحلول لمطوري صفحات ASP، كمكونات لارسال البريد الاكتروني، الاتصالات عن بعد باستخدم الهاتف الجوال، ادوات لمعالجة الصور والرسوم وغيرها من الخدمات التي لا نهاية لها.
بالاضافة الى ان صفحات ASP كانت تعطي فرصة كبيرة لمطوري صفحات DHTML (والتي تعمل على نفس المتصفح) لتطبيق اكوادهم باختلاف لغات البرمجة، كـ vbscripts او JScripts. ورغم كل هذه المزايا السابقة، الا ان لغة البرمجة المستخدمة في تطوير صفحات ASP ما زالت مبسطة جدا -فهي نسخة من vbscript- وهذا ادى الى دخول المطورين في متاهات وتعقيدات كبيرة جدا ولا نهاية لها خاصة عند التحدث عن المشاريع الكبيرة، فعملية التنقيح Debugging صعبة جدا، وعملية التعديل Modification اشبه بعملية بحث عن مسمار جحا في المحيط الهادي!
اما مع ASP.NET فالوضع مختلف تماما، فيمكنني ان الخص لك وصفها بانها لغة برمجة حقيقية ASP.NET is a true programming languages، فاصبحت امكانياتها كامكانيات اي لغة برمجة تعمل تحت اطار عمل NET Framework.
لن أطيل عليك الوصف والحديث , ودعنا نبدأ في تلخيص الثمرات التي يمكن للمطور أن يجنيها من تعامله مع ASP.NET :
ASP.NET هي جزء من اطار عمل .NET :
.NET Framework يحوي على أكثر من 3400 فئة -Class- يمكننا استخدامها في تطبيقات الويب الخاصة بنا من أي نوع كانت وذلك عن طريق ASP.NET، اما ASP الكلاسيكية فكانت تعتمد على خمس كائنات مبدئية هي Response , Request, Session , Application و Server بالاضافة الى امكانية تطوير كائنات خاصة بك والاتصال بها عن طريق COM. كما ان ASP.NET لغة برمجة كائنية التوجه OOP ! تمكنك من تعريف الفئات Classes وتطبيق السمات الثلاث الرئيسية لـ OOP وهي التغليف Encapsulation، تعدد الواجهات Polymorphism والوراثة Inheritance. وذلك لان ASP.NET متوافقة تماما مع معايير CLR والخاصة بلغات البرمجة التي تعمل تحت اطار عمل NET Framework.
XML Web Services
ASP.Net داعم حقيقي لخدمات XML Web Services والتي تمكن تطبيقات الويب من تبادل البيانات باستخدام بعض البروتوكولات التقليدية كـالـ HTTP. دون الحاجة الى تطوير المكونات الموزعة DCOM عن طريق ما يعرف بـ SOAP والتي لا تدعمها الا نظم Windows فقط، الان يمكنك تطوير خدمات XML Web Services تعمل في مختلف انظمة التشغيل والتي تدعم XML وبروتوكول HTTP التقليدي فقط.
Application Events
تمكنك ASP.net من كتابة أكواد مراحل التطبيق -Application Level-و مقابض الأحداث -Event Handlers- داخل الملف الاختياري global.asax الذي يعرف بملف تطبيق ASP.net, يجب أن يكون هذا الملف في المجلد الجذري الذي ستنشأه على الـ WebServer لكي تضع عليه موقعك. Global.asax في حال تواجده يترجم ويتحول الى ملف ذو امتداد dll , لذا يرفض اي طلب لعرض هذه الصفحه على المتصفح. الذي قد تجنيه من هذه الميزة هو انك الان تستطيع تعريف احداث Events خاصة بك في داخل صفحات ASP، دون الحاجة لتحصر نفسك في الاحداث الثابتة التي كانت توفرها لك الكائنات الخمس السابقة، ودون الحاجة الى تعلم لغة برمجة اخرى لتطوير احداث واستخدامها عن طريق COM.
الترجمة Compiling
Compiling أو الترجمه , في الحقيقه جميع صفحات ASP.net بالاضافة الى الـServer-Scripts مترجمة , مما يسمح لنا أداء قوي عالي الكفائة Optimized , الربط المبكر Early Binding للكائنات, وتحسين الاداء وذلك بفضل ان اكواد صفحات ASP.NET يتم ترجمتها الى Native-Code عن طريق Runtime-Further.
ملاحظه:
جميع صفحات ASP.net بالاضافة الى الـ XML Web Services و الادوات تترجم الى ملفات Dynamic-Link Libaray (DLL).
لاحظ انك لن تحتاج لتسجيل هذه الملفات في المره التي تترجم فيها الى ملفات dll .
التكوينات Configuration
من الاشياء الجديده التي طرأت على ASP.net هي الـ Configuration Files , وهي ملفات تحفظ ضبط خصائص تطبيقات الويب المصنوعه بـ ASP.net , ومن المميز بها أن هذه الملفات معتمدة اعتمادا كليا على الـ XML، وبما أنها كذلك فمن السهل علينا انشاء ملفات الـ Configuration هذه بأي محرر نصوص كالمفكرة Notepad.
لكل تطبيق ويب بالـASP.net ملف Configuration خاص به , وبإمكانك تعديل هذا الملف على ما يناسب احتيجاتك.
Code-Behind
هذه الميزة تمناها معظم مبرمجي الـ Classic ASP , تمكنك هذه الميزه من فصل شيفرات ASP.net عن شيفرات الـ HTML , يمكنك انشاء هذا النوع من الصفحات عن طريق استخدام الـ Visual Studio.NET، فعند اضافتك لصفحة ASP.net -أو ما يسمى بالـ WebForm- سيقوم VS.net بإنشاء فئة class تحمل نفس اسم صفحتك ذات الامتداد aspx.vb أو aspx.cs -تعتمد على اللغه المستخدمه - الصفحه الاساسيه التي كنت اضفتها والتي تحمل امتداد aspx ستأخذ جميع أكواد asp.net من الفئه المنشأه عن طريق مبدأ الوراثه .أسمع البعض يقول " خاصيه جميله .. ولكن ما الفائده ؟ " الفائده تكمن في سرعة معالجة الاخطاء وسهولة الاضافة والتعديل وغيرها .
اليك مثالا بسيطا :
كود:
<!--WebForm1.aspx-->
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebServiceClient.WebForm1"%>
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft FrontPage 5.0" name="GENERATOR">
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body bgColor="#ffffff" MS_POSITIONING="GridLayout">
</body>
</HTML>
'WebForm1.aspx.vb
Public Class WebForm1
Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Response.Write("مرحبا بكم في سوالف سوفت")
End Sub
End Class
خاتمه
عرضت عليك بعضا من ميزات ASP.net التي تجذب أي المبرمج اليها, تذكر ان ASP.NET لغة برمجة متوافقة مع اطار عمل NET Framework. اي ان امكانياتها تصل الى امكانيات لغات NET. الاخرى، بعد الترجمة اكواد، يتم تضمينها في ملفات DLL خاصة بها لان الاكواد اصبحت تترجم الى Native Code، وبذلك تضمن ان اكوادك لن يتمكن احد من فتح ملفاتها النصية كما كان في السابق.
__________________
للمراسله :
هذه العضوية يتخدمها شخصين
http://www.swalif.net/softs/sendmessage.php?do=mailmember&u=7721