ورود

View Full Version : سوال: JSP یا ASP.net ؟؟!



محمد فدوی
دوشنبه 31 تیر 1392, 00:07 صبح
ببخشید از این سوالای کلیشه ای میپرسم! ولی میخوایم یه سایت (سرور چت) درست کنیم، خودم به JSP خیلی علاقه دارم... ولی علاقه ی من چیزیو عوض نمیکنه! واقعا برای چنین پروژه ای ASP.net بهتره یا JSP؟
ممنونم.

javaphantom
دوشنبه 31 تیر 1392, 09:25 صبح
ببخشید از این سوالای کلیشه ای میپرسم! ولی میخوایم یه سایت (سرور چت) درست کنیم، خودم به JSP خیلی علاقه دارم... ولی علاقه ی من چیزیو عوض نمیکنه! واقعا برای چنین پروژه ای ASP.net بهتره یا JSP؟
ممنونم.

شما الان تمام کارها رو انجام دادین و فقط گیر تکنولوژی هستید یعنی؟

برای انجام پروژه تکنولوژی یک ابزار هست که باید کسانی که با اون ابزارها بلد هستن کار کنن در اختیار داشته باشین. اما این ابزار ها فقط ابزار هستند و معجزه نمی کنند برعکس خیلی وقتها کمک به نابودی پروژه می کنند.

به نظر من شما با aps.net کار کنید.

omidbizdotcom
دوشنبه 31 تیر 1392, 10:04 صبح
ببخشید از این سوالای کلیشه ای میپرسم! ولی میخوایم یه سایت (سرور چت) درست کنیم، خودم به JSP خیلی علاقه دارم... ولی علاقه ی من چیزیو عوض نمیکنه! واقعا برای چنین پروژه ای ASP.net بهتره یا JSP؟
ممنونم.

شما اگه خیلی گیر تکنولوژی هستی زیاد زحمت نکش بچه ها قبلا اینکار و کردن


http://samples.bristleback.pl/chat/

محمد فدوی
دوشنبه 31 تیر 1392, 12:29 عصر
ممنون از جوابتون.
نه راستش گیر تکنولوژی نیستم! این پروژه ام آنچنان حرفه ای و جدی نیست...
لینکی که omidbizdotcom عزیز گذاشتو دیدم، خیلی خوبه ولی خب من خودم میخوام چنین چیزیو بنویسم تا تجربم حداقل زیاد شه!
javaphantom عزیز از جواب شمام خیلی ممنونم، من منظورتون از اینی که گفتین تمام کارارو انجام دادم که حالا گیر تکنولوژی هستمو متوجه نشدم، اینجوری که من و دو نفری که همرام هستن فکر کردیم، :لبخند: این پروژه توی مرحله ی اول نیاز به یه سرویس دهنده داره (فکر کنم باید از HttpServelet استفاده کنیم یا سرویس وب NET.)، که از یک پایگاه داده استفاده میکنه (مثلا MySQL برای JSP یا Ms.SQL برای ASP.net)...
در مرحله دوم قراره وبسایت نوشته شه (بازم یا JSP یا ASP)، و در نهایت اگه خدا خواست و پروژه تا اینجا رسید(!) یه برنامه مسنجر (که اینم میتونه با Java، .NET، یا حتی زبونای دیگه نوشته شه)
پس اینجوری که ما استنباط کردیم خیلی مهمه الان انتخاب کنیم بین JSP و ASP.net، البته اینم بگم جفتشونو تا حدودی (در حد کلاس اول!) بلدم...
اصلاً این فکرامون درسته یا نه؟! اگر میشه بیشتر راهنماییم کنین.
بازم ممنون از استادای خودم که جواب دادین سوالمو.

javaphantom
دوشنبه 31 تیر 1392, 14:02 عصر
درسته دوست عزیز، شما می توانید با پروتکل http از طریق کلاینت ها با سرور صحبت کنید روی یک پورت.

من جای شما باشم می یام کل پروژه رو تیکه تیکه می بینم. 100 پشت این app شما باید یک data model هم باشه. که بایک تکنولوژی خواصی اطلاعات شما رو ذخیره و بازیابی کنه.

برای مثال این قسمت خودش یک ماژول می شه که model module بهش می گم و شامل entity های من هست. که بعدا بصورت relational یا objective یا graph یا فایل یا هر جوی که خودت می دونی باید پیاده سازی بشه.

یک ماژول بزرگتر می خوام که شاید خودش به چند ماژول دیگه تبدیل بشه که کار مدیریت صف مدیریت ثبت نام مدیریت امنیت مدیریت و و و وو باشه که اون هم می شه براش بعد تصمیم گرفت که چه جوری نوشته بشه ولی وجودش لازمه

و در نهایت یک روکش قشنگ برای استفاده کاربر نهایییپ

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

آیا به این چیزایی که گفتم فکر کردی؟ داری چیزی دستت؟

یا یاعلی گفتی عشق رو آغاز کردی؟

محمد فدوی
دوشنبه 31 تیر 1392, 14:21 عصر
فک میکنم گزینه ی 2 درست باشه! :لبخند:
آقا منو ترسوندی! الان این راهنمایی هارو کردی که راهنماییم کنی یا بگی نرم سمتش؟ :افسرده:
نه ما راستش تا همون حدی که گفتم فکر کردیم! تازه فقطم فکر کردیم!!
شما یبار کامل فک کنم توضیح دادی مراحل پروژه رو! ولی من یه بخشاییشو نفهمیدم...
ولی حالا گفتی زحمتش با خودت! به عنوان یه فردی که حداقل اینو میدونم که اطلاعت و تجربتون چندین برابر منه شما اگه بخوای چنین پروژه ای رو انجام بدی چه کارایی رو انجام میدی؟ اینم بگم که خیلی سطح بالا توضیح ندین لطفا! (همون کلاس اول!) :اشتباه:
خیلی عذر میخوام که اینقدر وقتتونو میگیرم.
بازم ممنون.

javaphantom
دوشنبه 31 تیر 1392, 15:27 عصر
فک میکنم گزینه ی 2 درست باشه! :لبخند:
آقا منو ترسوندی! الان این راهنمایی هارو کردی که راهنماییم کنی یا بگی نرم سمتش؟ :افسرده:
نه ما راستش تا همون حدی که گفتم فکر کردیم! تازه فقطم فکر کردیم!!
شما یبار کامل فک کنم توضیح دادی مراحل پروژه رو! ولی من یه بخشاییشو نفهمیدم...
ولی حالا گفتی زحمتش با خودت! به عنوان یه فردی که حداقل اینو میدونم که اطلاعت و تجربتون چندین برابر منه شما اگه بخوای چنین پروژه ای رو انجام بدی چه کارایی رو انجام میدی؟ اینم بگم که خیلی سطح بالا توضیح ندین لطفا! (همون کلاس اول!) :اشتباه:
خیلی عذر میخوام که اینقدر وقتتونو میگیرم.
بازم ممنون.

اگر من بخوام انجام بدم یک پول خوب می گرم :دی

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

جلسه رو در رو بزار با افرادی که تجربه انجام پروژه موفق رو داشتن. کمک بگیر از هر کی که صاحب نظر هست.
کاملا مشخص هست که کم تجربه هستی و همین می تونه انگیزه خوبی باشه برای یاد گرفتن و یاد دادن.

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

من تلاش خیلی از بچه های این سایت رو می بینم که دائم project تعریف می کنن و در گیر می شن و سوال می پرسن هر چند که از نظر من بدترین و منسوخترین روش رو انتخاب می کنند ولی بازم جای شکرش باقی هست. مهم اینه که جدی درگیر می شن

محمد فدوی
دوشنبه 31 تیر 1392, 15:40 عصر
آقا واقعا ممنون... جزء معدود دفعاتی بود که از جوابایی که گرفتم واقعا قانع شدم.
بابت توصیه هاتونم چشم، حتما پیگیرش میشم. :لبخندساده:
من واقعا کم تجربم حتی در زمینه ی #C و ++VC که یه جورایی زمینه ی تخصصیم بوده تا الان، چه برسه به جاوا که تازه چند ماهه شروعش کردم!
فکر کنم سوال زیاد واسم پیش بیاد که حتما مزاحم شما و استادای دیگه میشم. ممنونم.

cups_of_java
دوشنبه 31 تیر 1392, 17:15 عصر
اگه شما تجربه برنامه های تحت وب رو نداری شروع با مثال چت اصلن خوب نیست برات.
اما اگه تاکیدت روی چت هستش، ذات این مسله احتیاج به استفاده از تکنولوژی های Comet و یا Websocket داره
برای استفاده از این امکانات شما باید فریم ورک های مناسبی رو انتخاب کنی.
من در مورد ASP.net نمی دونم
اما توی جاوا پشتیبانی از اینها تا حدودی هست توی بعضی پیاده سازی های JSF
اما برای چت شاید بهتر باشه دنبال هیچ کدوم این گزینه ها نری! تکنولوژی های دیکه ای هست که به سادگی برات چت رو راه اندازی می کنه
مثل Nodejs با ترکیبی از کتابخانه های Javascript کلاینت ساید
اما اینا برات الان خیلی یهو جا نیافتاده میشه.
می خوام بگم فعلن یکم سعی کن معلومات و دانش فنیتو زیاد کنی. اگه آدمی هستی که دنبال یادگیری زیاد هستی بهتره جاوا رو انتخاب کنی
اگه آدمی هستی که دنبال انجام دادن کار (حتی بدون معلومات) و سادگی انجام کارهای جمع و جور هستی ASP.net مناسب تره برات
اگه دنبال اینی که خودت پول بیاری تو وب PHP‌ یاد بگیر

محمد فدوی
یک شنبه 06 مرداد 1392, 14:00 عصر
ممنونم :تشویق:
در مورد انتخاب تکنولوژی هم راهنمایی خیلی خوب و کاربردی ای بود! فکر کنم کم کم باید برم سمت PHP!!!
اما تو این چند وقتی که جاوا رو شروع کردم، واقعاً ازش خوشم اومده، فکر میکنم یه برنامه نویس حرفه ای جاوا خیلی از برنامه نویسای PHP و net. جلو تره...
با این حرف شما و javaphantom که میفرمایین این پروژه خیلی بزرگه واسمون (و احتمالاً هم همینطوره) موافقم ولی دیگه دیره واسه جا زدن!!! :لبخند:
راستش همون اول که javaphantom عزیز راهنماییم کردن با کمال پررویی پروژه رو با جاوا شروع کردیم (نه برای عرضه به عنوان یه محصول تجاری... فقط برای تجربه) و الان دیتابیسش با MySQL تا حد زیادی جلو رفته (بخش کنفرانس و روم مونده که اونا ایشالا چشم انداز 20 سالست!)، در مورد سرور هم خیلی خوب تونستیم پیش بریم (مسلماً بهترین کد هارو ننوشتیم ولی خب کار میکنه!!)...
یه چیز خیلی مهم رو ولی فراموش کردیم که اصلاً حتی به ذهنمون هم نرسیده بود! اینکه سرور باید خارج از متدهای doGet و doPost پیغام هایی رو برای کلاینت ارسال کنه... (مثلا بش بگه فلانی بت PM داده! و امثالها!)
در این مورد با چندتا استاد دیگه (که از شما بهتر نباشن اوناهم خیلی کمکم کردن و مثل شما منم خیلی اذیتشون کردم! :لبخند:) صحبت کردم و توی حرف همه، WebSocket و Comet مخصوصاً دیده میشد!
یه مثالی توی خود NetBeans IDE هست که یه چت روم تحت وب رو با GlassFish راه اندازی کرده، اونجا برای ارسال پیغام از AsyncContextهای اشیاء Request و زخیرشون توی یه Queue و در نهایت ارتباط نابه هنگام توی یه ریسمان جداگونه استفاده کرده...
مشکل اینجاست که من هنوز نمیدونم چطور باید این پیغام های ناگهانی رو کلاینت دریافت و مدیریت کنه (شاید Listener مخصوصی داره یا راهی که من نمیدونم...)
لطف کنین و بگین اصلاً این چیزایی که فهمیدم درسته یا نه و اصلاً به درد این پروژه میخوره؟ در مورد Comet و WebSocket هم فکر میکنم بی اطلاع نباشم ولی خب در مورد اوناهم راهنمایی یا رفرنسی اگه بدین بیش از قبل بتون مدیون میشم.
ببخشید پرحرفی کردم.

- این تاپیک در مورد انتخاب تکنولوژی بود... اگه لازمه بگین تا تاپیک جدیدی ایجاد کنم و اونجا مزاحمتون شم یا اینکه عنوان تاپیک رو عوض کنم... -

cups_of_java
دوشنبه 07 مرداد 1392, 01:00 صبح
حوابتون رو نوشتم اما ثبت نشد... منم الان خیلی خسته ام دیگه
اگه دوست داشتین به من پی ام بدین تو یاهو زمانی که بودم راهنماییتون می کنم

hamid1129
چهارشنبه 09 مرداد 1392, 02:29 صبح
دوست عزیز شما برای پیاده‌سازی برنامه چت در جاوا نیاز به دونستن اطلاعات زیادی دارین. به قول دوستمون پروژه‌ی نسبتا سنگینیه برای شروع کار.
اما اگر این سناریویی باشه که من بخوام اونو پیاده کنم به ترتیب زیر عمل می‌کنم.
۱-از فریم‌ورک Spring به عنوان Container کلی برنامه و DI استفاده می‌کنم.
۲-از یکی از پیاده‌سازی‌های JMS به عنوان بستر اصلی برای ارسال و دریافت پیغام ها استفاده می‌کنم. (یکی از بهترین پیاده سازی ‌های اون RabbitMQ هست ( که در چارچوب کلاینت/سرور نصب می‌شه که نتیجه‌ی اون فراهم بودن زمینه استفاده با زبان‌های دیگه هم هست. )
از طرف دیگر توی اسپرینگ Template کاملی برای یکپارچه کار کردن با JMS در فریم‌ورک فراهمه.
۳-از یکی از پیاده‌سازی‌های Document Database مثله MongoDB برای نگه‌داری اطلاعات کاربران و سایر داده‌ها مثله آرشیو چت (اگر قرار باشه سمت سرور نگه‌داری شه) استفاده می‌کنم. ( اینجا هم من Spring Data را دارم)
۴- برای یو آی برنامه‌ هم از JSF و بالای اون Primeface استفاده می‌کنم ( با تغییرات کوچیکی نسخه موبایل هم می‌شه درست کرد.)
این بود چارچوب کلی که می‌شه همچین سیستمی را پیاده کرد.
چند نکته هم هست:
-سیستم Request/Response Http اصلا گزینه‌ی مناسبی برای برنامه‌ای مثل چت نیست ، چون اچ‌تی‌تی‌پی اساسا Stateless بنا شده.
-با وب سوکت هم سیستم چت قابل پیاده سازی هست ،(http را Stateful می‌کنه) توی Jee 7 هم پشتیبانی می‌شه ، که نمونه پیاده شده این Spec توی Glassfish 4 هست و شما می‌تونی پیاده کنی برنامتو با این اپلیکیشن سرور.
نکته آخر هم مربوط می‌شه به هاست واسه برنامه! متاسفانه دسترسی به سرویس‌های Amazon EC2 در دسترس نیست ، چرا که بهترین گزینه نصب برنامه‌ها و نگهداری داده‌ها و نصب برنامه‌هایی مثه RabbitMQ در حال حاضر روی این IaaS است.

cups_of_java
شنبه 12 مرداد 1392, 22:29 عصر
hamid1129 درست میگه، اما فکر نمی کنم راه اندازی و کار کردن با RabbitMQ و JMS و MongoDB یا Couchdb همه باهم تو یه پروژه برای شما کار دم دست و راحتی باشه، بهتره آروم آروم بری جلو...
ضمنن اگه میخوای UI چتت وب بیس باشه (که حتمن همینطوره) مجبوری روی HTTP کار کنی که دو گزینه داری:
1- وب ساکت (مرورگر های قدیمی تر رو از دست میدی)
2- LongPolling: استفاده از کتابخانه های کلاینت ساید (یا نظیر JSFایش) که برات این امکان رو فراهم کنه و هر لحظه تو رو از سرور با خبر کنه تو کلاینت. که روی همه مرورگرها کار میکنه.
اما راه 3ام ترکیب ایندو هستش، هستند فریم ورک هایی که اول تشخیص میدن مرورگر طرف چیه بعد یکی از روش های بالا رو انتخاب می کنن که این بهترینه، من نمی دونم تو جاوا چنین فریم ورکی هست یا نه اما توی Nodejs مثلن Socket.io رو ببین، و یکی دو زبان دیگه هست.

در نهایت اگه دنبال یادگیری جاوا هستی همین مسیر رو برو... اگه صرفن دنبال پیاده سازی چت سرور بودی، من جات بودن جاوا رو اصن انتخاب نمی کردم.

محمد فدوی
یک شنبه 13 مرداد 1392, 18:17 عصر
هرچند خیلی کم خودم اطلاعات داشتم دقیقاً به همین دلیلی که cups_of_javaعزیز اشاره کردن یعنی WebBase بودن سرور (که البته امکان داره اگر تونستیم بعداً برنامه دسکتاپش رو هم تولید کنیم) من خودم از همون اول تصمیم داشتم از HTTP استفاده کنم و غیر از اون فریم ورک هایی که اصلاً باشون آشنایی ندارم(!) RMI و CORBA که خیلی هم بشون اعتقاد دارم رو کنار گذاشتم.

سوالی که الان به شدت داره اذیتم میکنه چگونگی ارسال پیغام ها از سرور به کلاینت هست توی HTTP... در لینک زیر یه مثال از سرورچت پیدا کردم، که از سه نوع ارتباط HTTP، RawSocket و RMI استفاده کرده:
http://docstore.mik.ua/orelly/java-ent/servlet/ch10_03.htm
و در بخشی که HTTP رو پشتیبانی میکنه، وقتی کلاینتی از سرور میخواد که مسیج بعدی رو بش بده (با متد GET) جواب به کلاینت ارسال نمیشه و در حقیقت توی یه حلقه در یک ریسمان جدا انقدر منتظر میمونه تا یه مسیج ارسال شه به سرور با متد پست و بعد سرور به همه ی کلاینت هایی که منتظرن توی ریسمان ها پاسخ رو ارسال میکنه!
سوال من اینه که آیا این کار بیش از حد بار پردازشی سرور رو بالا نمیبره؟
و اینکه راه بهتری وجود نداره که لازم نباشه همه ی کلاینت ها مدام توی سرور علاف شن تا مسیجی ارسال بشه؟؟

cups_of_java
یک شنبه 13 مرداد 1392, 19:18 عصر
چرا! دقیقن مشکلش همینه که میگی. و این کار مخصوصن تو زبان هایی که از Threadهای سیستم عاملی استفاده میکنن (مثل جاوا) خیلی هزینه بر هستش و اصلن مقیاس پذیر نیست.

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

cups_of_java
یک شنبه 13 مرداد 1392, 19:36 عصر
بیا اینو ببین (http://afshinm.name/blog/1391/07/28/%D8%A8%D8%A7-nodejs-%D9%88-socket-io-%DB%8C%DA%A9-%DA%86%D8%AA-%D9%85%D8%A8%D8%AA%D9%86%DB%8C-%D8%A8%D8%B1-%D9%88%D8%A8-%D8%A8%D8%B3%D8%A7%D8%B2%DB%8C%D8%AF/)
توی همین انجمن پیداش کردم، نمونه چت سرور با Nodejs! ببین این کار چقدر راحت اونجا انجام میشه و ایده بگیر. اما بپا مسیرتو گم نکنی و گیج نشی