فکر میکنم اولویت اولم بهتر است ASP.net MVC باشد.
بعد اگر فرصت شد(در واقع تنبلی نکردم) JSP رو هم بعد از ASP.net یاد بگیرم
البته- JSP -JavaServer Pages هم برای طراحی صفحات وب گزینه خوبی هستش(حتی به نظر من از PHP بهتره).جاوا همیشه همه جا حرف برای گفتن داره.(یعنی منی که می خوام با وب یا desktop یا موبایل کار کنم نیاز نیست که هی برم زبان یاد بگیرم. همه رو این JAVA ی نازنین یکی کرده.و به معنای واقعی کلمه Cross-platform هستش. این یعنی با یک تیر چند نشون زدن.)ولی JSP متاسفانه توی ایران زیاد شناخته شده نیست.
با تحقیق هایی که درمورد JSPکردم میتونم نتیجه بگیرم:
هرکاری رو که با PHPمیتونید انجام بدید با JSP هم میتونید انجام بدید.(در JSP میتونید کتابخانه های وسیع و قدرتمند جاوا استفاده کنید)
اگر برای یک سرور لینوکسی بخوای یه سایت تحت وب کوچیک بنویسی PHPبهتره.ولی برای یک سایت بزرگ استفاده از JSPبهتره.چون کد شی گرای تمیزی تری داره(هر چند یادگیری شی گرایی جاوا مشکل تره و همیشه باید در قید وبند OOP باشید ولی نگهداری از کد جاوا ۱۰۰ درصد راحتر از نگهداری از کدهای PHP است.خصوصا وقتی پروژه بزرگ است)
فقط تنها مورد مشکوک مقایسه سرعت JSP و PHP هستش!!!؟ که البته PHPهم چون مفسری است و کامپایل نمیشه نمیتواند سرعت خیلی زیادی برای آن متصور شد.
ولی به هر حال از پولی بودن(دزدی از مایکروسافت) فاکتور بگیرید و این دو تا رو مقایسه کنیم به نظرمن ASP.net جلوتره و اولویت اول منه و اگر فرصت شد JSP و بعد PHP میتونه گزینه های بعدی من باشه.ولی در کل ASP.net و بعد JSP میتونند توی این رقابت باقی بمونند.
با اینکه میدونم سیستم عامل ویندوز خیلی جاها ضعیف تر از لینوکس بوده(تازه با اون همه قدرت مالی) ولی به عقیده من مایکروسافت در Visual studio وNet Framework.و IDE و C sharp خیلی موفق بوده(خصوصا در طراحی صفحات وب).نمیدونم چرا خیلی ها از سی شارپ انتقاد میکنند و ازش بدشون میاد.من به شخصه مشکلی با سی شارپ ندارم و از VB بدم میاد. (سی شارپ به نظر من تلفیق خوبی از c++ و جاوا است.و به هرحال از نظر طراحی و پیاده سازی زبان های برنامه نویسی و نظریه زبان ها و ماشین ها مبدع زبان میتواند به سلیقه خود یک زبان را ابداع کند.و از اونجا که مایکروسافت سلیقه ای نداشته اومده از تلفیق ویژگی های شی گرایی جاوا و گرامر سی پلاس پلاس استفاده کرده.هر چند جاوا هم از نظر گرامری وام دار زبان سی و سی پلاس پلاس است.واین کپی برداری مایکروسافت از جاوا رو کمی توجیه میکنه)
کشور ما متاسفانه به جای اینکه به سمت لینوکس حرکت کنه به سمت مایکروسافت رفته و اکثر زیرساخت ها ویندوزی است و این رو نمیشه به راحتی تغییر داد و یه انقلاب بزرگ کامپیوتری لازم داره!اما این باعث نمیشه من از PHP به عنوان اولویت اول استفاده نکنم.چون بحث طراحی صفحات وب به نوعی Platform independent(از نظر کاربر نهایی) و در واقع Browser Dependent است.
با تحقیقات مفصلی که کردم مزیت های ASP.net نسبت به PHP این ها هستند :
شی گرایی :
Php از بدو تولد به صورت یک زبان اسکریپتی ارائه شد در حالی که Asp.NET با مفهوم شی گرایی (کلاس ، خاصیت ، رویداد و …) پا به عرصه گذاشت .
کار با Asp.NET بسیار شبیه کد نویسی برای یک نرم افزار تحت ویندوز است و تمام امکانات مورد نیاز برای یک برنامه نویسی شی گرا را فراهم نموده است .در ابتدا PHP از شیء گرایی پشتیبانی نمی کرد اما به مرور این قابلیت به یکی از قدرت های این زبان تبدیل شد . تکنولوژی کاربردی این زبان بیشتر برای نوشتن و اجرا کردن اسکریپت های وب برای اجرا در سیستم عامل های Open Source ای مانند یونیکس و لینوکس استفاده می شود. البته یکی از خرده هایی که به PHP گرفته می شود این است که هنوز تا حدودی نقص های اولیه خود را در خصوص شیء گرایی دارد و به گفته برخی برنامه نویسان خاصیت های حرفه ای شیء گرایی در این زبان برنامه نویسی دیده نشده است.
امنیت در وب :
امنیت در وب یکی از نگرانی های مهم توسعه گران و وب مسترها است ، خوشبختانه DotNET تدابیر امنیتی بسیار جالبی برای جلوگیری از نفوذ هکر ها به کار برده است ، این امر یکی از مهمترین عوامل برتری Asp.NET بر Php است .
اگر شما یک سایت تولید شده توسط یک برنامه نویس مبتدی Asp.NET را با یک برنامه نویس مبتدی Php مقایسه کنید کامل متوجه خواهید شد که دات نت چگونه به صورت پیشفرض از هک شدن وب سایت شما جلوگیری می کند .
محیط توسعه نرم افزار :
همانطور که میدانید شرکت مایکروسافت چند نرم افزار قدرتمند برای توسعه Asp.NET فراهم نموده است : Visual Studio.NET ، Visual Web Developer , WebMatrix این نرم افزار های قدرتمند شما را از هر نرم افزار دیگری بی نیاز می سازد، تمامی امکانات مورد نیاز برای طراحی و تولید یک وب سایت حرفه ای در این نرم افزار ها گنجانده شده است،
در صورتی که Php هیچ نرم افزار اختصاصی نداشته و برخی نرم افزار ها این زبان را در کنار زبان های دیگر ارائه نموده اند مانند : NetBeans , Adobe Dreamweaver , Zend, ….
سرعت در توسعه و پیاده سازی :
ASP.NET با ارائه کنترل های قدرتمند وب و ارائه راهکارهای بسیار کاربردی و بهینه جهت ارتباط با بانک ها اطلاعاتی تحولی عظیم در توسعه نرم افزار های وب به وجود آورد ، کنترل های Asp.NET باعث افزایش سرعت توسعه وب تا ده ها برابر شده است ، به عنوان مثال برای نمایش ۵۰۰۰ هزار رکورد اطلاعات داشنجویان در Asp.NET کافیست یک کنترل Grdiview به صفحه اضافه کنید ، با چند کلیک آن را به بانک اطلاعاتی مورد نظرتان (Ms-SQL Server, Ms-Access , MySQL , Oracle ,….) متصل نمایید با یک کلیک آن را صفحه بندی نمایید ، در صورتی که برای نمایش این رکورد ها در Php نیاز به کد نویسی فراوانی دارید ، البته نا گفته نماند در Php هم راهکار های ساده تری جهت نمایش اطلاعات وجود دارد ولی هیچ یک به قدرت و سادگی کنترل های دات نت نیست بلکه به صورت اسکریپتی به صفحه اضافه می شوند .
سرعت بارگزاری صفحات :
این سخن را به کرار شنیده ام که Php از Asp.NET سریعتر است ، ولی آیا تا چه حد این حرف صحت دارد ؟
Asp.NET یک زبان کامپایل شده است در صورت که Php یک زبان مفسری است ، تمامی کد های Asp.NET پس از توسعه کامپایل شده و به Dll تبدیل می شوند ولی Php به صورت کد بارگزاری شده و در هنگام اجرا تفسیر می شود .
همانطور که میدانید Asp.NET دارای کنترل های زیادی است و به علت سادگی استفاده بسیار پر کاربر هستند ، این کنترل ها در هنگام Generate شدن باید به کنترل های Html تبدیل شوند در صورتی که Php به این صورت نیست و از کنترل های Html استفاده می کند . این موضوع در عمل تاثیری در سرعت لود صفحه ندارد چرا که عمل Generate شدن در سرور انجام می شود و در صورت وجود سخت افزار مناسب در سرور این کار در کسری از ثانیه انجام می شود.
همچنین کاربران Asp.NET می توانند از کنترل ها Html استفاده کنند و محدودیت از این لحاظ نیز برای آنها وجود ندارد .
وجود ViewState در Asp.NET که باعث حفظ اطلاعات کنترل ها پس از PostBack می شود یکی از دلایل عمده افت سرعت در Asp.NET می باشد ، اما خوشبختانه Asp.NET این امکان را به کاربر می دهد که در صورت عدم نیاز به ViewState آن را غیر فعال نماید ولی برخی از توسعه گران به دلیل عدم اطلاع از این موضوع با مشکل کاهش سرعت مواجه می شوند .
عمل فشرده سازی صفحات در Php وجود داشته و اکثر توسعه گران Php با یک خط کد نویسی این امکان را به پروژه های خود اضافه می کنند ، عمل فشرده سازی تا ۱۰ ها برابر حجم خروجی صفحه را کاهش داده و باعث افزایش سرعت لود آن می شود ، خوشبختانه عمل فشرده سازی در Asp.NET نیز وجود دارد ولی خیلی از توسعه دهندگان Asp.NET از آن بی اطلاع هستند
نکته مهم این است استفاده ناشیانه از این تکنولوژی نه تنها باعث کاهش سرعت بارگزاری صفحات شده بلکه دیدگاه شما را نسبت به آن خدشه دار می کند .
سورس باز :
یکی از بزرگترین مزایای Php سورس باز بودن آن است ، این امر باعث شده است خیلی از سایت های بزرگ برای توسعه وب سایت خود از Php استفاده کنند حتی سورس آن را به اقتضای نیاز های خود تغییر و شخصی سازی کنند .
دلیل اصلی استفاده شرکت ها بزرگ مانند Yahoo , Facebook , … از زبان Php سورس باز بودن آن است .
سورس باز نبودن Asp.NET یکی از نقاط ضعف آن محسوب می شود .
هزینه های جانبی :
هاست یا سرور : هزینه سرور های لینوکس به دلیل رایگان بودن آن نسبت به هزینه سرور های ویندوز کمتر است (البته نه در کشور ما)
دیتابیس : بانک اطلاعاتی My SQL که معمول ترین بانک اطلاعاتی php است رایگان است ، بانک های اطلاعاتی Ms Access و MS SQl Server Express نیز به صورت رایگان ارائه شده است .
در کل هزینه راه اندازی یک وب سایت Php کمتر از یک وب سایت Asp.NET به نظر می رسد ، البته گر چه این هزینه بسیار ناچیز است ولی برای برخی این یک مزیت Php محسوب می شود
سیستم عامل :
همانطور که میدانید Php هم بر روی ویندوز و هم بر روی لینوکس نصب می شود ، و این یکی دیگر از مزیت های Php می باشد
البته اخیرا سرو Asp.NET در لینوکس پیدا شده ، پروژه ای به نام Mono تکنولوژی Asp.NET را به لینوکس هدیه کرده ! همچنین یک IDE رایگان به نام Mono Develop هم ارائه شده که به راحتی شما را قادر می سازد طراحی و توسعه سایت های Asp.NET خود را در محیط Linux انجام دهید.
کاربرد و بازار کار :
اگر یک نگاه گذرا به صفحات آگهی روزنامه ها در بخش استخدام برنامه نویس بیاندازید متوجه خواهید شد که “استخدام برنامه نویس Asp.NET” سهم عظیمی از این آگهی ها را در بر گرفته است که خود نشان دهنده کاربرد فراوان این تکنولوژی در شرکت های ایرانی است
پیشرفت و توسعه نرم افزار و به روز شدن :
از زمان ظهور Asp.NET در سال ۲۰۰۲-۲۰۰۳ تکنولوژی Asp.NET پیشرفت چشم گیری کرده است ، بهینه سازی IDE و هسته DotNetFrameWork و همچنین افزودن امکانات مختلف جهت تسریع در امر توسعه تکنولوژی Asp.NET را دگرگون ساخته است ، همچنین هماهنگی روز افزودن Asp.NET و SQL Server باعث افزایش چشمگیری درخواست های مختلف از این بانک اطلاعاتی و همچنین سهولت برنامه نویسی شده است .
اضافه شدن Ajax در Asp.NET همگام با سایر زبان های سمت سرور مانند Php نشان از به روز بودن این تکنولوژی دارد .
شایان ذکر است شرکت مایکروسافت در سال های اخیر اقدامات بی سابقه ای در جهت پیشرفت تکنولوژی Asp.NET انجام داده است که میتوان از LINQ ، MVC , SilverLight , Wcp , Wpf و… نام برد که هر یک دنیای جدیدی از تکنولوژی را به بازار عرضه کرده اند .
این پیشرفت سریع و رو به رشد یکی از نقاط قوت Asp.NET به شمار رفته و گویای این است که این تکنولوژی در آینده جایگاه مهمی در دنیای IT خواهد داشت.
پیشرفت و توسعه نرم افزار و به روز شدن :
از زمان ظهور Asp.NET در سال ۲۰۰۲-۲۰۰۳ تکنولوژی Asp.NET پیشرفت چشم گیری کرده است ، بهینه سازی IDE و هسته DotNetFrameWork و همچنین افزودن امکانات مختلف جهت تسریع در امر توسعه تکنولوژی Asp.NET را دگرگون ساخته است ، همچنین هماهنگی روز افزودن Asp.NET و SQL Server باعث افزایش چشمگیری درخواست های مختلف از این بانک اطلاعاتی و همچنین سهولت برنامه نویسی شده است .
اضافه شدن Ajax در Asp.NET همگام با سایر زبان های سمت سرور مانند Php نشان از به روز بودن این تکنولوژی دارد .
شایان ذکر است شرکت مایکروسافت در سال های اخیر اقدامات بی سابقه ای در جهت پیشرفت تکنولوژی Asp.NET انجام داده است که میتوان از LINQ ، MVC , SilverLight , Wcp , Wpf و… نام برد که هر یک دنیای جدیدی از تکنولوژی را به بازار عرضه کرده اند .
این پیشرفت سریع و رو به رشد یکی از نقاط قوت Asp.NET به شمار رفته و گویای این است که این تکنولوژی در آینده جایگاه مهمی در دنیای IT خواهد داشت.