قبل البدء في بناء المشروع ، يجب علينا فهم آلية العمل المتبعة هنا، فعند فتح المستخدم لموقع ما يتم عمل نسخة من الصفحة المطلوبة وتشغليها على جهاز المستخدم ، ولذلك فإن كل مستخدم يكون لديه نسخة من الصفحة نفسها في الموقع ، ولذلك فالفكرة هي مشاركة المعلومات بين المستخدمين حيث أن المعلومات المرسلة أو المستقبلة لا تصل إلى المستخدمين الآخرين لذلك سنقوم بإنشاء صفحة CLASS وسيطة يتم فيها تخزين المعلومات و مشاركتها بين صفحات المستخدمين حيث يتم في هذه العملية إرسال نص الرسالة من صفحة المستخدم الأول و تخزينها في صفحة CLASS ثم نقل المعلومات إلى صفحة المستخدم الأول والثاني.
المرحلة الأولى :
ستكون بإنشاء بسيط جداً لهذه الفكرة واختبارها وتطويرها في مراحل أخرى :
- إنشاء الصفحة التالية ونضع فيها المتحكمات التالية:
- TextBox1 : لإظهار نصوص الدردشة
- TextBox2 : اسم المستخدم
- TextBox3 : النص المراد إرساله
وكود الصفحة Default.aspx :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
1- Response.Write("<meta http-equiv=\"Refresh\"content=\"5\">");
}
protected void Button1_Click(object sender, EventArgs e)
{
2- string sUser = "MYNAME";
3- string MyMassege = TextBox2.Text;
4- TextBox1.Text += Class1.AddMessage(sUser, MyMassege);
5- TextBox2.Text = "";
}
}في السطر 1 : تحديث الصفحة كل خمس ثواني
في السطر 2 : اسناد اسم المستخدم إلى TextBox2
في السطر 3 : اسناد نص الرسالة إلى TextBox3
في السطر 4 : تنفيذ الإجراء الموجود في صفحة Class1 حيث يتم إرسال اسم المستخدم و النص ليقوم الإجراء بدوره بإعادة الإرسال وإظهار النص على "كافة صفحات المستخدمين" كما سنرى لاحقاً.
في السطر 5 : حذف نص الرسالة بعد الإرسال
وسيكون SOURCE الصفحة كالتالي:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server" Height="305px" TextMode="MultiLine"
Width="300px"></asp:TextBox>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<asp:TextBox ID="TextBox2" runat="server" Width="358px"></asp:TextBox>
</form>
</body>
</html>إنشاء صفحة CLASS
والكود :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
public class Class1
{
static public string AddMessage( string sUser, string sMsg)
{
string sResponse = sUser + sMsg;
return (sResponse);
}
}الإجراء المستخدم في استقبال اسم المستخدم و النص و إعادة القيمة في المتغير sResponse
نستنتج أن عيوب المرحلة :
- عدم الترتيب في النص
- تأثير عملية تحديث الصفحة على الكتابة حيث يحتاج إلى إعادة تعيين المؤشر بعد اختفاءه
- لا يوجد قنوات خاصة بين مستخدمين محددين إنما هي غرفة عامة على أي مستخدم
- عدم تخزين نصوص الرسائل حيث أن عملية الخروج من الصفحة والعودة تحذف جميع الرسائل السابقة
إن شاء الله سأقوم بحل هذه المشاكل في المرحلة الثانية.
