صفحه 1 از 2 12 آخرآخر
نمایش نتایج 1 تا 40 از 60

نام تاپیک: جاوا بهتره یا سی شارپ

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1390
    پست
    31

    جاوا بهتره یا سی شارپ

    من میخام بدونم که C#‎ بهتره یا java
    من خودم دانش جوی نرم افزارم و به ما C#‎ یاد دادن حالا شنیدم که میگن java بهتره حالا به نظره شما اساتید من برم سراغ java یا C#‎
    کدومش از نظره درآمد،بازار کار تو ایران بهتره

  2. #2
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

    ببین هر زبانی ویژگی های خاص خودشو داره بستگی به کاری که میخای بکنی داره ولی من به شخصه با C#‎ بیشتر حال میکنم در مورد درآمد هیچ فرقی نداره اگه حرفه ای باشی باسه هر دوتاش بازار هست.

  3. #3
    کاربر دائمی آواتار saman6384
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    325

    نقل قول: جاوا بهتره یا سی شارپ

    به نظر من اگه شما C#‎ رو کامل یاد بگیری ( wpf, silverlight,asp,....) دیگه نیازی به زبون دیگه نداری!!!
    البته بلد بودنشون خیلی خوبه! اما سی شارپ کاره همشونو میکنه! ( اشتباه میکنم؟؟)

    یه بار یکی از بچه ها تو دانشگاه یه کنفرانس داش !! تو اون تعریف کرد که یه تست از C#‎ و java گرفتن تویه همایشی! C#‎ هم کدهای نوشته شدش تویه اون برنامه تست کمتر بوده! هم سرعتش بیشتر بوده!


    تو این سایت هم برو خودت مقایسشون کن : لینک

  4. #4
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    پست
    848

    نقل قول: جاوا بهتره یا سی شارپ

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

  5. #5

    نقل قول: جاوا بهتره یا سی شارپ

    به نظر من اگه شما C#‎ رو کامل یاد بگیری ( wpf, silverlight,asp,....) دیگه نیازی به زبون دیگه نداری!!!
    البته بلد بودنشون خیلی خوبه! اما سی شارپ کاره همشونو میکنه! ( اشتباه میکنم؟؟)
    بله اشتباه می کنی احتمالا تا حالا به گوش شما چیز هایی مثل JBoss نرسیده ؟

    حال توضیح ندارم :) اینو بخونید :http://en.wikipedia.org/wiki/Application_server

    هر چند قدیمی هستش( تو بعضی جاهاش شک دارم الان تو این زمان ) ولی بخونش
    https://barnamenevis.org/archive/index.php/t-5935.html

  6. #6
    کاربر دائمی
    تاریخ عضویت
    آذر 1385
    محل زندگی
    همین نزدیکیها
    پست
    683

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط oioioi مشاهده تاپیک
    من میخام بدونم که C#‎ بهتره یا java
    من خودم دانش جوی نرم افزارم و به ما C#‎ یاد دادن حالا شنیدم که میگن java بهتره حالا به نظره شما اساتید من برم سراغ java یا C#‎
    کدومش از نظره درآمد،بازار کار تو ایران بهتره
    C#‎ برنامه نویسی به زبان عامیانه است وابسطه به سیستم عامل مخصوصا مایکروسافت همه جور کار ازش بر نمی آد برای کسایی خوبه که میخوان در کوتاهترین زمان یک application بسازن . شخص رو کد نویس بار نمیاره و وابسطه به ابزار ها میکنه و قشنگی و گرافیک و سهل الوصول بودن انجام کارها باعث میشه یه عده زیادی بهش رجوع کنن
    اما جاوا اینطوری نیست تمام چیزهایی رو که میخوای باید براش کد بنویسی و اگه کسی بگه نه ابزار داره و میشه باهاش راحت برنامه نوشت من میگم داره و تا حالا باهاش یک پروژه جمع کردی؟ تا ببینی مشکلاتش چیه ؟
    بک زبان opensource یعنی کد هاش بازه و همه میتونن ببینن چی نوشتی اصل خصوصیتش هم همینه
    به سیستم عامل محتاج نیست تو هر سیستم عاملی کار میکنه
    برنامه هایی که باهاش میتویسن کاراتره
    مثلا تا حالا دیدی بگن ابن برنامه موبایل رو با C#‎ نوشتن ؟ اگر هم باشه انگشت شماره
    حالا چرا برنامه گوشیها رو با جاوا مینویسن؟ برای اینکه با پروسس کمی که گوشی داره بتونه برنامه رو اجرا کنه

    نمیخوام حاشیه برم
    برای ما ها که میخواهیم یک پروژه معمولی زیر 10 میلون رکوردی مینویسیم C#‎ خوبه و برای بالای اون جاوا خوبه با اوراکل که ترکیب فوق العاده ایه
    هزینه ساخت یک نرم افزار مثلا حسابداری اگه با C#‎ 2 میلیون تومن باشه با جاوا 10 میلیون تومن میشه زمان طراحی اون هم به همین نسبته
    یک برنامه نویس .net خیلی خوب فوقش ماهی 1.5 میلیون میگیره ولی یک جاوا کار ساعتی 100 الی 150 هزارتومن میگیره

    مین این اطلاعات رو از رو تجربه کاری و دیدن پروژه هایی که با هر 2 زبان اجرا شدن میگم
    ممکنه نظرات دیگرون متفاوت باشه

  7. #7
    کاربر دائمی آواتار cardano7
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    کارتون خواب
    پست
    473

    نقل قول: جاوا بهتره یا سی شارپ

    با سلام
    دوباره از اون بحث ها شروع شد!

    نقل قول نوشته شده توسط zarrinnegar مشاهده تاپیک
    C#‎ برنامه نویسی به زبان عامیانه است
    اي که وگفتي يعني چه؟

     
    مشتي لايبري ها رو لود کن بينم;

    رويداد: اگه کاربر اون دکمه را چلوند()
    {
    يک ديالوگ باز کن اسمش را بذار حسن;
    حاجی محاسبات را انجام بده حاصلش ميشه نقي;
    نقي را به کاربر نشون بده;
    }

    نه بابا این جوری ها هم نیست!

    نقل قول نوشته شده توسط zarrinnegar مشاهده تاپیک
    اما جاوا اینطوری نیست تمام چیزهایی رو که میخوای باید براش کد بنویسی
    اين هم شد مزيت؟


    نقل قول نوشته شده توسط zarrinnegar مشاهده تاپیک
    مثلا تا حالا دیدی بگن ابن برنامه موبایل رو با C#‎ نوشتن ؟
    تا حالا ديدي کسي روي گوشيش فاير فاکس نصب کنه؟


    نقل قول نوشته شده توسط zarrinnegar مشاهده تاپیک
    یک برنامه نویس .net خیلی خوب فوقش ماهی 1.5 میلیون میگیره ولی یک جاوا کار ساعتی 100 الی 150 هزارتومن میگیره
    اين جور مراکز سخاوتمند را به ما هم معرفي کنيد بريم اونجا کار کنيم :D

    نقل قول نوشته شده توسط zarrinnegar مشاهده تاپیک
    همه جور کار ازش بر نمی آد
    ميشه چند مورد مثال بزنيد؟
    آخرین ویرایش به وسیله cardano7 : سه شنبه 24 خرداد 1390 در 07:24 صبح

  8. #8

    نقل قول: جاوا بهتره یا سی شارپ

    سوالت مثل این میمونه که بگی ماشین بهتره یا کامیون؟! #C برای application مناسب تره تا جاوا، جاوا هم برای web application مناسب تره تا #C. برای مثال یه برنامه تو هر دو محیط بنویس ببین کدوم سریع تر اجرا میشه؟ با وجود اینکه هر دو زبان دارن توسط یه واسط اجرا میشن، برنامه های جاوا خیلی کندتر از #C اجرا میشن (قصد زیر سوال بردن این زبان رو ندارم، زبان قوی هست ولی خوب سرعتش کمتره). همون جور که دوستمون گفتن جاوا رو هر سیستم عاملی اجرا میشه ولی #C نه (جدیداً #C رو هم میشه رو بقیه سیستم عامل ها کد کرد)، حرفشون تقریباً درسته ولی من به شخصه ترجیح میدم اگه بخوام تو سیستم عامل های مختلف کد بزنم از ++C استفاده کنم تا جاوا. با وجود اینکه برنامه خیلی سخت تر میشه ولی سرعتش خیلی بهتره. اگر هم که میخوای تحت وب کد بزنی جاوا حرف اول رو میزنه (البته جدیداً phyton داره رو دستش بلند میشه)

  9. #9
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

    الان C#‎ خیلی پیشرفت کرده اینطورهم که دوستمون میگه نیست.با C#‎ برای Windows phone 7 و با استفاده از پروژه mono که از jdk هم بهتر میدوننش باسه Android برنامه مینویسن و برای iOS هم قراره پروژه مونو بیاد.با استفاده از .NET Micro Framework هم میتونید برای بعضی دستگاه ها میکروکنترلر بنویسید پس همچین هم زبان وابسته ای به سیستم عامل نیست!تازه جاوا هم نیاز به ماشین مجازی داره و یک زبان Native نیست!

  10. #10
    کاربر دائمی آواتار sabloger
    تاریخ عضویت
    دی 1387
    محل زندگی
    اصفهان
    سن
    31
    پست
    192

    نقل قول: جاوا بهتره یا سی شارپ

    با سلام خدمت اساتید گرامی


    بنده هم مثل این دوستمون همین مشکل رو دارم و میخوام در همین اول کاری راهمو مشخص کنم
    خودم که #C رو خیلی دوست دارم و باهاش راهتم، اما بین #C و JAVA و حتی Phyton موندم

    حالا هم به نظر من اینقدر سرعت پردازش گرا زیاد شده که اونقدر فاصله زمانی بین اجرای اونا مهم باشه(البته این نظر بندس!)

    اما نظر خود بنده اینه که شاید بهتر باشه که آدم JAVA کار باشه ولی توی #C هم حرفه ای باشه

    با تشکر از همگی

  11. #11
    کاربر تازه وارد
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    اصفهان
    پست
    92

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط zarrinnegar مشاهده تاپیک
    C#‎ برنامه نویسی به زبان عامیانه است وابسطه به سیستم عامل مخصوصا مایکروسافت همه جور کار ازش بر نمی آد برای کسایی خوبه که میخوان در کوتاهترین زمان یک application بسازن . شخص رو کد نویس بار نمیاره و وابسطه به ابزار ها میکنه و قشنگی و گرافیک و سهل الوصول بودن انجام کارها باعث میشه یه عده زیادی بهش رجوع کنن
    اینم از اون جملات است برنامه نویسی به زبان عامیانه
    خوب حالا هردوتاشون از c و C++‎ بهره های زیادی برده اند

    اما این زبان نیست که کسی را کدنویس یا برنامه نویس می کند بلکه تلاش و فکر فرد است که برنامه نویس می شود
    اما در پاسخ به اصل سوال
    C#‎ یا جاوا
    به نظرم وقتتان را با جاوا تلف نکنید امروزه هزینه ها بالاست و اکثر شرکتها و افراد به دنبال این هستند که سریع پروژه ها تمام شود و این فقط با C#‎ و صد البته ویژوال استودیو متحقق می شود

  12. #12
    کاربر دائمی آواتار saman6384
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    325

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    بله اشتباه می کنی احتمالا تا حالا به گوش شما چیز هایی مثل JBoss نرسیده ؟

    حال توضیح ندارم :) اینو بخونید :http://en.wikipedia.org/wiki/Application_server

    هر چند قدیمی هستش( تو بعضی جاهاش شک دارم الان تو این زمان ) ولی بخونش
    https://barnamenevis.org/archive/index.php/t-5935.html
    شما میگی #C نمیتونه کارای J2EE رو انجام بده؟!

    حال توضیح نداری؟
    لطف کن یه نمونه کوچولو مثال بزن بلکه مام یچیز جدید یاد بگیریم

  13. #13

    نقل قول: جاوا بهتره یا سی شارپ

    یه مشت مقایسهی کوچه بازاری دارید انجام می دید

    برای چی از مطالب غلط تشکر می کنید ؟؟

    شما میگی #C نمیتونه کارای J2EE رو انجام بده؟!
    عزیر برادر J2EE یه application server هستش C#‎ یه زبان و .NET یه فریم ورک اینا دو چیز جدا از هم هستن این نه یه خوبی هستش نه یه بدی .net همیه J2EE هم همین

    Application server یک زیرساخت نرم افزاری است که وظیفه‌اش application lifecycle management است. یعنی بایستی در تمام چرخه تولید نرم افزار باید به تمام نیازهای نرم‌افزاری پاسخ دهد.این نیازها می‌تواند شامل بانک اطلاعاتی، وب سرور، سرویس smtp و.... باشد.


    اینپرایز (ع):

    سوال : چرا فکر میکنم میشه به دات نت و 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 یک بستر اجرای کد هم وجود داره که سرویسهای خاصی رو ارائه میکنه . شاید بشه این بسترهای مختلف موجود رو با هم مقایسه کرد .


    < اتمام مبحث 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 بهتر است مگر اینکه برنامهء خاصی برای انتقال وجود داشته باشه یا احتمال وجودش قابل تامل باشه .

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

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

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

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

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

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

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

  14. #14
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

    ما هم مشکلی نداریم گفتیم هر زبان قدرت خودشو داره و به درد یه کار میخوره اما شما متعصبانه اصرار داری بگی جاوا بهترین زبونه و #C سوسکه!

  15. #15

    نقل قول: جاوا بهتره یا سی شارپ

    عزیز درل برادر من کی گفتم C#‎ سوسکه و java قویه ؟

    من فقط گفتم مقایسهی C#‎ , جاوا شاید از لحاظ سرعت اجرا و... مناسب باشه ولی این مقایسه کافی نیست چون فقط زبان نیست که تو پروژه های بزرگ بر انتخاب ما تاثیر می زاره

    این Application server ها و framework ها هستن

    و ما مقایسهی ای بین C#‎ یا .NET با J2EE نداریم این دو از هم متفاوت هستن نمی شه مقایسه کرد

    من خودم سال ها با C#‎ کار کردم , تجربه هایی هم با java دارم

    از شما هم معذرت می خوام

  16. #16
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

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

  17. #17
    کاربر دائمی آواتار saman6384
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    325

    نقل قول: جاوا بهتره یا سی شارپ

    1. منم میدونستم که J2EE کلا یه تکنولوژی هستش! و با C#‎ نمیشه مقایسش کرد! اما شما اومدی گفتی که J2EE کارایی میکنه که C#‎ نمیتونه!! برام جالب شد که بدونم شما چی میدونید که من نمی دونم!!

    2. برداشتی که من از سوال این تاپیک کردم ، کد نویسی بود! وب اپلیکیشن و ویندوز اپلیکیشن و .........
    واسه همین در زمینه کد نویسی جواب دادم!
    منظور منم کد نویسی به زبان جاوا بود!
    که فکر نکم اشتباه کرده باشم تو مقایسشون!

    3.

  18. #18
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

    البته Syntax جاوا با #C خیلی نزدیک بهم هستند حتی از VB هم به سی شارپ نزدیکتره انگار دو تا برادرند و این برام خیلی عجیبه چون سان رقیب سخت مایکروسافت بوده و هست.

  19. #19

    نقل قول: جاوا بهتره یا سی شارپ

    اما شما اومدی گفتی که J2EE کارایی میکنه که C#‎ نمیتونه
    فکر کنم نیاز باشه یه بار دیگه پست های منو بخونی عزیز من C#‎ یه زبانه با یه syntax ولی J2ee یه چیز دیگس در نتیجه سوال تو " با این چی می شه با ان نمی شه " غلط هستش

  20. #20
    کاربر دائمی آواتار saman6384
    تاریخ عضویت
    آذر 1387
    محل زندگی
    تهران
    سن
    39
    پست
    325

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    فکر کنم نیاز باشه یه بار دیگه پست های منو بخونی عزیز من C#‎ یه زبانه با یه syntax ولی J2ee یه چیز دیگس در نتیجه سوال تو " با این چی می شه با ان نمی شه " غلط هستش
    عزیزم من قبلا هم سر برنامه نویسی موبایل (blackberry) با j2ee آشنا شده بودم و اونو به عنوان یه فریم ورک درک کرده بودم ( نه یه زبان)، واسه همین وقتی من از C#‎ حرف زدم و گفتم میتونه کار بقیه زبان ها رو بکنه ، و بعدش شما اومدی گفتی نه من اشتباه میکنم و اسم J2EE رو اوردی!! تعجب کردم و اون سوال رو پرسیدم!
    خودم میدونستم سوالم یه مقایسه اشتباس! ...........

  21. #21
    کاربر دائمی آواتار cardano7
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    کارتون خواب
    پست
    473

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    یه مشت مقایسهی کوچه بازاری دارید انجام می دید

    برای چی از مطالب غلط تشکر می کنید ؟؟

    عزیر برادر J2EE یه application server هستش C#‎ یه زبان و .NET یه فریم ورک اینا دو چیز جدا از هم هستن این نه یه خوبی هستش نه یه بدی .net همیه J2EE هم همین

    Application server یک زیرساخت نرم افزاری است که وظیفه‌اش application lifecycle management است. یعنی بایستی در تمام چرخه تولید نرم افزار باید به تمام نیازهای نرم‌افزاری پاسخ دهد.این نیازها می‌تواند شامل بانک اطلاعاتی، وب سرور، سرویس smtp و.... باشد.


    اینپرایز (ع):

    سوال : چرا فکر میکنم میشه به دات نت و 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 یک بستر اجرای کد هم وجود داره که سرویسهای خاصی رو ارائه میکنه . شاید بشه این بسترهای مختلف موجود رو با هم مقایسه کرد .


    < اتمام مبحث 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 بهتر است مگر اینکه برنامهء خاصی برای انتقال وجود داشته باشه یا احتمال وجودش قابل تامل باشه .

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

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

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

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

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

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

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

  22. #22

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط cardano7 مشاهده تاپیک
    آن خشت بود که پر توان زد!

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

  23. #23
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: جاوا بهتره یا سی شارپ

    با سلام.

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

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

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

    منم حال و حوصله توضیح فسلفی این موضوعات رو ندارم چون واقعا اخرش روی خوشی نداره و باعث ناراحتی میشه.

    همگی موفق باشید.

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  24. #24
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: جاوا بهتره یا سی شارپ

    من فقط یک بخش رو متوجه نشدم.
    kerberos توی C#‎ چطور ممکنه؟

  25. #25
    کاربر دائمی آواتار cardano7
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    کارتون خواب
    پست
    473

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    لیاقت تو همون چرت و پرت هایی بود که تو پست های اول نوشتن
    آن خشت بود که پر توان زد!

  26. #26
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

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

  27. #27
    کاربر دائمی آواتار javad_r_85
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    تهران
    پست
    590

    نقل قول: جاوا بهتره یا سی شارپ

    باباچرا دعوا می کنید دو تاشون مفت نمی ارزند زبان برنامه نویسی فقط C++‎ بعد Qt بعدشم Phyton بقیه رو بی خیالش.

  28. #28
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط javad_r_85 مشاهده تاپیک
    باباچرا دعوا می کنید دو تاشون مفت نمی ارزند زبان برنامه نویسی فقط C++‎ بعد Qt بعدشم Phyton بقیه رو بی خیالش.
    این حرف شما کاملا حرف نسجیده و نپخته اییه.

  29. #29
    کاربر دائمی آواتار V0RTEX
    تاریخ عضویت
    آذر 1389
    محل زندگی
    kernel
    پست
    106

    نقل قول: جاوا بهتره یا سی شارپ

    C#‎ اشاره گر داره جاوا نداره
    C#‎ خودش تو .net هست و به همین خاطر با بقیه ی زبان های تحت .net مثل VB.net خیلی مچه...
    بدشم کی گفته با C#‎ نمیشه برای موبایل برنامه نوشت؟؟؟؟ تو خود VS یک چیزی هست به نام smart device الیته تو VS2010 این نیست باید جدا گانه از خود microsoft دانلود کنید
    C#‎ وقتی که compile شد یگه خودش اجرا می شه و فقط به یک OS نیاز داره ولی java این توری نیست و به جز OS به خود java هم نیاز داره
    C#‎ روی Linux هم اجرا میشه (یک چیزی هست به نام Mono) با این mono میشه برای Linux با C#‎ برنامه نوشت

  30. #30

    نقل قول: جاوا بهتره یا سی شارپ

    تصمیم نداشتم تو این بحث شرکت کنم و پست های تاپیک رو هم مطالعه نکردم چون این بحث های بی فایده هست و اصولا غیر فنی ؛ نمونش همین پست قبلی که خیلی کوتاه و بی طرف جوابش رو در زیر آوردم :

    C#‎ اشاره گر داره جاوا نداره
    عوضش Java متغییرهای ارجاع به مرجع ( reference variables ) رو داره !
    در ضمن شمایی که با #C کار میکنی چه قدر اشاره گرها به کارت اومده ؟ مگه تو یک زبان Managed اشاره گر اینقدر اهمیت داره ؟!

    C#‎ خودش تو .net هست و به همین خاطر با بقیه ی زبان های تحت .net مثل VB.net خیلی مچه...
    این چیزی هست که نمیشه به عنوان یک مزیت #C به Java در نظر گرفتش ، جاوا اینقدر غنی هست که کسی که با اون برنامه مینویسه نیازی به وارد کردن یک زبان Net. ی نداشته باشه .

    C#‎ وقتی که compile شد یگه خودش اجرا می شه و فقط به یک OS نیاز داره ولی java این توری نیست و به جز OS به خود java هم نیاز داره
    شوخی میکنی ؟ پس اون Net framework. چی هست ؟ جز این هست که یک بستر برای اجرای کدهای Net. ؟ دلیل نمیشه که چون Microsoft روی ویندوز های فعلی Net framework. رو در اختیار شما میزاره #C بهتر از Java باشه .

  31. #31
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: جاوا بهتره یا سی شارپ

    C#‎ روی Linux هم اجرا میشه (یک چیزی هست به نام Mono) با این mono میشه برای Linux با C#‎ برنامه نوشت
    تجربه شخصی:
    من اوائل که با لینوکس آشنا نبودم, عشق عمو بیل بودم و چشمم به دنیای لینوکس بسته بود, به خاطر همین نکته فوق وارد لینوکس شدم تا ببینم این که میگن برنامه C#‎ تحت لینوکس کار میکنه یعنی چی؟
    الان بعد از تقریباً دو سال که فقط با لینوکس کار میکنم و ویندوز رو کنار گذاشتم فقط میفهمم که این کار یک جور حماقته که شکل حماقت نیست.یک جور حماقت پیچیده.
    به نظر من C++‎ ه Native تحت لینوکس بسیار لذت بخش تر و راحتتر از C#‎ + Mono تحت لینوکسه.
    واقعاً اشک آدم در میاد تا یک برنامه ۵ خطی ویندوز توی لینوکس راه بیافته.
    چون کسایی که برنامه رو با C#‎ مینویسند هدف اولشون ویندوز ه و خیلی چیزها رو رعایت نمیکنن.اولیش Path separator.

    به نظر من یکی از مشکلات .Net که بهش اشاره نشد, کامپایلر background ه .Net ه که هنر مصرف کردن بیهوده منابع سیستم رو از سیستم عامل ویندوز به ارث برده.بعضی وقتها قاطی میکنه


    بدشم کی گفته با C#‎ نمیشه برای موبایل برنامه نوشت؟؟؟؟ تو خود VS یک چیزی هست به نام smart device الیته تو VS2010 این نیست باید جدا گانه از خود microsoft دانلود کنید
    اولن که بعدش نه بدش.

    دوماً که چی؟
    مثلاً برای WinCE برنامه بنویسه که چی بشه؟
    به چه دردی میخوره؟
    وقتی مایکروسافت فقط ۳ درصد بازار Tablet رو داره این کار یعنی چی؟Wikipedia Reference

    اصلاً چه خاطره خوشی از WinCE یا Windows Mobile دارید که با ما به اشتراک بزارید.
    من با همین آندروید هر کاری که با لبتابم میکنم با تبلتم انجام میدم.GCC gcj Apache PHP red5 Perl Python و هزار تا برنامه خفن دیگه هستن که هم روی آندروید و هم iOS و Meego و سیستم عامل های *NIX کار میکنند. حالا بیا .Net Framework ه Full روی یه سیستم Embeded نصب کن.(خودم خریدارم/دونه ای ۱۰۰ تومان بالای قیمت/نقد)
    آیا Windows Mobile این امکانات رو داره؟
    برای همین ۳ درصد بازار رو داره.و هر روز بدتر هم میشه.

    تا اونجایی که یادمه .Net توی ویندوز CE اصلاً Unicode ساپورت نمیکنه.(چند ماه قبل وقتی کد یکی از دوستانم رو برای فارسی نوشتن توی WinCE دیدم نزدیک بود بزنم زیر گریه)
    جاوا حداقل توی آندروید و سیمبین و ... هم اجرا میشه و فارسی ساپورت میکنه.
    آخرین ویرایش به وسیله FastCode : جمعه 27 خرداد 1390 در 22:45 عصر

  32. #32

    نقل قول: جاوا بهتره یا سی شارپ

    عوضش Java متغییرهای ارجاع به مرجع ( reference variables ) رو داره !
    منم java کم کار کردم ولی باتوجه به اینجا reference variables تو جاول معادل همون Reference Types هستش


    Primitive and reference variables تو جاوا یعنی همون Reference Types Value Types تو سی شارپ ( البته شاید چون من برنامه نویس جاوا نیستم )

    و این چیز جدیدی نیست تو python هم چنین چیز داریم

    البته بماند که تمام V0RTEX شبیه طنز هستش Qt و پایتون جای خودش

  33. #33
    کاربر دائمی آواتار powerboy2988
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    سن
    37
    پست
    1,301

    نقل قول: جاوا بهتره یا سی شارپ

    جالبه .... نمیدونم دلیل اینکه این بهتره یا اون بهتره چیه؟؟
    جفتشون ابزار های برنامه نویسی هستند مقایسه کردنشون زیاد جالب نیست...
    با Java میشه یک سری کارها رو بهتر از #C انجام داد و معکوس این هم صدق می کنه.

    مقایسه این 2تا مثل مقایسه پیچ گوشتی 2 سو با 4 سو می مونه....



    حالا هرکی می تونه بگه کدوم پیچ گوشتی بهتره... اون وقت می تونه بگه که کدوم زبان بهتره!!!!

  34. #34
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط powerboy2988 مشاهده تاپیک
    جالبه .... نمیدونم دلیل اینکه این بهتره یا اون بهتره چیه؟؟
    جفتشون ابزار های برنامه نویسی هستند مقایسه کردنشون زیاد جالب نیست...
    با Java میشه یک سری کارها رو بهتر از #C انجام داد و معکوس این هم صدق می کنه.

    مقایسه این 2تا مثل مقایسه پیچ گوشتی 2 سو با 4 سو می مونه....



    حالا هرکی می تونه بگه کدوم پیچ گوشتی بهتره... اون وقت می تونه بگه که کدوم زبان بهتره!!!!
    دقیقاً
    Java دو سو ه
    پیچ های C#‎ رو هم باز و بسته میکنه.

  35. #35

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط geek1982 مشاهده تاپیک
    منم java کم کار کردم ولی باتوجه به اینجا reference variables تو جاول معادل همون Reference Types هستش


    Primitive and reference variables تو جاوا یعنی همون Reference Types Value Types تو سی شارپ ( البته شاید چون من برنامه نویس جاوا نیستم )

    و این چیز جدیدی نیست تو python هم چنین چیز داریم

    البته بماند که تمام V0RTEX شبیه طنز هستش Qt و پایتون جای خودش
    من هم تجربه زیادی در کار با Java ندارم ولی گاهی اوقات نگاهی به مقالاتش میندازم ، منظور از reference variables دقیقا اشاره گر نیست ، این لینک رو ببین :

    http://www.csis.pace.edu/~bergin/pap...nterTraps.html

  36. #36
    مدیر بخش آواتار mmd2009
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    پست
    2,393

    نقل قول: جاوا بهتره یا سی شارپ

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    دقیقاً
    Java دو سو ه
    پیچ های C#‎ رو هم باز و بسته میکنه.
    ببخشید ولی فکر نکنم منظور اون دوستمون این بود که جاوا بهتر از سی شارپ باشه...

    پ ن : البته احساس می کنم.

    کسی که به خود اطمینان دارد به تعریف دیگران احتیاج ندارد. «گوستاو لوبون»


  37. #37
    کاربر دائمی آواتار powerboy2988
    تاریخ عضویت
    تیر 1385
    محل زندگی
    تهران
    سن
    37
    پست
    1,301

    نقل قول: جاوا بهتره یا سی شارپ

    من نگفتم کدوم بهتره ...
    و اینکه هر پیچ 4 سویی رو نمیشه با پیچ گوشتی 2 سو باز کرد... یعنی هزینش زیاده برادر....

  38. #38
    کاربر دائمی آواتار haghft
    تاریخ عضویت
    اردیبهشت 1386
    محل زندگی
    https://t.me/pump_upp
    پست
    400

    نقل قول: جاوا بهتره یا سی شارپ

    اين تعصبات بيخودي رو بريزيد دور.نه با طرفداري از جاوا،از سان چيزي بهتون ميماسه نه از طرفداري از سي شارپ چيزي از مايكروسافت عايدتون ميشه.اين بگو مگوهاي بيخودم همش ناشي از جهل افراده!

  39. #39

    نقل قول: جاوا بهتره یا سی شارپ

    به نظر میاد این مبحث فقط برا اضافه کردن پست نه یه بحث علمی
    آخرین ویرایش به وسیله ma.rad : شنبه 28 خرداد 1390 در 01:36 صبح

  40. #40

    نقل قول: جاوا بهتره یا سی شارپ

    لطفا تاپیک رو قفل کنید بره :)

صفحه 1 از 2 12 آخرآخر

قوانین ایجاد تاپیک در تالار

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