PDA

View Full Version : سوال: مقایسه فریم ورک j2ee با سایر فریم ورکها؟



rezaee.kimia
یک شنبه 02 آبان 1389, 10:50 صبح
لطفا یک مقایسه از فریم ورک j2ee با سایر فریم ورکها را بدهید؟

saeed_Z_F
پنج شنبه 27 آبان 1389, 09:23 صبح
یه کم جستجو کن دوست عزیز

javaphantom
پنج شنبه 27 آبان 1389, 12:26 عصر
لطفا یک مقایسه از فریم ورک j2ee با سایر فریم ورکها را بدهید؟

جاوا ee یک platform هست نه یک فریم ورک

java_nith
پنج شنبه 11 آذر 1389, 07:44 صبح
جاوا ee یک platform هست نه یک فریم ورک

می‌شه یکم این موضوع رو توضیح بدید

موقعی که اسم از پلتفرم برده می‌شه من به
Windows, Linux
فکر می‌کنم،


مرسی‌

javaphantom
پنج شنبه 11 آذر 1389, 15:58 عصر
می‌شه یکم این موضوع رو توضیح بدید

موقعی که اسم از پلتفرم برده می‌شه من به
Windows, Linux
فکر می‌کنم،


مرسی‌

می تونم بپرسم چه چیز یا چه چیزهایی باعث می که یاد سیستم عامل بی افتی؟

java_nith
یک شنبه 14 آذر 1389, 20:54 عصر
می تونم بپرسم چه چیز یا چه چیزهایی باعث می که یاد سیستم عامل بی افتی؟

بله حتما

از اونجایی که من کتاب که خندم مثلا مثل JAVA SE، میگن که "کراس‌پلتفرم"

که روی همهٔ سیستم عمل‌ها کار می‌کنه، مثل لینوکس و ویندوز ...


توی کتاب PHP هم که خندم، دقیقا اسم کلمشو یادم نمیاد و می‌گفتم سرور پلتفرم
منظورم اینه که روی سرور اجرا می‌شه و جوابشو بصورت HTML به کلینت میده...

برای همین من کلمهٔ پلتفرم رو خیلی‌ در مورد OS شنیدم....

در مورد JAVA EE در ویکیپدیا نوشته که پلتفرم،
ولی‌ من فرقی‌ بین JAVA SE و JAVA EE که میبینم فقط کلاس‌های اضافی‌ که می‌شه ازشون استفاده کرد،
و اگه این کارارو در جوا سه انجام میدادیم می‌گفتم داری از FRAMEWORK اون استفاده میکنی‌، مثل JMF...
و اینکه در JAVA EE پلتفرم یعنی‌ GLASSFISH مثلا

من تازه کارم توی JAVA EE، و اکثر توی این forum که سرچ می‌کنم میگن FRAMEWORK،
و اینجوری که منم فهمیدم پلتفرم

می‌شه حالا شما یکم در مورد این توضیح بدید؟؟؟

javaphantom
یک شنبه 14 آذر 1389, 23:57 عصر
بله حتما

از اونجایی که من کتاب که خندم مثلا مثل JAVA SE، میگن که "کراس‌پلتفرم"

که روی همهٔ سیستم عمل‌ها کار می‌کنه، مثل لینوکس و ویندوز ...


توی کتاب PHP هم که خندم، دقیقا اسم کلمشو یادم نمیاد و می‌گفتم سرور پلتفرم
منظورم اینه که روی سرور اجرا می‌شه و جوابشو بصورت HTML به کلینت میده...

برای همین من کلمهٔ پلتفرم رو خیلی‌ در مورد OS شنیدم....

در مورد JAVA EE در ویکیپدیا نوشته که پلتفرم،
ولی‌ من فرقی‌ بین JAVA SE و JAVA EE که میبینم فقط کلاس‌های اضافی‌ که می‌شه ازشون استفاده کرد،
و اگه این کارارو در جوا سه انجام میدادیم می‌گفتم داری از FRAMEWORK اون استفاده میکنی‌، مثل JMF...
و اینکه در JAVA EE پلتفرم یعنی‌ GLASSFISH مثلا

من تازه کارم توی JAVA EE، و اکثر توی این forum که سرچ می‌کنم میگن FRAMEWORK،
و اینجوری که منم فهمیدم پلتفرم

می‌شه حالا شما یکم در مورد این توضیح بدید؟؟؟

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

اول از همه اینکه شاید بگی چرا من انقدر دارم به کلمه گیر می دم. شاید خیلی ها هم انتقاد من رو بخونن عصبی هم بشن که این بابا چرا به کلمات انقدر گیر می ده.

یکی از دلایلی اینکه خیلی ها توی ایران دنبال جاوا نمی رن بخاطر اینکه زحمت یادگیری مفاهیم اولیه رو هم به خودشون ندن. شما هزاران بار از دات نت کارها کلمه dot net framework رو شنیده اید. کسانی که با تکنولوژی net. کار می کنن مخصوصا دائم کلمه framework رو استفاده می کنند. دلیلشم سادست چون کل دنیای net. مخفوظ توی یک frame هست. دقیقا مثل بچه ای که توی رحم مادرش هست و داره از اون جفت یا از طریق اون بند ناف تغذیه می کنه و هرچی که مادرش می خوره تبدیل به چرک و خون می شه و اونم تغذیه می کنه. همه چیز بستست. دقیقا frame هست. دنیا کوچیکه در نتیجه انتخاب هم دایره اش شعاش کوچک هست. هیچ وقت صحبت از platform نمی شه برای انیکه net. یک platform نداره اونم روی سیستم عاملش سواره. پس ما هیچ وقت نباید توقع داشته باشیم که صحبت از platform بشه توی net. برای همین هست که کلمه framework رو زیاد می شنوی از net. بازا.

اما داستان توی not. متفاوت هست دنیا خیلی وسیعتره دیگه از اون محیط کوچیک frame اومدی بیرون حق انتخاب داری دیگه باید خودت تصمیم بگیری بس دونستن اینکه چی می خوای و چی کار می خوای بکنی خیلی مهم هست. برای همین هست که من به کلمات خیلی اهمیت می دم چون انقدر وسعت انتخاب زیاده که شما وقتی می گی framework jee داستان به یکی دو تا ختم نمی شه.

Seam Spring Struts و و و کلی framework دیگه وجود داره که در یک platform خاص java نوشته شده. خوب دیگه پس همونطور که اشاره کردم دایره دید وسیع شده پس سوال هم باید شعاع دیدش معلوم بشه.

اما داستان platform و framework

هر چند که توی همین فروم در مورد صحبت شده اما باز من یک توضیح مختصر می دم با مثال

platform : هر جا که عمل ساخت بتونی انجام بدی به اون محیط به اون منطقه اصطلاحا می گن platform ربطی فقط به کامپیوتر نداره برای کار عمرانی هم استفاده می شه. علت اینکه شما شنیدید که می گن روی platform windows یعنی اینکه windows یک محیط ، یک منطقه یا یک سکویی هست که داری عمل ساختن حالا می تونه application تو باشه می تونه framework باشه صورت می گیره. این به این معنی نیست که windows در اصل یک platform هست ولی در یک لایه بالاتر از os یک محیط هست که اجازه می ده که شما عمل ساختن رو انجام بدین.

داستن cross platform : با اومدن VM یا همان Virtual Machine سعی شد که نقش مدیریتی OS کمتر بشه برای application ها. یعنی OS به جای خودش بمونه و یک لایه بالاتر بشینه به نام VM که بیاد مدیریتی قوی تر داشته باشه و آشغال به خورد OS نده. اما این VM هم برای خودش داستان داره.

تصور کن روی یک سکوی نفتی بیایی ساختمان بتنی درست کنی. خنده داره. نتیجه VM ها هم یک سری محدویت دارن. از اونجایی که VM ی که روی Windows هست فقط Windows می شناسه برای همین که فرقی نمی کنه که بگی windows platform یا بگی net. platform جفتش یه آشغاله. البته از نظر من.

برای not. چه معنی می ده. یعنی وقتی می گیم Java Platform یعنی چی؟ یعنی اینکه ما عمل ساخت رو داریم با یک سری library یا API انجام می دیم که همشون برای JVM قابل فهم هست.

وقتی می گن net. platform یعنی عمل ساخت محصول کاملا با DLL فایلهایی هست که VM یا CRL اونها رو می شناسه. API جاویی نمی اندازیم توی application مون. مثل این نیست که بیایی روی سکوی نفتی برج میلاد درست کنی.

حالا می گن جاوا سه تا platform دراه یعنی چی؟ یعنی همونطور که برات توضیح دادم برای هر قسمت یک JVM جدا در نظر گرفته با API های مخصوص به اون قسمت که وقتی می خوای application رو بسازی می آیایی با اون API ها کار می کنی. وسطش delphy نمی زنی یا c#.


framework : یک application ناقص که از یک سری API مربوط به Platform خاصی ساخته شده و از اسمشم معلومه محدود هست یک frame هست یعنی دست باز نیست. یک سری به تو best practice می ده و یک سری محدودیت برات ایجاد می کنه که مثلا بصورت خاصی نتونی کد بزنی باید یک ساختاری رو رعایت کنی به اضافه اینکه یک سری تنظیمات هم باید براش انجام بدی. کمکت می کنه تا بتونی محصولی بهتر و سریعتر و آسونتر تولید کنی. مثلا فرض کن می خوای ساختمون بسازی اگر جرثقیل نباشه بتونر نباشه و و و این ماشین ها نباشن چقدر برای ساختن یک خونه ۴ طبقه زمان و هزینه می شه. نکه نمی شه ولی پدر در می یاد. مهم اینکه وقتی ما می گیم فریم ورک جاوایی یعنی روی platform جاوا ساخته شده یعنی اینکه با یک سری api هایی که مخصوص اون platform هست این فریم ورک ساخته شده.
نتیجه : فریم ورک خودش زیر مجموعه ای از یک platform هست.

javaee یک platform هست یعنی اینکه یک سری API وجود داره که شما می تونید یک محصول تحت وب با استفاده از این API ها درست کنی. حالا می تونه اون محصولت یک framework باشه می تونه یک محصول مستقل باشه. JEE یک مفهوم گسترده تر از framwork هست.

حالا این platform یعنی JEE اومده یک سری تکنولوژی رو تعریف کرده و براشون یک سری API داده بیرون که بتونی این تکنولوژی رو پیاده سازی کنی. مثل email زدن مثل message مثل Transaction Managment مثل servlet مثل EJB و و وو . تمام این تکنولوژی ها شامل API های مخصوص خود شون هستن که شما می تونید با داشتن این API ها عمل ساخت رو انجام بدین.

در کنار این API ها که بعضی وقتها عمل ساخت خیل با هاشون سخت و زمان گیر هست شرکتهای مختلف اومدن یک سری framework دادن بیرون که وقتی زیر ساخت این فریم ورک ها رو می بینی در اصل از همون API های استاندارد خود Platform استفاده کردن ولی چند لایه abstract تر نوشتن که developer بتونه سری تر عمل develop رو انجام بده ولی با محدودیتی که او فریمورک بوجود آورده با تمام مزایا و معایبش.

اومیدوارم که توضیحاتم تونسته باشه به دردت بخوره. همانظور که اشاره کردم توی اول صحبتهام framework توی platform javaee زیاده. باید بگی کدوم با کدوم رو می خوای مقایسه کنی تا بشه به سوالات توضیح داد یا اینکه بگی کدوم تکنولوژی توی javaee رو با دیگری مقایسه کنیم مثلا فرق servlet با JSF چیه؟

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

java_nith
دوشنبه 15 آذر 1389, 04:03 صبح
واقعاً مرسی‌ از توضیح کامل و خیلی‌ مثل‌های عالی

مرسی‌ از اینکه وقتتون رو گذاشتید...
من والا این java رو از پایه دارم یاد میگیرم، و کتاب و درسشم دارم می‌خونم :=)
java se رو تموم کردم، الانم دارم java ee می‌خونم..


پس اینجوری که من فهمیدم لپّ کلوم
می‌شه گفت که کلاس‌های زیاد اومدند framework رو درست کردم
و framework زیاد باهم اومدند platform رو درست کردم
یه مجمی از framework هارو می‌شه گفت platform؟
و آیا glassfish / tomcat پلتفرم java ee به حساب میاد؟؟؟
و اینکه آیا EJB یک نو framwork به حساب میاد؟

بازم مرسی‌ از جواب کاملتون

javaphantom
دوشنبه 15 آذر 1389, 08:53 صبح
می‌شه گفت که کلاس‌های زیاد اومدند framework رو درست کردم

بله مجموعه ای ار کتابخانه ها که می تونه مجموعه ای کلاسها باشه.


و framework زیاد باهم اومدند platform رو درست کردم
یه مجمی از framework هارو می‌شه گفت platform؟

کاملا غلطه. platform جایی هست که اون کلاس فایلها معنی دار می شه و می تونی با اون کلاس فایلها هرچیزی رو بسازی.

وقتی می گیم java platform یعنی به صورت خالص از کلاسهای جاوا یا همون api جاوا برای ساخت حالا هرچی می تونه فریم ورک باشه می تونه نباشه استفاده شد.

net. platform یعنی از dll هایی که به زبان C# یا هر کوفته دیگه که VM ماکروسافت می فهمه بصورت خالص اون فریم ورک یا هر چیز دیگه ساخته شده.

عزیزه من framework هم خودش یک محصول هست مثل یک دفترچه تلفن فرض کن. مجموعه ای دفترچه تلفنها که چیزی درست نمی کنند.

tomcat یک container هست. glassfish هم مجموعه ای از container ها هست. اما داستان به اینجا ختم نمی شه . همینطور EJB. اونم داستان خودشو داره. ولی اینها platform حساب نمی شن.

در مورد اینها بعدا در یک topic دیگه بحث می کنیم

java_nith
دوشنبه 15 آذر 1389, 19:38 عصر
کاملا غلطه. platform جایی هست که اون کلاس فایلها معنی دار می شه و می تونی با اون کلاس فایلها هرچیزی رو بسازی.



بازم مرسی‌ از جوابتون، با این جمله فکر کنم همرو فهمیدم :=)

فکر کنم وقتشه که یکم بیشتر در مورد جوا ایی مطالعه کنم،
بد اگه سوالی بود بگم، فعلا سر EJB هستم و بعدش میرم سر JPA



بازم مرسی‌ از جوابتون، از اینکه حوصله میکنیدو انقدر با سلیقه جواب میدید (اینو کولی میگم)