![]() |
|
تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي الأخرى (https://delphi4arab.net/forum/forumdisplay.php?fid=4) +--- قسم : برمجة الويب بدلفي وDelphi .NET و Oxygen (https://delphi4arab.net/forum/forumdisplay.php?fid=29) +--- الموضوع : تصميم المواقع باستخدام بالدلفي بريسم + ASP.net (/showthread.php?tid=3255) |
تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 01-07-2011 السلام عليكم باذن الله سنتعلم اليوم كيف ننشا موقع بالدلفي بطريقة سهلة ليس مثل التقنيات السابقة للدلفي التي كان معقدة . 1- الادوات المستعملة نعلم انه تم صدور الدلفي برزم الذي يشتغل على منصة دوت نت و يمكن تحميله من هنا https://downloads.embarcadero.com/free/delphi_prism 2- ربما احسن طريقة في نضري لتقديم الدروس هي من الامثلة لذلك ساقدم لكم مثال لانشاء موقع بالاسبي نت و البريسم خطوات العمل : - انشاء مشروع لاحظ الصورة 1 : بعد الضغط على اكي نتحسل على السيلوشن و التي تحتوي بدورها على مشروعك و الذي يحتوي على مايلي Default.aspx هي الصفحة الرئيسية للموقع وكما تلاحض الكود عبار عن مجومعة من الاوسمة html كود : <html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>وتلاحض انه مباشرا تهتا نجد ملفين الاول كما هو واضح من اسمه يكون فيه التعريف بالمكونات الموجودة على الصفحة اما Default.aspx فهو يحتوي على الكود اي اين سنكتب تعليماتنا و فئلتنا بلغة الدلفي وكما تلاحضون في الكود سورس هنا _Default = public partial class(System.Web.UI.Page) اي ان هذه الفئت ترث من الفئت Page وهذا ما سيعرف للخادم انها صفحة واب فيستطيع عرض مكوناتها و.. . ب- Web.config هو ملف من نوع اكسمل يحتوي على اعدادات الموقع كتابت ثوابت لمسارات ملفات او مسار القاعدةconnectionStrings Global.asax وهو ايضا ملف اعدادات لكن نتركه لاحقا تابع مع زكيري ..... تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 02-07-2011 بما اننا تحصلنا على الصفحة الرئيسة للموقع يمكننا تنفيذها بعد ان نضيف بعض المكونات على الواجهة ... اذا ستكون الامثلة متقطعة و بسيطة حتى نتمكن ثم نجمع مانراه مناسبا لمشروعنا 1- المثال الاول اهم شئ في البرامج الاكثر طلبا هي قواعد البيانات لذي سكون مثالنا الاول نريد ان نتصل بقاعدة بيانات للاسف لم اثبت اي قاعدة في جهازي لحد الان لاني فرمتها منذو فترة فقط . المهم سنكمل مع اتصال بملف اكسل على انه قاعدة بها جدول و هي الصفحة الاولى في المستند. طريقة الربط كود : http://www.bloghotel.org/uploads/zekiriabd_PrismXLS.jpgماذا ,؟...؟؟ تقول انك تريد برمجه كل ما يتعلق يقواعد البيانات بالدلفي العادي و الواجهات تكود بالاسبي نت حسنا نعم تستطيع بفضل تقنية DCOM و التي شرحتها في الدرس http://www.delphi4arab.net/forum/showthread.php?tid=5583 حيث تقوم بانشاء كلاسات او ملفات اكسمل و ترسلها على شكل string و ستسطيع استقبالها بالدلفي يريسم و ان كنت تريد المزيد عن الطريقة اكتب ردك في الدرس السابق ذكرة و ستجدني مجبا ان شاء الله . ماذا تريد طريقة جديد لان DCOM قديم نعم فكرة امباركاديرو في الامر و وفرت طريقة جيد و حديثة و اضافتها الى DATASNAP تابع معي الموضوع المقبل ..... نفس المثال السابق للربط مع قاعدة بيانات لكن بالدفي العادي يربط و البريزم يعرض في الويب . تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 02-07-2011 مقدمة الى تقنية datasnap شرح من طرف الاخ علي علوي يرجع ظهور هذه التقنية الى نسخة دلفي 3 حيث كانت تعرف في هذه النسخة باسم MIDAS لتتطور في نسخة دلفي 4 الى MIDAS 2 ثم الى3 MIDAS ووفرت هذه التقنية ادوات قوية للاتصال عن بعد والتعامل مع تطبيقات (خادم و زبون)بواسطة com اي استخدام برتوكول Tcp/ip,Http وcom لتخاطب بين الطبقتين ليغيير اسمها الى datasnap في نسخة دلفي السادسة وبقت بنفس المكونات الى غاية النسخة دلفي 2007 وبصدور دلفي 2009 تغيرت هيكلة Datasnap لاعتماده على التام على TCP/IP فقط مع امكانية التعامل مع دوت نت مع ظهور دلفي 2010 ظهر تطور كبير على datasnap ليدعم اغراض جديدة وفريم ورك جديد 1- التخاطب مع service سواء ويب REST et JSON اوdcom 2-التخاطب مع تطبيقات وندوز win32 3-التخاطب مع منصة اخرى .net كما يمكن استعماله في الويب لانه يدعم ISAPI و CGI كود : http://docwiki.embarcadero.com/images/RADStudio/e/8/80/DataSnapArch.png1- برمجة طبقة المعالجات (الاتصال بالقاعدة ) نفتح مشروع جديد في الدلفي كود : http://www.arabteam2000-forum.com/uploads/monthly_04_2010/post-112245-12706556795868.jpg2- جديد (new) 3-خيارات اخرى (Other ) كود : http://www.arabteam2000-forum.com/uploads/monthly_04_2010/post-112245-12706664534601.jpg2- نقوم باختيار (datasnap sever) لتظهر نافذة جديدة كما في الصورة التالية كود : http://www.arabteam2000-forum.com/uploads/monthly_04_2010/post-112245-12706557216237.jpg1- اذا قمت بتفعيل هذا الخيار فسينشا لك مشروع vcl اي نافذة ويندوز المعروفة ومكونات vcl 2- اذا قمت بتفعيل هذا الخيار فان المشروع يفذ على شاشة الدوس 3 - اذا قمت بتفعيل هذا الخيار فان المشروع سيكون خدمة 4- هذا الخيار يمثل مشروع يطبق على شبكة محلية 5- المشروع المنشا يعمل على شبكة الانترنت نترك الخيارات كما هي ونضغط على ok سوف يظهر المشروع ثلاث نوافذ كما يلي كود : http://www.arabteam2000-forum.com/uploads/monthly_04_2010/post-112245-12706557463819.jpgكود : http://www.arabteam2000-forum.com/uploads/monthly_04_2010/post-112245-1270655805205.jpgكود : http://www.arabteam2000-forum.com/uploads/monthly_04_2010/post-112245-12706557706785.jpgكما هو ظاهر من خلال اسمها سوف نضع كل Methods و functions نضع مكون Ttable من BDE و نربطه بالطريقة العدية مع الملف animals.dbf مثلا . لا نفتح الاتصال سيكون ذلك بالكود ننشاء وظيفة او تابع جديد و نكتب كود : function TServerMethods1.FillDataSet(): TDataSet;
begin
Table1. Open;
Result := Table1;
end;فقط نعم اتهينا من الاتصال عن طريق الدلفي و الان سنترك البريسم يتكلم مع الدلفي كيف ان تطبيق الدلفي سواء كان EXE او DLL ISAPI .. هو عبارة عن سرفر نثبته مع الموقع في جهاز واحد او جهاز اخر المهم انه يشتغل داما مثل IIS للموقع . في مشروعنا نقوم بفتح اتصال جديد بالقاعدة كما قمنا سابقا . لا حظ الصورة كود : http://www.bloghotel.org/uploads/zekiriabd_prismdatasnap.jpgنقوم بالطريقة السابفة لاكن نختار من القاءمة localhost.... و عندما نصل الشاشة نختار Procédure Stockée كود : http://www.bloghotel.org/uploads/zekiriabd_prismdatasnap2.jpgتصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 02-07-2011 طيب مادام الامو هذا موافق لتعلم البريسم و الاسب نت لكن كيف ابني الواجهو و خاصة صفحة الدخول حيث هناك كوكيز و سيشن و ِCSS و javascript .. نعم الامور كذلك لك واحدة واحدة ففي الدرس القادم نتعلم شيء مهم هي الصفحة الام و صفحات التي تفتح بداخها مثل ما نفعله في الدلفي مع MDI فورم . تابعوا اخوكم و لا تنسو الدعاء . تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 02-07-2011 نسية ارفاق المثال 1- المشروع الاول بالدلفي ويحتوي على مكونات دتاسنب و مكون table للربط مع BDE 2- مشروع بريزم لعرض محتوى الجدول في صفحة ويب تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 05-07-2011 في الصورة التالية اوضح كيف تنشا مشروع ويب جديد مع مثال قابل للتنفيذ و التغيير اذا سنقوم ببعض التغييرات في هذا المثال الذي يفره لنا VS بمجرد النقر على زر ok كود : http://www.bloghotel.org/uploads/zekiriabd_Aspprism2.jpg- في الصفحة الام *- نلاحظ وجود الوسام <html head body..... الخ اي انها تشبه صفحة الاشتمل العادية . *- الربط مع ملف الانماط الوجود في مجلد Styles كود : <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />*- تعريف منطقة الرءسية للصفحة يكون في الصفحة الام و الطلب يكون في باقي الصفحات - التعريف مثلا كتبنا كود : <asp:ContentPlaceHolder ID="HeadContent" runat="server"/>كود : <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content>كود : <div class="main"><asp:ContentPlaceHolder ID="MainContent" runat="server"/></div>كود : <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<%--محتوي الصفحة --%>
</asp:Content>هذه الاكواد تكتب اليا بمجرد اختيار الصفحة الابن و ربطها مع الام عن طريق chekbox لأاحض الصورة 2 كود : http://www.bloghotel.org/uploads/zekiriabd_Aspprism3.jpgتصميم المواقع باستخدام بالدلفي بريسم + ASP.net - زكيري عبدالعالي - 05-07-2011 صفحات اﻷنماط اﻹنسيابية هناك درس راءع في هذه الرابط لتعلم css http://www.dahsha.com/uploads/learn-css.pdf اما كيفية اضافة ملف css في البريزم لاحض الصورة كود : http://www.bloghotel.org/uploads/zekiriabd_Aspprism4.jpgتصميم المواقع باستخدام بالدلفي بريسم + ASP.net - masrnet2006 - 28-07-2012 مثال Datasnap server with prism client 1- انشاء برنامج datasnap server with wizard delphi xe or delphixe2 2- run program server 3- create WebApplication1 with prism 4- (with dataconnection and open connection - run with right click mouse ) create ClientProxy1 5- avr SQLConnection := Borland.Data.TAdoDbxDatasnapProviderFactory.Instance.CreateConnection() as Borland.Data.TAdoDbxConnection; SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=localhost;port=8080'; or // full // SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=localhost;port=80;serverconnection=TServerMethods_ha.GetConnection'; تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - masrnet2006 - 28-07-2012 مثال اله حاسبة بسيط جمع وطرح datasnap server delphi xe with prism 2.5 كود : prism client web
//------------------------
namespace WebApplication1;
interface
uses
System.Web,
System.Web.UI, Borland, ClientProxy1;
// ,RemObjects.Oxygene,System,RemObjects;System.Collections,//System.DataSnap Data Provider for .NET
type
_Default = public partial class(System.Web.UI.Page)
protected method Button1_Click(sender: System.Object; e: System.EventArgs);
method Button3_Click(sender: System.Object; e: System.EventArgs);
method Button2_Click(sender: System.Object; e: System.EventArgs);
end;
implementation
method _Default.Button1_Click(sender: System.Object; e: System.EventArgs);
var
a, b, s: Double;
calc: ClientProxy1.TServerMethods_haClient;
SQLConnection := Borland.Data.TAdoDbxDatasnapProviderFactory.Instance.CreateConnection() as Borland.Data.TAdoDbxConnection;
begin
TextBox_R.Text := 'WELCOME MR HASSAN';
SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=172.17.177.189;port=8080';
// SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=localhost;port=80;serverconnection=TServerMethods_ha.GetConnection';
SQLConnection.Open;
// TextBox_R.Text:='conn good ';
try
// a:=36;b:=4;
a := Convert.ToDouble(TextBox_a.Text);
b := Convert.ToDouble(TextBox_b.Text);
TextBox_R.Text := 'WELCOME MR HASSAN';
calc := ClientProxy1.TServerMethods_haClient.Create(SQLConnection);
s := calc.Subtract(a, b);
TextBox_R.Text := s.ToString;
finally
SQLConnection.Close;
end;
end;
method _Default.Button2_Click(sender: System.Object; e: System.EventArgs);
var
a, b, s: Double;
calc: ClientProxy1.TServerMethods_haClient;
SQLConnection := Borland.Data.TAdoDbxDatasnapProviderFactory.Instance.
CreateConnection() as Borland.Data.TAdoDbxConnection;
begin
TextBox_R.Text := 'WELCOME MR HASSAN';
// SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=172.17.177.189;port=8080;serverconnection=TServerMethods_ha.GetConnection';
SQLConnection.ConnectionString :=
'communicationprotocol=http;hostname=172.17.177.189;port=8080';
// SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=172.16.0.190;port=8080;serverconnection=TServerMethods_ha.GetConnection';
// SQLConnection.ConnectionString := 'communicationprotocol=http;hostname=localhost;port=8080;serverconnection=TServerMethods_ha.GetConnection';
SQLConnection.Open;
TextBox_R.Text := 'conn good ';
try
// a:=36;b:=4;
a := Convert.ToDouble(TextBox_a.Text);
b := Convert.ToDouble(TextBox_b.Text);
calc := ClientProxy1.TServerMethods_haClient.Create(SQLConnection);
s := calc.Sum(a, b);
TextBox_R.Text := s.ToString;
finally
SQLConnection.Close;
end;
end;
method _Default.Button3_Click(sender: System.Object; e: System.EventArgs);
begin
response.Redirect(" WebForm1.aspx ")
end;
end.تصميم المواقع باستخدام بالدلفي بريسم + ASP.net - masrnet2006 - 28-07-2012 كود : add function to datasnap function ServerMethods
//----------------------------------------------------------
function TServerMethods_ha.Sum(a, b: Double): Double;
begin
Result := a + b;
end; |