چطور می تونم کمکتون کنم؟

مقایسه دات نت و جاوا

جاوا(به انگلیسی: Java)یک زبان برنامه‌نویسی شئ‌گراست که برای اولین بار توسط جیمز گاسلینگ در شرکت سان مایکروسیستمز ایجاد شد و در سال ۱۹۹۵ به عنوان بخشی از سکوی جاوا منتشر شد. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسان‌تری دارد و از قابلیت‌های سطح پایین کمتری پشتیبانی می‌کند. یکی از قابلیت‌های اصلی جاوا این است که مدیریت حافظه را بطور خودکار انجام می‌دهد. ضریب اطمینان عملکرد برنامه‌های نوشته‌شده به این زبان بالا است و وابسته به سیستم‌عامل خاصی نیست، به عبارت دیگر می‌توان آن را روی هر رایانه با هر نوع سیستم‌عاملی اجرا کرد. برنامه‌های جاوا به صورت کدهای بیتی همگردانی (کامپایل) می‌شوند. که مانند کد ماشین هستند و به ویژه وابسته به سیستم‌عامل خاصی نیستند.

 

 

 

جاوا

مقايسه دات نت و جاوا : 

J2EE يك استاندارد براي تحقق يكApplication Server " است در حاليكه دات نت يك " نرم افزار "است كه" فقط كلاسهاي
پايه براي توليد نرم افزارهاي مستقل يا مرتبط شبكه اي را در اختيار توسعه گر قرار مي دهد. 
دات نت : يعني يك بستر براي ايجاد نرم افزار . يك بار توسط مايكروسافت نوشته شده و بقيه بايد ازآن استفاده كنند اما تمام دات نت چيزي بيشتر از يك "بستر اجراي كد و كتابخانه مقدماتي كلاس" نيست.تمام دات نت يك FrameWork است و يك محيط توليد نرم افزار + مستنداتي جهت ايجاد ابزارهاي متفرقه توليد نرم افزار.

J2EE: يك استاندارد است كه مشخص ميكند براي پاسخ دادن به يك نياز نرم افزاري "سازمان مقياس "چگونه بايد با اجزاء نرم افزاررفتار كرد و براي مديريت طول عمر نرم افزار چه كار بايد كرد . اين استاندارد توسط سان ارائه شده است. 
خيلي ها مبتني بر اين استاندارد
نرم افزارهاي خودكار سازي ايجاد كرده اند. استاندارد J2EE ميگويد چگونه با" زبان جاو ا "يك FrameWork ايجاد كنيم چگونه
كتابخانهء كلاس براي تمام مقاصد بنويسيم بانك اطلاعاتي چطور باشد و.. و شر كتهاي متعددي بر اساس اين استاندارد Application
Server هاي مبتني بر J2EE ايجاد كرده اند كه برخي تمام J2EE را پياده سازي كرده اند و برخي فقط بخشي آن را. 
 ApplicationServer يك بستهء نرم افزاري است كه وظيفه اش Application LifecycleManagement است . يعني از ابتداي
تولد يك نرم افزار "سازمان مقياس" تاانتهاي اتمام توليد ، بايد به تمام نيازهاي نرم افزاري پاسخ دهد . يعني اگر برنامه نويس به يك
 FrameWorkاحتياج داشت ، Application Serverيك Frameworkبه او بدهد ، اگر بانك اطلاعاتي خواست ، Application
 Serverيك بانك اطلاعاتي كامل برايش فراهم كند ، اگر وب سرور خواست ، ApplicationServerيك وب سرور تمام عيار به او
بدهد ، اگر براي ارسال نامه هاي الكترونيكي برنامه اش به يك 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، سرور پست الكترونيكي ، توابع احراز هويت ،
بستر اجراي كد و ... ؟ جواب مثبت است اما چه كسي ميتونه تضمين كند تمام اين اجزاء داراي "سطح" ي يكنواخت و يكسان باشند ؟مثلا" چه كسي مي تواند تضمين كنه يك بستر اجراي كدبتواند توابع دسترسي به بانك
اطلاعاتي رو با بهينه ترين وضعيت توليد كند ؟يا تضمين كند اين عناصر با هم سازگاري مناسبي داشته باشند ؟ همگي توليد شده توسط يك بستر خاص باشند كه توسط همان بستر بشود بين آنها ارتباط برقراركرد ؟ اينجا مسئله سازگاري است . يعني اگر قرار شد يك گروه نرم افزاري براي بزرگترين سازمان بيمه غير دولتي امريكا يك راهكار جامع ERP توليد كند ( يابخرد و خصوصي سازي كند براي محيطش ) 
بايد به چه بستري اعتماد كند كه مطمئن باشد تمام درخواستهاي نرم افزاري " سازمان مقياس" ش را مي تواند جواب بده ومشخصه هاي اون ، سازمانش رو به يك نرم افزار خاص ، سخت افزار خاص ، پروتكل خاص و ... محدود نميكند ؟ ( اصولا" محدوديت در ادبيات آي تيتابستان 1389 بررسي زبان هاي برنامه نويسي ، سطح اعتمادو قابليت وثوق - Reliability - رو كاهش ميدهد ) اينجاست كه يك ApplicationServer خودنمائي ميكند.

 يك Application Serverتضمين ميكند كه از بستراجراي كد گرفته تا وب سرور ، از توابع امنيتي گرفته تا بانك اطلاعاتي ، از IDEگرفته تا ابزارهاي حمايت از UP يا Unified Process و ... در بستهءنرم افزاريش وجود دارد. 
 J2EEدر واقع يوتوپيا ( آرمان شهر ) شركت سان مايكروسيستمز است براي توليد يكApplicationServer شركت سان غير از ارائه يوتوپياي يك Application Serverكارهاي ديگري هم انجام داده . مثلا" توسعه زبان جاوا . طبيعي است كه
زبان جاوا زبان استانداردتوسعه نرم افزارهاي مبتني بر J2EE است ، هر چند بر خلاف اظهارات ناشيانه برخي ، J2EEو خصوصا" بستر اجراي كدش ، به زبان جاوا منحصر نيست . يعني همانطور كه بستر دات نت قابليت پذيرش زبانهاي مختلف رو دارد ،بسترهاي
مبتني بر جاوا هم مي توانند به ساير زبانهاي برنامه نويسي سرويس بدهند. يعني براحتي مي شود بين جاوا و ساير كتابخانه هائي كه توسط ساير زبانهاي برنامه نويسي توليد شده ارتباط برقرار كرد ( Java Native Interface ) . هرچند كه مثل دات نت منعطف نيست . سان تلاش ميكند يك ApplicationServer مبتني بر استاندارد خودش يعني J2EE توليد كند اما هنوز تكميل نشده است.  سان فعاليت گسترده اي براي توسعه خود جاوا و بهينه سازي منطق J2EE وكلاسهاي توليد نرم افزار دارد اما نگارشهاي عملياتي متعددي از Application Server هاي مبتني بر J2EE وجود دارد كه فقط يكي از انهاتمام جزئيات روپياده سازي كرده است.

دات نت

الف. كتابخانه كلاس : داتنت و JDK هر دو كتابخانه هاي قدرتمندي هستند كه اغلب نيازهاي پايه براي توليد نرم افزار را حمايت ميكنند . اما براي توليد نرم افزارهاي بزرگ مقياس هيچكدام كافي نيستند . دات نت چيز ديگري ندارد اما براي جاواراهكارهاي ديگري همئ وجود دارد . كاربري دات نت راحت تر است . پيچيدگي هاي دات نت هم كمتر است . نمودار يادگيري جاوا بسيار كم شيب است.

ب. زمان اجرا: زمان اجراي دات نت تقليدي صرف از زمان اجراي جاوا ست در هر دو محيط خوب است . سرعت اجراي "برنامه" هاي دات نت از برنامه هاي جاوا كندتر است اگر از JIT استفاده نكند. سيستم Code Caching و JITC دات نت كمك زيادي به افزايش سرعت برنامه ها كرده است . 

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

د. ارتباط با داده : داتنت چيزي بنام ADO .NET ارائه كرده كه راه حلي است منحصر به فرد . جاوا JDBCرا دارد كه چه در connection Poolingو چه در objecy pooling به خوبي ADO .NETكار ميكنه اما ADO .NET فوق العاده امكانات زيادي دارد.

دات نت,جاوا,زبان برنامه نویسی,مقایسه دات نت و جاوا,نرم افزار,وب رند,وبرند,webrend,طراحی سایت,طراحی سایت جاوا,زبان جاوا,سرور,کام پلاس,تولید نرم افزار,سازمان مقیاس,اينووكيشن ,ارتباط با داده