بخشی از پاورپوینت

اسلاید 2 :

موضوع تحقیق :

مقایسه زبان برنامه نویسی سمت سرور (تحت وب) مانند PHP و ASP

اسلاید 4 :

مقدمه:

برنامه نویسی وب به ۲ قسمت کلاینت و سرور تقسیم میشه . بخش سرور یعنی پردازش هایی که بر روی سرور انجام میشه تکنولوژی های jsp ,asp ,php, . و غیره تکنولوژی های هستند که در واقع سمت سرور ساخته و پرداخته میشن و در نتیجه اون یک سری پاسخ ها تولید میشه که به کاربر که همون کلاینت هست نمایش داده میشه .

در سمت سرور میتوان به رابط های پایگاه داده ، منطق کسب و کار ، سرویس های وب و .. غیره اشاره کرد و سمت کلایت هم میتوان به html ,alloy ui ,sencha ,gwt, . و غیره اشاره کرد که در واقع وظیفه نمایش محتوای تولید شده را دارند .

اسلاید 5 :

دات نت نسل جدیدی از ابزارهای توسعه مایکروسافت است. دات نت فقط یک زبان نیست و در واقع یک فریم ورک یا پلاتفرم برای توسعه و اجرای نرم افزار است.دات نت شباهت زیادی با پلاتفرم جاوا دارد  و در واقع در رقابت با اوست. ASP.NET نیز نسل جدیدی از ASP کلاسیک در بستر دات نت است و از این جهت پیشرفت بسیار زیادی نسبت به ASP کلاسیک شاهد هستیم.با ASP.NET و با وجود کتابخانه غنی توابع و کلاسهای دات نت تقریبا هر کاری در وب امکان پذیر است. اگر چه مایکروسافت در معماری دات نت هدف اجرا در پلاتفرمها و سیستم عاملهای مختلف را  مد نظر داشته است اما حداقل تاکنون میتوان دات نت را یک ابزار توسعه در سیستم عامل ویندوز دانست. البته پروژه هایی برای شبیه سازی و انتقال دات نت به محیط لینوکس نیز وجود دارد که مهمترین آنها پروژه Mono است که پیشرفت قابل توجهی داشته است.انتظار می رود در آینده نزدیک ASP.NET در هر سیستم عامل و پلاتفرمی قابل اجرا باشد.

زبان برنامه نویسی وب ASP یا ASP.NET چیست ؟

اسلاید 6 :

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

زبان برنامه نویسی وب PHP چیست ؟

اسلاید 7 :

همانطور که اشاره شد پی اچ پی برای طراحان سایت و گریز از پیچیدگی های ابزارها و زبانهای آن روزگار ایجاد شده است و بنابراین PHP اولیه یک ابزار ساده و نه چندان پیچیده بوده است. البته PHP در این سالها ارتقاء پیدا کرده است اما هنوز نقصهای اولیه ای را دارد( مثلا با وجود شی گرایی هنوز دستورات و توابع زیادی از آن ارتباطی با شی خاصی ندارد و یا خاصیتهای حرفه ای شی گرا را ندارد.). اما دات نت فراتر از یک زبان است و مجموعه از کتابخانه های استاندارد و زبانهایی که تقریبا تمام قابلیتهای زبانهای روز دنیا را دارند. سینکس حرفه ای، استاندارد و جذاب #C و یا سینتکس ساده و کارآمد VB.NET و البته #J و ++C و چند زبان دیگر نیز وجود دارند. دات نت کاملا شی گرا است و معماری آن حرفه ای است و از این جهت با JAVA (آنرا را با جاوا اسکریپ اشتباه نگیرید) قابل مقایسه است.

معماری

اسلاید 8 :

در واقع از لحاظ معماری JAVA و دانت نت پلاتفرمهایی با معماری Enterprise هستند و PHP زبانی ساده با تمرکز برای نوشت اسکریپهای وب. شرکت ZEND که در حال حاضر Engine اصلی PHP را ارائه میدهند و برخی شرکتهای دیگر  تلاشهایی برای ارتقاء و ایجاد فریم ورک حرفه ای تری برای PHP دارند اما در کل و از لحاظ مهندسی نرم افزار معماری  دات نت برتری محسوسی نسبت به PHP دارد.

اسلاید 9 :

پشتیبانی از شی گرایی:

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

در حالی که Asp.NET با مفهوم شی گرایی (کلاس ، خاصیت ، رویداد و .) پا به عرصه گذاشت . کار با Asp.NET  بسیار شبیه کد نویسی برای یک نرم افزار تحت ویندوز است و تمام امکانات مورد نیاز برای یک برنامه نویسی شی گرا را فراهم نموده است .

اسلاید 10 :

بحث سادگی کار با یک محیط برنامه نویسی بستگی به موارد مختلفی دارد که از جمله آنها می توان به اندازه پروژه ای که می خواهیم انجام دهیم اشاره کرد. در وهله اول باید بگوییم که یادگیری زبان PHP قطعا برای شروع ساده تر از برنامه نویسی به زبان ASP.NET است اما برای برنامه نویسی اسکریپت های چند خطی یا وب سایت های کوچک نه برای نوشتن Web Application های بزرگ و سازمانی و یا اتوماسیون های اداری پیچیده ، اگر می خواهید صرفا یک وب سایت یا یک CMS یا یک Web Application ساده و دارای پیچیدگی های کم بنویسید برای شروع یادگیری PHP بهترین گزینه است . شما با استفاده از هر ویرایشگر متنی قادر به نوشتن کدهای PHP هستید که این خود یکی از مزایای اصلی این زبان برنامه نویسی وب می باشد . متاسفانه PHP ویرایشگر و ابزار مشخصی برای کدنویسی ندارد ، شرکت های مختلفی در اینترنت ابزارهای مختلفی برای استفاده برای کدنویسی این محصول ارائه داده اند که این خود یک عدم تمرکز برای برنامه نویسی PHP را ایجاد می کند.

برنامه نویسی با ASP.NET ساده تر است یا PHP؟

اسلاید 11 :

یکی از مواردی که تا چند وقت پیش به عنوان مزین PHP بر ASP.NET مطرح می شد این بود که کدهای نوشته شده توسط PHP بر روی هر سیستم عاملی قابل اجرا هستند و این موضوع برای کدهای ASP.NET وجود ندارد . با این موضوع تا حدودی موافق هستم اما نه الان ، در حال حاضر کدهای PHP براحتی با استفاده از نرم افزارهای شبیه سازی مثل WAMP و XAMP و بسیاری از این موارد براحتی بر روی سیستم عامل ویندوز اجرا می شوند و شما نیازی نیست برای برنامه نویسی PHP حتما لینوکس بلد باشید. در مقابل مایکروسافت نیز در سالهای گذشته سعی کرده است این نقطه ضعف خود را پوشش دهد و در این راه پروژه معروفی به نام MONO را ارائه کرده است که توسط آن شما می توانید براحتی کدهای ASP.NET را بر روی Platform هایی مثل لینوکس و یونیکس اجرا و کد نویسی کنید .

وابستگی به سیستم عامل در ASP.NETبیشتراست یا در PHP ؟

اسلاید 12 :

پرسیدن این موضوع که امنیت در ASP.NET بیشتر است یا در PHP دقیقا مثل همین سئوال است که امنیت در لینوکس بیشتر است یا در ویندوز ، در نهایت شما به جواب قاطعی در این زمینه دست پیدا نخواهید کرد. بحث امنیت بیشتر در حوزه میزان تخصص و دانش برنامه نویس بستگی دارد.

امنیت ASP.NET بیشتر است یا PHP ؟

اسلاید 13 :

یکی از موارد امنیتی که در پروژه های PHP وجود داشت این بود که فایل های PHP متن باز هستند و در صورتیکه کسی به سرور شما دسترسی داشته باشد می تواند سورس کدهای شما را براحتی بخواند اما در ویندوز با دلیل اینکه فایل ها قبل از اجرا توسط کامپایلر به فایل های DLL تبدیل می شوند و دارای قابلیت Code-Behind هستند نمی توان از این نقطه ضعف استفاده کرد. PHP برای پوشش این مسئله و Encode کردن سورس کد های خود قابلیت Zend را معرفی کرد که یک روش رمزنگاری برای کدهای PHP می باشد که دیگر این نقطه ضعف را نداشته باشند.

اسلاید 14 :

یکی دیگر از مزایایی که به عنوان مزیت امنیتی برای PHP محسوب می شود این است که نرم افزارهایی که بصورت عام و در قالب پروژه هایی مثل GNU ارائه می شوند متن باز هستند و شما می توانید سورس کد آنها را مشاهده و از نظر امنیتی آن را تحلیل کنید و به دلیل استفاده زیاد افراد در دنیا از اینگونه نرم افزارها و بدست آوردن باگ های امنیتی آن کدهای PHP از امنیت بالاتری برخوردارند . این بحث درست نیست زیرا همانطور که کدهای باز می تواند باعث بالاتر رفتن امنیت شوند باعث انتشار باگ های امنیتی یک محصول هم می توانند باشند ، یک هکر می تواند سورس کد یک محصول را بصورت کامل در اختیار داشته باشد و آن را از نظر امنیتی تحلیل و با نقاط ضعف بدست آمده به آن حمله کند اما در کدهای ASP.NET همچنین مشکلی وجود ندارد.

اسلاید 15 :

در این خصوص باید بگوییم که چه در ایران و چه در خارج از کشور تفاوت چندانی در کاریابی در هر دوی این زبان های برنامه نویسی مشاهده نمی شود ، فقط تنها نکته در این است که معمولا سازمان های بزرگ و شرکت های منسجم علاقه مند به جذب برنامه نویسان ASP.NET و شرکت های کوچک و متوسط بیشتر برای کارهای وب خود ترجیح با جذب برنامه نویسان PHP دارند. توجه کنید که بطور میانگین حقوق یک برنامه نویس ASP.NET چه در ایران و چه در کشورهای خارجی به نسبت بیشتر از یک برنامه نویس PHP است ، همین موضوع می تواند عاملی برای توسعه بیشتر این زبان برنامه نویسی در دنیا باشد.

بازار کار

اسلاید 16 :

طبق اعلام آمار رسمی Netcraft، تعداد 112,945,968 وب سایت بر روی آپاچی و تعداد 53,217,620 وب سایت بر روی سرور های ویندوز قرار گرفته اند که این عدد نشان دهنده ی برتری در تعداد و شهرت در وب سایت های مبتنی بر لینوکس و LAMP می باشد.

شهرت:

اسلاید 17 :

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

وب سایت های مطرح و بستر ها:

اسلاید 18 :

مدت زمان بیشتری برای تکمیل کدهای پیچیده و توابع ASP.NET در مقایسه با PHP صرف خواهد شد تا کدهای نوشته شده به مرحله ی تکمیل و بهره برداری برسند، به این زمان باید زمان توسعه را نیز اضافه کرد.
علاوه بر این PHP سمت سرور تفسیر خواهد شد پس وقتی تغییری حاصل شود نیازی به مراحل اضافه تری برای دیدن تغییرات وجود ندارد، در سمت دیگر ASP.NET باید هر بار بعد از هر تغییری کامپایل شود.

زمان تکمیل و بهره برداری:

اسلاید 19 :

قبل از اینکه به سراغ بحث هزینه برویم اول یک مورد را مشخص می کنیم ، آیا شما در کشور ایران زندگی و برنامه نویسی می کنید یا در یک کشور خارجی ؟ این بحث خیلی مهم است ، در خصوص هزینه های استفاده از این زبان های برنامه نویسی یکی از مواردی که PHP کارها به عنوان نقطه قوت خود می دانند رایگان بودن کلیه بسته های نرم افزاری مورد استفاده در این زبان است. ساختار کاری PHP بر اساس پروژه GNU و نرم افزارهای آزاد است بدین معنی که همه چیز در حوزه نرم افزار در اینجا رایگان است . سیستم برنامه نویسی PHP یک ساختار مشخص دارد که به عنوان LAMP شناخته می شود و همانطور که قبلا هم اشاره کردیم مخفف شده کلمات Linux و Apache و MySQL و PHP می باشد.

همه این بسته نرم افزاری بدون هیچگونه هزینه اضافی بصورت رایگان چه در ایران و چه در جاهای مختلف جهان برای برنامه نویسان در دسترس می باشد.از این بابت برای افرادی که در خارج از کشور زندگی می کنند کاملا PHP به صرفه است زیرا کوچکترین هزینه ای بابت خرید لایسنس نرم افزار خود نباید بدهند ، هم لینوکس رایگان است و هم آپاچی و هم MySQL پس نیازی به هزینه های اضافی نیست ، از طرفی نمونه نرم افزارهای زیادی بصورت رایگان در اینترنت وجود دارد که بدون هیچ هزینه ای می توانید از آنها استفاده کرده و بومی سازی کنید. توجه کنید که در بحث Add-On ها به هیچ عنوان ASP.NET نمی تواند در این حجم زیاد نرم افزارهای رایگان در اینترنت داشته باشد ، هر چند پروژه هایی برای متن باز کردن ASP.NET وجود دارد اما واقعا در مقابل پروژه هایی که با PHP انجام شده اند و رایگان در اینترنت وجود دارند قابل مقایسه نیستند.

هزینه استفاده از ASP.NET بیشتر است یا PHP ؟

اسلاید 20 :

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

ASP.NET باید بر روی ویندوزی نصب شود که خود ویندوز سیستم عامل رایگانی نیست ، ASP.NET باید بر روی Microsoft Visual Studio ای ایجاد شود که رایگان نیست ، ASP.NET از پایگاه داده ای باید استفاده کند به نام MSSQL که طبیعتا رایگان نیست و در نهایت از وب سروری استفاده می کند که باید در سیستم عامل های مایکروسافت نصب شود . بنابراین استفاده از ASP.NET هزینه هایی را در بر دارد . اما به یک نکته توجه کنید که این هزینه ها برای اشخاص یا شرکت هایی است که در خارج از کشور هستند

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید