پیشنهاد فرادرس

سورس برنامه چت با ASP.NET و AJAX

دسته بندی ها: آموزش سی شارپ | C#.NET ، آموزش ASP.NET ، آموزش SQL Server ، دسترسی به داده ، آموزش Linq ، دات نت ، پایگاه داده ، پروژه | Project

سورس-برنامه-چت-با-asp-net-و-ajax

اگر در اینترنت به دنبال یک سورس چت با ASP.NET بگردید چند تا برنامه گیرتون میاد اما یا برنامه نویس از UpdatePanel استفاده کرده و سرعت و کارایی برنامه رو شدیدا پایین آورده و یا همچین بحث ساده ای رو با کدهای پیچیده اونقدر سخت کرده که کمتر کسی از سورس پروژه سردرمیاره.

امروز یکی از کاربران سایت در بخش درخواست آموزش سورس چت به زبان ASP.NET را درخواست کرده بود که یک برنامه فوق العاده که حدود 2 سال پیش توسط بنده طراحی شده را برای شما در سایت قرار دادیم.

این برنامه با وجود سادگی بیش از حد دارای سورس تمیز و مرتبی است که هر کسی میتواند به دلخواه در آن تغییرات ایجاد کند.

تکنولوژی های مورد استفاده:

  • Visual Studio
  • SQL Server
  • Linq2SQL
  • AJAX

قابلیت های برنامه:

  • ثبت تمامی پیام ها در پایگاه داده
  • استفاده از AJAX و سرعت فوق العاده در بارگزاری پیام ها
  • قابلیت ارسال شکلک و مدیریت شکلک ها از دیتابیس
  • قابلیت تعریف کاربر و Login کردن با نام کاربری و کلمه عبور
  • رمزگذاری کلمه های عبور با الگوریتم MD5

یکی از مزیت های این پروژه سرعت بالای آن است که حتی با استفاده از GPRS به خوبی می شود با آن کار کرد.

این برنامه رو برای آزمایش طراحی کرده بودم که البته چند جا مورد استفاده هم قرار گرفته.کدهای برنامه بسیار ساده و روان نوشته شده و به راحتی میتونید پروژه رو ارتقاء بدین.

برای ورود کاربر از این قطعه کد استفاده می شود:

 msglabel.Text = "";
            string user = txtuser.Text;
            string pass = txtpassword.Text;
            var db = new ehsanDataContext();
            pass = FormsAuthentication.HashPasswordForStoringInConfigFile(pass, "md5");
            var q = db.sc_users.Where(c => c.username == user && c.password == pass);
            if (q.Count() != 0)
            {
                Session["login"] = "true";
                Session["username"] = user;
                Session["user_id"] = q.Single().id.ToString();
                Response.Redirect("chat.aspx");
            }
            else
            {
                msglabel.Text = "اطلاعات ورودی نادرست است";
            }

برای دریافت پیام هایی که برای کاربر ارسال شده از تابع زیر استفاده شد:

 public static string get_new_msg(string username)
        {
            string b = "";
            string user_id = username;
            var db = new ehsanDataContext();
            var user_messages = db.sc_messages.Where(c => c.receiver_username == user_id && c.read_flag == false);
            if (user_messages.Count() == 0)
            {
            }
            else
            {
                foreach (var t in user_messages)
                {
                    string b0 = t.message;
                    foreach (var t1 in db.sc_smileys)
                    {
                        b0 = b0.Replace(t1.smileys_text.ToLower(), "<img src='s/" + t1.smileys_code + ".gif' />");
                        b0 = b0.Replace(t1.smileys_text.ToUpper(), "<img src='s/" + t1.smileys_code + ".gif' />");
                    }
                    b += "<div class='box bgreen'>" + "<strong>" + t.sender_username + ":</strong><br />" + b0 + "<hr>" + t.datetime.ToString() + "</div>";
                    t.read_flag = true;
                }
                db.SubmitChanges();

return b; } return ""; }

برای ارسال پیام از تابع زیر استفاده شده است:

public static int send_message(string breceiver, string bmessage, string username)
        {
            string _Rusername = breceiver;
            string _message = bmessage;
            string _Susername = username;
            var db = new ehsanDataContext();
            var q = db.sc_users.Where(c => c.username == _Rusername);
            if (q.Count() == 0)
            {
                return 1;
            }
            if (_Rusername == _Susername)
            {
                return 1;
            }
            sc_message ms = new sc_message()
            {
                message = _message,
                read_flag = false,
                receiver_username = _Rusername,
                sender_username = _Susername,
                datetime = DateTime.Now
            };
            db.sc_messages.InsertOnSubmit(ms);
            db.SubmitChanges();
            return 0;
        }

دیتابیس پروژه به SQL Server 2012 و فایل سورس به Visual Studio 2013 تبدیل شده است.

Simple Chat Project with ASP.NET

پیشنهاد فرادرس

لینک های دانلود SimpleChat.rar
مهدی در 1394/08/28 ساعت 05:49

دیتابیس پسوندش چیه ؟ کجاست ؟؟ چطوری اتچ کنم به دیتابیسم ؟؟ فایلشو پیدا نمیکنم

مدیر در 1394/09/07 ساعت 21:07

اسکریپت دیتابیس ضمیمه شده و باید روی دیتابیس اجرا کنید.

آرزو در 1394/08/27 ساعت 09:52

نمونه سورس این برنامه و تو MVC ندارین ؟؟

مدیر در 1394/08/27 ساعت 18:46

بیشتر کد این برنامه سمت کلاینت هست. تو mvc فرق زیادی نمیکنه

آرزو در 1394/08/27 ساعت 04:58

سلام خسته باشین من مدت ها دنبال این سورس بوودم فقط وقتی میخوام اجرا بگیرم این خطا رو میده :
Unable to launch the IIs Express server

مدیر در 1394/08/27 ساعت 05:42

مشکل از نرم افزار یا تنظیمات برنامه هست.

ابراهیم در 1394/07/26 ساعت 04:59

چرا پایگاه داده این پروژه توش نیستش؟؟

مدیر در 1394/07/26 ساعت 05:30

اسکریپت دیتابیس همراه پروژه موجوده

جیگرطلا در 1393/11/17 ساعت 01:13

سلام
ببخشید میشه سورس تو محیط b4a چت رو بزارید ممنون میشم.در ضمن اسکریپ همین چت رو هم اگ میشه بزارید.هر وق اماده کردید ایمیل بزنید ممنون

rezalynda در 1393/09/26 ساعت 16:35

خدا خیرتون بده .خداییش خیلی بامرام هستین.
یه سوالی که داشتم اینه که آیا ساخت چت از این روش اصولی هست؟
یعنی اگر کاربران زیادی به این چت بیان مشکلی از لحاظ سرعت ندارن؟
با تشکر

مدیر در 1393/10/25 ساعت 20:38

روشی که در این اپلیکیشن استفاده شده یک راهکار پرسرعت و استاندارد است.

هاشم در 1393/07/12 ساعت 16:56

با سلام و خسته نباشید سورستون که تکه بین همه سایت ها حالا اگر لطف کنید فیلم آموزش ساختش هم بگذارید که ممنون میشیم و اگر هم که نگذارید باز فرقی نمیکنه و بازهم میگم کارتون تکه ممنون.

رویا در 1393/03/28 ساعت 15:46

سلام
یوزر و پسورد رو چی وارد کنیم؟

مدیر در 1393/03/29 ساعت 12:57

از دیتابیس نگاه کنید!

hamid در 1393/03/25 ساعت 20:32

سلام چرا تو default نام کاربری رو قبول نمیکنه؟؟؟

مدیر در 1393/03/26 ساعت 02:56

از دیتابیس کاربر تعریف کنید بعد login کنید

حسن در 1393/03/14 ساعت 15:46

خسته نباشید دمتون گرم

mahdi در 1393/03/10 ساعت 19:26

ایول بابا لازم داشتم :D

mohammad در 1393/03/07 ساعت 07:31

سلام میشه سورس php هم بگذارید که قابلیت چت صوتی هم داشته باشه!
با تشکر

کمال در 1393/03/07 ساعت 04:53

با تشکر از برنامه خوبتون. اجرا کردم و کامل هم جواب داد.
یک نمونه ی خوبی هم بود برای استفاده از Ajax.
منتظر برنامه های خوب بعدی شما هستیم.