# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > مقالات مرتبط با Microsoft .Net Framework >  یک سوال سرنوشت ساز، مقایسه J2EE و دات نت!

## khafanovich

با عرض سلام و خسته نباشید خدمت همه برو بچه های سایت.
راستش رو بخواهید من تو یک شرایطی قرار گرفتم که میخواهم یکی از دو تکنولوژی زیر رو انتخاب کنم خیلی هم تحقیق کردم ولی واقعا به نتیجه ای نرسیدم.چون خیلی ها با این سوال تعصبی برخورد میکنند. از دو تکنولوژی زیر کدام را انتخاب میکنید چرا؟
1-j2ee
2-dot net
لطفا جنبه های مختلف برنامه نویسی مثل application,web base,server side,database  و غیره رو بررسی کنید.
متاسفانه به علت کمبود وقت در فرصت بعدی توضیحات بیشتری را میدهم.
موفق باشید.

----------


## Vahid_Nasiri

اگر به بخش asp.net‌ مراجعه کنید دقیقا یک تاپیک قدیمی در این مورد و مقایسه آنها از دید صاحبنظران موجود است:
از لحاظ کارآیی و پرفورمنس ای اس پی دات نت بهتر عمل می کند و سیستم واقعا جامعی است. تنها مورد نگرانی که درباره ی آن در دنیا وجود دارد بحث کمتر تست شدن آن است نسبت به محیط دیگر ذکر شده.
خیلی رک!
اگر قصد مهاجرت دارید بدون شک جاوا و J2EE حرف اول را در کانادا می زنند.
اگر قصد زندگی در ایران را دارید دات نت بدانید (در حد خوب)یکی از برگهای برنده در کاریابی است.
( و در ضمن علاقه ای هم به سرهم کردن کلماتی که تجربه ی عملی در مورد آنها ندارم و در ادامه با سواد جلوه دادن خود ندارم )
موفق باشید

----------

دوست عزیز من هم خیلی تحقیق کردم و آخر به این نتیجه رسیدم که جفتش خوبه و باید در یه سطحه هر دو رو بلد باشی
چرا؟چون مثلا یه برنامه میخوای بنویسی برای یک شرکت تو یه هفته هی چه قدر که جاوا بلد باشی و جاوا هم خدا باشه
نمیتونی(اگه برنامش زیاد باشه)
ولی با دات نت 2 دیگه سرعت و سادگی به اوج میرسه
جفتش خوبه ولی اگر واسه کار میخوای همون طور که استاد گفتن اونوریا به جاوا خیلی اهمیت می دن
تو با هر کدوم دوست داری کار کن
اطمینان بهت می دم که تو هر کدوم خوب باشی کارت می گیره
موفق باشی

----------


## ناصرقلی

ftp://ftp.software.ibm.com/software/...2ee-dotnet.pdf

----------


## Abbas Arizi

من فقط این رو میتونم بگم که مقایسه‌هایی که یک محصول رو به طور مطلق نسبت به دبگری برتر میدونن قابل قبول و منطقی نیستند. مثل همین مقایسه آقای ناصر قلی. توی این فقط برتریهای j2ee به عنوان مقایسه :shock: ذکر شده‌اند. در نهایت علیرغم این که من سوادم به هیچ کدوم اینها نمیرسه به نظرم هر دوشون چیزهای توپی هستند. :mrgreen:

----------


## ناصرقلی

این مقایسه من نیست مقایسه IBM  است. در pdf  که آدرسش موجوده

----------


## Vahid_Nasiri

مقاله قدیمی است
ثانیا به صورت تحریف شده فقط یک جدول آن ارائه شده در اینجا!

اینطوری وقت تلف نکنید

----------


## ناصرقلی

:evil2:

----------


## Vahid_Nasiri

قبلا هم این مطلب را عنوان کرده بودی!
http://www.barnamenevis.org/vi...highlight=j2ee

----------


## Vahid_Nasiri

علاوه بر منابعی که در لینک فوق معرفی شد دیدگاه های دیگر:
http://www.rollerweblogger.org/page/roller/20030315

http://www.objectwatch.com/FinalJ2EEandDotNet.doc

http://www.theserverside.com/article...J2EE-vs-DOTNET

http://www.javaworld.com/javaworld/j...8-j2eenet.html

http://www.sys-con.com/webservices/article.cfm?id=90

----------


## ناصرقلی

:قهر:

----------


## Vahid_Nasiri

تصاویر جالبی دارد!  :evil2: 
http://www.gotdotnet.com/team/compar...%20Results.doc

----------


## Inprise

> از لحاظ کارآیی و پرفورمنس ای اس پی دات نت بهتر عمل می کند و سیستم واقعا جامعی است





> علاقه ای هم به سرهم کردن کلماتی که تجربه ی عملی در مورد آنها ندارم و در ادامه با سواد جلوه دادن خود ندارم





> اینطوری وقت تلف نکنید


 :wink: 

**************

قبل از اینکه نظرم رو عرض کنم چند تا نکته مقدماتی لازمه ذکر بشه تا ابهام موجود در ذهن بعضی از دوستان بر طرف بشه  :wink:  منطقا" مقایسه دات نت و  J2EE یه چیزی است تو مایه های مقایسهء نوت بوک و MainFrame . ( عمدا" از این دو لفظ برای تشبیه استفاده کردم . بعدا" مشخص میشه چرا ) هر دو به نوعی کامپیوتر هستند ، یعنی محاسبه کننده و هر دو از سخت افزارهائی تحت کنترل نرم افزار تشکیل شده اند اما هر کدام برای هدف خاصی طراحی شده اند و برای کاربرد خاصی مناسب هستند . مقایسه های مختلفی بین این دو تکنولوژی روی اینترنت موجوده که من به دو دسته تقسیمشون میکنم . گروه اول کسانی هستند که طرفدار یکی از دو تکنولوژی هستند ( به هر دلیلی ) و قصد دارند با براهین و ادله بعضا علمی و بعضا غیر علمی برتری یکی رو بر دیگری اثبات کنند و گروه دوم کسانی هستند که بدون تعصب اما با نیت مشخص کردن برتریهای هر تکنولوژی بر دیگری در حوزه ای خاص تولید شده اند مثلا" یکی میگه ASP .NET برای تولید محتوای وب بهتره و  RMI برای ایجاد ارتباط  Multi Tire و ... و فی الواقع بگن هر دو چیزهای خوبی دارند اما هر کدام در یک بخش . "نظر شخصی" من اینه که هر دو گروه اشتباه میکنند . اول در مورد علت این طرز فکر توضیح میدم ، بعد در مورد بخشهای مختلف هر دو تکنولوژی یه سری مطلب عرض میکنم .

سوال : چرا فکر میکنم میشه به دات نت و  J2EE به عنوان دو موجودیت مستقل نگاه کرد و هر دو رو بررسی کرد اما مقایسه نکرد ؟

جواب : بخاطر مؤلفه های ذاتی هر کدام از این تکنولوژی ها .  J2EE یک استاندارد برای تحقق یک  Application Server است در حالیکه دات نت یک " نرم افزار" است که "فقط" کلاسهای "پایه" برای تولید نرم افزارهای مستقل یا مرتبط شبکه ای رو در اختیار توسعه گر قرار میده .

دات نت : یعنی یک بستر برای ایجاد نرم افزار . یک بار توسط مایکروسافت نوشته شده و بقیه باید از اون استفاده کنند اما تمام دات نت چیزی بیشتر از یک "بستر اجرای کد و کتابخانه مقدماتی کلاس" نیست . تمام دات نت یک FrameWork است و یک محیط تولید نرم افزار + مستنداتی جهت ایجاد ابزارهای متفرقه تولید نرم افزار (  e.g : compiler )

J2EE : یک استاندارد است که مشخص میکند برای پاسخ دادن به یک نیاز نرم افزاری " سازمان مقیاس" چگونه باید با اجزاء نرم افزار رفتار کرد و برای مدیریت طول عمر نرم افزار (  Application Lifecycle Management ) چکار باید کرد . این استاندارد توسط سان ارائه شده . خیلی ها مبتنی بر این استاندارد نرم افزارهای خودکار سازی ایجاد کرده اند ، سان مایکروسیستمز نیز هم . استاندارد  J2EE میگه چگونه با "زبان جاوا" یک FrameWork ایجاد کنیم ، چگونه کتابخانهء کلاس برای تمام مقاصد بنویسیم ، بانک اطلاعاتی چطور باشه و ... و شرکتهای متعددی بر اساس این استاندارد  Application Server های مبتنی بر  J2EE ایجاد کرده اند که برخی شون تمام  J2EE رو پیاده سازی کرده اند و برخی شون فقط بخشی از اون رو . در مورد جزئیات  Application Server های  J2EE کمی بعد توضیح میدم .

سوال : پس احتمالا" کلید درک تفاوت ماهیتی دات نت و  J2EE در درک صحیح از مفهوم  Application Server خلاصه میشه ، درسته ؟

جواب : بله .  Application Server یک بستهء نرم افزاری است که وظیفه اش  Application Lifecycle Management است . یعنی از ابتدای تولد یک نرم افزار "سازمان مقیاس" تا انتهای اتمام تولید ، باید به تمام نیازهای نرم افزاری پاسخ دهد . یعنی اگر برنامه نویس به یک FrameWork احتیاج داشت ،  Application Server یک Framework به او بدهد ، اگر بانک اطلاعاتی خواست ،  Application Server یک بانک اطلاعاتی کامل برایش فراهم کند ، اگر وب سرور خواست ،  Application Server یک وب سرور تمام عیار به او بدهد ، اگر برای ارسال نامه های الکترونیکی برنامه اش به یک  SMTP سرور نیاز داشت ،  Application Server یک سرور  SMTP به او بدهد ، اگر قرار شد برای احراز هویت از  Kerberos استفاده کند یک پیاده سازی  کربرایزد از استک TCP/IP در  Application server وجود داشته باشد ، اگر خواست برای منطق محاسباتی برنامه اش یک  GUI ایجاد کند ،  Application Server یک IDE و  GUI Builder به او بدهد ، اگر خواست داده های کاربری رو از کارتهای هوشمند (  smart Card ) دریافت کند ، رابطهای لازم و API های مربوطه را از  Application Server بگیرد و ... به دیگر بیان  Application Server یک محیط Integrated است برای طراحی و تولید و مدیریت و توزیع و کاربرد یک نرم افزار "سازمان مقیاس" . شاید این سوال در ذهن عده ای ایجاد بشه که مگه تمام اجزاء یک  Application Server رو نمیشه بصورت منفرد پیدا کرد ؟ وب سرور ،  GUI Builder ، سرور پست الکترونیکی ، توابع احراز هویت ، بستر اجرای کد و ... ؟ جواب مثبته اما چه کسی میتونه تضمین کنه تمام این اجزاء دارای "سطح" ی یکنواخت و یکسان باشند ؟ ( Innovative Integrated Interface ) یا مثلا" کی میتونه تضمین کنه یک بستر اجرای کد بتونه توابع دسترسی به بانک اطلاعاتی رو با بهینه ترین وضعیت تولید کنه ؟ یا تضمین کنه این عناصر با هم سازگاری مناسبی داشته باشن ؟ همگی تولید شده توسط یک بستر خاص باشند که توسط همون بستر بشه بین اونها ارتباط برقرار کرد ؟ اینجا مسئله سازگاریه . یعنی اگر قرار شد یک گروه نرم افزاری برای بزرگترین سازمان بیمه غیر دولتی امریکا یک راهکار جامع  ERP تولید کند ( یا بخرد و خصوصی سازی کند برای محیطش ) باید به چه بستری اعتماد کنه که مطمئن باشه تمام درخواستهای نرم افزاری " سازمان مقیاس" ش رو میتونه جواب بده و مشخصه های اون ، سازمانش رو به یک نرم افزار خاص ، سخت افزار خاص ، پروتکل خاص و ... محدود نمیکنه ؟ ( اصولا" محدودیت در ادبیات آی تی ، سطح اعتماد و قابلیت وثوق -  Reliability - رو کاهش میده ) اینجاست که یک  Application Server خودنمائی میکنه . یک  Application Server تضمین میکنه که از بستر اجرای کد گرفته تا وب سرور ، از توابع امنیتی گرفته تا بانک اطلاعاتی ، از IDE گرفته تا ابزارهای حمایت از  UP ( یا  Unified Process ) و ... در بستهء نرم افزاریش وجود داره .

سوال : خوب حالا با این توصیفات  J2EE دقیقا" چیه ؟
جواب : J2EE  در واقع یوتوپیا ( آرمان شهر ) شرکت سان مایکروسیستمز است برای تولید یک  Application Server.

نتیجه : فکر میکنم مطالب بالا باعث شده باشه این تصور غلط که میشه بین دات نت و  J2EE مقایسه ای وجود داشته باشه ، از بین برده باشه .

ابسترکت : چه زمانی  J2EE مناسب است ؟

شرکت سان غیر از ارائه یوتوپیای یک  Application Server کارهای دیگری هم انجام داده . مثلا" توسعه زبان جاوا . طبیعیه که زبان جاوا زبان استاندارد توسعه نرم افزارهای مبتنی بر  J2EE باشه ، هر چند بر خلاف اظهارات ناشیانه برخی ،  J2EE و خصوصا" بستر اجرای کدش ، به زبان جاوا منحصر نیست . یعنی همونطور که [مثلا"] بستر دات نت قابلیت پذیرش زبانهای مختلف رو داره ، بسترهای مبتنی بر جاوا هم میتونن به سایر زبانهای برنامه نویسی سرویس بده . یعنی براحتی میشه بین جاوا و سایر کتابخانه هائی که توسط سایر زبانهای برنامه نویسی تولید شده ارتباط برقرار کرد . (  Java Native Interface ) هر چند که مثل دات نت منعطف نیست . سان داره تلاش میکنه یک  Application Server مبتنی بر استاندارد خودش یعنی  J2EE تولید کنه اما هنوز تکمیل نشده . ( سان فعالیت گسترده ای برای توسعه خود جاوا و بهینه سازی منطق  J2EE و کلاسهای تولید نرم افزار داره ، فعالیتهای خفنی در هم در عرصه سخت افزار داره ، نباید انتظاری بیش از این ازش داشت ) اما نگارشهای عملیاتی متعددی از  Application Server های مبتنی بر  J2EE وجود داره که فقط یکی از اونها تمام جزئیات رو پیاده سازی کرده .

معرفی Application Server اوراکل به عنوان جامعترین Application Server :

در ایران اغلب اوراکل رو به عنوان یک بانک اطلاعاتی میشناسن در حالیکه بانک اطلاعاتی اوراکل فقط بخشی از اون چیزی است که اوراکل تحت عنوان e-Bussines Suite منتشر کرده .  Application Server اوراکل تمام اون چیزهائی که در وصف یک  Application Server عرض کردم داره . بطور مختصر و لیست وار در موردش توضیحاتی عرض میکنم تا کمی روشنتر بشه بحث :

1. یک بانک اطلاعاتی کامل : اوراکل فعلا" تنها بانک اطلاعاتی است که نه تنها نسخه های متعددی برای  MainFrame ها داره ، برای تمام بسترهای نرم افزاری و سخت افزاری موجود هم نسخه هائی رو ارائه کرده . بزرگترین بانک اطلاعاتی که این حقیر در جریانش هستم و با اوراکل کار میکنه بانک اطلاعاتی وزارت انرژی ایالات متحده آمریکاست که روی یک MainFrame شرکت  IBM اجرا شده . بانک اوراکل یک نسخهء کامل زبان پرس و جوی ساخت یافته یعنی  PL/SQL ، یک سوئیت کامل بنام  PSP که برای تولید صفحات وب بطور مستقیم از  PL/SQL استفاده میکنه است . اوراکل تنها بانک اطلاعاتی است که موتور آن (  DB Engine ) هم میتونه بصورت توزیع شده  و چند بخشی ( Clustered ) اجرا بشه . حتی میشه بخضی از انجین رو روی یک بستر کوچک وینتل( ویندوز + اینتل) و بخشی دیگر رو روی یک ماشین غول پیکر HP مجهز به  HP-UX اجرا کرد . حتی میشه حین سرویس دهی بانک ، بانک رو از یک پلت فرم به پلت فرم دیگه منتقل کرد . ( ویژگی های منحصر به فردش رو عرض کردم )

2. یک بستر اجرای کد نرم افزار : Application Server شرکت اوراکل بطور کامل "بخش نرم افزاری  J2EE " یعنی کتابخانه های کلاسش رو پیاده سازی کرده .

JDBC Connectors
JSP Engine
JavaBeans Engine
RMI
JMS
JINI
JMX
JIRO
J2EE CORBA ORB
JXTA
JXML
JCP
JNI
Web Service Implementation
 و ...

یعنی هر کسی هر برنامه ای مبتنی بر  J2EE نوشته باشه در بستر  Application Server اوراکل قابل اجرا و سرویس دهی است . اوراکل  J2SE و  J2ME رو هم حمایت میکنه ( دومی برای تولید برنامه های موبایل برای پورتابل دیوایسها کاربرد داره ) . همچنین اوراکل بطور کامل یک نسخه از  Java Smart Card API رو پیاد سازی کرده . در حال حاضر جاوا تنها ابزاری است که میشه توسط اون تقریبا" برای تمام کارتهای هوشمند برنامه نوشت ضمن اینکه توسط  قابلیت فوق الذکر قطعه کدهای قابل ذخیره سازی در کارتهای هوشمند هم قابل تولید است . فرض کنید یک تابع تبدیل تاریخ مینویسید و تابع رو داخل کارت هوشمند قرار میدید ، هر وقت نرم افزار اون تابع رو صدا زد کارت رو در کارت خوان میگذارید و برنامه شما تابع رو روی کارت هوشمند صدا میزنه و جواب میگیره بدون اینکه در مورد پیاده سازی اش چیزی بدونه .

3. اوراکل یک وب سرور مخصوص به خود ، همچنین سرورهای  :

POP3
SMTP
FTP
WebDav
Cache Server
Common Internet File system - CIFS
LDAP compatible Directory Service
و...

رو بطور کامل پیاده سازی کرده . تمام این سرورهای نرم افزاری کاملا" با هم سازگار هستند و برای کار روی یک محیط مبتنی بر  J2EE بهینه سازی و خصوصی سازی شدن .

4. اوراکل یک content Management System داره که قابلیت ایجاد پورتال های مبتنی بر وب روی اینترنت یا اینترانت رو به "نرم افزار" های J2EE میده .

5. اوراکل یک محیط کامل تولید برنامهء کاربردی بنام اوراکل  J Developer داره که یک  IDE و  GUI Builder کامل است .

6. اوراکل یک سرویس ( یعنی نرم افزارهائی + سرویس دهنده هائی ) برای ایجاد ویژوال گزارش از بانک اطلاعاتی داره . گزارشها میتونن طراحی بشن تا از داده ها استفاده کنن و خروجی بدن ، یا یک سرویس تولید گزارش به یک نرم افزار متصل بشه تا در زمان اجرا مولفه های گزارش به سرویس گزارش درخواست داده بشن تا گزارش رو طراحی کنه ، به داده متصل کنه و خروجی بده . بهش میگن  Reporting Service

7. ابزارهای مددیریتی قدرتمند برای کنترل تراکنشهای بانک اطلاعاتی خارج از محیط بانک ( منحصر به فرد ) ، کنترل وضعیت اشیاء مثلا"  EJB ها و سطح دسترسی آنها ، انتقال سرویسهای از یک پلت فرم به پلت فرم دیگر بدون توقف روند سرویس دهی ، صف گذاری منطقی و مدیریت شده درخواستها و ...

8.  Load Balancer اوراکل کمک میکنه سرویسها ، بانکهای اطلاعاتی و سرورها و سایر نرم افزارهای مبتنی بر وب یا شبکه روی یک بستر توزیع شده اجرا بشن و اگر فشار ترافیک روی یک سرور زیاد بود ،  Load Balancer درخواستها رو به سایر سرورها که توسط قابلیت Replication Service اوراکل بصورت  mirror  آماده هستند هدایت میکنه . این  Load Balancer قابلیت درک جلسات کاربری ( Session ) ها یا مثلا" متغیرهای سطح برنامه ( Application - Level Variables ) رو داره . یعنی اگر شما به کتابخانهء ملی سنای امریکا (  Pwered By Sun ) لاگ این کنید و در حال انتقال صفحاتی از یک کتاب به دایرکتوری شخصی خودتون باشید و فشار روی سرور بانک اطلاعاتی زیاد بشه ، درخواستهای بعدی شما بصورت خودکار به سرور خلوت تری ارسال میشن بدون اینکه  State-Less بدون محیط به کانال ارتباطی شما لطمه بزنه ، یعنی هویت شما و  Session شما همچنان معتبر است اما روی یک سرور دیگر ( این منحصر به فرد نیست اما فقط شرکت مکرومدیا در JRUN که اون هم یک  Application Server نصفه نیمه است چنین چیزی داره که در مورد اون هم مطالبی عرض میکنم )

نتیجه اول : اگر شما یک  Application Server کامل و قابل اتکاء میخواهید باید بستهء نرم افزاری فوق العاده گران قیمت  Oracle 11i - e bussines Suite رو تهیه کنید که هر انچه ذکر شد داخلش موجوده .

نتیجه دوم : برای پاسخ دادن به نیازهای "خیلی بزرگ" و " سازمان مقیاس" که هزینه های میلیونی و میلیاردی براش در نظر گرفته میشه و خطا در انتخاب معماری یا عدم سازگاری اجزاء نا بخشودنی است فقط باید از یک  Application Server استفاده کرد که ضمن دارا بودن همه چیز یکجا ، سازگاری ، قابلیت اتکاء و وثوق ، یک شرکت بزرگ و عریض و طویل ازش حمایت کنه . اوراکل یکی از پیشنهادهای موجوده . در بازار  E- bussines دنیا اوراکل قدرتمند ترین فروشنده نرم افزاره ، فقط به عنوان مثال مراجعه کنید به خبری از اوراکل که یک پیشنهاد " نه میلیارد دلاری" برای خرید شرکت  People Soft ( تولید کنندهء  ERP های قدرتمند ) داده . لازم به ذکره 9 میلیارد دلار ، کمی کمتر از نصف بودجهء یکسال جمهوری اسلامی ایران است !!

یاد آوردی اول : یک بستر اجرای کد مثل دات نت ، با  یک استاندارد برای تولید  Application Server یعنی  J2EE قابل قیاس نیست .

یاد آوری دوم : داخل یک  Application Server یک بستر اجرای کد هم وجود داره که سرویسهای خاصی رو ارائه میکنه . شاید بشه این بسترهای مختلف موجود رو با هم مقایسه کرد .


&lt; اتمام مبحث Application Server ها >

سوال : اگر انچه دات نت ارائه میکنه و به همون "شکل" در بسترهای مبتنی بر  J2EE هم موجوده مقایسه کنیم چه نتیجه ای میگیریم ؟

جواب : من دو جور میتونم به این سوال جواب بدم . یکی مبتنی بر تجربه شخصی . یکی مبتنی بر صرفا" ذکر آیتمهای قابل قیاس در مقابل هم .

جور دوم (!) :

الف. کتابخانه کلاس : دات نت و  JDK هر دو کتابخانه های قدرتمندی هستند که اغلب نیازهای پایه برای تولید نرم افزار رو حمایت میکنند . اما برای تولید نرم افزارهای بزرگ مقیاس هیچکدام کافی نیستند . دات نت چیز دیگری ندارد اما برای جاوا راهکارهای دیگری هم وجود دارد . کاربری دات نت راحت تر است . پیچیدگی های دات نت هم کمتر است . نمودار یادگیری جاوا بسیار کم شیب است . ( اگر نمودار عمودی پیشرفت باشه و نمودار افقی زمان ) در حالیکه یادگیری دات نت خیلی سریعتر است .

ب. زمان اجرا : زمان اجرای دات نت تقلیدی صرف از زمان اجرای جاوا ست . هیچ بحثی هم درش نیست . حتی کسانیکه مثل بنده عقلشون کم باشه و بشینن و  IL رو با  ByteCode مقایسه کنن درک خواهند کرد که مایکروسافت خلاقیتی از خودش نشون نداده .  JIT در هر دو محیط خوب است . سرعت اجرای "برنامه" های دات نت از برنامه های جاوا کندتر است اگر از  JIT استفاده نکند . این حقیقت رو هر کسی با چند آزمایش کوچولو میتونه درک کنه . سیستم  Code Caching و  JITC دات نت کمک زیادی به افزایش سرعت برنامه ها کرده . جاوا با عمر طولانی اش به ادعای اسکات مک نلی حدود پنجاه بار بهینه سازی شده در حالیکه دات نت هنوز جوونه . به نظر میاد در این یک مقوله باید منتظر آینده شد . اما فی الحال وضع دات نت در این راستا خوبه .

ج. اتصالات : دات نت از ریموتینگ ، وب سرویس و کام پلاس حمایت میکنه ( بصورت داخلی ) . جاوا بجای ریموتینگ چیزی بنام ریموت متد اینووکیشن داره ، وب سرویس رو حمایت میکنه ، CORBA رو حمایت میکنه ، چیزی بنام  EJB داره که اشیاء شناور در یک "مخزن سازمانی" هستند که افراد ، سرویسها و نرم افزارها بنا به میزان دسترسی میتونن ازش استفاده کنن . کنترلهای دات نت هنوز چنین قابلیتی ندارند و دات نت هنوز راهی برای ایجاد یک  Object Repository سازمانی ارائه نکرده . اشیاء کام پلاس و محیط  MTS ویندوز هم ( با اینکه ربطی به دات نت نداره بطور مستقیم ) مانند  EJB ها منعطف نیستند .  EJB ها  State-Less نیستند .

د. ارتباط با داده : دات نت چیزی بنام  ADO .NET ارائه کرده که راه حلی است منحصر به فرد . جاوا  JDBC رو داره که چه در  connection Pooling و چه در  objecy pooling به خوبی  ADO .NET کار میکنه اما  ADO .NET فوق العاده امکانات زیادی داره . چون اینجا دات نت کار زیاده لزومی به توضیح نیست . من با تمام وجود به  ADO .NET اعتقاد دارم و تصور نمیکنم معادلی داشته باشه ( یکسال و خورده ای پیش چند مقاله کامل در مورد  ADO .NET در سایت ایران دولوپرز نوشتم که این مطلب رو اونجا هم عرض کردم . یکسال قبل )

ه. امنیت : امنیت در این حوزه رو "من" به سه بخش تقسیم میکنم ( تقسیم بندی کاملا شخصی و تجربی )

ه.1) حفاظت از متن کد
ه.2) حفاظت از ارتباطات
ه.3) حفاظت از خود بستر و حفظ مانائی

در مورد اول هر دو محیط ضعیف هستند .  Obfuscator ها نمیتونن به مفهوم واقعی از کد حفاظت کنند و راهکارهای  Third party  موجود هم بیشتر به طنز شبیه هستند . با داشتن  IL یا بایت کد براحتی کد اصلی یا کدی " با قابلیت های" کد اصلی قابل باز-تولید است . پسوردها ، اعداد خصوصی ، کلمه های عبور و ... براحتی قابل بازیافت هستند اگر در متن نرم افزارهای  Managed دات نت یا برنامه ها جاوا بکار رفته باشند . اینجا واقعا هیچ ایمنی " نمیتواند" وجود داشته باشد .

در مورد دوم هر دو محیط با  Open Standard ها کار میکنند . از  SSL گرفته تا  Kerberos و از ارتباط با  Directory Service ها گرفته تا CA . در این مورد تفاوتی وجود نداره .

در مورد سوم تا حالا مستندی که بر قوت یا ضعف یکی دلالت کنه نخوندم ( نمیگم نیست ، نخوندم ) و تجربه شخصی و عملی هم ندارم .

فی المجموع در حوزه امنیت دو محیط چندان متفاوت نیستند .

و. انتقال : جاوا از MainFrame ها تا کارتهای هوشمند رو حمایت میکنه . دات قراره بزودی بسترهای دیگه رو حمایت کنه . پس اصولا" در این زمینه هیچ رقابتی وجود نداره . جاوا پانزده سال جلو تره . من با مونو ( که قراره بشه دات نت روی لینوکس ) کار کردم و فعلا" ناقص و غیر قابل اعتماده . مایکروسافت هم یقینا" تا انتهای 2005 هیچ نسخه ای از دات نت مبتنی بر NIX* ها توزیع نخواهد کرد .

ز. تولید محتوای وب : دات نت ASP .NET رو ارائه کرده . جاوا  JSP رو . سرعت پاسخگوئی دات نت در کاربردهای معمولی بالاتره . اما با توجه به محدودیت ویندوز ( به عنوان تنها بستر دت نت ) برای حمایت از ترافیک و فشار بالا ، اگر کاربردهای خیلی سنگین مد نظر باشه  ASP .NET نمیتونه حرفی داشته باشه .  موتور  JSP هم قابلیت  Clustring داره و میشه مجموعه ای از سرورها رو با " یک موتور" راه اندازی کرد . ( میدونم به بحث ربطی نداره اما یکبار یکی ازم پرسید چرا مایکروسافت برای  MSN و هات میل از فری بی اس دی استفاده میکنه ؟ و نه ویندوز ؟ جواب بنده این بود دلیل هر چیزی هست ربطی به امنیت نداره . سایت خود مایکروسافت با ترافیک بالا و دشمنانی قسم خورده بدون مشکل داره روی ویندوز کار میکنه . اما وقتی قرار باشه  بخاطر ترافیک خیلی بالای مسنجر و ایمیل ، از یک ماشین با مثلا" 30  تا پردازنده استفاده بشه تجربه ویندوز چندان موفقیت آمیز نیست ! در حالیکه فری بی اس دی - اچ پی یو ایکس و سولاریس همین حالا روی ماشینهائی بیشتر از پنجاه پردازنده هم خوب کار میکنند . سان سرور بنام  15K Fire داره - ر.ک بخش سرورهای سایت سان - به قیمت " ده میلیون دلار" میفروشتش و 105 تا پردازنده 64 بیتی داره و همین نسخهء سولاریس معمولی روی اون هم کار میکنه و جواب میده و توانائیش 6500 میپسه ! یعنی 2000 میپس قوی تر از بزرگترین مین فریمه IBM - تاریخ این امار متعلق به یکسال پیشه که من پروژه ای داشتم در این مورد )

نتیجه : برای کاربردهای عمومی وب یعنی اونچیزی که در 99 درصو اوقات مد نظره  ASP .NET بهتر است مگر اینکه برنامهء خاصی برای انتقال وجود داشته باشه یا احتمال وجودش قابل تامل باشه .

نتیجهء کلی : تا اون حد که دات نت امکانات و توانائی داره ، قالبلیتهای مشابهش در بستر جاوا موجوده . در برخی موارد دات نت و در برخی دیگر جاوا برتر است الا اینکه اگر کاربرد خیلی بزرگ باشه یا برنامه خاصی برای انتقال بستر وجود داشته باشه یا احتمال وجودش قوی باشه ، در هر حال " تنها گزینهء موجود" جاوا ست ، در غیر این صورت باید بررسی کرد .

&lt; اتمام بحث مقایسه بسترهای دات نت و جاوا >

سوال : من  متوجه شدم دات نت دقیقا" چیه و جاش کجاست و متوجه شدم یک  Application Server چیه و به چه دردی میخوره و باز هم متوجه شدم فرق اینها در "مقیاس" پروژه است ، حالا میخوام کمی درمورد  Application Server های دیگه بدونم .

جواب : اینترنت دریائی از اطلاعات است که میتونید ازش کمک بگیرید . تجربه شخصی من به استفاده از اوراکل و  اوریون محدوده . در مورد  JRUN هم مطالعه کردم . اوریون یک  Application Server مبتنی بر  J2EE است اما برای محیط لینوکس بهینه سازی شده است . در یکی از شرکتهای نفتی ایرانی هم داره ازش استفاده میشه و فوق العاده جوابگوست . اما مثل اوراکل کامل نیست ، مثلا" بانک اطلاعاتی نداره ، باید از چیزی مثل اوراکل یا مای اسکوئل استفاده کرد ، و نواقصی از این دست اما مجانی است و سورس آزاد .  www.orionserver.com .  
JRUN محصول مکرومدیاست . این هم ناقصه و خیلی از قابلیتهای اوراکل رو نداره ( اوراکل خیلی خیلی گرونه ) اما برخی مزایای خاصش باعث میشه آدم به انتخابش فکر کنه . مثلا" قابلیت کلاسترینگ و لود بالانسینگ داره یا مثلا" ColdFusion رو حمایت میکنه و ... قیمتش هم ارزونه . مثلا" همین حالا سازمان ملی علوم و تحقیقات و تکنولوژی امریکا یعنی  NIST داره از جی ران استفاده میکنه و زبان برنامه های وب اش ، خصوصا بخش امنیتی اش که زیاد کل کل میکنه هم کلد فیوژن است . اپلیکیشن سرورهای دیگه ای وجود دارن که چندان معروف نیستند . مثلا" Borland Application Server که این مورد هم مبتنی بر  J2EE است و بخشی از سایت خود بورلند هم روی همین کار میکنه . اپلیکیشین سرور بورلند از اوریون و جی ران کاملتره هر چند هنوز هم از اوراکل عقب تره . دپارتمان نرم افزار "ارتش امریکا" هم بطور کامل از محصولات بورلند استفاده میکنه . برای توسعه نرم افزارهای ویندوزی از دلفی ، برای  UP از توگدر و برای ارائه سرویس از اپلیکیشن سرور بورلند . ( وایت پیپر هاش رو میتونید تو سایت خود بورلند پیدا کنید ) و ... موارد متعدد دیگه .

جور اول : ( تجربه شخصی )

کار با جاوا یا در مقیاسهای بزرگ  Application Server ها جاوا واقعا" سخته . ( خصوصا" اگر آدم به محیطهای قدرتمند و راحتی مثل دلفی عادت کرده باشه ) در حالیکه کار با دات نت واقعا" راحته . کاربری جاوا هم مشکل تر از دات نته . در محیط دات نت اغلب تنظیمات یا وظایف کلیک اند ران هستند در حالیکه برای آماده سازی یک محیط مبتنی بر جاوا برای ارائه واقعی سرویس تخصص و تجربه لازمه و همیشه تجربه های اولیه با شکست همراه هستند . دات نت گرون نیست هر چند اگر واقع بین باشیم مجانی هم نیست . جاوا مجانی است و سورس آزاد . اون چیزی که من بهش فکر میکنم اینه که برای کاربردهای کوچک ، معمولی ، متوسط دات نت مناسبه . برای کاربردهای واقعا" بزرگ دات نت اصولا" جوابگو نیست که بخاد مناسب باشه یا نباشه و جاوا تنها گزینه است حالا میخواد خوب باشه میخواد بد باشه . یعنی اگر قرار باشه سازمانی تیم نرم افزار تشکیل بده ، یک الگو و راه حل جامع (  Total Solution ) برای نرم افزار انتخاب کنه ، برای برنامه نویسهاش پول خرج کنه و پول بیشتری خرج کنه تا بمونن ، قرار نیست برنامه هاش خیلی خیلی بزرگ باشن ، دات نت گزینهء خوبیه . اگر سازمانی قراره تیم نرم افزار داشته باشه و برنامه های فوق العاده بزرگ بنویسه که با توجه به نوع کاربرد احتمال تغییر پلت فرم یا خرید ماشینهای بزرگتر و قوی تر و تغییر پردازنده و .... محتمل باشه ، اون محیط مال جاواست . امیدوارم در تمام متن مطلبم به عبارت " سازمان مقیاس" که برجسته تر بود دقت کرده باشید .

من قبلا" به برادر عریضی قول داده بودم در مورد اپلیکیشن سرور ها مطلبی بنویسم و جواب این سوال رو هم مایل بودم بدم که شد یک تیر و دو نشون  :wink:  حالا اگر یک نفر از ملت با مرام برنامه نویس لطف کنه و با سواد و دانش خودش این نوشته رو ویرایش کنه و یه مقاله به درد بخور ازش در بیاره و به بخش مقاله های سایت اضافه کنه ممکنه بتونه خیلی مفید واقع بشه در آینده .

در خاتمه لازمه توضیح بدم هر چند توانائی پاسخ دادن به هر سوالی در زمینه  J2EE و دات نت رو دارم ( مرسی از خود راضی !  :!:  ) اما تاکید میکنم نه برنامه نویس دات نت هستم نه برنامه نویس جاوا ، لینک بخاطر مخاطره های شغلی بطور مفصل و کامل در مورد هر دو مطالعه کرده ام ، تنها کار عملی و جدی ام با دات نت نوشتن یک  ATL Server با  ++C بوده ، البته تجربه عملیم در زمینه جاوا خیلی بیشتره اما بازم ادعائی برنامه نویسی و خبرگی در هیچکدومشون ندارم . مواردی که عرض شد صرفا" برای روشن شدن تفاوتهای ، مزایا و ضرات هر کدوم از عناوین و قدری انتقال تجربه بود و لاغیر . اصراری ندارم که دوستان مطالب من رو بپذیرند اما اگر کسی شبههء علمی یا منطقی در یکی از قسمتها داره با کمال میل میشنوم و بطور قطع و یقین اگر اشتباه نکرده باشم جواب خواهم داد .

خوش و موفق باشید .
Gone Inprise

----------


## Abbas Arizi

:تشویق:   :تشویق:   :kiss:  :kiss: 
اما یک سوال. ایا خود دات نت با توجه به اینکه سرویسهایی مشابه آنچه ذکر کردید ارایه میده خود یک Application Server محسوب میشه یا اینکه من مفهوم Application Server رو به درستی متوجه نشدم؟ (بعد از 5 بار خوندن :( )

----------


## Inprise

> با توجه به اینکه سرویسهایی مشابه آنچه ذکر کردید ارایه میده خود یک Application Server محسوب میشه


دات نت فقط یک بستر برای اجرای کد است به همراه یک مجموعه کتابخانه ء کلاس . یقینا" به علت طولانی بودن مطلب ذهنیت خوبی نسبت به مفهوم  Application Server پیدا نکردی . دقت کن :




> Applicatio Server یک بستهء نرم افزاری است که وظیفه اش Application Lifecycle Management است . یعنی از ابتدای تولد یک نرم افزار "سازمان مقیاس" تا انتهای اتمام تولید ، باید به تمام نیازهای نرم افزاری پاسخ دهد . یعنی اگر برنامه نویس به یک FrameWork احتیاج داشت ، Application Server یک Framework به او بدهد ، اگر بانک اطلاعاتی خواست ، Application Server یک بانک اطلاعاتی کامل برایش فراهم کند ، اگر وب سرور خواست ، Application Server یک وب سرور تمام عیار به او بدهد ، اگر برای ارسال نامه های الکترونیکی برنامه اش به یک SMTP سرور نیاز داشت ، Application Server یک سرور SMTP به او بدهد ، اگر قرار شد برای احراز هویت از Kerberos استفاده کند یک پیاده سازی کربرایزد از استک TCP/IP در Application server وجود داشته باشد ، اگر خواست برای منطق محاسباتی برنامه اش یک GUI ایجاد کند ، Application Server یک IDE و GUI Builder به او بدهد ، اگر خواست داده های کاربری رو از کارتهای هوشمند ( smart Card ) دریافت کند ، رابطهای لازم و API های مربوطه را از Application Server بگیرد و ... به دیگر بیان Application Server یک محیط Integrated است برای طراحی و تولید و مدیریت و توزیع و کاربرد یک نرم افزار "سازمان مقیاس"


دات نت به تنهائی فقط یک بخش از این مجموعهء بزرگ است . پس دات نت نه  Application Server است نه با Application Server ها قابل قیاس . این نه مزیت است نه نقطه ضعف . دات نت اصلا" همین است . کاربردها و فوائد خاصی داره و برای مقیاسهای خاصی مناسبه . محدودیتهای خاص خودش رو داره و توانائی های خاص خودش رو . اما نه تطابق دات نت و  J2EE اصلا" منطقی است نه علمی .  :)

یک نگاهی هم به قابلیتهای سوئیت اوراکل بنداز

----------


## Abbas Arizi

ممنونم. 
کم کم یه چیزایی داره دستگیرم میشه.  :متفکر:

----------


## مهدی کرامتی

مطلب بسیار جالبی بود!

متشکرم++  :)

----------


## Inprise

یکی از اپلیکیشن سرورهای متداول مبتنی بر  J2EE سان : Orion

یک اپلیکیشن سرور پر قدرت :  JBoss   

 پورتال Application Server اوراکل  

 پورتال یکی از پرکاربرد ترین  Application Server ها ، یعنی  WebSphere محصول آی بی ام

----------


## khafanovich

thanks alot....U R AN Expert 
آقا خیلی با حالید واقعا جامع جواب دادی...ممنون از همه دوستان.
حالا یک سوال دیگه ....البته ببخشید ها...
آیا در ایران تا به حال یک پروژه درست و حسابی ( اینتر پرایز ) انجام شده؟ البته با جاوا؟
آیا شرکتی هست که تخصصی در زمینه جاوا کار کرده باشه؟
اگر هست لطفا معرفی کنید؟
آیا در مورد جاوا هم مانند دلفی کامپوننت های برامه نویسی با حال مثلا برای دریافت کانالهای ماهواره و .... کامپوننت های خفن وجود دارد؟

----------


## Inprise

الف. بله . زیاد . راستی  Enterprise رو اِنترپرایز میخونن  :wink: 

ب. شرکتهای معدودی تخصصا" در زمینه جاوا کار میکنند . من زمانی تو یکیشون کار میکردم که بنا به ملاحظانی اسمش رو نمیگم . اما به عنوان مثال گروهی از فارغ التحصیلان دانشگاه شریف یک تیم نرم افزاری راه انداخته اند که صرفا" روی  J2EE متمرکز است و نرم افزارهای قدرتمندی برای  UP نوشته اند که دو تاش رو توی نمایشگاه اله کامپ خودم از نزدیک دیدم اما متاسفانه اسمش یادم نیست . بپرس امار بهت میدن




> آیا در مورد جاوا هم مانند دلفی کامپوننت های برامه نویسی با حال مثلا برای دریافت کانالهای ماهواره و .... کامپوننت های خفن وجود دارد؟


ج. خیر . حداقل به اون خفانت خیر . 

موفق باشی

----------


## Best Programmer

اقا ما که کلی حال کردیم و به کلی از سوالاتمون که مدت ها بود تو فکرم بود جواب داده شد. حیلی خوش حالم که میبینم در جمع ما کسی با سطح مطالعاتی شما وجود داره. به شخصه میگویم از وقتی که با شما اشنا شدم سطح مطالعه خود را چند برابر کردم تا کمی حرف برای گفتن داشته باشم ولی همه اینا پیش شما و زحمات شما هیچ چیز نیست اجرتون با خدا ما که نمی تونیم به شما کمکی بکنیم.(چیزی بلد نیستیم تا بتونیم کمکی هم بکنیم)اگر دیگر دوستان با این نظر مخالفند به من حمله نکند چون شاید در کل ایران تنها به اندازه چند انگشت دست به سطح اطلاعات ایشان بتوان پیدا کرد که هم میاد و ما را حداقل با این مباحث اشنا میکند. ما که خودمونو بکشیم از به این زودی ها به جای ایشان نمی رسیم  :roll:

----------


## ناصرقلی

:flower:  :heart: Inprise

----------


## phantasm

عالی بود  :تشویق:   :kiss:

----------


## khafanovich

با تشکر فراوان از همه دوستانی که در مورد این سوال به ما حال دادند.
من تحقیقاتی رو در زمینه انجام پرژه ها انجام دادم.فکر میکنم بزرگترین پروژه ای که در ایران با j2eeانجام شده پروژه پلیس 110 هستش. که ترکیبی از oracle and j2ee  هست.
این پروژه دارای منطق ساده ای میباشد ولی data entry بسیار زیادی دارد .مثلا 600 رکورد در ثانیه...حالا بگذریم.  :shock: 
فرض کنید اینجانب میخواهم برای یک دانشگاه یک برنامه تحت وب بنویسم. و از طرفی میدونیم که سرور هایی که اوراکل رو پشتیبانی میکنند بسیار گران هستند. 
پروژه در حد اینترپرایز میباشد 8-)  شما با توجه به شرایط ایران کدام را پیشنهاد میکنید.
عدهای معتقد هستند (همانطوز که در نظرات هم دیدیم) در ایران فقط asp .
یک مثال دیگر هم در رابطه با پروژه های انجام شده در ایران میتوان به پروژه عوارض خودرو اشاره کرد.
این پروژه با سه تکنولوژی cgi , servlet,asp.net  بطور جدا گانه نوشته شد و روی یک سخت افزار یکسان تست شد. نتایج زیر بدست آمده است.
asp.net (windows 2003 .net server +iis 6 بسیار مناسب
servlet +apache+linux سرعت نسبت به asp بسیار کم ولی بسیار stable
cgi حرفشو نزن... :lol: 
آقا من واقعا قاطی کردم....حالا میخواهم همشو یاد بگیرم و خودم تست کنم.به نظر شما میشه همشو یاد گرفت؟؟؟؟؟؟؟؟ :cry:

----------


## Inprise

> من تحقیقاتی رو در زمینه انجام پرژه ها انجام دادم.فکر میکنم بزرگترین پروژه ای که در ایران با j2eeانجام شده پروژه پلیس 110 هستش. که ترکیبی از oracle and j2ee هست.


پروژه پلیس 110 اصلا" در قد و قوارهء این حرفها نیست که اسمش رو بشه گذاست سازمان مقیاس . پروژهء مرکز اورژانس تهران از اون بزرگتره ! یکی از بزرگترین پروژه های پیاده شده بصورت  J2EE پروژه کنترل و مدیریت منابع وزارت نفت است . دیگری سیستم ارتباط بانک مرکزی ( شبکه شان هم  ماهواره ای و X.25 است ) و ...




> سرور هایی که اوراکل رو پشتیبانی میکنند بسیار گران هستند.





> شما با توجه به شرایط ایران کدام را پیشنهاد میکنید.


الف. در ایران اینجور چیزها گران نیست 
ب. کاربرد اوراکل را بدون Application Server خودش ، حداقل من یکی ، توصیه نمیکنم . دلائلش مفصله .




> حالا میخواهم همشو یاد بگیرم و خودم تست کنم.به نظر شما میشه همشو یاد گرفت؟؟؟؟؟؟؟؟


که چی ؟ من حتی نتیجه آزمایشاتی که نوشتی رو نمیتونم قبول کنم و حدس میزنم تمامش توسط افراد نه چندان متخصص انجام شده . به عنوان مثال از کجا به  Stable بودن ترکیب Servlet ولینوکس در مقابل  Asp رسیده اند ؟ و  Stability رو چطور میشه آزمایش کرد ؟ یا مناسب بودن  ASP .NET یعنی چی و نسبت به چی سنجیده شده و .... ؟ پروژهء شما با اون وصفی که گفتی ( برنامهء کاربردی مبتنی بر وب برای یک دانشگاه ) با توجه به انچه من از مفهوم نرم افزار در دانشگاهههای ایران سراغ دارم و با توجه به اینکه تو میخواهی براشون برنامه نویسی ، چیز زیاد بزرگ و جدی نمیتونه باشه . بجای اینکه خودت رو توی یک دردسر بزرگ بندازی ، با هر تکنیکی که بلدی ،  asp ، php ، dot net ، جاوا و ... برنامه را بنویس و سعی کن همون رو خوب بنویسی . اما در جواب سوالت : بله میشه همشون رو حتی خیلی خوب یاد گرفت . زمانی که میبره وابسته است به میزان توان تو . اما تصور میکنم الا در مواردی معدود ، برای هیچ فردی نه لازم و نه معقوله که چنین کاری انجام بده ، حداقل من فکر میکنم در این مسیر اغلب آدمها شکست میخورند و عده کمی موفق میشن در حالیکه اکسپرت شدن در یک حوزه نه تنها کار زیاد سختی نیست بلکه میتونه فوائد بیشتری هم برات داشته باشه . ( خیالت تخت باشه پروژه های غول پیکر در ایران فقط به مجموعه های دولتی مربوط هستند و نه جای دیگه . مفهوم غول پیکر رو میتونی در یک بانک اطلاعاتی روی Enterprise Server های  IBM که داده پردازی ایران وارد میکنه و چندین کانال ارتباطی ماهواره ای و *** و هزاران کاربر در چندین شهرستان و .... درک کنی . چنین نرم افزارهائی که قیمت فوق العاده سرسام آوری دارند توسط چند شرکت مهندسی خاص منظور که دولتی هم هستند ارزیابی و به پیاده ساز واگذار میشن که فی المجموع این عده در ایران از پنجاه نفر کمتر هستند در قالب سه چهار تا شرکت . بقیهء هر آنچه نرم افزار وجود داره یا خواهد داشت نه بهشون میشه گفت غول پیکر و سازمان مقیاس و نه در حد و اندازهء این هستند که لازم باشه یک معماری فوق العاده جدی و پیچیدهء  J2EE براشون در نظر گرفته بشه . اینکار فوق العاده هزینه بر و دشواره . برای اون موردی که تو گفتی اگر من باشم ، به تو که دیدم در بخش دلفی هم فعالیت میکنی ، تولید  ISAPI با دلفی یا حتی نوشتن برنامه با  asp را توصیه میکنم . مورد اول سریعتر است در مرحله کاربرد و مورد دوم سریعتر در مرحله تولید . اگر هم میخواهی ضمن اینکه سریع کار میکنی خروجی خوب و با کیفیتی داشته باشی و در آینده هم برنامه ات در ایران قابل توسعه باشه دات نت رو انتخاب کن . بین سی شارپ و دلفی و ... با هر کدوم راحت تری . )

موفق باشی

----------


## khafanovich

خیلی ممنون از راهنماییتون ما رو که تو کف گذاشتید.
 :shock:  8-) 
به این نتیجه رسیدم که برم یک کمی بیشتر تحقیق کنم ......
احساس بیسوادی میکنم.... :D

----------


## zehs_sha

آقای Inprise 
خیلی قشنگ بود روحم تازه شد تا حالا مقاله به این خوبی و مفیدی در IT نخونده بووووووووووووووودم واقعا حال دادی دستت درد نکنه ای ول خیلی عشق کردم اینم تقدیم به تو  :flower:  :heart:  :gift:  :kiss:   :تشویق:   :lol:  :wink:

----------


## MFCGalaxy

برای پروژه های کوچک و متوسط از دات نت  و برای پروژه های بزرگ از J2EE
     این که دات نت مال پروژه های متوسط است را خود ماکروسافت توی کتابهای MCSD اش نوشته ........

----------


## hmm

آقا عجب تاپیکی شده در حد دکترا 
من رو اوراکل تعصب ویژه ای دارم ولی متعصفانه فقط با بانک اطلاعاتی آن کار میکنم
با این مقاله تصمیم گرفتم یادگیری application server رو شروع کنم
اگه منابعی هم دارید معرفی کنید
ممنون

----------


## Noeipour

من مطلب مفصلی که Inprise عزیز نوشته بود را مطالعه کردم. در واقع این صدمین باری است که مقایسه ای از این نوع را مطالعه می کنم. به نظر من این مقایسه هم مانند مقایسه های دیگر متمایل به یکی از دو جناح بود! صادقانه بگویم منطق بکار رفته در مطلب ایشان منطق طرفداران جاوا است. گفتن این حرف که J2EE یک استاندارد است و دات نت یک نرم افزار یک نظر جانبدارانه است. اصلا استاندارد بودن یک چیز را چه کسی تعیین می کند که بخواهیم صحبت از استاندارد بودن آن بکنیم؟ جاوا را تاحدود زیادی شرکت سان مشخص می کند و دات نت را هم مایکروسافت. اگر هم بخواهیم بحث استاندارد بودن را مطرح کنیم باید توجه داشته باشیم که خیلی از عناصر هر دوپلاتفرم در سازمان های بین الملی استاندارد ثبت شده اند.

من تقریبا نظر این دوست خوبم را (که البته فرد مطلع و باسوادی است ) رد می کنم. چون با همان ظرافت همیشگی منطق طرفداران جاوا میخواهد بگوید فیل را که با فنجان مقایسه نمی کنند؟ جاوا فیل است و ... این نوع مقایسه ها کمکی به مشتری نمی کند. این شکل مقایسه من را یاد نظرات طرفداران پرسپولیس و استقلال می اندازد که این یکی می گوید قرمز تو خون همه انسانهاست و آن دیگری می گوید آبی رنگ آسمونه و مافوق همه است ! ببینید دوستان عزیز ، شما قبل از اینکه بخواهید این دو پلاتفرم را مقایسه کنید باید با مدل نرم افزاری این دو آشنا باشید. در مدل جاوایی منطق این چیزی که دوست عزیزمان از آن به عنوان Application Server یاد کرد اینست که یک سرور همه کاری بتواند انجام دهد. در منطق مایکروسافت اینطور نیست. تمام عناصر و اجزایی که در یک App Server جاوایی هست در پلاتفرم دات نت هم هست منتها در دنیای مایکروسافتی این عناصر جدا جدا هستند و جداگانه به فروش می رسند. وقتی شما یک App Server اوراکل می خرید درست است که خیلی کارها برایتان انجام می دهد یعنی هم وب سرور است هم ایمیل سرور است هم دیتا بیس دارد و ... ولی در مدل مایکروسافت هرکدام از اینها یک سرور و یک محصول جداگانه است. این خیلی هنر نیست که شما یک سرور همه کاره داشته باشید. گاهی اوقات شما فقط یک کار مشخص را از سرور انتظار دارید. در عمل خیلی اوقات Feature های مختلف یک App Server بلا استفاده می ماند. به همین دلیل است که خیلی وقتها خریدن اوراکل گران تمام میشود. البته این مساله نه دلیل برای خوب بودن و نه دلیل برای بد بودن آن است . مدل نرم افزاری متفاوت است. 

بنابراین از نظر من هردو پلاتفرم در یک حد هستند و هر کاری که یکی انجام میدهد دیگری نیز می تواند (بدون هیچ شک وشبهه ای) انجام دهد. منتها طبیعتا در راندمان انجام کارهای مختلف روی پلاتفرمهای مختلف بحث وجود دارد. اینکه دات نت را تا سطح یک نرم افزار نزول دهیم و جاوا را به مین فریم و دات نت را به نوت بوک تشبیه کنیم ، از آن حرفهاست و به نظر من جانبدارانه است.  
نکته دیگری هم هست و آن اینکه دات نت یک پلاتفرم جدید و نوپاست و طبیعتا به پختگی و  کارآزمودگی جاوا نیست و واقعیت اینست که هنوز برخی عناصر پلاتفرم دات نت در حوزه سرورها به معنی واقعی دات نتی نشده اند یعنی زیربنایشان چاچوب دات نت نیست و فقط در سطح لایه فوقانی سیستم از دات نت فریم ورک پشتیبانی می کنند ولی بدیهی است که در آینده نزدیک تمام سرورهای مایکروسافت از بیخ و بن دات نتی خواهند بود.

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

----------


## Inprise

سلام   بهروز ؛

خوشحالم که نظرت رو اینجا میبینم  :) 




> گفتن این حرف که J2EE یک استاندارد است و دات نت یک نرم افزار یک نظر جانبدارانه است. اصلا استاندارد بودن یک چیز را چه کسی تعیین می کند که بخواهیم صحبت از استاندارد بودن آن بکنیم؟ جاوا را تاحدود زیادی شرکت سان مشخص می کند و دات نت را هم مایکروسافت. اگر هم بخواهیم بحث استاندارد بودن را مطرح کنیم باید توجه داشته باشیم که خیلی از عناصر هر دوپلاتفرم در سازمان های بین الملی استاندارد ثبت شده اند.


در "حقیقت"نه در ذهن من و نه در عمل هیچ وقت جانبداری از جاوا وجود نداشته . وقتی گفتم J2EE یک "یوتوپیا" است برای تولید یک AppServer یعنی بر خلاف دات نت که صرفا" یک نرم افزار است ( متشکل از تعداد فایل باینری در کنار یک SDK و یک محیط توسعه ) یک "نرم افزار" نیست ! پس منطقا" دو چیز که از یک جنس نیستند با هم قابل مقایسه نیستند ! تمام منظور من از بکار بردن این ادبیات القاء این مسئله بود/هست که این دو موجود از دو جنس مختلف ، برای دو هدف مختلف طراحی شده اند . 





> در مدل جاوایی منطق این چیزی که دوست عزیزمان از آن به عنوان Application Server یاد کرد اینست که یک سرور همه کاری بتواند انجام دهد. در منطق مایکروسافت اینطور نیست. تمام عناصر و اجزایی که در یک App Server جاوایی هست در پلاتفرم دات نت هم هست منتها در دنیای مایکروسافتی این عناصر جدا جدا هستند و جداگانه به فروش می رسند. وقتی شما یک App Server اوراکل می خرید درست است که خیلی کارها برایتان انجام می دهد یعنی هم وب سرور است هم ایمیل سرور است هم دیتا بیس دارد و ... ولی در مدل مایکروسافت هرکدام از اینها یک سرور و یک محصول جداگانه است. این خیلی هنر نیست که شما یک سرور همه کاره داشته باشید. گاهی اوقات شما فقط یک کار مشخص را از سرور انتظار دارید. در عمل خیلی اوقات Feature های مختلف یک App Server بلا استفاده می ماند. به همین دلیل است که خیلی وقتها خریدن اوراکل گران تمام میشود. البته این مساله نه دلیل برای خوب بودن و نه دلیل برای بد بودن آن است . مدل نرم افزاری متفاوت است


ممنونم که عرایض من رو به بیان دیگری نوشتی  :)  بنده هم چیزی فراتر از این نگفتم . در واقع چیزی که J2EE داره برای رسیدن بهش تلاش میکنه یک Total Solution است در حالیکه مایکروسافت ، کاملا" پرکتیکال و کاربردگرا ، محصولاتش رو توسعه میده ، اون هم برای ردهء خاصی از کاربردها . این نکته دقیقا" مؤید همین مساله هست که J2EE و بستر دات نت موجودات "قابل قیاس"ی نیستند .

_( و اگر دقت کنی در تمام این نوشته ها تلاش من بر این بوده که اول ذهنیت منطقی بودن مقایسه رو از بین ببرم . بعد تناظری بین اجزاء جاوا ( و نه J2EE ) و دات نت برقرار کنم و این دو موجودیت رو با هم مقایسه کنم )_ 





> اینکه دات نت را تا سطح یک نرم افزار نزول دهیم و جاوا را به مین فریم و دات نت را به نوت بوک تشبیه کنیم ، از آن حرفهاست و به نظر من جانبدارانه است.


اگر تلقی تو از یک حرف جانبدارانه ، " یک حرف الزاما غیر منطقی است" ، نه این یک حرف جانبدارانه نیست ، اما اگر ممکن میدونی یه حرف جانبدارانه بتونه منطق داشته باشه :

"حقیقت" غیر قابل انکاری وجود داره بنام قابلیت پاسخگوئی و بستر اجرا که در هر دو جاوا ، روی بسترهای بزرگ و گسترده جوابگو و دات نت غیر جوابگو است . اگر به مثال مین فریم وزارت انرژی امریکا مراجعه کنی خواهی دید که وقتی کاربردها از سایز خاصی بالاتر میرن ، باید از تکنولوژی هائی استفاده کرد که Scalable یا اصطلاحا" مقیاس پذیر باشن . یک نرم افزار مبتنی بر دات نت نهایتا ممکنه بتونه روی یک کلاستر ویندوزی بزرگ کار کنه ، با محدودیتهای خاص ویندوز روی معماری های SMP  ( یا Symmetric Multi Process ) اما یک نرم افزار مبتنی بر جاوا از کلاسترهای "ارزان قیمت" لینوکس ( با بی شمار سناریوی موفق قابل مطالعه ) تا مین فریمهای غول پیکر IBM قابل اجراست ! این "حقیقت" رو نمیشه انکار کرد  :) 




> در مجموع می خواهم بگویم دات نت و j2ee قابل مقایسه هستند و گفتن این حرف که این دوتا قابل مقایسه نیستند خودش یک حرف نادرست است. هرکدام از این دو معایب و مزایایی دارند که قابل بحث و بررسی است


این دقیقا همون چیزیه که من باهاش کاملا" مخالفم . "جاوا" و دات نت قابل مقایسه هستند ، مسامحتا" ! J2EE که الگوی ایجاد AppServer است ، تشکیل شده از بستر و سرویس ، قابل مقایسه با دات نت به عنوان یک بستر ، نیست ! شاید اگر در آینده آنچه تو بهش اشاره کردی ( دات نتیزه شدن تمام سرویسهای مایکروسافت ) ، بشه در این باره ، یه پروندهء جدید باز کرد ، اما حداقل حالا ، مقایسه موجودی بنام Oracle Appserver با دات نت (؟) از نظر من نمیتونه محمل علمی قابل دفاعی داشته باشه .




> باید دید که موضوع پروژه چیست و قرار است چه کاری انجام شود در آنصورت می توان پاسخ داد که آیا دات نت یا جاوا کدامیک برای آن کار خوبند.


یقینا" همینطوره




> من سعی می کنم در آینده نزدیک این بحث را از نظر فنی در اینجا یا در سایت خودم باز کنم.


حداقل من یکی که از این اتفاق استقبال میکنم  :) 

*موفق باشی* ... و راستی ! You are Welcome   :wink:

----------


## bkh

جناب اینپرایز ، ضمن عرض خسته نباشید؛

چرا به بعضی از نکات مهم و تعیین کننده موجود در اوراکل اشاره نمیکنید:

- یک بانک اطلاعاتی خام در اوراکل حدود آ بیش از یک گیگابایت حجم دارد و حتی ساخته شدن یک بانک خام بیش از ده دقیقه زمان میبرد. نگهداری آن بسیار مشکل ، تخصصی و طاقت فرسا است.
- نصب *اوراکل سرور* و آن هم در حالت فشرده بیش از* یک و نیم گیگا بایت* فضا احتیاج دارد و بیش از یک ساعت طول میکشد.
- نصب* اوراکل کلاینت* بر روی هر استیشن به بیش از *ششصد مگابایت* فضا احتیاج دارد.

- سرعت بالا آمدن نرم افزار های منبتنی بر جاوا نیز بسیار کند است و صفحات ورق می خورند. هم در ویندوز و هم در لینوکس.

تمام موارد ذکر شده را به دقت و بر روی چندین کامپیوتر سرعت بالا تست کرده ام. 

*در حال حاظر تنها انگیزه در استفاده از اوراکل را استفاده از نام آن جهت تولید محصولات گران قیمت می دانم.*

مخلصانه و بدون غرض.

----------


## Inprise

> در حال حاظر تنها انگیزه در استفاده از اوراکل را استفاده از نام آن جهت تولید محصولات گران قیمت می دانم


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




> یک بانک اطلاعاتی خام در اوراکل حدود آ بیش از یک گیگابایت حجم دارد


خیر . یک بانک خام حتی یک صدم این حجم را ندارد .




> حتی ساخته شدن یک بانک خام بیش از ده دقیقه زمان میبرد


خیر . این اتفاق حداقل روی لپ تاپ نه چندان سریع من کمتر از سی ثانیه طول میکشه .





> نگهداری آن بسیار مشکل ، تخصصی و طاقت فرسا است


دقیقا" همینطوره




> سرعت بالا آمدن نرم افزار های منبتنی بر جاوا نیز بسیار کند است و صفحات ورق می خورند. هم در ویندوز و هم در لینوکس


یکی از دلائلی که اغلب برخوردهای بنده با توسعه گرانی مثل شما چندان مختوم به توافق نیست و نخواهد بود ، ذات و طبیعت محدود و تا حدی بچه گانهء بازار نرم افزار ایران است . اگر در ایران کار کردن را یاد گرفته باشید ، برنامه نوشته باشید ، پروژه مدیریت کرده باشید و سیستم طراحی کرده باشید ، اصولا" نه حالا ، نه هیچ وقت فرهنگ Application Server ها رو درک نخواهید کرد . مساله جاوا یا اوراکل یا ... نیست ، مسئله دقیقا" Application Server است . این یک مفهوم ترجمه نشده در ایران است چون نه پروژه نرم افزار غول پیکری وجود داره که برای خرج میلیونها دلار ، مطالعات علمی و عمیقی در موردش بشه ، نه متخصصین نرم افزار ما آنچنان متخصص هستند که مفاهیمی مثل یکدستی ، زمان توسعه ، زمان توسعه تا صنعتی شدن ، باز نویسی کد ، خرید اجزاء متفرقه ، اتصال به سایر سیستمها و .... را درک کنند  :) 

همانطوری که قبلا" در بخشهای دیگر سایت نوشته ام ، وقتی قرار شد محور کسب و کار و چرخهء تولید یک سازمان "گسترده" ، یک سیستم الکترونیکی باشد ، تحفظات دیگری غیر از "جاوا دیر بالا میاد" و امثال این مطرح هستند . اگر به بخشهای مختلف نوشتهء من هم توجه کنی دائما" بر این حقیقت پا فشاری کردم که یک Application Server کارکردهای به خصوصی داره و یک الگوی نرم افزاری همه منظوره نیست . این بحث خیلی خیلی میتونه مفصل و شاید جالب باشه که حداقل من حالا موقعیتش رو ندارم . "شاید وقتی دیگر"  :) 

اما یک چیز رو بخاطر داشته باش ، اوراکل ، قدرتمند ترین مجموعهء توسعهء ابزارهای BI است ( و برای درک فایدهء BI در کسب و کار میتونم بهت چیزی حدود 4000 صفحه کتاب معرفی کنم ، تا با مطالعه اش و مشاهده اعماق علم "مدیریت بازرگانی" به اهمیت BI در چرخهء توسعه پی ببری ) و بزرگترین شرکتهای تجاری/صنعتی دنیا امروز از محصولات BI اوراکل استفاده میکنند ( حداقل بیش از 60 درصد لیست فورچون ، فی الواقع 60 درصد اقتصاد ایالات متحده - این مطلب به خوبی قابل تعمیمه ) و تو این Challenge دیگه چیزی مثل "اوراکل یک گیگ فضا اشغال میکنه" معنا و مفهوم نداره ، چون یکی از مشتری های اوراکل یعنی وزارت انرژی ایالات متحده ، اوراکلش رو روی یک MainFrame آی بی ام نگهداری میکنه که مسئول حفاظت از اطلاعات کلیه نیروگاهها ، مخازن نفت و گاز و ... ، گذرگاههای اطلاعاتی صنعت انرژی و ... در ایالات متحده است و مثالهائی از این دست . اگر روزی به متخصصین چنین کسب و کارهائی ( با این مقیاس ) برخورد کردی ، سعی کن قدری محتاط تر از انچه خطاب به من نوشتی باهاشون صحبت کنی  :wink:  چون اونها احتمالا" اصلا" اسکوئل سرور مایکروسافت رو نرم افزار به حساب نمیارن  :) 

و توضیح آخر : اگر میبینی بنده در مورد اوراکل یا Application Server های مبتنی بر J2EE مطلبی نوشتم اون هم خیلی جدی ، دلیل بر این نیست که بنده قصد و غرضی دارم یا تعصب خاصی وجود داره یا سالهاست که جاوا کارم یا فقط جاوا بلدم و امثال این . خیر . بنده اصولا" برنامه نویس نیستم . آنچه عرض شد و میشه و خواهد شد محصول مطالعه در کنار مشاهده و استفاده از تجربیات شخصی و غیر شخصی است و لا غیر ، با این دیدگاه که تمام دنیا ، در آنچه من فکر میکنم خلاصه نشده و یقینا" همیشه افقهای وسیع تری هست که امروز چیزی ازشون نمیدونم .

خوش باشید  :flower:

----------


## bkh

جناب اینپرایز ، باسلام 

تصور میکنم جهت رفع  شبهه نیاز است مقداری توضیح دهم. 

در هیچ جایی از متن پست شده توسط من قدرت و کارایی اوراکل انکار نشده است. معنیApplication Server  را هم خوب ودقیق میدانم. ولی میخواهم کمی واقع بینانه تر به مسله نگاه کنیم. 

چرا تصور میکنید با استفاده از کامپایلر های قدرتمندی نظیر Delphi, Kylix , Visual C++‎ , C++‎  Builder , Borland J Builder و غیره نمیتوان نرم افزارهای Scalable  تولید کرد؟

چرا تصور میکنید نمیتوان برای asp.net وب فارمهای عظیم ایجاد نمود. وب فارمهایی که میتوانند بالاترین حجم درخواستها را در گستره بین المللی پاسخ دهند. از  قضا بانک اطلاعاتیشان هم SQL Server است. أیا با تکنولوژیهایی نظیر DTC , MTZQ اصلا آشنایی دارید؟ آیا از قابلیتهای Microsoft TransQW در جهت مدیریت مجموعه سرورهای یکپارچه مطلعید؟

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

برای چه باید یک برنامه نویس تمام نیروی خود را در جهت یاد گیری اوراکل صرف کند در حالیکه حقوق Senior Programmer به زبان سی شارپ با حقوق همتای اوراکلی و جاوایی خود در تمام دنیا تقریبا برابر است. در تمام دنیا برنامه نویس asp.net بالاترین حقوق را میتواند داشته باشد، پس چرا باید از امکانات و راحتی کار با زبانهای ساده تر امروزی صرفه نظر کند و تن به دنیای سختی های اوراکل دهد.


 اگر یک برنامه نویس *در ایران*  یک سیستم تحت وب را بر مبنای اوراکل ایجاد نماید، آیا دسترسی به یک سرویس Web Hosting با پشتیبانی اوراکل برای او میسر است. و اگر هم باشد قیمت آن را میدانید؟

منظور من از جمله زیر :

در حال حاظر تنها انگیزه در استفاده از اوراکل را استفاده از نام آن جهت تولید محصولات گران قیمت می دانم. 

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




> چون اونها احتمالا" اصلا" اسکوئل سرور مایکروسافت رو نرم افزار به حساب نمیارن


جناب اینپرایز باور کنید ایگونه نیست.

به هر ترتیب مقداری برایتان توضیح دادم اما بحث بسیار گسترده است و مجال کافی نیست. گرچه تصور میکنم این آخرین پست من برای شما باشد.




> از دلائلی که اغلب برخوردهای بنده با توسعه گرانی مثل شما چندان مختوم به توافق نیست


تصور میکنم دلیل اصلی این مطلب را خودتان ذکر فرمودید: *بنده اصولا" برنامه نویس نیستم .*

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

*خوش باشید.*

----------


## Inprise

دوست عزیز

من صرفا" به برخی از شبهات فنی و شبه فنی ات جواب میدم و بعدش یه توضیح در مورد اصل مطلب و در مورد مباحث حاشیه ای چیزی نمینویسم  :) 




> چرا تصور میکنید با استفاده از کامپایلر های قدرتمندی نظیر Delphi, Kylix , Visual C++‎ , C++‎ Builder , Borland J Builder و غیره نمیتوان نرم افزارهای Scalable تولید کرد؟


قبل از هر چیز : چرا تصور میکنی من اینطور فکر میکنم ؟ کدام بخش از نوشته های من ناظر بر این مطلب است ؟ اصولا" بحث استفاده از یک راه حل جامع و سازمان مقیاس چقدر با بحث فلان کامپایلر و محیط توسعه و ... متناسب است ؟ اگر دقت کنی در بخشهای مختلف نوشته های من ، مطالب با نهایت تجرید از محیط ، موضوعیت پروژه ، کشور ، قیمت و ... و صرفا" در راستای تبیین ماهیت Application Server ارائه شده در حالیکه در نوشته ها تو و برخی دیگر از دوستان به یک برنامه وب و مشکلات هاستینگ آن و سرعت اجرای دات نت در مقابل جاوا و ... اشاراتی وجود داره که حداقل من ارتباط منطقی بین این مقولات نمیبینم .




> اگر یک برنامه نویس در *ایران* یک سیستم تحت وب را بر مبنای اوراکل ایجاد نماید،


یک نکته خیلی جالب در نوشته ات تاکید دائمی بر نام ایران است که باز هم تصور میکنم به بحث تبیین Application Server و شناخت ماهیت آن و تقابل تکنولوژی های مثل دات نت با AS ها و ... ندارد . در واقع این بحث قرار نیست برای ایران (؟!) یک راه حل پیدا کند یا بگوید این برای ایرن خوب است و آن خوب نیست و ... ؛  این بحث تلاش میکرد AS را بشناساند و آن را مقابل سایر تکنولوژی ها قرار دهد و نتیجه بگیرد برای کدام دسته از درخواستها کدام ابزار مناسبتر است 




> از متن تند شما کاملا مشخص است که بسیار تعصب دارید


برام جالبه بدونم دقیقا" کدوم بخش از نوشته های من "تند" است  :wink:  اما ، من مصر نیستم تو باور کنی که از نظر من تعصب ، فقط نشانه جهل است ، کما اینکه نظر دادن در مورد چیزی که آدم باهاش بیگانه است نشانه جهل است  :) . آنچه نوشته شد و خواهد شد برای نویسنده این سطور اغلب همراه با تجربه های متعدد عملی بوده است . به عنوان یک طراح نرم افزار ( و نه برنامه نویس ) که تجربه کار های متعدد سازمان مقیاس در محیطهای داخلی و خارجی رو داره ، بهت اطمینان میدم ، در بسیاری از مباحث فنی حوزه آی تی ایران، چالش محصول ورود افراد به حوزه هائی است که در موردشون دانشی ندارند . فی المثل تو یک جلسه ای در حضور بنده حقیر دو تا از مهندسین مخابرات مملکت داشتن در مورد فوائد یا مزایای فایل سیستم رمزنگار ویندوز ( Encrypting File System – EFS ) صحبت میکردند ، و آنچنان با حرارت در موردش حرف میزدند که گویا سالها در عرصه رمزنگاری صاحب تجربه و سبک هستن و وقتی از یکیشون که دل خوشی از ویندوز نداشت پرسیدم میدونی اصلی ترین تفاوت عملکرد EFS با CryptoFS چیه ، حتی نمیدونست CryptoFS چی هست !! حالا در یک مقیاس متفاوت ، فکر میکنم وقتی یک نفر دات نت ( یک بستر اجرای کد ) را با AS اوراکل ( یک AS کامل ) مقایسه میکند ، نه دات نت را شناخته است و نه اوراکل را یا وقتی بحث توسعه فناوری های مبتنی بر BI اوراکل مطرح میشه ، قیاس ASP .NET با اوراکل (؟!) در عرصه تولید نرم افزارهای مبتنی بر وب ، نشانگر عدم وجود درک صحیح و سازماندهی شده از مفاهیم فوق الذکر است . ذیلا" سعی میکنم با توضیحات نسبتا" مفصلی ، مجددا" به تفاوت حوزهء توسعه نرم افزار و حوزهء توسعهء نرم افزارهای بزرگ ، و همچنین حریم شغلی اوراکل توضیحاتی عرض کنم .

قبل از ورود به بحث و صرفا" برای یاد آوری :

Application Server یک بستهء نرم افزاری است که وظیفه اش Application Lifecycle Management است . یعنی از ابتدای تولد یک نرم افزار "سازمان مقیاس" تا انتهای اتمام تولید ، باید به تمام نیازهای نرم افزاری پاسخ دهد . یعنی اگر برنامه نویس به یک FrameWork احتیاج داشت ، Application Server یک Framework به او بدهد ، اگر بانک اطلاعاتی خواست ، Application Server یک بانک اطلاعاتی کامل برایش فراهم کند ، اگر وب سرور خواست ، Application Server یک وب سرور تمام عیار به او بدهد ، اگر برای ارسال نامه های الکترونیکی برنامه اش به یک SMTP سرور نیاز داشت ، Application Server یک سرور SMTP به او بدهد ، اگر قرار شد برای احراز هویت از Kerberos استفاده کند یک پیاده سازی کربرایزد از استک TCP/IP در Application server وجود داشته باشد ، اگر خواست برای منطق محاسباتی برنامه اش یک GUI ایجاد کند ، Application Server یک IDE و GUI Builder به او بدهد ، اگر خواست داده های کاربری رو از کارتهای هوشمند ( smart Card ) دریافت کند ، رابطهای لازم و API های مربوطه را از Application Server بگیرد و ... به دیگر بیان Application Server یک محیط Integrated است برای طراحی و تولید و مدیریت و توزیع و کاربرد یک نرم افزار "سازمان مقیاس" . شاید این سوال در ذهن عده ای ایجاد بشه که مگه تمام اجزاء یک Application Server رو نمیشه بصورت منفرد پیدا کرد ؟ وب سرور ، GUI Builder ، سرور پست الکترونیکی ، توابع احراز هویت ، بستر اجرای کد و ... ؟ جواب مثبته اما چه کسی میتونه تضمین کنه تمام این اجزاء دارای "سطح" ی یکنواخت و یکسان باشند ؟ ( Innovative Integrated Interface ) یا مثلا" کی میتونه تضمین کنه یک بستر اجرای کد بتونه توابع دسترسی به بانک اطلاعاتی رو با بهینه ترین وضعیت تولید کنه ؟ یا تضمین کنه این عناصر با هم سازگاری مناسبی داشته باشن ؟ همگی تولید شده توسط یک بستر خاص باشند که توسط همون بستر بشه بین اونها ارتباط برقرار کرد ؟ اینجا مسئله سازگاریه . یعنی اگر قرار شد یک گروه نرم افزاری برای بزرگترین سازمان بیمه غیر دولتی امریکا یک راهکار جامع ERP تولید کند ( یا بخرد و خصوصی سازی کند برای محیطش ) باید به چه بستری اعتماد کنه که مطمئن باشه تمام درخواستهای نرم افزاری " سازمان مقیاس" ش رو میتونه جواب بده و مشخصه های اون ، سازمانش رو به یک نرم افزار خاص ، سخت افزار خاص ، پروتکل خاص و ... محدود نمیکنه ؟ ( اصولا" محدودیت در ادبیات آی تی ، سطح اعتماد و قابلیت وثوق - Reliability - رو کاهش میده ) اینجاست که یک Application Server خودنمائی میکنه . یک Application Server تضمین میکنه که از بستر اجرای کد گرفته تا وب سرور ، از توابع امنیتی گرفته تا بانک اطلاعاتی ، از IDE گرفته تا ابزارهای حمایت از UP ( یا Unified Process ) و ... در بستهء نرم افزاریش وجود داره

فرض کنید قرار است به عنوان مشاور ارشد نرم افزار پروژه دولت الکترونیکی بریتانیا استخدام و مشغول به کار بشید و فرض کنید قراره به تنهائی یک راه حل جامع برای پیاده سازی الگوی دولت الکترونیکی پیشنهاد کنید و باز فرض کنید با دسترسی به اسناد مراحل تجزیه و تحلیل پروژه ، با نیازها و درخواستها و سرویسها آشنائی کامل دارید و در آخر فرض کنید به عنوان یک فرد با تجربه با محیطهای مختلف نرم افزار آشنا هستید . چه خواهید کرد ؟ توصیه میکنید از چه نرم افزارهائی استفاده کنند ؟ از کدام بانک اطلاعاتی بهره ببرند ؟ برای اجرای برنامه های تولید شده چه بستر سخت افزاری توصیه میکنید ؟ برای مراحل توسعه و آزمایش و عیب یابی نرم افزار چقدر وقت صرف خواهد شد ؟ هزینه نهائی مالکیت اجزائی که تهیه میشوند چقدر خواهد بود ؟ و از همه مهمتر چگونه میتوانید تضمین کنید ، این الگوی عملی نرم افزاری واقعا" همان چیزی خواهد بود که از خواسته شده است ؟ اگر یک دانش آموختهء با تجربه و با سواد حوزهء نرم افزار باشید ، با توجه به تجربیات قبلیتان ، بدانید که یک نرم افزار فوق العاده بزرگ یا Huge-Scale به چگونه بستری احتیاج دارد ، بدانید که نقش یکدستی و یکنواختی در مراحل توسعه و نگهداری محیط چقدر مهم است و بدانید ... حتما" و بلاشک ، استفاده از یک Total Solution را برای دولت الکترونیکی بریتانیا پیشنهاد خواهید کرد . جائی که بانکهای اطلاعاتی فوق العاده بزرگ و پاسخگو بتوانند روی سخت افزارهای غول پیکر اجرا شوند تا پشتوانهء سیستمهائی چون ERP و CRM دولت باشند ، سرویس هایش همیشه برای درخواستهائی با ترافیک بالا در دسترس باشند ، بتوانید مخزنی از اشیاء سازمانی پیاده ساز business logic ، برای حفظ پویائی سیاستها داشته باشید ، بتوانید Portability و Reusability و reliability را با هم داشته باشید ، بتوانید از تمام فوائد این محیط گسترده و یکدست به نحو احسن استفاده کنید . در این حوزه ، مهم است که اجزاء چقدر با هم چفت باشند ، دارای ارتباطات از پیش تعریف شده باشند ، دارای قابلیت توسعه پذیری باشند و ...

SAP به عنوان یکی از بزرگترین توسعه گران راه حلهای BI ( که به عنوان مثال بیش از نیمی از کشورهای عضو اتحادیه اروپا از راه حلهایش برای دولت الکترونیکی استفاده میکنند ) این مسئله را با ارائهء ABAP حل کرده است . ABAP ، زبان برنامه نویسی نیست ، زبان تعریف منطق و اتصال اجزاء یک کسب و کار الکترونیکی و اعمال هوشمندی در زمینه دریافت اطلاعات است . ABAP یا Advanced Business Application Programming بر فراز ده ها هزار ماژول نرم افزاری به تحلیلگران SAP اجازه میدهد با مشاهده درخواستها و سرویسهای یک سیستم ، منطق تجاری سازمان را طوری بر این ماژولها اعمال کنند تا به عنوان مثال ERPی شرکت SAP بتواند چرخهء حیاتی فلان غول نفتی هلندی یا غول نرم افزار مانند مایکروسافت را ، بهینه کند . اینجا کسی به کامپایلر فکر نمیکنه ، اصلا" موضوعیت نداره ، اینجا به قدرت انتقال و توسعه پذیری و یکنواختی سیستم توجه میشه . باید این سیستم بتونه بانکهای اطلاعاتی غول پیکری رو حمایت کنه که روی محیطهای مختلف قابل دسترس باشند و بتوانند به ترافیکهای فوق العاده بالا جواب دهند ، باید به سرویسهائی فکر کنند که دارای بیشترین میزان Availability و Reliability باشند تا هیچ درخواستی بی جواب نماند ، باید به فکر MiddleWare های باشند تا بتواند اشیاء طراحی شده توسط تحلیلگران درون سازمان را به یک منطق تجاری تبدیل کند و با اعمال آن بر ERP ، حوزهء مدیریتی جدیدی تعریف نماید و ... اینجا باید به یک بستر گسترده و بزرگ فکر کرد و به نرم افزارهائی که بر فراز آن اجرا میشوند .

یک Application Server در واقع باید بستر مناسبی برای اجرا و سرویس دهی یک Huge-Scale Application باشد . یک نرم افزار فوق العاده بزرگ توزیع شده حائز اهمیت و سنگین و پر ترافیک . یک Application Server باید به همه نیازها پاسخ دهد ، در یک محیط یکدست و متصل . وب سرورش باشد با Object Repository مرتبط باشد ، Cache Server اش باید به Portal مرتبط باشد ، DB اش باید با Load Balancer ارتباط داشته باشد و تمام قطعات این نرم افزار بزرگ بصورت یکنواخت قابل مدیریت باشند تا حالا بتوان از آن به عنوان یک بستر قابل اعتماد برای اجرای یک نرم افزار حساس ، مثل بانک اطلاعاتی مرکزی دولت بریتانیا استفاده کرد . در واقع اصلا" یک Application Server ساخته میشود برای همین مقصود . حالا ممکن است در یک Application Server یک موتور تولید صفحات دینامیک وب هم وجود داشته باشد ، آیا منطقی است که ما بگیم صرف کردن این پول احمقانه است چون میشه با ASP .NET خیلی راحت یک برنامه وب تولید کرد ؟! یا موقعی که بحث بانک اطلاعاتی مطرح باشد ، بگیم صرف هزینه احمقانه است چون میشه با قیمت خیلی خیلی نازل یک اسکوئل سرور مایکروسافت رو خرید ؟ مگر AS وظیفه اش تولید صفحات وب است ؟ یا یک بانک اطلاعاتی است ؟ یک AS همه چیز است ، برای یک نرم افزار Huge-Scale . پس هم خود AS مهم است هم نرم افزاری که نهایتا" قرار است بر فراز آن سرویس دهی کند .

درآمدزا ترین حوزهء کاری اوراکل ، در رقابت با SAP ، حوزهء توسعهء محصولات BI است . یعنی نرم افزارهای فوق العاده بزرگ و قدرتمندی که توسط بسیاری از پر درآمد ترین کمپانیهای دنیا مورد استفاده قرار میگیرند و آنقدر مفید هستند که سالیانه میلیونها دلار برای شارژ آنها پرداخت شود و همانطور که قبلا" عرض شد چنین مفاهیمی برای اکثریت قریب به اتفاق توسعه گران ایرانی که نهایتا" دلفی و جاوا را به عنوان یک زبان برنامه نویسی و از اورکل هم بانک اطلاعاتی اش را به عنوان یک بانک اطلاعاتی میشناسند و نرم افزار را سیستم انبارداری یک شرکت و ERP را ده تا دونه نرم افزار به هم سنجاق شدهء همکاران سیستم ( نوشته شده با دلفی ) میدانند ، اگر غیر قابل درک نباشد ، خیلی هم ساده نخواهد بود . کمپانی های غول پیکری مثل شرکت شل با هزاران هزار نمایندگی در سراسر دنیا و لزوم اعتماد و اتکاء به کسب و کار الکترونیکی شان ، نمیتوانند سالهای سال صبر کنند تا توسعه گران شرکتشان ، از بهم متصل کردن چندین نرم افزار توسعه داده شده توسط ابزارهای مختلف یک سیستم جامع برای آنها تولید کنند که از MainFrame گرفته تا لپ تاپ و از داس گرفته تا سولاریس را حمایت کند و همیشه آمادهء تغییرات جزئی یا کلی باشد بلکه همگی یک Total Solution را انتخاب میکنند که بصورت متصل و یکدست هم به تمام نیازهای آنها پاسه دهد ، هم ساپورت خوبی داشته باشد ، هم بتواند ترافیکهای بالا را هندل کند و این مسئله بصورت عملی و تجربی قبلا" به اثبات رسیده باشد و قس علی هذا .

دقیقا" همینجا بازار و حیطه فعالیت اوراکل است . دیدم خیلی زیاد به کلمهء ایران تاکید میکنی و گویا تصور میکنی منظور بنده از معرفی AS ها و بررسی توانائی ها و حوزهء کاری شون این بوده که طی یک حکم حکومتی از فردا صبح اعلام کنم ، همه تعطیل کنند و بروند اوراکل یاد بگیرند ...  خیر . هدف ، صرفا" معرفی AS بود و ذکر قابلیتهای اوراکل به عنوان تنها AS کامل .

در حوزهء نرم افزار ، تعصب نشانگر حماقت است . وقتی ادبیات بازاری فقط و فقط و فقط مبتنی بر منفعت است ، تعصب همانقدر مضحک است که اسعتمال عینک دودی در شب . اما یک مسئله مهم و حیاتی اینجا وجود داره و اون اینه که اگر آدم به محیط یا ابزاری علاقه داره و به هر دلیل فکر میکنه ممکنه اون محیط برتریهائی داشته باشه ، نباید تصور کنه در هر گود و میدانی ، حتما" محیط و ابزار محبوب او حرفی برای گفتن داره یا ... 

من در مورد جاوا ، اوراکل و دات نت بالای بیست تا مقاله مفصل توی این سایت نوشتم که میتونی بهشون مراجعه کنی و تصور میکنم نوشته ها اینقدر روشن و واضح بوده است که تفاوتها و تشابهات این تکنولوژی ها رو مشخص کنه .حوزهء Application Server ها حوزهء برنامه های فوق العاده بزرگ ، بانکهای اطلاعاتی فوق العاده بزرگ و نرم افزارهای توزیع شده است که همگی به وجود یک بستر یکدست و جوابگو وابسته هستند ، اوراکل نسخه سازمانی بانک اطلاعاتی اش را با گارانتی 99.999 درصد Availability میفروشد و بسته به تعداد لایسنسهای دریافت شده ، رقم فوق العاده بالائی در قراردادهایش تحت عنوان گارانتی درج میکند به این مفهوم که اگر در تمام زمان کاربری از این محصول ، DownTime از مقدار گفته شده بیشتر بود ، اوراکل خسارت خواهد پرداخت . به همین دلیل است که بزرگترین بانکهای اطلاعاتی موجود ، چه بصورت clustered چه بصورت کاربری روی سرورهای Huge ، از اوراکل استفاده میکنند و همکنون اوراکل دارای بالاترین سهم فروش در بازار بانکهای اطلاعاتی است . در حوزهء ابزارهای توسعهء نرم افزار هم اوراکل در کنار آی بی ام و بورلند ، یکی از رئوس مثلث توسعهء مستقل صنعت جاوا است . در عرصه BI هم اوراکل گستردگی بسیاری زیادی داره و بخش اعظم ثروت این غول نرم افزاری مدیون نرم افزارهای فوق العاده قدرتمندش در این حوزه است . محیطهای یکدست و پاسخگوی اوراکل کمک میکنن یک پروژه "سازمان مقیاس" برای توسعه یک نرم افزار Huge-Scale سرعت بیشتر و مراحل صنعتی سازی نرم افزار شتاب بیشتری داشته باشن .

حالا با این تفاصیل ، وقتی معنا و مفهوم AS ، نقش اوراکل ، بازار پر رونق اوراکل ، مشتریان راضی از کمپانی های بزرگ و پر درآمد ، آمارهای حیرت انگیز از قیمت سهام و ارزش افزوده و ... در محیط علمی – اقتصادی اروپا/امریکا درک شد ، آیا به نظرت چقدر منطقیه که بشینیم و بخایم بحث کنیم که :




> اگر یک برنامه نویس در ایران یک سیستم تحت وب را بر مبنای اوراکل ایجاد نماید، آیا دسترسی به یک سرویس Web Hosting با پشتیبانی اوراکل برای او میسر است. و اگر هم باشد قیمت آن را میدانید؟


اصولا" مطالبی از این دست نه در فضای این بحث به صورت خاص و نه در فضای مباحث مربوط به AS ها قابل طرح نیستند . اگر نگاهی به مقایسه طبقه بندی شده جاوا و دات نت در صفحه اول همین تاپیک توسط من بندازی خواهی دید که ، معتقدم دات نت به عنوان یک بستر اجرای کد ، در موارد متعددی از جاوا ، به عنوان یک بستر اجرای کد ، بهتر است ، در مواردی برعکس  و اگر نوشته های من رو در سایر بخشهای مطالعه کرده باشی ، خواهی دید معتقدم دلفی قدرتمندترین محیط توسعهء Win32 است ، ضمن اینکه آنچه تابحال نرم افزار نوشته ام – به هر دلیل – اغلب با ویژوال سی بوده است و نه دلفی یا مثالهائی از این دست . همانقدر که فکر میکنم استفاده از بانک اطلاعاتی اوراکل در پروژه اورژانس تهران ابلهانه بود ، فکر میکنم اتکاء به چیزی غیر از J2EE در سیستم مدیریت مشتریات وزارت نفت ، میتوانست ابلهانه باشد . امیدوارم توضیحاتی که ارائه شد این نکته کلیدی رو منتقل کرده باشه که برای مقایسه مفاهیم مختلف ، که بعضی هاشون هم در یک شعاع چند هزار کیلومتری حتی یک عدد معادل فیزیکی ندارند و طبق نوشته قبلی ام ترجمه نشده هستند ، آدم باید به اندازه کافی سواد و از اون مهمتر تجربه داشته باشه تا هم با خلط موضوعات مختلف نتیجه گیری دشوار تر نشه ، هم آنچه گفته و شنیده میشه ، برای طرفین ملموس و قابل درک باشه و در خاتمه هم امیدوارم حداقل نصف اون مقداری که من برای بکار بردن الفاظ صحیح و چینش درست کلمات برای انتقال یک مفهوم نه چندان پیچیده ، دقت میکنم ، خوانندگان هم به دور از مسائل حاشیه ای ، به مفاهیم دقت کنند.

خوش باشی  :)

----------


## sh

آقای اینپرایز دقت در ترکیب و نظم انتقال اطلاعاتت رو می پسندم  :flower:

----------


## مهدی کرامتی

دوست عزیز، اینپرایز:
*عالی بود*  :) 

مرسی++  :موافق:   :تشویق:   :flower:  :kiss:

----------


## _alish_

نمی دونم چی بگم
هر چی دست و پا می زنم چیزی یاد بگیرم ولی متوجه می شم چیزی یاد نگرفته ام و آرزو می کنم ای کاش دوباره متولد می شدم( چون تازه فهمیدم راه کدوم) و یک کمی وقت دارم.
Inpriseمن نفهمیدم شبانه روز شما چند ساعت به هر حال واقعا از شما و دوستان این سایت ممنونم ، من که جرات نمی کنم چیزی تواین سایت بنویسم چون تازه اول راه ام فقط برام آرزو موفقیت کنید...
امیدوارم هر ثانیه بر و بچ ایران سوادشون بالا و بالا تر رود :kiss:

----------

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

----------


## Inprise

> در مورد زبانی که SAP استفاده می کنه توضیح بیشتری بدید؟


ABAP زبانی است شبیه جاوا ، هر چند شیء گرائی ذاتی ( در واقع شیء محوری ، که ترجمهء صحیح Object Oriented است ) در آن وجود نداره . برای هر کدام از رده های محصولات ، SAP استودیوها و فریم ورکهای متعددی برای حمایت از ABAP توسعه داده ، مثل Net Weaver .




> ماژول هایی که گفتید رابا کدام زبان نوشته اند؟


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

موفق باشید  :)

----------

از توضیحات شما ممنون و
یعنی دات نت این قابلیت رو داره که به عنوان پلتفرم اصلی SAP استفاده بشود؟
در ضمن SAP از اوراکل قوی تر است یا خیر؟
ممنون

----------


## Inprise

> دات نت این قابلیت رو داره که به عنوان پلتفرم اصلی SAP استفاده بشود؟


بقول کفار Why Not ?




> SAP از اوراکل قوی تر است یا خیر؟


چندان قابل بحث نیست . در واقع انتخاب راه حلهای  SAP یا اوراکل تا حد زیادی وابسته به مسائل غیر فنی است تا فنی . فی المثل اوراکل امریکائی است و SAP آلمانی ( = اروپائی ) و ... تو خود حدیث مفصل بخوان از این مجمل

خوش باشی

----------


## phantasm

فوق العاده بود برادر اینپرایز :kiss: 

اول خواستم به علت آف تاپیک بودن چیزی ارسال نکنم , ولی دیدم نمیشه از یه مطلب این همه استفاده کرده باشم بعد از نویسندش یه خط تشکر نکنم.

بازم ممنون :flower:

----------

با تشکر
یعنی ویندوز و دات نت توانایی پشتیبانی سیستم های غول پیکر را دارا می باشند؟
با تشکر

----------


## Inprise

> ویندوز و دات نت توانایی پشتیبانی سیستم های غول پیکر را دارا می باشند؟


بستگی داره چه میزان از گستردگی مد نظر باشه ، و "توانائی پشتیبانی" رو چی تعریف کنیم . من به شخصه فکر میکنم ویندوز روی ماشینهای نسبتا" بزرگ میتونه برای برخی از سطوح کاربرد جوابگو باشه اما باز هم ، برای رسیدن به وضعیت سیستمهائی مثل HP-UX یا سولاریس ، مسیر نسبتا" طولانی باید طی بشه . ( تقریبا" همون مسیری که لینوکس باید طی کنه ) بهر حال آنچه در این مورد خاص گفته شد ، مربوط به آینده است ، که باید منتظر شد و دید .

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

موفق باشید

----------


## CodeMasterX

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

----------


## Mohammad_Mnt

(بعد از سه سال ! )
آقای اینپرایز، با توجه به نوشته‌های شما، می تونم این نتیجه گیری را بکنم که چون حوزه ی J2EE در عین گستردگی زیاد، تعداد محدودی از شرکت‌ها و سازمان‌ها را پوشش میده، آینده‌ی شغلی بهتری برای برنامه‌نویسان ویندوز/دات‌نت وجود داره تا اوراکل ؟

پ.ن : چند وقتی هست که از این نوع مقاله‌های خوب از شما توی سایت نمی‌بینیم :(

----------


## **pooneh**

با سلام 
ببخشید که مزاحمتون شدم،توی نرم افزار dream weaver ،برای صفحات html ،می خوام از کدهای جاوا استفاده کنم،مثلا قرار دادن ساعت در پایین صفحه
کدش را دارم و لی می خوام از کدش در تمام صفحاتم استفاده کنم اما نوشتن کد در تمام صفحات کاری وقت گیر است،به خاطر همین می خوام از یک تابع استفاده کنم که تابع بره کد جاوا را فراخوانی کند
حالا من نمیدونم این تابع را کجا تعریف کنم و چه طوری این تابع اسکریپت جاوا را فرا حوانی کنه؟؟
اگه میشه تا همین امشب جوابمو بدبد.ممنون

----------


## amir_soft

> جاوا را تاحدود زیادی شرکت سان مشخص می کند و دات نت را هم مایکروسافت. 
> .


 
استاندارد جاوا را یک اجتماع بالغ بر 120 شرکت به نام JCP مشخص میکنند . نه فقط صرفا خود شرکت سان.خروجی این اجتماع یک سری استاندارد به نام اسپک هست.در نتیجه حتی اگه سان هم کاملا از بینرفت جاوا از بین نمیره.چون صد و خورده ای شرکت دیگه باقی میمونند که از اون پشتیبانی کنند

----------


## amin-z

مقايسه J2EE و.Net 
J2EE
مخفف Java 2 Enterprise Editionاست . يك استاندارد است كه مشخص مي كند كه براي پاسخ دادن به یک نیاز نرم افزاری "سازمان مقیاس" چگونه باید با اجزاء نرم افزار رفتار کرد و برای مدیریت طول عمر نرم افزار Application LifeCycle Managementچكار بايد انجام داد. 
J2EE با ايجاد يك محيط مستقل از سيستم عامل، باعث مي شود برنامه هاي كاربردي نهايي، انعطاف پذیر، متحرک و قابل استفاده مجدد در پیاده سازی های مختلف عرضه کننده هستند.

قابلیت های J2EE :

- استقلال از سیستم عامل و سخت افزار
- پیوستگی با طراحی شی گرا ومتدوولوژی مولفه
- انعطاف پذیری، قابلیت جابجایی و قابلیت عملیات متقابل
- یکپارچه سازی سیستم های اطلاعاتی گسترده
- پذیرش معماری های سرویسگرا درJ2EE

.Net
یک بستر برای ایجاد نرم افزار از شرکت مایکروسافت.
تمام دات نت یک framework است و یک محیط تولید نرم افزار + مستنداتی جهت ایجاد ابزارهای متفرقه تولید نرم افزار

قابلیت های .Net
- با استفاده از ویژگی CLR امکان استفاده از زبان برنمه نویس مورد علاقه جهت پیاده سازی برنامه ها را می دهد.
- بوسیله XMLامکان استفاده برای ایجاد سیستم های توزیع شده را فراهم می کند.
- امکان طراحی و پیاده سازی برنامه های مبتنی بر اینترنت و محیط های Desktopرا داراست. 

مقایسه بسترهای .Net و J2EE
- کتابخانه کلاس 
- زمان اجرا 
- اتصالات 
- ارتباط با داده
- امنیت (حفاظت از متن کد، ارتباطات ، خود بستر و مانایی)
- انتقال 
- تولید محتوای وب 

1) کتابخانه کلاس
دات نت وJDK هر دو کتابخانه های قدرتمندی هستند که اغلب نیازهای پایه برای تولید نرم افزار را حمایت می کنند.
کاربری .Net راحت تر پیچیدگی آن کمتر و یادگیری .Net نسبت بهJ2EEسریعتر است.

2)زمان اجرا 
سرعت اجرای "برنامه " های دات نت اگر ازJIT استفاده نکند از برنامه های جاوا کندتر است.

3)اتصالات 
دات نت از ریموتینگ ، وب سرویس و کام پلاس حمايت مي كند(بصورت داخلي) جاوا به جاي ریموتینگ ابزاری بنام ریموت متد اینووکیشن دارد وب سرویس و CORBA را حمایت می کند. 

4) ارتباط با داده 
دات نت چیزی بنام ADO.NET ارائه کرده که راه حلی منحصر به فرد دارد. 
جاوا JDBC را دارد که چه در connection Pooling و چه درobject pooling بخوبی ADO.NET کار می کند اما ADO.NET فوق العاده امکانات زیادی دارد.

5) امنیت 
- حفاظت از متن کد در هر دو محیط ضعیف هستند.
- حفاظت از ارتباطات در هر دو محیط با open standardها کار می کنند. 
- حفاظت از خودبستر و حفظ مانائی در حوزه امنیت هر دو محیط چندان متفاوت نیستند. 

6) انتقال 
در این زمینه هیچ رقابتی وجود ندارد و جاوا پانزده سال جلوتر است. 

7)تولید محتوای وب 
دات نت ASP.NET و جاوا JSP را ارائه نموده است. سرعت پاسخگوئی دات نت در کاربردهای معمولی بالاتر می باشد . 

نتیجه: 
تمام امکانات و توانایی های . NET مشابهش در بستر جاوا موجود است در برخی موارد دات نت و در برخی دیگر جاوا برتر است مگر اینکه اگر کاربر خیلی بزرگ باشد یا برنامه خاصی برای انتقال بستر وجود داشته باشد یا احتمال وجودش قوی باشد ، در هر حال " تنها گزینه موجود" جاوا است در غیر اینصورت باید بررسی کرد.

منبع :http://www.daneshju.ir

----------


## amin-z

*كاربردهاي جاوا*



javaJava تنها يک زبان نيست بلکه يک ماشين معماري و يک محيط کاربردي و يک محيط ‍پياده سازي و ...است امروزه بيش از 2.5ميليون وسيله در سراسر دنيا از تكنولوزي Java بهره مي برند. انگيزه اوليه ابداع Java نياز به يك زبان مستقل ازمحيط زيربنايي (platform-independent) بود كه بتواند نرم افزارهايي توليد نمايد كه قابليت كاربرد در وسائل مصرفي الكترونيكي مختلف نظير اجاقهاي مايكروويو و كنترل از راه دور را داشته باشند . [1] كاربردهاي آن: 

1. درعمدهء سيستم عامل ها ازUnix, Linux, Macintosh, Windows NT و مرورگرهايي مانند CyberDog, HotJava, Internet Explorer, Mosaic, Navigator, Opera و Netscape به کار مي رود. 

2. کاربردهاي Java همچنين در سيستم هاي توکار(embedded controllers) و کارت هاي هوشمند(Smart Card) و دستگاه هاي صنعتي (چاپگر و روبات و دوربين) و انواع جواهرات(حلقه و ساعت مچي) که از JVM بهره مي برند و سخت افزارهاي واسط مي باشد. 

توانايي مررگرها در اجراي Java applets باعث عمومي تر شدن اين زبان شده است. توسعه دهنده ها با فعاليت در AJAX قصد گسترش دادن در زمينه انيميشن را دارند. 

Java اغلب در كاربردهاي پيچيده مانند Yahoo! Games و video player در زمينه هاي چندگانه به كار مي رود. از نرم افزارهاي محبوب در اين قسمت به شمار مي آيد. همچنين زبان اسکريپتي به نامJSP که براي وب و بر روي وب سرور Apache-Tomcat اجرا مي‌شود نيز وجود دارد که همان جاواست. 

بيشترين کاربرد جاوا در اجراي بازي هاي آنلاين، چت با ديگر کاربران در محيط هاي گفتگويي که به زبان جاوا نوشته شده اند، ديدن تصاوير 3D و ... مي باشد. بيشتر اين نرم افزار ها و بازي ها نيز از داخل مرورگر ها قابل اجرا بوده و به اصطلاح "applets" و يا ريزبرنامه ها ناميده مي شوند.

در ميزكار Java اغلب كمتر به کار مي‌رود. به چند دليل: 

Java application اغلب حافظهء بيشتري نسبت به موارد مشابه خود مي گيرند و علت آن هم سربار زمان اجراست. 

واسط هاي گرافيكي كاربر براي كاربردهاي Java همراه با راهنماي واسط انساني كه كاربر به آنها عادت كرده نيست و Font smoothing در حالت پيش فرض غيرفعال است و باعث مي شود نوشته با كيفيت پايين به نظر برسد. 

ابزارهاي آماده رايگان در Java Development Kit به اندازه اي قدرتمند نيست تا به آساني كاربردهاي خود را بسازد. در حالي كه انواع نرم افزارهاي رايگان و قدرتمند نسخه هاي متنوع Java Runtime باعث شده يك كاربر براي هر نسخه كاربردهاي موردنياز آن را نصب كند. كاربردهاي Java در موبايل محبوبيت بسياري دارد. 

توسعه دهنده مي تواند برنامه هاي Java را منتشر كند بدون اين كه حق امتيازي پرداخت كرده باشد. برنامه هاي Java گسترهء عمل وسيع تري دارند و روي گوشي ها ي با مدل ارزان تر محبوبيت زيادي دارند. هم چنين مي توان به ايجاد آزاد كاربردي مانند Opera Mini اشاره كرد كه بيشتر GSM (سيستم كلي براي ارتباطات موبايل)بدون سيم در همهء جهان از Java استفاده مي كنند. نسخه هاي زياد از availability بر روي اكثر ميزكارها وجود دارد. 

طبق آمار Network World: در بررسي اخيري كه توسط IDC در ميان بيش از 450 مجري IT انجام شد، مشخص گرديد كه 70 درصد از اين افراد قصد دارند استفاده از Java را افزايش داده و يا آن را ادامه دهند. 

اخيرا پروژه اي در IBM در حال توسعه است كه در زمينه IDE فعاليت مي كند.نام آن Eclipse است اين اجتماع كد باز بر روي توسعه سكوها و كاربردهاي frameworks فعاليت مي كند.

--------------------------------------
*قابليتها*

برخلاف ساير زبانهاي كامپيوتري ، Java ، پشتيباني توكار از برنامه نويسي multithreading را فراهم مي كند . واژه‌ها در جاوا بسيار گسترده مي‌باشند ولي به دليل طبقه‌بندي بودن آنها هيچ مشکلي در فهم ايشان وجود ندارد. جاوا در سه ماژول زير انتشار مي‌يابد: الف.(JSE) که مخفف Java Standard Edition مي‌باشد.اين SDK، ابزار‌ها، runtime ها و API هايي براي نوشتن برنامه‌ مي‌باشد. همچنين شامل ‌ JDK و JRE مي‌شود. البته اين دو براي نوشتن برنامه لازم مي‌باشند.(الزامي است) ب.(JEE) که مخفف Java Enterprise Edition است. در واقع اين گزينه ترکيب تعدادي تکنولوژي در يک معماري با يک مدل برنامه نويسي فراگير مي‌باشد.به زبان برنامه‌نويسي يک کتابخانه بزرگ است. پ.(JME) که مخفف Java Micro Edition مي‌باشد. يک هدفمندي بهينه شده JRE که محدوده عريضي از محصولات مصرف کننده را در بر مي‌گيرد. به عنوان مثال شامل کار با انواع تلفن ازجمله موبايل مي‌باشد.به زبان برنامه‌‌نويسي يک کتابخانه در مورد موبايل است.

يک برنامه‌نويس نياز به ابزار‌ها و ترکيب‌هاي مهندسي نرم‌افزار دارد. جاوا تمام اين ترکيب‌ها را به صورت توکار درون خود دارد. زبان جاوا کتابخانه‌ها و کلاس‌هاي بيشماري دارد. به طوريکه اگر کاري را با زبان ++C در ??? خط انجام مي‌دهيد مي‌توانيد همان پروژه را در ?? خط انجام دهيد. يکي ديگر از خواص جاوا شي-گرا بودن آن است به‌طوريکه نمي‌توان حتي يک تابع در آن تعريف کرد. همه اين خواص دست در دست هم داده و مدت زمان کد زني را پايين مي‌آورند. از ديد مهندسي نرم‌افزار زمان يک رکن است. و وقتي که زمان کمتري براي يک پروژه صرف گردد، يک برگ برنده براي آن پروژه محسوب مي‌گردد. از ديگر قابليت‌هاي آن مي‌توان از کلاس‌هايي که بر روي موبايل کار مي‌کنند نام برد. ساده‌سازي يکي ديگر از قابليت‌هاي اين زبان است به طوريکه جاوا فاقد اشاره‌گر مي‌باشد. البته از ديدي ديگر اين فقدان يک ضعف محسوب مي‌شود.

---------------------------------------
*جاوا در آينده* 
سلام
دنياي كامپيوتر و ارتباطات - يكي از بحث برانگيزترين موارد در زبان جاوا و تكنولوژي‌هاي مرتبط با آن كارآيي جاوا (Java Performance) ‌است. زبان جاوا كه توسط ماشين مجازي (Java Virtual Machine) اجرا مي‌شود در ابتداي معرفي به علت استفاده از ماشين مجازي براي اجرا نسبت به ساير زبان‌هايي كه كد اجرايي محلي سيستم‌عامل را توليد مي‌كنند همانند C/C++‎ سرعت كمتري داشت. با گذشت زمان و رشد تكنولوژي‌هاي بكار رفته در ماشين مجازي، با توجه به پايداري بي همتاي جاوا، شاهد رشد چشمگير كارآيي در زبان جاوا بوده‌ايم، به صورتي كه هم‌اكنون كارآيي در جاوا و تكنولوژي‌هاي وابسته به آن در بالاترين سطح ممكن در بين ساير تكنولوژي‌هاي رقيب است. اين در حاليست كه در مورد ساير مشخصه‌هاي اين زبان همچون پايداري، قابليت توسعه و هزينه ناچيز توليد ساير رقبا حرفي براي ارائه ندارند.

در اينجا به گزارش سايت fasterj.com كه از ارائه دهندگان راهكارها و توصيه‌هاي بهبود كارآيي و بازده در محصولات توليد شده در جاواست مي‌پردازيم كه در آن دنياي كارآيي جاوا در سال گذشته بررسي شده‌ است. بررسي وقايعي كه در سال گذشته در دنياي جاوا در ارتباط با بحث كارآيي به وقوع پيوست بيشتر از همه در پنج قسمت نمايان بوده‌ است. كه شامل جاوا نسخه6، مديريت ظرفيت (Java Capacity)، انجمن جاوا يك (JavaOne)، عموميت جاوا و آخرين و جالب‌ترين مورد حركت به سوي سورس باز شدن جاوا بوده‌است.

Java6
جاوا 6 در پايان سال 2006 ارائه شد. حركت بزرگ در كارآيي جاوا 6 بلوغ در امكان مانيتورينگ و عيب‌يابي در آن بود. در ابتداي سال گذشته جامعه جاوا در سمينارها و از طريق بلوتن‌هاي رسمي با اينگونه امكانات و قابليت جاوا 6 آشنايي يافتند. در حقيقت اين امكان مانيتورينگ و عيب‌يابي در جاوا 5 افزوده شده بود، اما در جاوا 6 گسترش يافت و به تكامل رسيد. و هم اكنون زمان آن رسيده است كه بر پايه اين امكانات، ابزارهاي متنوع بهبود كارآيي در كد جاوا را كه به صورت سورس باز ارائه مي‌شوند، شاهد باشيم. ابزارهايي كه در گذشته فقط به صورت تجاري و با قيمت‌هاي گزاف در دسترس بودند، هم اكنون در جامعه سورس باز جاوا رشد يافته و عموميت پيدا نموده‌اند.

از جمله اين ابزارها مي‌توان به Glassbox و Netbeans profiler اشاره نمود. علاوه بر آن جاوا 6 قابليت‌هايي را در بهبود سرعت اجرا در ماشين مجازي و نيز در مديريت حافظه (garbage collector) تدارك ديده است به گونه‌اي كه در هر قسمتي شاهد افزايش سرعت اجرا و بهبود كارآيي پروژه‌هاي جاوايي اجرا شده با نسخه 6 جاوا هستيم. قابليت جديد ديگري كه از سال گذشته قابل استفاده مي‌باشد نوعي پشتيباني از حافظه heap است كه به كمك آن مي‌توان توانايي برنامه‌هاي پروفايلر را كه كارآيي كد جاوا را اندازه‌گيري مي‌كنند افزايش داد. اين امكان كه در سال 2007 به جاوا افزوده شده است (اما در ليست رسمي قابليت‌هاي جاوا 6 نيست) با كمك در آناليز حافظه احتمالات رخداد خطاي مشهور كمبود حافظه OutOfMemoryError را مشخص مي‌سازد.

مديريت ظرفيت
با وجود آنكه مباحث مديريت ظرفيت از گذشته نيز مطرح بوده ‌است، در سال 2007 مورد توجه و اهميت ويژه صنعت قرار گرفت. مباحث مديريت ظرفيت كه به بزرگ شدن اندازه برنامه‌ها و نرم‌افزارها مي‌پردازد با ورود شركت‌هاي بزرگ به اين مقوله تعاريف جديدي در ابعاد مديريت تراكنش‌ها و مانيتورينگ و اندازه‌گيري كسب‌وكارها به وجود آورده ‌است. در ديدگاه جديد سخت‌افزار اهميت بيشتري نسبت به گذشته يافته است و بنابراين تست كارآيي و مجازي‌سازي مورد توجه قرار گرفته است. اين توجه ويژه بر مباحث كارآيي نشان‌دهنده توقع خاص صنعت از توليدكنندگان براي پرداختن بيشتر به آناليز كارآيي و بهبود كارآيي در محصولات خود مي‌باشد. در گذشته اكثر توصيه‌هاي بهبود كارآيي مربوط به توسعه و ارتقا تجهيزات سخت‌افزاري به كار رفته در سرويس‌دهندگان بزرگ بوده است و سخت‌افزار و هزينه‌هاي جانبي آن اصلي‌ترين هزينه راه‌اندازي اينگونه مراكز سرويس به شمار مي‌رفت. اما در حال حاضر هزينه صرفه‌جويي شده به علت بهبود كارآيي در عملكرد نرم افزاري سيستم با كل هزينه‌هاي مربوط به بروزرساني سخت‌افزاري رقابت مي‌كند.

انجمن جاوا يك
انجمن جاوا يك همانند رسم گذشته خود، جلسات متعددي در مباحث كارآيي جاوا در سال گذشته برگزار كرد كه اين نشست‌ها خروجي قابل توجهي در بر نداشت. در اين ميان JavaFx شايد يك استثنا باشد. JavaFX نوعي جاوا (ماشين مجازي) است كه در آن كارآيي از مهم‌ترين پارامترهاي طراحي به شمار مي‌رود. بنابراين اين انتظار وجود دارد كه با ورود ابزارهاي مبتني بر آن، محصولات جاوايي با كارآيي بسيار بالا توليد و در دسترس قرار گيرد. از ديگر نقطه‌نظرهاي مورد توجه قرارگرفته در انجمن توجه شركت سان (Sun) به موارد كارآيي در بسته JRE توزيع شده براي كاربران نهايي (end user) است. در اين تلاش شركت سان ضمن افزايش كارآيي JRE ارائه شده، از حجم آن براي download نيز كاسته و زمان اجرا آن را نيز كاهش داده است. تركيب JRE جديد و JavaFX بازار نرم‌افزارهاي روميزي (Desktop)، توليد سريع و نرم‌افزارهاي اينترنتي نسل جديد را هدف قرار داده‌اند.

از ديگر اعلانات انجمن در آن سال، تبليغات براي جاوا در دنياي توسعه نرم‌افزارهاي اينترنتي نسل جديد بود كه در عمل به چند پارگي بازار بين تكنولوژي‌هاي رقيب همانند Adobe Flex/AIR، Silverlight و AJAX و در دنياي روميزي ويژوال بيسيك، دلفي، سي شارپ، C، C++‎ و Swing منجر شد و شعار Swing بزرگ‌ترين بازار توليدكنندگان روميزي به سوي C#‎ جهت گرفت. با وجود اخبار نااميدكننده فوق شايد آمار ارائه شده كلي از جاوا در سال 2007 بسيار جلوه كننده به نظر برسد. وجود شش ميليون برنامه‌نويس جاوا، چهار ميليون ابزار Blu-Ray جاوايي، هفت ميليون ابزار set-top جاوا، بيش از دو ميليون گوشي موبايل با قابليت اجراي جاوا، دو و نيم ميليون كارت الكترونيكي جاوا و بيش از 700 ميليون كامپيوتر كه جاوا نصب نموده‌اند نقطه عطفي از گستردگي و عموميت جاوا در سطح جهاني باشد.

عموميت زبان
جاوا موقعيت مسلم خود به عنوان زبان برنامه‌نويسي شماره يك در سال 2007 را نسبت به نزديك‌ترين رقيب خود يعني C/C++‎ به خوبي حفظ نموده است. C/C++‎ رقيبي است كه در اين اواخر شاهد ركود نسبي آن بوده‌ايم. موضوع مورد بحث در اينجا مقايسه كارآيي زبان جاوا در مقابل C/C++‎ است. نكته بسيار مهم آن است كه جاوا هيچ كمبود عمده‌اي در مباحث كارآيي نسبت به C/C++‎ به جز در برخي از موارد خاص ندارد، اما اين امر جلوگيري از ادعاهاي طرفداران C/C++‎ مبني بر سرعت بيشتر C/C++‎ را نكرده‌است. با اين وجود رويه موجود در دنياي انجمن‌هاي حرفه IT به گونه است كه در دراز مدت يا تفاوت عمده‌اي در سرعت بين آندو نخواهند ديد يا اصولاً توجهي به اين تفاوت سرعت نخواهند داشت.

در مورد ساير زبان‌ها، سال 2007 شاهد رشد حيرت‌انگيز زبان Ruby بود اما به نظر نمي‌رسد كه پشتيبانان اين زبان، قصد ماجراجويي جدي دراز مدت در بازار Enterprise و كارآيي داشته باشند. تنها روند قابل شناسايي دراز مدت در اين مقوله C#‎ بود كه آن هم به آهستگي پيش مي‌رود و قابل پيش‌بيني است كه زماني دومين رتبه زبان برنامه‌نويسي را به خود اختصاص دهد. سرانجام به نظر مي‌رسد كه اين جاواست كه با حملات خود، معروفيت خود را به جوامع قبولانده است، عملي كه هيچ زبان برنامه‌نويسي ديگر قدرت انجام آن را ندارد. با توجه به سياست‌هاي جديد شركت سان و توجه عمده آن شركت بر روي جاوا و سرمايه‌گذاري‌ها وسيع در جاوا، بعيد نيست كه حتي نام اين شركت نيز به Sun Java تغيير داده شود. البته نام تجاري جاوا از زبان برنامه‌نويسي جاوا مجزاست اما آنقدر به يكديگر مربوط هستند كه نشان‌دهنده پشتيباني زبان توسط نام تجاري باشد! 

كارآيي جاوا و دنياي سورس‌باز
جاوا به دنياي سورس‌باز وارد شده است و اين ورود فقط از نقطه نظرهاي كارآيي نيست. اما نكته قابل توجه وفور چارچوب‌هاي ارائه شده براي مباحث كارآيي در دنياي سورس‌باز است. چارچوب‌هايي براي گسترش مقياس در جاوا همانند Hadoop، چندين چارچوب دسته‌بندي و شبكه‌بندي (Griding) همانند Drools يا GridGain، چارچوب‌هاي پردازش موازي و مانند آن، كش‌هاي چندگانه توزيع شده، چارچوب‌هاي مبتني بر NIO و انواع Non-blocking hashmap، توجه ويژه و ارائه كتابخانه‌هاي متعدد بر روي همزماني پردازش با volatile و ده‌ها مورد چارچوب و ابزار ديگر كه بر مقوله‌هاي مختلف پيچيدگي‌هاي توليد نرم‌افزارهاي حرفه‌اي و enterprise پرداخته‌اند. به طور قطع هيچ زبان برنامه‌نويسي ديگري وجود ندارد كه با اين گستردگي به صورت سورس باز بر مباحث كارآيي و ابزارهاي مقياس‌پذيري نرم‌افزار پرداخته باشد.

علاوه بر فوق مي‌بايست ابزارها و پروژه‌هاي انجام شده در بخش غير سورس باز از سوي شركت‌هايي همانند IBM با تمركز بر روي پردازش همزماني (Real-Time Class Analysis, lock analyser, Dump Analyzer) و در دنياي اينترنت با بررسي شتاب‌دهنده‌هاي خاص گوگل، يا قابليت‌هاي خاص بهبود نمايش صفحات براي كاربران در ياهو كه متمركز بر افزايش سرعت در download و نمايش بوده‌اند را اضافه نماييم. اين نمونه‌هاي موفق از كسب وكار چگونگي تلفيق تكنولوژي‌ها و زبان‌هاي متفاوت براي خلق كارآيي را نمايش مي‌دهد. سال 2007 شايد از موفق‌ترين سال‌ها براي كارآيي در جاوا بوده ‌است.

منبع : http://www.iranian-it.net/

++++++++++++++++++++
تکنولوژی J2EE
>>
http://www.aictc.com/c/portal/layout?p_l_id=PUB.1.483
------------------
تکنولوژی NET.
>>
http://www.aictc.com/c/portal/layout?p_l_id=PUB.1.484
-----------------

----------


## mehdi1217

سلام
واقعاً درسته توی ایران همه روی دات نت تمرکز می کنند و اکثر پروژه ها با اون نوشته می شه

----------


## ghasemi414

> الف. بله . زیاد . راستی  Enterprise رو اِنترپرایز میخونن  :wink: 
> 
> ب. شرکتهای معدودی تخصصا" در زمینه جاوا کار میکنند


سیستم اتوماسیون اداری گام که در حال حاضر در بانکها و موسسات دولتی مشغول به کار است از تمام امکاناتی که شما فرمودید داره استفاده می کنه از oracle appliction server و تمام زیر سیستم های آن .

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

----------


## alireza_ars

سلام دوست عزیز
در پاسخ به سوالتون باید بگم
جاوا یا j2ee برای پروژه های وسیع در حد ملی یا چند ملیتی هستند...مثل پروژه کارت سوخت که با جاوا راه اندازی شده و به دست هندی ها(متاسفانه)
.net ...component های آماده ی بسیار زیادی داره...که لازم نیست زیاد کد بنویسی و میتونی از اون component ها استفاده کنی...اما
جاوا چون یک زبان open source میباشد...component های آماده ای ندارند و شما نمیتوانید پیدا کنید.
خلاصه
پروژه ای که با .net در 1 ماه handel میشود....با جاوا 4 ماه طول میکشد و شاید هم بیشتر...پس جاوا برای پروژه های بزرگ و .net برای پروژه های کوچک مورد استفاده قرار میگیرد...اما
جاوا یک زبان کاملا اصولی هست...یعنی بر عکس .net...در جاوا هر چیزی یک علتی داره...اما در .net نه...
در .net چرا میتونیم با قرار دادن یک @ از / های تکی استفاده کنیم؟...جواب:معلوم نیست...مایکروسافت اینجوری گفته و ما هم اینجوری استفاده میکنیم...
جاوا رو یاد بگیرید...اما برای کار در ضمینه برنامه نویسی پیشرفته و در خارج از کشور....
.net را یاد بگبربد...اما برای برنامه نویسی در داخل کشور...چون با .net نمیتونین برای کار از کشور خارج بشین....
به نظر من .net در برابر جاوا انقدر ضعیفه که...من خودم خجالت میکشم .net رو یاد بگیرم...واسه همین دنبال جاوا هستم
scjp و  scjd رو تموم کردم و الان دنبال j2ee هستم...در حالی که فقط 1 ماه .net خوندم و در اون 1 ماه...حالم از .net به هم خورد
در ایران .net....غیره اصولی تو جای غیر اصولی بیشتر یافت میشه
ضمنا..یادتون نره...چون قطعات یدکی پیکان بیشتر یافت میشه...دلیل نمیشه که بنز سوار نشیم!
در یک وبلاگ که مربوط به یک آمریکایی بود...دیدم که 101 دلیل همراه با کد آورده بود که جاوا بهتر از .net هست...
موفق باشید

----------


## anubis_ir

تمام مواردي رو كه نوشتي قابل رد است و احساسي. 




> پروژه کارت سوخت که با جاوا راه اندازی شده


خيلي از اين پروژه‌ها در اين سطح متاسفانه بر اساس اين است كه چه اشخاصي در اون دخيل هستند و براش تصميم مي‌گيرند نه آناليز مهندسي.




> جاوا چون یک زبان open source میباشد...component های آماده ای ندارند و شما نمیتوانید پیدا کنید.


اين خيلي جالب بود. لازم هست چندين هزار كتابخانه سورس باز كمكي آن‌را معرفي كنم؟ كامپوننت حتما بايد ويژوال باشد تا به آن كامپوننت گفت؟




> در .net چرا میتونیم با قرار دادن یک @ از / های تکی استفاده کنیم؟...جواب:معلوم نیست...


علت طراحي اين زبان توسط MS است. طراح اينطور پسنديده و كامپايلر براش درست كرده.




> .چون با .net نمیتونین برای کار از کشور خارج بشین....


نشون ميده كه از آمار خارج از كشور اطلاعي نداري.
محض اطلاع:
http://javablog.franksalinas.net/200...salary-survey/




> در یک وبلاگ که مربوط به یک آمریکایی بود...دیدم که 101 دلیل همراه با کد آورده بود که جاوا بهتر از .net هست...


اكثر اين مقالات تاريخ مصرف دارند. ديدمش. مربوط به سه چهار سال قبل است كه دات نت به اندازه‌ي امروز پيشرفت نكرده بود و در ابتداي راه خودش بود. دنيا، راكد نيست و هر روز در حال به روز شدن و بهتر شدن است.

----------


## esmaeily-hosein

من نمیخوام بگم کدوم بهتره ولی در زمینه database که کار تخصصیم عرض میکنم توی داده های بالای گیگ oracle از sql بهتر جواب داد . ولی در داده های کم همیشه sql بهتره .
آیا همیشه داده های ما به گیگ میرسه داده های یه وب سایت بزرگ ایرانی که معرفی نمیکنم با 10-15 میلیون رکورد کلا database به 600 مگ رسیده بود . تازه fts اینها هم روش run بود . اصلا کند هم نشده بود در ضمن database هم sql بود .
در داده های بزگ آیا نسخه sql که در دست ماست با برنامه های پنتاگون آمریکا واقعا یکیه . خوب تابلو این نسخه ای که دست ماست برای کاربران .
چند وقت پیش یه برنامه دیدم از access که یه سرکت نروژی با همکاری microsoft داده بود میتونم بگم سرعت fetch اون با sql یکی بود اصلا کف کردم . این حرف هم قبول ندارم .net همیشه پروژه هاش کوچک بوده زمانی که این پروژه ها رو نوشتن اصلا .net نبوده ما هنوز نرم افزار های خودمون از .net 1.1 نتونستیم حتی به 2 تغییر بدیم حالا شما میخوای پروژه به اون خفنی بیاری رو .net که مثلا 2 ثانیه سریعتر بشه .
در ضمن .net خیلی جوونه در صورتی که جاوا خیلی پیره . ولی به سرعت در حال بزرگ شدنه که حتی خود جاوایی هم فکرشو نمیکردن . مثلا  واقعا باید گفت wcf در بحث service ها خیلی بهتر از معادل جاوایی خودشه .
به نظر من هر چیزی بر اساس نیاز پروژه تعریف میشه و پارامترهایی مثل زمان و هزینه و پشتیبانی خیلی مهمتر از 2 دهم ثانیه اختلاف بین اونهاست .

----------


## arashmidos2020

oracle application server portal در مورد این موضوع کمی بیشتر توضیح دهید تا ما هم از سردر گمی در این باره در بیایم
ممنون

----------


## Unknownlive

بلاخره میشه با یک مقایسه ساده قدرت را فهمید  شما نگاه به شرکت های سازنده کنید سان هر چقدر قوی باشد مثل مورچه ای در مقابل یک مورچه خوار به نام مایکروسافت قرار دارد من یک مقاله 80 صفحه ای می توانم ارائه بدهم که برتری ان را ثابت کنم اما در همین قدر بگم اگه برای ویندوز برنامه می نویسی دات نت سازگاری بیشتری داره و امکانات بهتری برخورداره زیرا که مایکروسافت خود سازنده ان است و این که تنها دلیل استفاده از زبان های مانند جاوا و پی اچ پی در دنیا مثل کانادا که یکی دوستان جاوا را در انجا پرکاربرد دانست رایگان بودن انهاست و این دلیلی برای قدرتمند بودن ان نیست اگر شما می خواهید برای بازار کار کنید خوب باید بازار را بسنجید بازار ایران که کپی رایت براش معنی نداره به راحتی از قدرت دات نت به کار می بره اما مثلا کانادا به علت گرانی ویژوال استدیو کم تر استفاده می شود اما اگر حرفه ای هستید و خود برنامه می نویسید خوب از قدرت دات نت استفاده کنید من مدت بسیاری است تحقیق می کنم و دات نت قدرت محض است

----------


## Unknownlive

در ضمن امدن تکنولوژی های زیر که شما را مجبور به استفاده دات نت می کنند ان را واقعا یکه می کند و جاوا را سر افکنده در ضمن قدرت دات نت 4 محشره :
LINQ-PLINQ-WPF-Silverlight-WCF()

----------


## Unknownlive

خوب ببینید میشه یه جورای حدس زد که کی پیروز مبارزه در اینده است شما ببینید شرکت سان حدود 5 میلیون دلار قیمت گذاری شده بود حالا را نمی دانم این قدیم است اما مایکروسافت تنها در امد ویندوز ان به بیش از 60 میلیارد دلار می رسد خوب با دادن 3 موتور جستجو،تبلیغات انلاین وسیع،قرار داد با یاهو،حضور در صنعت بازی سازی،موبایل و سخت افزار،بانک های اطلاعاتی و شبکه و دانشگاهی ان را به سرمایه داری بزرگ تبدیل کرده و باعث شده هروقت بخشی از صنعتش رکورد کرد بخشی دیگر جبران کند و جدیدا ویندوز انلاین ان که ازور نام دارد اماده عرضه است خوب کلا گفتم قدرت مایکروسافت را یاد آور شوم پس می بینیم چه شرکت بزرگی پشت این ویژوال استدیو است خوب حال دوستان شاید یادشان باشد چرا این محیط برنامه نویسی رشد کرد دلیلی نداشت جز رقابت با دلفی و شرکت برلند در پایان هایه داستان دیدیم که دلفی چگونه کله پا شد و تولید نسخه های ان به پایان رسید خوب حالا یه جورای نوبت جاوا رسیده که بره با تکنولوژی های جدید مخصوصا این 1000 برنامه نویس جدیدی که مایکروسافت استخدام کرده معلومه چه خبره
 در ضمن ASP 3.5 هم دیدید چه جوری از PHP جلو افتاد کاملا و قورت می ده حریف را خوب خلاصه بگم نسل های جدیدی در راه هستند که قابل مقایسه نیست در ضمن Directx و کلاس های قوی بانک اطلاعاتی را هم باید مزایای دات نت نسبت به جاوا یاد کرد و طراحی اینترفیس های قوی تر با کمک WPF و محیط IDE توسعه مند تر همه می دونند که دلیل استفاده از جاوا و بخصوص PHP رایگان بودن انها نسبت به رقیب است

----------


## sia_2007

دوست عزیز؛ @ یک واژه کلیدی است که Visual Studio آنرا میشناسد؛ و وقتی شما آنرا نوشتید در هنگام کامپایل؛ به جای / ، // را به کامپایلر تحویل میدهد.
در واقع برای کامپایلر این دو کد یکی هستند.
یک تکنیک بسیار ساده.
---

----------


## taknegaar

ادعاهایی در حوزه جاوا مثل 
Total Solution 
حداقل در حوزه وب زمین خورده؛ 
JSP کجا تونسته ضعف جاوا رو در یکپارچگی پر کنه؟!
ادعاهایی مانند 
Scalable بودن هم فقط ادعاست؛  
مثل این می مونه که کسی بلد نیست Mysql رو برای کاری تیون کنه بگه این بدرد نمیخوره !
همونطور که پیدا نکردن یه JBoss کار حرفه ای دلیلی بر رد این ابزار نیست؛ (درد کشیده ها در پروژه های سازمانی میفهمن!)
همونقدر که مایکروسافت نتونست در حوزه لینوکس وجهه ای کسب کنه، 
جاوا هم در پلتفرم ویندوز نتونست وجهه ای کسب کنه،  
بالاخره کاربران نهایی تعیین کننده اند نه طراح سیستم.
در حوزه سولوشن! های اینرفیس هم راه حل کاربردی و خوب موجود نیست؛ 
JavaFx در مقابل WPF و Silverlight حرفی برای گفتن نداره، 
گرچه با فراگیر شدن Html5 و CSS3 شاید هیچ کدم موضوعیتی نداشته باشن.
Java در یک زمان به عنوان پلتفرمی مطرح شد تا خلا وجود راه حلی در بین سیستم عامل ها و ابزار مختلف را پر کند. 
این موضوع تا زمانی موضوعیت داشت ولی در پی پیشرفت زبانها و راه حل های مختلف، موضوعیت خود را از دست داد.
البته موضوع اینترفیس و تعامل اون با سرور به راه حلهای جدیدی منجر شده که در آینده متصور هست که 
برنامه نویسی تحت وب کاملا در دو حوزه کلاینت ساید و سرور ساید مستقل بشن 
و برنامه نویسان سمت سرور فقط به نوشتن سرویسهایی مبادرت کنند 
و موضوعات مطرح شده در ادامه این مباحث دیگه موضوعیت نداشته باشن !
مثلا couchdb آپاچی رو ببینید 
و راه حلهای سرویس دهندگی یک دیتابیس رو به یه کلاینت؛   
موضوعی که برای مایکروسافت هم جالب بوده و در صدده اونه.
تاکید میکنم 
ادعاهایی در حوزه جاوا مثل Total Solution فقط یک ادعاست و اصولا محال است، 
چون گستره جلو روی شما نامعلومه ...

***

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

----------


## mazdadoost

> ادعاهایی در حوزه جاوا مثل 
> Total Solution 
> حداقل در حوزه وب زمین خورده؛ 
> JSP کجا تونسته ضعف جاوا رو در یکپارچگی پر کنه؟!
> ادعاهایی مانند 
> Scalable بودن هم فقط ادعاست؛  
> مثل این می مونه که کسی بلد نیست Mysql رو برای کاری تیون کنه بگه این بدرد نمیخوره !
> همونطور که پیدا نکردن یه JBoss کار حرفه ای دلیلی بر رد این ابزار نیست؛ (درد کشیده ها در پروژه های سازمانی میفهمن!)
> همونقدر که مایکروسافت نتونست در حوزه لینوکس وجهه ای کسب کنه، 
> ...


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

----------


## taknegaar

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


ابن سینا میگه: 
برای رد یه چیز همون مقدار دلیل لازمه که برای تاییدش لازمه.

پس فرض باطل شما هم باطله!

بجای تعصب بیجا دلایلتون رو ذکر کنید تا مساله رو بازش کنیم.

----------


## mazdadoost

> ابن سینا میگه: 
> برای رد یه چیز همون مقدار دلیل لازمه که برای تاییدش لازمه.
> 
> پس فرض باطل شما هم باطله!
> 
> بجای تعصب بیجا دلایلتون رو ذکر کنید تا مساله رو بازش کنیم.


بسیار خوب دوست عزیز:

بنده نمی دونم چه برداشتی باید از گذاره متافیزیکی یک فیلسوف/پزشک مشایی قرن  x برداشت کنم اما دوست دارم اگر بشه در حد یک پست در این تاپیک روشنگر باشم. 

ببینید من گفتم :اینها که شما فرمودین تا وقتی که دلیل و مدرک براش نیارید فرضه باطله.

و اما شما جمله ای از ابو علی سینا تحویل میدین و بعد صغری کبرا میپیچید که  بله :
پس فرض باطل شما هم باطله!
1-کی گفته جمله بوعلی تحت گذاره :برای رد یه چیز همون مقدار دلیل لازمه که برای تاییدش لازمه. درسته؟دوست من این گذاره یک گذاره متافیزیکه که هیچ چیزو ثابت نمی کنه جز چند کلمه که عمر آدمو برای درست یا غلط بودنش تلف کنه ! به قول پوزیتیویست ها و حتی شخصی مثل پوپر(در این مورد خواص !)یه گذاره مهمله !مثلا من اگر بخوام چیز رو با x در گذاره تعویض کنم و با عرض معذرت x رو با bilakh  اون موقع میتونم بگم : برای رد یه bilakh همون مقدار دلیل لازمه که برای تاییدش لازمه.واقعا چه معنی میده؟؟؟
گیرم که این گذاره درست! شما طبق چه اصل منطقی از گذاره برای رد یه چیز همون مقدار دلیل لازمه که برای تاییدش لازمه. این نتیجه گیری رو میفرمایید که پس فرض باطل شما هم باطله!کدوم فرضه من؟من که فرضی رو مطرح نکردم. پس جنابعلی از یک فرض باطل (برای رد یه چیز همون مقدار دلیل لازمه که برای تاییدش لازمه.) طی یک استدلال باطل به نتیجه باطلی درباره فرضی که به باطل به بنده نسبت دادید رسیدید که اگه به مفروضاته باطلتون در پستی که داده بودید اظافه بشه میشه باطل اندر باطل اندر ..... :چشمک: !
2-در پست من چه چیزی دال بر تعصب من در قبال چی (جاوا؟) وجود داره که می فرمایید :بجای تعصب بیجا دلایلتون رو ذکر کنید !!!!و کسی که فرضی رو مطرح میکنه باید ازش دفاع کنه و براش دلیل بیاره نه طرفه مقابلش.
3-و اما مفروضات شما که باز هم عرض میکنم تا وقتی که دلیلی براشون نیارید باطل هستند :
*- چه سازمانی و یا گروه معتبری ادعا کرده جاوا Total Solution هست؟که در زمینه وب شکست بخوره؟
*-چه کسی ادعا کرده jsp قرار کدوم ضعف جاوا رو در یکپارچگی با چی پر کنه؟؟؟
*-چرا Scalable برای جاوا ادعاست؟آیا جاوا به اشکال مختلف از این امر پشتیبانی نمیکنه(در سطح jvm شما با استفاده از رسیمان ها و امکانات خوب تجرد جاوا در کار با پردازش موازی میتونید بدون دردسر های low level api  سیستم های چندپردازنه ای و چند هسته ای محاسباتتون رو scale  کنید. در سطح بعدی میتونید از app server ها برای scale کردن تراکنش هاتون هم از نظر hi availability و هم hi throughput hsjthni ;kdn , ;gd و کلی framework های دیگه که بخاطر انعطاف پذیری جاوا در پیداه سازی بازش ایجاد شده مثل traccota ,hadoop و سخت افزار هایی که به علت باز بودن byte code ها میتونن برنامه های شما رو بدون نیاز به کد نویسی روی سخت افزارشون سزشمث کنن. از طرفی زوی سخت افزار هایی که از نظر پردازش خیلی قوی هستنند و Windows به علت بسته بودنش روشون پروت نشده ولی linux یا unix یا هر سیستم عامل دیگه ای که جاوا ازش پشتیبانی کنه اجرا بشن هم برانامه های شما با قدرت اون سیستم ها scale میشه!!!!).
*-جاوا هم در پلتفرم ویندوز نتونست وجهه ای کسب کنه،---*مدرک؟*
*-بالاخره کاربران نهایی تعیین کننده اند نه طراح سیستم. *منظور , ربط؟*
*-در حوزه سولوشن! های اینرفیس هم راه حل کاربردی و خوب موجود نیست؛ 
JavaFx در مقابل WPF و Silverlight حرفی برای گفتن نداره،----swing-awt-swt چطور؟اگر بحث روی پلت فرمی برای rpc باشه باید دید در چه سطحی؟ کجا ؟ توی براوزر چرا فلش نه؟فلکس-ajax نه چرا silverlight ? برای stand alone واقعا swing-awt-swt با وجود netbeans , eclipce پلت فرم چه چیزی نداره که راه حل های دیگه دارن ؟ 
*-Java در یک زمان به عنوان پلتفرمی مطرح شد تا خلا وجود راه حلی در بین سیستم عامل ها و ابزار مختلف را پر کند. 
این موضوع تا زمانی موضوعیت داشت ولی در پی پیشرفت زبانها و راه حل های مختلف، موضوعیت خود را از دست داد. *مدرک؟*
*-البته موضوع اینترفیس و تعامل اون با سرور به راه حلهای جدیدی منجر شده که در آینده متصور هست که 
برنامه نویسی تحت وب کاملا در دو حوزه کلاینت ساید و سرور ساید مستقل بشن 
و برنامه نویسان سمت سرور فقط به نوشتن سرویسهایی مبادرت کنند 
و موضوعات مطرح شده در ادامه این مباحث دیگه موضوعیت نداشته باشن !
مثلا couchdb آپاچی رو ببینید 
و راه حلهای سرویس دهندگی یک دیتابیس رو به یه کلاینت؛ 
موضوعی که برای مایکروسافت هم جالب بوده و در صدده اونه. *منظور؟*
*-این رو هم فراموش نکنیم که 
در حوزه تاثیر گذاری بر جهت تکنولوژیهای برنامه نویسی 
این خبرگان این حوزه نیستند که تاثیر گذارند 
بلکه جهت رو برنامه نویسان نیمه حرفه ای تعیین میکنند ! 
و بقیه رو ناخواسته مجبور به پیروی میکنند. *مبنا؟*

----------


## taknegaar

خلاصه دلایل و مباحث جنابعالی: 

- جمله نقل شده از ابن سینا مبحثی ماورایی است ! (چگونگی این نتیجه گیری را هم نمیدانیم ! شاید برای خالی نبودن عریزه گفته شده و همچنین اشاره به پوپر و ... منظور؟ ربط؟).
- دلیل تعصب بیجاتون از اشاره خودتون مشخصه که گفتید: (جاوا؟).
- نکته 3: حضور جاوا در وب جزو ملزومات یکپارچگی بوده و هست.
(اصلا پروژه جاوا در شرف لغو شدن بود که گسترش وب در سال ۱۹۹۳ باعث شد، شرکت سان مایکروسیستمز در ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.)
- Scalable بودن *یعنی مقیاس پذیر بودن*؛* یعنی برای پروژه ها در تمامی سطوح (بزرگ، متوسط و کوچک)* قابل استفاده باشد که مثلا با نکته قبلی ادعا بودنش ثابت شده. (برخی مسائل داخل پرانتز هیچ ربطی نداشت و برخی هم قابل نقد!)
(کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. 
در ادامه با توجه به اهداف جاوا باید باید موفقیت جاوا در حوزه های زیر سنجید: 
* برنامه‌های تحت وب. (قابل نقد)
* برنامه‌نویسی سیستم‌های کوچک مانند موبایل، پاکت پی‌سی و ... .
* برنامه‌های کاربردی بزرگ (Enterprise). 
* برنامه‌های رومیزی (Desktop). (قابل نقد) 
). 
- در مورد (جاوا هم در پلتفرم ویندوز نتونست وجهه ای کسب کنه، مدرک؟): حتما شوخی میفرمایید؟! (قضاوت با دیگران و جاواکارهای درگیر با پروژه های سازمانی)
- در مورد (بالاخره کاربران نهایی تعیین کننده اند نه طراح سیستم. منظور , ربط؟): حتما در مورد پروژه هاتون شما اونارو برای کارفرماتون تعریف میکنید نه اونا برای شما؟! 
- در مورد (سولوشن اینترفیس ...): یک دلیل ساده و اونهم فراگیر بودن فلش و نبودن جاوا در عین بودن ... . 
(swing و AWT چه ربطی به موضوع داشت؟! توصیه میکنم به مطالعه Rich Internet application ها بپردازید.)
- در مورد (... از دست دادن موضوعیت به دلیل ...): همونوطور که می بینید، دلیل اومده. این شما هستید که باید دلیل بیاورید که موضوعیت داره چون رد کردید! (اینهم یکی از نشانه های تعصب بیجا)
- در مورد (... . منظور؟): یکی از دلایل عدم موضوعیت ابزاری مثل جاوا و خیلی از زبانها در برخی حوزه ها! 
- در مورد (... . مبنا؟): 
به همون دلیلی که ابزاری مثل دات نت در عرض سه سال به جایگاهی قابل رقابت با بقیه دست پیدا کرده 
و با عرض معذرت از نخبگان دات نت، 
هر کسی که یه ذره بلده دو تا کامپوننت رو بهم bind کنه شده دات نت کار و هر جا میری میگن دات نت کار؟! 
جوری که من اوپن سورسی هم مجبور شدم یادش بگیرم، 
نه بخاطر اینکه علاقه ای بهش دارم 
بلکه بخاطر اینکه زن و بچه گشنه اند و 
من هم نمیتونم از لحاظ زمانی با دات نت کارها رقابت کنم و 
برای کارفرما هم که فقط انجام کارش مهمه.

----------


## mazdadoost

> خلاصه دلایل و مباحث جنابعالی: 
> 
> - جمله نقل شده از ابن سینا مبحثی ماورایی است ! (چگونگی این نتیجه گیری را هم نمیدانیم ! شاید برای خالی نبودن عریزه گفته شده و همچنین اشاره به پوپر و ... منظور؟ ربط؟).
> - دلیل تعصب بیجاتون از اشاره خودتون مشخصه که گفتید: (جاوا؟).
> - نکته 3: حضور جاوا در وب جزو ملزومات یکپارچگی بوده و هست.
> (اصلا پروژه جاوا در شرف لغو شدن بود که گسترش وب در سال ۱۹۹۳ باعث شد، شرکت سان مایکروسیستمز در ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.)
> - Scalable بودن *یعنی مقیاس پذیر بودن*؛* یعنی برای پروژه ها در تمامی سطوح (بزرگ، متوسط و کوچک)* قابل استفاده باشد که مثلا با نکته قبلی ادعا بودنش ثابت شده. (برخی مسائل داخل پرانتز هیچ ربطی نداشت و برخی هم قابل نقد!)
> (کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی ماشین‌های شبیه‌سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن کامپیوتر. 
> در ادامه با توجه به اهداف جاوا باید باید موفقیت جاوا در حوزه های زیر سنجید: 
> ...


-- جمله نقل شده از ابن سینا مبحثی ماورایی است ! (چگونگی این نتیجه گیری را  هم نمیدانیم ! شاید برای خالی نبودن عریزه گفته شده و همچنین اشاره به  پوپر و ... منظور؟ ربط؟). ربطشو روزگار بهتون می فهمونه.شایدم هرگز نفهمید.
- دلیل تعصب بیجاتون از اشاره خودتون مشخصه که گفتید: (جاوا؟).حرف میذاری تو دهن من؟یه مقدار ی این پست منو بخون :http://barnamenevis.org/forum/showthread.php?t=103569
- نکته 3: حضور جاوا در وب جزو ملزومات یکپارچگی بوده و هست.
(اصلا پروژه جاوا در شرف لغو شدن بود که گسترش وب در سال ۱۹۹۳ باعث شد،  شرکت سان مایکروسیستمز در ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.)بازم بی ربط.
-- Scalable بودن *یعنی مقیاس پذیر بودن*؛* یعنی برای پروژه ها در  تمامی سطوح (بزرگ، متوسط و کوچک)* قابل استفاده باشد که مثلا با نکته  قبلی ادعا بودنش ثابت شده. (برخی مسائل داخل پرانتز هیچ ربطی نداشت و برخی  هم قابل نقد!)شماعلاوه بر استعدادتون در موارد 
گوناگون به تعریف جدیدی از 
*Scalability*

رسیدین..
- حتما شوخی میفرمایید؟!-------شما آمار ارایه فرمایید .به شوخی هم می رسیم.
-(کاربرد جاوا در کامپایل به صورت بایت کد است که قابلیت اجرا روی تمامی  ماشین‌های شبیه‌سازی جاوا را داشته باشد صرف نظر از معماری و خصوصیات آن  کامپیوتر. 
در ادامه با توجه به اهداف جاوا باید باید موفقیت جاوا در حوزه های زیر  سنجید: 
* برنامه‌های تحت وب. (قابل نقد)
* برنامه‌نویسی سیستم‌های کوچک مانند موبایل، پاکت پی‌سی و ... .
* برنامه‌های کاربردی بزرگ (Enterprise). 
* برنامه‌های رومیزی (Desktop). (قابل نقد) 
).  امیدوارم بعد درک صحیح *scalability*به بی ربط بودن اینها با موضوع پی ببرید.
-(swing و AWT چه ربطی به موضوع داشت؟! توصیه میکنم به مطالعه Rich Internet  application ها بپردازید.) http://en.wikipedia.org/wiki/Rich_Internet_applicationو http://en.wikipedia.org/wiki/List_of...ion_frameworks و http://en.wikipedia.org/wiki/Rich_Client_Platform.
.
-- در مورد (... . مبنا؟): 
به همون دلیلی که ابزاری مثل دات نت در عرض سه سال به جایگاهی قابل رقابت  با بقیه دست پیدا کرده 
و با عرض معذرت از نخبگان دات نت، 
هر کسی که یه ذره بلده دو تا کامپوننت رو بهم bind کنه شده دات نت کار و هر  جا میری میگن دات نت کار؟! 
جوری که من اوپن سورسی هم مجبور شدم یادش بگیرم، 
نه بخاطر اینکه علاقه ای بهش دارم 
بلکه بخاطر اینکه زن و بچه گشنه اند و 
من هم نمیتونم از لحاظ زمانی با دات نت کارها رقابت کنم و 
برای کارفرما هم که فقط انجام کارش مهمه.* حالا هی آسمون ریسمون کن ....*

----------


## taknegaar

> -- جمله نقل شده از ابن سینا مبحثی ماورایی است ! (چگونگی این نتیجه گیری را  هم نمیدانیم ! شاید برای خالی نبودن عریزه گفته شده و همچنین اشاره به  پوپر و ... منظور؟ ربط؟). ربطشو روزگار بهتون می فهمونه.شایدم هرگز نفهمید.
> - دلیل تعصب بیجاتون از اشاره خودتون مشخصه که گفتید: (جاوا؟).حرف میذاری تو دهن من؟یه مقدار ی این پست منو بخون :http://barnamenevis.org/forum/showthread.php?t=103569
> - نکته 3: حضور جاوا در وب جزو ملزومات یکپارچگی بوده و هست.
> (اصلا پروژه جاوا در شرف لغو شدن بود که گسترش وب در سال ۱۹۹۳ باعث شد،  شرکت سان مایکروسیستمز در ۱۹۹۵ جاوا را رسماً به بازار عرضه کرد.)بازم بی ربط.
> -- Scalable بودن *یعنی مقیاس پذیر بودن*؛* یعنی برای پروژه ها در  تمامی سطوح (بزرگ، متوسط و کوچک)* قابل استفاده باشد که مثلا با نکته  قبلی ادعا بودنش ثابت شده. (برخی مسائل داخل پرانتز هیچ ربطی نداشت و برخی  هم قابل نقد!)شماعلاوه بر استعدادتون در موارد 
> گوناگون به تعریف جدیدی از 
> *Scalability*
> 
> رسیدین..
> ...


نمیدونم چه اصراری هست که بعضی ها در مورد هرچیزی (که حتی اطلاعی ندارن) اظهار نظر کنند.
خوب ما دلیل فنی بر رد حرفها پیدا نکردیم و 
آخرش هم به آسمون و ریسمون کردن متهم شدیم!
قضاوت رو به سایرین وا میگذارم.

----------


## Unknownlive

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

----------


## vbnovin

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

البته منم یه رمانی تعصب به vb جان داشتم کو کجاست  ,  و حالا  به  vb.net و جدیدا هم به  java  چون یه برنامه برای موبایلم نوشتم خوب اینه دیگه زندگی رو به جلوست پس باید خیلی چیزاها را دانست و حالا هم با اردنگی از شرکتی که این همه سال زحمت کشیدم و چند تا جا برنامه نوشتم گوشه خانه نشستم و هیج درآمد ندارم   ..........خوب کیه که بپرس با چی برنامه مینویسی    و تازگیها محیط Word  را برای تایپ انتخاب کررردم چون همینه *ایران و بیکاری بیداد* ......

----------


## محسن شامحمدی

دوست عزیز vbnovin 

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

----------


## hamed_gibago

> این مقایسه من نیست مقایسه IBM  است. در pdf  که آدرسش موجوده


خوب IBM طرفداره جاواس و همه کاراشو با جاوا انجام میده
دیگه گفتن نداره

----------


## Mahdi_21

سلام دوست عزیز *Inprise* *متاسفانه بعضی از مطالب تو کتابها یا اینترنت بجای اینکه آدم رو آگاه کنه گمراه میکنه !*
در J2ee بحثی به نام Web Server هست میخاستم تفاوت اون رو با Application Server واسم بگی،مرسی ممنون میشم.

----------


## babry1377

سلام دوستان.
من هنوز نمی فهمم .Net با Application Server چه فرقی داره.
نقل قول از Interprise




> Application Server یک بستهء نرم افزاری است که وظیفه اش Application Lifecycle Management است . یعنی از ابتدای تولد یک نرم افزار "سازمان مقیاس" تا انتهای اتمام تولید ، باید به تمام نیازهای نرم افزاری پاسخ دهد . یعنی اگر برنامه نویس به یک FrameWork احتیاج داشت ، Application Server یک Framework به او بدهد ، اگر بانک اطلاعاتی خواست ، Application Server یک بانک اطلاعاتی کامل برایش فراهم کند ، اگر وب سرور خواست  ، Application Server یک وب سرور تمام عیار به او بدهد ، اگر برای ارسال  نامه های الکترونیکی برنامه اش به یک SMTP سرور نیاز داشت ، Application  Server یک سرور SMTP به او بدهد ، اگر قرار شد برای احراز هویت از Kerberos استفاده کند یک پیاده سازی کربرایزد از استک TCP/IP در Application server وجود داشته باشد ، اگر خواست برای منطق محاسباتی برنامه اش یک GUI ایجاد کند ، Application Server یک IDE و GUI Builder به او بدهد ، اگر خواست داده های کاربری رو از کارتهای هوشمند (  smart Card ) دریافت کند ، رابطهای لازم و API های مربوطه را از  Application Server بگیرد و ... به دیگر بیان Application Server یک محیط  Integrated است برای طراحی و تولید و مدیریت و توزیع و کاربرد یک نرم افزار  "سازمان مقیاس"


یعنی . Net نمی تونه این خدمات رو ارایه بده ؟    :متفکر: 

لطفا زود پاسخ بدین
با تشکر  :قلب:

----------

