برمجة تطبيقات الويب , بإستخدام إنتراويب
بداية :
صفحات الويب الديناميكية :
عندما ندخل إلى موقع ويب (web site) ونقوم باستعراضة , غالبا ما تكون هذة المواقع هي عبارة عن صفحات ستاتيكية مكودة بتنسيق HTML , يمكن صنع هذا النوع الستاتيكي ببساطة , والمقصود بكلمة ستاتيكي ,أي أن هذة الصفحات هي صفحات ميتة غير تفاعلية ..
مثلا صفحة تحتوي على مجموعة من النصوص والصور ويوجد بها بالتأكيد إرتباطات تشعبية متعددة . ببساطة هذة الصفحات ميتة لإنها لا تتفاعل مع المستخدم , فهو لا يحصل على النتائج على أساس المعلومات التي أدخلها , بل لا يدخل لها أي معلومات أصلا , ويكون الهدف منها هو الإستعراض فقط , حيث يحصل جميع الزائرين للموقع على نفس الصفحة ونفس المعلومات , .
بالمقارنة مع ذلك .. فإنة يوجد بالطبع الجزء الآخر من المعادلة والمسمى صفحات الويب الديناميكية ((تفاعلية)) , وهو ما يطلق علية تطبيقات الإنترنت (Web Application) .
فإذا افترضنا مثلا حالة بنك الكتروني . .... فإنك لاتستطيع الإكتفاء فقط بعرض المعلومات لإنها ليست معلومات مشتركة ولإنها بحاجة إلى معالجة بحسب حالة كل زبون على حدة . , حيث يوجد مشتركين لكل مشترك حساب خاص , وتوجد قاعدة بيانات تقوم بإدخال بيانات حسابك إليها وطلب المعلومات منها , مثلا تقوم بإدخال إسمك ورقم حسابك وتحويل الرصيد المالي الذي تريدة, ويقوم تطبيق الإنترنت بالدخول إلى قاعدة البيانات وطلب سجلك منها وحساب رصيدك الجديد وتحويلة وما إلى ذلك من عمليات مختلفة تطلب حوار مع المستخدم ,حيث يحصل المستخدم على نتائج تناسب البيانات التي أدخلها . وهذا ما يسمى التفاعلية مع المستخدم ..
ومن أمثلتها أيضا مواقع المنتديات على الإنترنت , حيث تطلب وجود قواعد بيانات للمستخدمين والرسائل وحسابات مختلفة تختلف على أساسها الإستجابة لكل مستخدم ,.
وكلا النوعين السابقين يتم الدخول إلية من مستعرض الإنترنت WebBrowser .
الخلاصة : هناك فرق بين موقع الإنترنت الستاتيكي , وبين تطبيق الإنترنت (الموقع الديناميكي) , حيث يختص الأول باستعراض المعلومات كما هي , أما الثاني يتفاعل مع المستخدم ويستجيب له , وهو مشابة لتطبيقات سطح المكتب العادية المستخدمة مع فارق وحيد أنة يتألف من جزأين دائما .
جزء مخدم : هو التطبيق الذي نقوم ببناءة للتزويد بكود html .
جزء زبون : وهو دائما مستعرض الإنترنت (مثلا enternet explorer) ,
(على خلاف تطبيقات مزود-زبون التي تحتاج إلى جزء زبون خاص مختلف عن مستعرض الإنترنت )...
وبما أن الطرف الثاني هو دائما مستعرض الإنترنت , فلن نحتاج سوى بناء برنامج المخدم لتطبيقنا , .
بناء مخدمات الويب :
هناك عدة طرق لتوليد صفحات إنترنت ديناميكية ,
وبشكل أساسي تعتمد كل طريقة على البروتوكول المستخدم ..
البروتوكولين الأكثر شهرة من منظوري لبناء مخدمات الويب , هما
1- CGI : (the common gateway interface)
2- و مخدمات ويب APIs .
ASP (Active server pages) أيضا هي تقنية أخرى من تقنيات ميكروسوفت المشهورة وسيتم شرحها لوحدها لإن دلفي تتضمن دعم خاص لهـا .
_________
ملاحظــة : تذكر أن تقنية WebBroker في دلفي ألغت الفارق بين CGI , Win CGI , ISAPI بالتزويد ببيئة عمل مشتركة , . بهذة الطريقة أصبح بإمكانك بسهولة تحويل تطبيق CGI إلى Win CGI , وترقيتة إلى نموذج ISAPI , أو دمجة إلى Apache .. مما أعطى مرونة كبيرة جدا للمبرمجين .
--------------------------------------------------------------------------------
بناء تطبيق إنترنت باستخدام
INTRA WEB
مقدمة :
(إيحاء من Mastring Delphi 7 )
منذ أيام دلفي 2 كان Chad Z يبني بيئة لتبسيط تطوير تطبيقات الويب بدلفي , وقد أستحوذت علية فكرة جعل برمجة الويب أبسط مايكون , أي بشكل عام من النوع ويزويغ WYSIWYG (وهي إختصار لـ What you see is what you get , أي ماتراة في زمن التصميم هو ماسوف تراه في زمن التنفيذ ) , وبالتالي أن تكون برمجة الويب مرئية ومفهومة بإستخدام أدوات مرئية بحيث نقلل من تصميم الأشكال بإستخدام الشفرة , ونعمل كأننا نصمم نموذج Form, نظامي بإستخدام دلفي , بدلا من كتابة عشرات سطور الHTML ونحن لانعرف بعد كيف ستبدو الواجهة .
بعض المبرمجين مهرة بالHTML والJavaScript وتقنيات الإنترنت المختلفة , والبعض الآخر يريد فقط بناء تطبيقات ويب بواسطة دلفي بنفس الطريقة التي يستخدمها لبناء تطبيقات VCL أو CLx .
IntraWeb : مصممة من أجل الفئة الثانية من المطورين , ولكن هذا لايعني أنها ليست أداة فائقة القوة . أنتراويب إذن تستخدم لبناء تطبيقات ويب وليس مواقع ويب . لن نستطيع تغطية جانب جيد من إنتراويب في هذة المقالة المتواضعة , ولكن آمل أن تتابع بحث عن هذة الأداة الرائعة وميزاتها وتحاول تجريبها إذا كنت مهتما ببناء هذا النوع من التطبيقات .
إن تطوير تطبيقات الويب باستخدام Intra web على دلفي , مشابة تماما لبرمجة أشكل ويب Web-Forms في ASP.NET (( مع العلم أن Intra web أتت قبل Asp.net (في VS.net))) ...
إسم الشركة التي تنتجها AtoZed softwares (www.atozedsoftware.com) , والنسخة المرفقة مع دلفي 7 تعتبر نسخة قديمة , يمكنك تنزيل أحدث إصدارات Intraweb من الموقع , .
ومن المهم القول أن نسخ من Intraweb متاحة من أجل لينكس (Kylix) ومن أجل .Net وهذا مايجعلها خيارا قويا , فلن تفقد الدعم المستقبلي لإدواتك بهذة السهولة .
كما أن نسخ منها متاحة من أجل C++Builder و Javascript .
بإيجاز أقول لك عندما تتعامل مع intraweb فكر أنك تتعامل مع تطبيق دلفي قياسي , لست مضطرا للتعامل مع صفحات HTML أو التفكير بإنك تبني موقع ويب . كل ماعليك فهمة أن إنتراويب تخفي عنك ذلك , وتولدة تلقائيا , فكر كأنك تبني برنلمج دلفي عادي , مكونات وخصائص , زمن تصميم , قواعد بيانات وكل شيء ... أهلا بك في المنتج الذي قلدتة مايكروسوفت وأنتجت نسخة شبيهه فية تسمى ASP.NET .
لإنشاء تطبيق جديد في إنتراويب
1- من القائمة إختر File > New > Other , ثم إنتقل إلى الصفحة IntraWeb .
وطبعا هنا بإمكانك إختيار نوع تطبيقك الناتج :
*- Appache 2 DSO Application
*- Appache DSO Application .
ISAPI Application . *-
Stand Alone CGI Application .
(( أنصح بالإضطلاع على الأنواع السابقة و الفروق بينها من أي مرجع , ))
طبعا سيكون الناتج في كل الحالات هو ملف DLL إلا في حالة Stand Alone حيث سيكون البروتوكول هو CGI . وسنحصل على ملف تنفيذي مضمن بمخدم ويب بسيط , وطبعا يمكن إعتبار هذا النوع مثاليا لتجربة تطبيقنا , ومن ثم يمكن تغيير التطبيق لإي نوع من الأنواع السابقة ببساطة شديدة , حيث لا فرق بالبرمجة بينها ..
ملاحظة : لكي تقوم بتجربة الأنواع السابقة غير الStand Alone يجب أن تقوم في البداية بإعداد مخدم الويب (وليكن مثلا IIS) على الجهاز , ونسخ الDLL إلى مكتباتة ومن ثم إستدعائة من مستعرض الإنترنت .
2- إذن نختار النوع Stand Alone Application :
3- سيطلب منا تحديد موقع لنحفظ فية ملفنا , أختر أي موقع تريدة ..
4- الآن أصبحنا مستعدين لبدء العمل مع المشروع , وستجد الآن في بيئة دلفي المشروع الجديد وفية فورم رئيسي جاهز بالإسم formMain وأيضا يحوي IWServerController والتي نقوم من خلالها بضبط خيارات الت الويب المختلفة ,
لا يحق لك أن تدرج عناصر ومكونات الدلفي النظامية المرئية كالأزرار والمكونات الأخرى على فورم من هذا النوع , (تستطيع إدراج عناصر غير مرئية مثل Tables Datasources .... الخ ..). إنما كل ما تحتاجة موجود في صفحات Intra Web في شريط الأدوات ,, إنتقل مثلا على الصفحة IW Standard , وهناك إختر العناصر التي تريد إدراجها على صفحتك , مثلا نختار IWLabel , وندرجة على الفورم وبالخط العريض ليكن النص INTRA WEB وبلون أحمر , ثم ندرج خط فاصل باستخدام IWHrule .
**** بشكل مشابة لتصميم الفورم العادي , سوف تظهر صفحة الويب بالنهاية مطابقة للتصميم ..
*** لتجريب البرنامج الآن . إختر Run , سيظهر لك نافذة المخدم
وهو البرنامج الذي يتيحة CGI لتجريب مشروعك , لإن تطبيقات الويب تحتاج إلى مخدم ويب , ولكن يعتبر خيار Stand Alone CGI الذي اخترناة مثاليا لتجريب تطبيقاتنا بسرعة وكفائه .
لاحظ شريط أدوات المخدم , ومن القائمة Run إختر Execute أو إضغط (F9) مرة أخرى . وطبعا سيقوم المخدم بتحميل مستعرض الإنترنت وإظهار الصفحة التي صممناها علية .
مبروك ,. لقد كانت تلك تجربتك الأولى مع Intraweb ...... ليليليليليليليليييييه
بإمكاننا الآن التوسع في المثال قليلا , ولنقوم بإعداد تطبيق قاعدة بيانات بسيط .
من الصفحة BDE في شريط الأدوات ضع العنصر Table والعنصر Session
ومن الصفحة Data Access ضع Data source
ومن الصفحة IWControl ضع IWClientSideDatasetDBLink
قم بإعدادت قاعدة البيانات العادية تماما . مثلا
Session1 :
Session name = 's1'
Active=true
Table1 :
DataBase Name = DBDemos
Session Name = S1
Table Name = animals.dbf
Active = true
Data source1 :
Data set = Table1
IWClientSideDatasetDBLink1 :
Datasource = datasource1
***
الآن نقوم بوضع عناصر لإستعراض بيانات قاعدة البيانات :
مثلا من الصفحة Iw Data إختر IWDBGrid و IWDBImage و IWDBNavigator
واضبط خصائص هذة العناصر كالمعتاد , وقم بتوزيعها بشكل أنيق على الصفحـة
ثم نفذ البرنامج وتأكد من الخرج ,,.
بإمكانك الآن المتابعة من هنا لوحدك , بكل الوظائف الأخرى المعروفة . مثل البحث في قاعدة البيانات والإضافة والحذف ... الخ .. كما كنت تقوم بة في العادة دون إختلاف ..
*******
******
******
بإمكانك مراجعة الأمثلة المرفقة مع دلفي في المسار
Demos\ IntraWeb
*****
أتمنى أن تكون هذة المقالة البسيطة جدا جدا , بداية مقبولة في عالم Web-Development
لتنزيل المثال , يرجى زيارة الرابط :
http://www.orwah.net/Delphi/Articles/intra_Web.htm
بداية :
صفحات الويب الديناميكية :
عندما ندخل إلى موقع ويب (web site) ونقوم باستعراضة , غالبا ما تكون هذة المواقع هي عبارة عن صفحات ستاتيكية مكودة بتنسيق HTML , يمكن صنع هذا النوع الستاتيكي ببساطة , والمقصود بكلمة ستاتيكي ,أي أن هذة الصفحات هي صفحات ميتة غير تفاعلية ..
مثلا صفحة تحتوي على مجموعة من النصوص والصور ويوجد بها بالتأكيد إرتباطات تشعبية متعددة . ببساطة هذة الصفحات ميتة لإنها لا تتفاعل مع المستخدم , فهو لا يحصل على النتائج على أساس المعلومات التي أدخلها , بل لا يدخل لها أي معلومات أصلا , ويكون الهدف منها هو الإستعراض فقط , حيث يحصل جميع الزائرين للموقع على نفس الصفحة ونفس المعلومات , .
بالمقارنة مع ذلك .. فإنة يوجد بالطبع الجزء الآخر من المعادلة والمسمى صفحات الويب الديناميكية ((تفاعلية)) , وهو ما يطلق علية تطبيقات الإنترنت (Web Application) .
فإذا افترضنا مثلا حالة بنك الكتروني . .... فإنك لاتستطيع الإكتفاء فقط بعرض المعلومات لإنها ليست معلومات مشتركة ولإنها بحاجة إلى معالجة بحسب حالة كل زبون على حدة . , حيث يوجد مشتركين لكل مشترك حساب خاص , وتوجد قاعدة بيانات تقوم بإدخال بيانات حسابك إليها وطلب المعلومات منها , مثلا تقوم بإدخال إسمك ورقم حسابك وتحويل الرصيد المالي الذي تريدة, ويقوم تطبيق الإنترنت بالدخول إلى قاعدة البيانات وطلب سجلك منها وحساب رصيدك الجديد وتحويلة وما إلى ذلك من عمليات مختلفة تطلب حوار مع المستخدم ,حيث يحصل المستخدم على نتائج تناسب البيانات التي أدخلها . وهذا ما يسمى التفاعلية مع المستخدم ..
ومن أمثلتها أيضا مواقع المنتديات على الإنترنت , حيث تطلب وجود قواعد بيانات للمستخدمين والرسائل وحسابات مختلفة تختلف على أساسها الإستجابة لكل مستخدم ,.
وكلا النوعين السابقين يتم الدخول إلية من مستعرض الإنترنت WebBrowser .
الخلاصة : هناك فرق بين موقع الإنترنت الستاتيكي , وبين تطبيق الإنترنت (الموقع الديناميكي) , حيث يختص الأول باستعراض المعلومات كما هي , أما الثاني يتفاعل مع المستخدم ويستجيب له , وهو مشابة لتطبيقات سطح المكتب العادية المستخدمة مع فارق وحيد أنة يتألف من جزأين دائما .
جزء مخدم : هو التطبيق الذي نقوم ببناءة للتزويد بكود html .
جزء زبون : وهو دائما مستعرض الإنترنت (مثلا enternet explorer) ,
(على خلاف تطبيقات مزود-زبون التي تحتاج إلى جزء زبون خاص مختلف عن مستعرض الإنترنت )...
وبما أن الطرف الثاني هو دائما مستعرض الإنترنت , فلن نحتاج سوى بناء برنامج المخدم لتطبيقنا , .
بناء مخدمات الويب :
هناك عدة طرق لتوليد صفحات إنترنت ديناميكية ,
وبشكل أساسي تعتمد كل طريقة على البروتوكول المستخدم ..
البروتوكولين الأكثر شهرة من منظوري لبناء مخدمات الويب , هما
1- CGI : (the common gateway interface)
2- و مخدمات ويب APIs .
ASP (Active server pages) أيضا هي تقنية أخرى من تقنيات ميكروسوفت المشهورة وسيتم شرحها لوحدها لإن دلفي تتضمن دعم خاص لهـا .
_________
ملاحظــة : تذكر أن تقنية WebBroker في دلفي ألغت الفارق بين CGI , Win CGI , ISAPI بالتزويد ببيئة عمل مشتركة , . بهذة الطريقة أصبح بإمكانك بسهولة تحويل تطبيق CGI إلى Win CGI , وترقيتة إلى نموذج ISAPI , أو دمجة إلى Apache .. مما أعطى مرونة كبيرة جدا للمبرمجين .
--------------------------------------------------------------------------------
بناء تطبيق إنترنت باستخدام
INTRA WEB
مقدمة :
(إيحاء من Mastring Delphi 7 )
منذ أيام دلفي 2 كان Chad Z يبني بيئة لتبسيط تطوير تطبيقات الويب بدلفي , وقد أستحوذت علية فكرة جعل برمجة الويب أبسط مايكون , أي بشكل عام من النوع ويزويغ WYSIWYG (وهي إختصار لـ What you see is what you get , أي ماتراة في زمن التصميم هو ماسوف تراه في زمن التنفيذ ) , وبالتالي أن تكون برمجة الويب مرئية ومفهومة بإستخدام أدوات مرئية بحيث نقلل من تصميم الأشكال بإستخدام الشفرة , ونعمل كأننا نصمم نموذج Form, نظامي بإستخدام دلفي , بدلا من كتابة عشرات سطور الHTML ونحن لانعرف بعد كيف ستبدو الواجهة .
بعض المبرمجين مهرة بالHTML والJavaScript وتقنيات الإنترنت المختلفة , والبعض الآخر يريد فقط بناء تطبيقات ويب بواسطة دلفي بنفس الطريقة التي يستخدمها لبناء تطبيقات VCL أو CLx .
IntraWeb : مصممة من أجل الفئة الثانية من المطورين , ولكن هذا لايعني أنها ليست أداة فائقة القوة . أنتراويب إذن تستخدم لبناء تطبيقات ويب وليس مواقع ويب . لن نستطيع تغطية جانب جيد من إنتراويب في هذة المقالة المتواضعة , ولكن آمل أن تتابع بحث عن هذة الأداة الرائعة وميزاتها وتحاول تجريبها إذا كنت مهتما ببناء هذا النوع من التطبيقات .
إن تطوير تطبيقات الويب باستخدام Intra web على دلفي , مشابة تماما لبرمجة أشكل ويب Web-Forms في ASP.NET (( مع العلم أن Intra web أتت قبل Asp.net (في VS.net))) ...
إسم الشركة التي تنتجها AtoZed softwares (www.atozedsoftware.com) , والنسخة المرفقة مع دلفي 7 تعتبر نسخة قديمة , يمكنك تنزيل أحدث إصدارات Intraweb من الموقع , .
ومن المهم القول أن نسخ من Intraweb متاحة من أجل لينكس (Kylix) ومن أجل .Net وهذا مايجعلها خيارا قويا , فلن تفقد الدعم المستقبلي لإدواتك بهذة السهولة .
كما أن نسخ منها متاحة من أجل C++Builder و Javascript .
بإيجاز أقول لك عندما تتعامل مع intraweb فكر أنك تتعامل مع تطبيق دلفي قياسي , لست مضطرا للتعامل مع صفحات HTML أو التفكير بإنك تبني موقع ويب . كل ماعليك فهمة أن إنتراويب تخفي عنك ذلك , وتولدة تلقائيا , فكر كأنك تبني برنلمج دلفي عادي , مكونات وخصائص , زمن تصميم , قواعد بيانات وكل شيء ... أهلا بك في المنتج الذي قلدتة مايكروسوفت وأنتجت نسخة شبيهه فية تسمى ASP.NET .
لإنشاء تطبيق جديد في إنتراويب
1- من القائمة إختر File > New > Other , ثم إنتقل إلى الصفحة IntraWeb .
وطبعا هنا بإمكانك إختيار نوع تطبيقك الناتج :
*- Appache 2 DSO Application
*- Appache DSO Application .
ISAPI Application . *-
Stand Alone CGI Application .
(( أنصح بالإضطلاع على الأنواع السابقة و الفروق بينها من أي مرجع , ))
طبعا سيكون الناتج في كل الحالات هو ملف DLL إلا في حالة Stand Alone حيث سيكون البروتوكول هو CGI . وسنحصل على ملف تنفيذي مضمن بمخدم ويب بسيط , وطبعا يمكن إعتبار هذا النوع مثاليا لتجربة تطبيقنا , ومن ثم يمكن تغيير التطبيق لإي نوع من الأنواع السابقة ببساطة شديدة , حيث لا فرق بالبرمجة بينها ..
ملاحظة : لكي تقوم بتجربة الأنواع السابقة غير الStand Alone يجب أن تقوم في البداية بإعداد مخدم الويب (وليكن مثلا IIS) على الجهاز , ونسخ الDLL إلى مكتباتة ومن ثم إستدعائة من مستعرض الإنترنت .
2- إذن نختار النوع Stand Alone Application :
3- سيطلب منا تحديد موقع لنحفظ فية ملفنا , أختر أي موقع تريدة ..
4- الآن أصبحنا مستعدين لبدء العمل مع المشروع , وستجد الآن في بيئة دلفي المشروع الجديد وفية فورم رئيسي جاهز بالإسم formMain وأيضا يحوي IWServerController والتي نقوم من خلالها بضبط خيارات الت الويب المختلفة ,
لا يحق لك أن تدرج عناصر ومكونات الدلفي النظامية المرئية كالأزرار والمكونات الأخرى على فورم من هذا النوع , (تستطيع إدراج عناصر غير مرئية مثل Tables Datasources .... الخ ..). إنما كل ما تحتاجة موجود في صفحات Intra Web في شريط الأدوات ,, إنتقل مثلا على الصفحة IW Standard , وهناك إختر العناصر التي تريد إدراجها على صفحتك , مثلا نختار IWLabel , وندرجة على الفورم وبالخط العريض ليكن النص INTRA WEB وبلون أحمر , ثم ندرج خط فاصل باستخدام IWHrule .
**** بشكل مشابة لتصميم الفورم العادي , سوف تظهر صفحة الويب بالنهاية مطابقة للتصميم ..
*** لتجريب البرنامج الآن . إختر Run , سيظهر لك نافذة المخدم
وهو البرنامج الذي يتيحة CGI لتجريب مشروعك , لإن تطبيقات الويب تحتاج إلى مخدم ويب , ولكن يعتبر خيار Stand Alone CGI الذي اخترناة مثاليا لتجريب تطبيقاتنا بسرعة وكفائه .
لاحظ شريط أدوات المخدم , ومن القائمة Run إختر Execute أو إضغط (F9) مرة أخرى . وطبعا سيقوم المخدم بتحميل مستعرض الإنترنت وإظهار الصفحة التي صممناها علية .
مبروك ,. لقد كانت تلك تجربتك الأولى مع Intraweb ...... ليليليليليليليليييييه
بإمكاننا الآن التوسع في المثال قليلا , ولنقوم بإعداد تطبيق قاعدة بيانات بسيط .
من الصفحة BDE في شريط الأدوات ضع العنصر Table والعنصر Session
ومن الصفحة Data Access ضع Data source
ومن الصفحة IWControl ضع IWClientSideDatasetDBLink
قم بإعدادت قاعدة البيانات العادية تماما . مثلا
Session1 :
Session name = 's1'
Active=true
Table1 :
DataBase Name = DBDemos
Session Name = S1
Table Name = animals.dbf
Active = true
Data source1 :
Data set = Table1
IWClientSideDatasetDBLink1 :
Datasource = datasource1
***
الآن نقوم بوضع عناصر لإستعراض بيانات قاعدة البيانات :
مثلا من الصفحة Iw Data إختر IWDBGrid و IWDBImage و IWDBNavigator
واضبط خصائص هذة العناصر كالمعتاد , وقم بتوزيعها بشكل أنيق على الصفحـة
ثم نفذ البرنامج وتأكد من الخرج ,,.
بإمكانك الآن المتابعة من هنا لوحدك , بكل الوظائف الأخرى المعروفة . مثل البحث في قاعدة البيانات والإضافة والحذف ... الخ .. كما كنت تقوم بة في العادة دون إختلاف ..
*******
******
******
بإمكانك مراجعة الأمثلة المرفقة مع دلفي في المسار
Demos\ IntraWeb
*****
أتمنى أن تكون هذة المقالة البسيطة جدا جدا , بداية مقبولة في عالم Web-Development
لتنزيل المثال , يرجى زيارة الرابط :
http://www.orwah.net/Delphi/Articles/intra_Web.htm
المنتديات
إضافة تعليق جديد