PDA

View Full Version : حرفه ای: کامپوننت چت آنلاین



xamfia
چهارشنبه 25 شهریور 1388, 01:19 صبح
xamfia chat component 1.0.0

بالاخره بعد چند ماه کامپوننت چت XC آماده شد!
این کامپوننت به شما امکاناتی از قبیل قابلیت چت آنلاین بین کاربران سایت،ارسال پیغام برای کاربران آفلاین،ارسال میل و...فراهم میکند.
از دیگر ویژگی هایXamfia Chat سادگی در نصب و پیکربندی آن میباشد.
XC به صورت کدباز و تحت لایسنس GPL در جامعه برنامه نویسان اپن سورس مایکروسافت (codeplex)منتشر شده.


xamfia.codeplex.com (http://xamfia.codeplex.com)
(برای دانلود به تب Downloads رجوع کنید)

دانلود کنید و ان شاءالله که لذت ببرید.



با سپاس میثم نوایی

shadow666
چهارشنبه 25 شهریور 1388, 03:16 صبح
آقا یکم درباره نحوه کار کردن باهاش و نسخه هایی که داره میگین؟؟ ممنون

xamfia
چهارشنبه 25 شهریور 1388, 16:40 عصر
Xamfia Chat Component مجموعه ای از کامپوننت و User Control می باشد که به سادگی بین کاربران یک وب سایت رابطه هایی ایجاد مینماید از قبیل چت کردن دونفره محفوظ ، چت کردن به صورت همگانی برای کاربران آنلاین و همچنین ارسال پیام و ایمیل برای کاربران آفلاین و درنسخه بعدی به اشتراک گذاشتن عکس و فایل.
هسته اصلی XC با تکنولوژی ASP.NET و به زبان C#‎‎‎‎‎ توسعه داده شده است و بر پایه سرویس های وب بنا نهاده شده است.
هر User Control با استفاده از آژاکس توابع مورد نیاز خود را فراخوانی میکند.در توسعه این نرم افزار از کتابخانه Jquery در موارد ضروری استفاده شده و در نسخه بعدی این نرم افزار احتمالا Jquery به طور کامل جایگزین Ajax.net خواهد شد.
از ویژگی های مهم این نرم افزار سادگی در پیکربندی(Configuration) و راه اندازی(Deploy) کردن آن می باشد.
این نرم افزار بر پایه کلاس های Membership و Profile در DotNET بنا نهاده شده است و در نتیجه به سادگی میتواند با سایت های شما همخوان شود.
راه اندازی:
1.دو dll (UserControl.XamfiaChat.dll و XamfiaCommunity.dll) را در پوشه bin کپی کنید.
2.پوشه XamfiaChat را در دایرکتوری سایتتان کپی کنید.
3.تغییرات مطرح شده در فایل راهنما را در Web.config اعمال کنید.


<appsettings>
</appsettings>"
<add key="DefaultPath" value="XamfiaChat">
</add>

for send mail between user,must config this section
<system.net>
<mailSettings>
<smtp>
<network host="127.0.0.1" port="25" password="password" userName="xc@example.com"/>
</smtp>
</mailSettings>
</system.net>

profile class must inherits as XProfileBase class for use chat profile
<profile inherits="Xamfia.XProfileBase">
</profile>


<pages>
</pages>
<controls>
</controls>
<add assembly="UserControl.XamfiaChat" namespace="Xamfia" tagprefix="X1">
</add>

<system.web.extensions>
</system.web.extensions>
<scripting>
</scripting>
<webservices>
</webservices>
<authenticationservice enabled="true" requiressl="false">
</authenticationservice>



4.تابع initial() را برای ساخت تالارها در Global.ascx قرار دهید.


void Application_Start(object sender, EventArgse)
{
try{
Xamfia.XWebService WC = new Xamfia.XWebService();
WC.initBord();
}
catch(Exception ex) { }
}

xamfia
پنج شنبه 26 شهریور 1388, 11:09 صبح
به دلیل استفاده کامپوننت از کلاس های Membership،Profile و... پایگاه داده پیش فرض خود دات نت فریم ورک است(ASPNETDB.mdf) است که زمان اجرای Demo به صورت اتوماتیک باید ایجاد شود.
اگر سایتتان از این پایگاه داده استفاده میکند به هیچ مشکلی بر نمیخورید اما اگر پایگاه داده اختصاصی خودتان را دارید بهتر است از Provider اختصاصی برای ایجاد رابطه بین کلاس ها با پایگاه داده تان استفاده کنید.

xamfia
شنبه 28 شهریور 1388, 10:37 صبح
UC را میتوانید هم به صورت مستقیم در صفحات تان استفاده کنید و هم میتوانید طبق روشی که من استفاده کرده ام ابتدا آنها را به dll تبدیل کرده و سپس آنرا در پروژه تان استفاده کنید.
برای تبدیل UserControl به CustomControl یا همان dll من یک مقاله خوب در کد codeproject سراغ دارم که میتواند کمک فراوانی به شما بکند.
http://www.codeproject.com/KB/aspnet/User_Control_ToCustom_One.aspx

به علاوه از این تکنیک معرفی شده میتوانید برای UCهای شخصی خود نیز بهره ببرید.

hamid1988
شنبه 28 شهریور 1388, 14:19 عصر
اگر پایگاه داده اختصاصی خودتان را دارید بهتر است از Provider اختصاصی برای ایجاد رابطه بین کلاس ها با پایگاه داده تان استفاده کنید.
لطفاَ بیش تر توضیح دهید...
مرسی

xamfia
یک شنبه 29 شهریور 1388, 17:50 عصر
لطفاَ بیش تر توضیح دهید...
مرسی

کلاس های اعضای در Asp.net مانند Membership,Profile,... این قابلیت را دارند که با توجه به پروژه شما شخصی سازی شوند...
برای اینکار کافی است شما یک کلاس شخصی خودتان را بنویسید که از هرکدام از این کلاس ها به ارث ببرد وتوابع مورد نیاز خود مثل درست کردن کاربر و... را بازنویسی کنید.
مانند کاری که من در مورد کلاس XProfileBase انجام داده ام و در آن توابع مورد نظرم را Override کرده ام...

xamfia
دوشنبه 06 مهر 1388, 01:44 صبح
یکی ویژگی هایی که این کامپوننت(XC) دارد سازگاری آن با دیگر بسترها و زبان های برنامه نویسی است !!
هسته اصلی کامپوننت که در واقع شامل مجموعه سرویس ها میباشد حتما و تنها در سایت های تحت دات نت قابل پیاده سازی میباشد اما شما میتوانید لایه سوم(presention)یا همان اینترفیس و رابط کاربری را در سایت های جاوایی و php نیز استفاده کنید...
به طور مثال اگر بخواهید چندین سایت مختلف از سیستم عضوگیری و چت و ارتباطات شما بهره بگیرند حتی اگر این سایت ها به زبان های مختلف توسعه داده شده باشند بهترین راه XC میباشد!!
برای استفاده از UCها در دیگر زبان ها کافی است Div اصلی موجود در هر UC را کپی و در صفحه مورد نظر خود جایگزین کنید.(توجه داشته باشید که نباید هیچ تگی که با :asp شروع میشود در کدتان وجود داشته باشد)
در ضمن توابع اعتبار سنجی XC از خود ویژگی های Ajax.net استفاده میکند در نتیجه باید تابع login, logout,...را بازنویسی کنید و انها را نیز با jquery فراخوانی کنید.
اگر دوستی توانست تابع های اعتبارسنجی پیش فرض آژاکس مایکروسافت را با استفاده از jquery پیاده سازی کند حتما برای عموم نیز قرار دهد تا من نیز آنرا در نسخه بعدی XC مورد استفاده قرار دهم(از برنامه نویسان خارجی نیز کسی به طور کامل اینکار را انجام نداده است)

nazaninam
دوشنبه 06 مهر 1388, 08:18 صبح
در مورد معماری و نحوه کار سیستم توضیح بفرمایید منظورم بخش اصلی Messaging هست نه خواندن و نوشتن در بانک اطلاعاتی و غیره

xamfia
دوشنبه 06 مهر 1388, 23:46 عصر
در مورد معماری و نحوه کار سیستم توضیح بفرمایید منظورم بخش اصلی Messaging هست نه خواندن و نوشتن در بانک اطلاعاتی و غیره

XBord کلاس اصلی چت عمومی میباشد که وظیفه مدیریت اتاقها را که در واقع شی هایی از کلاس internalBord میباشند را بر عهده دارد.
در کلاس XBord یک لیست استاتیک از نوع کلاس برد به نام XBordList وجود دارد که کار اصلی اش نگهداری همه اتاق های موجود در حافظه میباشد.
internalBord کلاسی است که همه اتاق های عمومی اشایی از آن هستند و شامل توابعی از جمله ارسال پیغام،نام اتاق،تشریح...
XMessageکلاسی است که مدیریت اصلی پیغام رسانی به صورت خصوصی را بر عهده دارد .ارسال ایمیل و پیغام های آفلاین هم برعهده این کلاس میباشد.
در اکثر کلاس های بخش پیغام رسانی شما با یک سری لیست های استاتیک روبرو هستید که وظیفه شان نگهداری مقادیری به صورت مشترک بین همه درخواست ها در حافظه میباشد.در واقع عناصر استاتیک در معماری ASP.NET نقش شبیه Application را بازی میکنند،یعنی بین همه کاربران(درخواست کنندگان)مشترک میباشد...
ناگفته نماند همه این کلاس ها زیر کلاس لایه ای XCommunity قرار دارند و برای دستیابی راه دور به توابع و عناصر این کلاس نیز از واسط سرویسی به نام XWebService بهره می گیریم...
در آینده در مورد اکثر کلاس ها به تفصیل بحث میکنم...

xamfia
چهارشنبه 08 مهر 1388, 17:06 عصر
در این مدت که از انتشار XC میگذرد برخی از دوستان دغدغه هایی در مورد امنیت این کامپوننت داشتند مخصوصا اینکه XC وظیفه مدیریت و دستیابی به اعضا و اطلاعاتشان را دارد در نتیجه برنامه نویسان کمی در کار با آن نگران هستند.
اما تا کنون نه از طرف برنامه نویسان codeplex و نه از طرف برنامه نویسان داخلی پیامی مبنی بر باگ های امنیتی بدست اینجانب نرسیده اما به هرحال XC هنوز در حد یک پروژه تحقیقاتی است پس در استفاده از آن مخصوصا در سایت های امنیتی و تجاری جوانب احتیاط را رعایت فرمائید.

xamfia
چهارشنبه 15 مهر 1388, 23:18 عصر
دوستانی که قصد دارند سیستم اعتبار سنجی مایکروسافت آژاکس را بازنویسی کنند(در بخش ورود اعضا) حتما باید توجه داشته باشند که مجبور به استفاده از رمزنگاری غیرمتقارن هستند!!
پس توصیه من این است قبل از توسعه این بخش حتما کمی درمورد بحث امنیت در وب و مخصوصا رمزنگاری نامتقارن مطالعه نمایند...

hamid1988
چهارشنبه 15 مهر 1388, 23:28 عصر
دوست عزیز لطفاَ راهنمای فارسی کامپوننت رو هم بنویسید تا هم وطنیا هم بتونن استفاده کنن!
من خودم دانلود کردم، ولی هیچی ازش سر در نیاوردم!

xamfia
پنج شنبه 16 مهر 1388, 11:40 صبح
دوست گرامی من این بخش رو برای همین توی برنامه نویس راه انداختم و اکثر اوقات هم بروزرسانیش میکنم...
برای اینکه نظریات هموطنان برنامه نویسی چون شما میتواند بسیار راه گشا باشد...