loading...

سارين وب ديزاين

مروزه هر كسي كه به دنبال برنامه‌نويسي وب و طراحي سايت آن مي رود ناخودآگاه دو گزينه به گوشش مي رسد كه معمولا بين اين دو گزينه بايستي يكي را براي شروع برنامه‌نويس

بازدید : 469
11 زمان : 1399:2

هميشه ميان برنامه نويسان و طراحان سايت ها براي طراحي سايت اين مشكل وجود داشته كه كداميك از زبان هاي برنامه نويسي براي وب مناسب است ؟ پي اچ پي يا asp.net ؟ در ادامه همراه با سارين وب باشيد .

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

يكي از اين اسامي PHP و ديگري ASP.NET و مشتقات آن است. يكي از مهمترين مشكلاتي كه در انتخاب يكي از اين زبان هاي برنامه‌نويسي وب وجود دارد اين است كه مقايسه درستي بين اين دو زبان به صورت جامع و به زبان فارسي وجود ندارد.

شما كافي است تفاوت بين زبان ASP.Net و PHP را در اينترنت به فارسي جستجو كنيد. مشاهده مي كنيد كه اكثر وب سايت ها با رويكرد طرفدارانه مقايسه خود را انجام داده اند يا فقط يه ترجمه يك متن خارجي كفايت كرده اند. اگر شخصي برنامه نويس ASP.NET است، به طرفداري از اين زبان برنامه‌نويسي و كوبيدن زبان برنامه‌نويسي PHP پرداخته است و برعكس همين مورد هم براي برنامه نويسان PHP وجود دارد.

ابتدا به معرفي ASP و PHP مي پردازيم و سپس ملاك هايي كه مي توان براي مقايسه اين دو زبان عنوان كرد را با هم مقايسه مي كنيم و در نهايت به يك نتيجه كلي مي رسيم كه قطعا اين نتيجه كلي طرفداري از زبان برنامه‌نويسي خاصي نخواهد بود و انتخاب اصلي با شما خواهد بود.

قبل از اين كه انتخابي انجام دهيد، مي خواهيم تفاوت بين اين دو زبان برنامه‌نويسي را براي شما تشريح كنيم تا در انتخاب ميان اين ها دچار مشكل نشويد. هر دو زبان برنامه‌نويسي تحت PHP و ASP.NET در واقع زبان هاي اسكريپت نويسي سمت سرور يا در اصطلاح فني Server Side Scripting هستند كه براي طراحي وب سايت هاي دايناميك مورد استفاده قرار مي گيرند.

طراحي سايت صفحات وب دايناميك ابتدا درخواست كلاينت (كاربر، بازديد كننده) را در سمت سرور پردازش كرده و در نهايت پس از هر بازديد كاربر، نتيجه را به سمت كاربر ارسال مي كنند.

انتخاب بين اين دو زبان اسكريپت نويسي بستگي به مواردي از قبيل اندازه و بزرگي وب سايت، قابليت هاي توسعه وب سايت، هزينه هاي هاستيگ وب، هزينه هاي پشتيباني و زمان پياده سازي و بسياري ديگر از مواردي از اين قبيل دارد كه در ادامه به بررسي اكثر اين موارد خواهيم پرداخت.

در طراحي سايت ، زبان برنامه‌نويسي وب ASP يا ASP.NET چيست؟


ASP مخفف كلمه Active Server Pages است و يك محصول منحصر به فرد براي شركت مايكروسافت به حساب مي آيد. اين زبان برنامه‌نويسي اكنون منسوخ شده است و جاي خود را به زبان اسكريپت نويسي ASP.NET داده است.

در همين جا به اين نكته اشاره كنم كه در واقع ASP.NET يك زبان برنامه‌نويسي نيست، بلكه يك تكنولوژي برنامه‌نويسي وب با استفاده از دات نت است. شما مي توانيد با #C يا #F يا زبان هاي برنامه‌نويسي ديگر دات نت ASP.NET بنويسيد؛ اما با توجه با اينكه شما به عنوان يك زبان بيشتر با اين محصول آشنا هستيد، ما در اين مقاله از ASP.NET به عنوان يك زبان برنامه‌نويسي ياد مي كنيم.

بيشتر شركت ها و سازمان هاي بزرگ براي نرم افزارهاي تحت وب خود از اين زبان برنامه‌نويسي استفاده مي كنند. نرم افزاري كه بيشترين هماهنگي با اين زبان برنامه‌نويسي را دارد، به عنوان Microsoft Visual Studio شناخته مي شود كه در واقع محيط برنامه‌نويسي مايكروسافت محسوب مي شود.

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

در صورتي كه تغييري در هر خط كد از اين زبان برنامه‌نويسي انجام شود، به ناچار كل برنامه بايستي مجددا كامپايل شود. بنابراين زمان برنامه‌نويسي تا حدودي افزايش مي يابد. وب سروري كه با اين زبان برنامه‌نويسي هماهنگ است صرفا وب سرور شركت مايكروسافت كه همان IIS است مي باشد و معمولا به عنوان پايگاه داده نيز در اين نوع زبان برنامه‌نويسي از Microsoft SQL Server استفاده مي شود.

درست است كه ASP.NET و IIS هر دو نرم افزارهايي رايگان هستند اما شما براي لايسنس ويندوز بايستي پول پرداخت كنيد و از طرفي نرم افزار Visual Studio نيز نرم افزار ارزان قيمتي نيست. پشتيباني زبان برنامه‌نويسي ASP.NET توسط وب سايت و مرجعي به نام MSDN انجام مي شود كه مخفف كلمه Microsoft Software Developer Network مي باشد. پيشرفت ها و توسعه هايي كه در اين زبان برنامه‌نويسي انجام مي شود، توسط بازخوردها و تجاربي است كه كاربران اين محصول به وب سايت اين شركت اطلاع مي دهند و همين موضوع باعث ارايه نسخه هاي جديدتر اين زبان برنامه‌نويسي با امكانات جديد مي شود.

ASP.NET تحت برند مايكروسافت است و اين يعني بسياري از زبان ها يا Platform هاي ديگر را پشتيباني نمي كند؛ اما در اين حين به شما امكانات بسيار ساده اي براي شروع برنامه‌نويسي مي دهد. ماژول هاي آماده، محيط ساده و رابط كاربري آسان، برنامه‌نويسي را براي كاربران لذت بخش مي كند. توجه كنيد كه يكي از مشكلاتي كه در دنياي برنامه‌نويسي به اين زبان برنامه‌نويسي وارد مي شود، هزينه اي است كه براي خريد نرم‌افزارهاي آن صرف مي شود. اما با توجه به اينكه ما در ايران هستيم و هيچ هزينه اي براي خريد اين نرم افزارها نمي كنيم،ASP.NET مي تواند گزينه مناسبي براي برنامه‌نويسي وب باشد.

در طراحي سايت ، زبان برنامه‌نويسي وب PHP چيست؟

PHP مخفف كلمه PHP Hypertext Preprocessor است و يك نرم‌افزار يا بستر برنامه‌نويسي متن باز و رايگان است كه توسط شخصي به نام رزموس لردورف در سال 1995 طراحي و ايجاد شد. يكي از نكات مهمي كه در خصوص برنامه‌نويسي به زبان PHP وجود دارد اين است كه اين زبان وابسته به هيچ Platform خاصي نيست و مي توان آن را بر روي هر سيستمي عاملي اجرا و استفاده كرد. شركت هاي متوسط و كوچك، بيشتر از اين زبان برنامه‌نويسي در دنيا استفاده مي كنند؛ زيرا هزينه توسعه و همچنين هزينه هاستينگي كه در اينترنت دارد، بسيار ارزان است. بسياري از ابزارهاي رايگان براي توسعه دهندگان اين زبان برنامه‌نويسي به صورت رايگان در اينترنت وجود دارد كه به برنامه نويسان PHP اين امكان را مي دهد كه بتوانند براحتي با آن ها برنامه بنويسند.

فاكتور اول: تكنولوژي مورد استفاده در ASP.NET بهتر است يا PHP؟

زبان برنامه‌نويسي PHP در طراحي سايت در اصل و ماهيت براي نوشتن اسكريپت هاي وب ايجاد شد و هدف اصلي آن كاهش پيچيدگي هاي برنامه‌نويسي هاي وب اي مانند Perl و CGI بود. Php براي اين ايجاد شد تا اين امكان را ايجاد كند كه افراد تازه وارد به دنياي برنامه‌نويسي وب نيز بتوانند در اين حوزه شروع به فعاليت كنند و به همين دليل بيشتر كارهاي ساده و طراحي وب سايت هاي كوچك با اين زبان برنامه‌نويسي وب شروع شد و اكثرا در اوايل برنامه نويسان حرفه اي از اين زبان استفاده نمي كردند.

اما به مرور زمان با توجه به گسترش روزافزون نرم افزارهاي Open Source و استفاده بيشتر از زبان Open Source اي به نامPHP حركت رو به جلوي اين زبان بسيار سريع صورت گرفت. يكي از مشكلاتي كه به اين زبان گرفته مي شد عدم وجود توابع زياد و همچنين دستورات كم بود كه با گستردگي استفاده از PHP به مرور اين موانع و مشكلات برطرف شد و امروزه مي توان با PHP توابع و كارهاي تقريبا پيچيده اي را برنامه‌نويسي كرد. PHP يك زبان مفسري است؛ يعني در هر بار اجرا بايستي كد توسط وب سرور خط به خط اجرا و نتيجه نمايش داده شود.يكي از مشكلاتي كه به PHP برنامه نويسان مي گيرند اين است كه اگر شخصي بتواند به سرور لينوكسي يا آپاچي شما دسترسي پيدا كند، با توجه به اينكه كدهاي شما به صورت كامپايل نشده و Open Source روي سرور قرار دارند، مي تواند به آن ها دسترسي پيدا كنند. اين مشكل در ASP.NET وجود ندارد زيرا برنامه قبل از اجرا به فايل هاي DLL كامپايل مي شود و باعث عدم نمايش كد به مهاجم مي شود.

اين مشكل را PHP با معرفي تكنولوژي رمزنگاري به نام Zend حل كرد تا بتواند كدهاي PHP را Encode كند و ديگر نگران اين مسأله نباشد.

در ابتدا PHP از شي گرايي پشتيباني نمي كرد؛ اما به مرور اين قابليت به يكي از قدرت هاي اين زبان تبديل شد. تكنولوژي كاربردي اين زبان بيشتر براي نوشتن و اجرا كردن اسكريپت هاي وب براي اجرا در سيستم عامل هاي Open Source اي مانند يونيكس و لينوكس استفاده مي شود.

البته يكي از خرده هايي كه به PHP گرفته مي شود اين است كه هنوز تا حدودي نقص هاي اوليه خود را در خصوص شي گرايي دارد و به گفته برخي برنامه نويسان خاصيت هاي حرفه اي شي گرايي در اين زبان برنامه‌نويسي ديده نشده است. يكي از قدرت هاي بي بديل PHP عدم وابستگي به Platform خاص است؛ يعني برنامه هايي كه با زبان PHP نوشته مي شوند، به راحتي قابل اجرا بر روي هر سيستم عاملي از جمله ويندوز هستند. اما ذاتا تكنولوژي برنامه‌نويسي وب PHP مبتني بر يك ساختار است كه به آن در اصطلاح فني LAMP مي گويند. LAMP مخفف كلمات Linux به عنوان سيستم عامل،Apache به عنوان وب سرور، MySQL به عنوان پايگاه داده و در نهايت PHP به عنوان زبان برنامه‌نويسي مي باشد.

بنابراين اكثر افرادي كه به برنامه‌نويسي وب PHP مي پردازند، با اين ابزارهاي كاملا رايگان آشنا هستند. جالب اينجاست كه به راحتي مي توان اين ابزارها را در سيستم عامل ويندوز نيز نصب و استفاده كرد.

از دات نت يا ASP.NET مي توان به عنوان يك Platform نام برد تا يك زبان برنامه‌نويسي. دات نت يك محصول كاملا مايكروسافتي است كه به عنوان نسل جديد ابزارهاي برنامه‌نويسي و توسعه نرم افزار شركت مايكروسافت به بازار ارايه شده است. دات نت را مي توان بيشتر با Platform هايي مثل جاوا مقايسه كرد و در اين ميان بيشتر رقابت بين ASP.NET و Java مي باشد.

توجه كنيد كه زبان برنامه‌نويسي كلاسيكي به نام ASP وجود داشت كه سابقا استفاده مي شد؛ اما امروزه اين زبان برنامه‌نويسي وب منسوخ شده است و ديگر استفاده اي ندارد. يكي از قدرت هاي اصلي ASP.NET وجود كتابخانه ها يا همان Library هاي بسيار غني و توايع زياد و همچنين كلاس هاي زيادي است كه در ASP.NET وجود دارد و همين امر امكان انجام تقريبا هر كاري را در محيط وب به يك برنامه نويس مي دهد. در بيشتر موارد براي برنامه‌نويسي ASP.NET از Microsoft Visual Studio و براي پايگاه داده نيز از Microsoft SQL Server و براي وب سرور نيز از IIS يا همان Internet Information Service مايكروسافت استفاده مي شود.

در ASP.NET كدها در سمت سرور Encode مي شوند و اگر كسي بتواند به سرور دسترسي پيدا كند نمي تواند از اين كدها كه در قالب فايل هاي DLL هستند استفاده كند. در اصطلاح فني به اين عمليات Code-Behind گفته مي شود.

زبان برنامه‌نويسي ASP.NET ذاتا براي سيستم عامل ويندوز و استفاده در آن طراحي و ايجاد شده است و بيشتر برنامه هايي كه در اين زبان نوشته مي شوند وابسته به سيستم عامل ويندوز هستند. البته اين نكته را به عنوان نكته منفي در خصوص زبان برنامه‌نويسي ASP.NET مطرح مي كنند؛ اما توجه كنيد كه مايكروسافت پروژه هايي را شروع كرده است كه برنامه هايي كه توسط ASP.NET نوشته مي شوند بر روي سيستم عامل هاي ديگر نيز قابل اجرا باشند. معروفترين اين پروژه ها به نام MONO شناخته مي شود.

بنابراين در آينده اي نه چندان دور شاهد اين خواهيم بود كه برنامه هايي كه توسط ASP.NET نوشته مي شوند، به راحتي بر روي لينوكس و يونيكس نيز اجرا شوند. از نظر تكنولوژي و معماري ASP.NET و Java از Platform هايي هستند كه در سطح Enterprise و كلان استفاده مي شوند و PHP معمولا براي نوشتن اسكريپت هاي وب استفاده مي شود. همانطور كه قبلا هم اشاره كرديم براي نوشتن يك برنامه پيچيده در زبان ASP.NET تعداد خطوط كد بيشتري نسبت به PHP نياز است و به همين دليل زمان توليد و توسعه يا همان Develop Time مربوط به زبان ASP.NET نسبت به زمان مشابه PHP بيشتر است. بر خلاف PHP كه يك زبان مفسري است ،ASP.NET يك زبان كامپايلري است. بدين معنا كه كدها بعد از هر بار نوشتن؛ مجددا بايستي كامپايل شده و با فايل هاي DLL تبديل شوند.

فاكتور دوم: در طراحي سايت برنامه‌نويسي با ASP.NET ساده تر است يا PHP ؟

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

شما با استفاده از هر ويرايشگر متني قادر به نوشتن كدهاي PHP هستيد كه اين خود يكي از مزاياي اصلي اين زبان برنامه نويسي وب مي باشد. متاسفانه PHP ويرايشگر و ابزار مشخصي براي كدنويسي ندارد. شركت هاي مختلفي در اينترنت ابزارهاي مختلفي براي استفاده براي كدنويسي اين محصول ارايه داده اند كه اين خود يك عدم تمركز براي برنامه نويسي PHP را ايجاد مي كند.

اما اگر قصد برنامه نويسي Web Application هايي در سطح Enterprise داريد، ترجيجا ASP.NET را انتخاب كنيد. هدف اصلي و ماهيت واقعي زبان ASP.NET (كه همانطور كه گفتيم يك Platform به حساب مي آيد) نوشتن Web Application هاي بزرگ و داراي فرم ها و اطلاعات ورودي و پيچيدگي هاي زياد است.

براي كساني كه به برنامه نويسي كردن در محيط هاي گرافيكي عادت دارند، اين زبان بسيار بهتر است. در ASP.NET شما در قالب استفاده از ابزارهاي گرافيكي براحتي مي توانيد توليد كد داشته باشيد و همچنين با استفاده از فرم هاي آماده يا همان Web Form ها مي توانيد به راحتي به بانك هاي اطلاعاتي و ماهيت هاي مختلف اطلاعات و جدول ها به صورت گرافيكي دسترسي پيدا كنيد، بدون اينكه نياز به كد نوشتن داشته باشيد.

ASP.NET به صورت خودكار با ماژول هايي كه در اختيار دارد اين كدها را براي شما ايجاد مي كند. در كنار اين ها فريم ورك .NET برخي از موارد مانندCaching ، احراز هويت و بسياري ديگر از اين مسايل را به خودي خود انجام مي دهد. توابع ASP.NET اينقدر زياد است كه تقريبا شما را از استفاده كردن از توابع خارجي در برنامه نويسي خود بي نياز مي كند. تمامي كارهايي كه قرار است شما در ASP.NET انجام دهيد در يك محيط يكپارچه يا بهتر بگوييم يك ابزار قدرتمند به نام Microsoft Visual Studio انجام مي شود كه طبيعتا سادگي هاي كار گرافيكي در محصولات مايكروسافت به خوبي در اين نرم افزار نيز ديده مي شود.

فاكتور سوم : امنيت ASP.NET بيشتر است يا PHP؟

پرسيدن اين موضوع كه امنيت در ASP.NET بيشتر است يا در PHP دقيقا مثل همين سؤال است كه امنيت در لينوكس بيشتر است يا در ويندوز؟

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

يكي از موارد امنيتي كه در پروژه هاي PHP وجود داشت اين بود كه فايل هاي PHP متن باز هستند و در صورتي كه كسي به سرور شما دسترسي داشته باشد، مي تواند سورس كدهاي شما را به راحتي بخواند؛ اما در ويندوز به دليل اينكه فايل ها قبل از اجرا توسط كامپايلر به فايل هاي DLL تبديل مي شوند و داراي قابليت Code-Behind هستند نمي توان از اين نقطه ضعف استفاده كرد.

PHP براي پوشش اين مسأله و Encode كردن سورس كد هاي خود قابليت Zend را معرفي كرد كه يك روش رمزنگاري براي كدهاي PHP مي باشد كه ديگر اين نقطه ضعف را نداشته باشند.

گفته مي شود: «يكي ديگر از مزايايي كه به عنوان مزيتي امنيتي براي PHP محسوب مي شود، اين است كه نرم افزارهايي كه به صورت عام و در قالب پروژه هايي مثل GNU ارايه مي شوند، متن باز هستند و شما مي توانيد سورس كد آن ها را مشاهده و از نظر امنيتي آن را تحليل كنيد و به دليل استفاده زياد افراد در دنيا از اين گونه نرم افزارها و به دست آوردن باگ هاي امنيتي آن كدهاي PHP از امنيت بالاتري برخوردارند.»

اما اين حرف درست نيست؛ زيرا همان طور كه كدهاي باز مي تواند باعث بالاتر رفتن امنيت شوند، باعث انتشار باگ هاي امنيتي يك محصول هم مي توانند باشند. يك هكر مي تواند سورس كد يك محصول را به صورت كامل در اختيار داشته باشد و آن را از نظر امنيتي تحليل و با نقاط ضعف به دست آمده به آن حمله كند؛ اما در كدهاي ASP.NET همچنين مشكلي وجود ندارد.

البته باز هم تاكيد مي كنم كه هيچ ملاكي براي امنيت بيشتر برنامه نويسي PHP بر ASP.NET و برعكس آن وجود ندارد و صرفا اين دانش يك برنامه نويس است كه تعيين كننده امنيت يك نرم افزار است. براي مثال CMS رايگان Joomla كه به صورت رايگان در اينترنت وجود دارد يكي از اهداف هميشگي و ساده هكرها محسوب مي شود.

برخي اوقات مشاهده مي كنيم كه برنامه نويس هاي PHP اين ادعا را دارند كه چون سايت هاي بزرگي مثل گوگل ، ياهو و … از برنامه نويسي PHP استفاده مي كنند، بنابراين امنيت اين برنامه نويسي از ASP.NET بيشتر است. قبل از هر چيز بايد يك نكته را خاطر نشان كنيم كه اين يك تصور نادرست است كه بگوييم يك وب سايت بزرگ در دنيا صرفا از يك زبان برنامه نويسي استفاده مي كند.

معمولا اين وب سايت ها از انواع زبان هاي برنامه نويسي براي كار خود استفاده مي كنند كه قطعا PHP هم مي تواند جزيي از آن ها باشد.PHP در گوگل به عنوان زبان برنامه نويسي اصلي به كار نمي رود. زبان غالب اكثرا در اين وب سايت ها C و C++ و جاوا مي باشد و در برخي از ماژول هاي زير مجموعه ممكن است از PHP استفاده كنند. عزيزان توجه كنيد كه ASP.NET با برند مايكروسافت معرفي مي شود و طبيعي است كه حتي اگر بهترين زبان برنامه نويسي دنيا هم باشد، شركت هاي رقيب از آن براي نمايش كار خود استفاده نكنند.

اما به واقع مي توان گفت زبان برنامه نويسي PHP بسيار بسيار محبوب تر و مرسوم تر از ASP.NET در اينترنت مي باشد.

فاكتور چهارم : در طراحي سايت سرعت و كارايي ASP.NET بيشتر است يا PHP ؟

قبل از اين كه اين بحث را باز كنيم، يك مسأله را روشن كنيم ، توجه كنيد كه شما هر كاري را كه مي توانيد با برنامه نويسي وب PHP انجام دهيد با برنامه نويسي ASP.NET نيز مي توانيد انجام دهيد و بر عكس همين موضوع نيز صادق است .

سرعت و كارايي هر زبان برنامه نويسي به عوامل مختلفي بستگي دارد كه از آن جمله مي توان به تكنولوژي مورد استفاده در زبان برنامه نويسي، نوع سيستم عامل مورد استفاده، نوع فايل سيستم مورد استفاده، بزرگي و گستردگي برنامه و پروژه و دانش برنامه نويسي اشاره كرد. در وهله اول برنامه نويسان ASP.NET اينطور القا مي كنند كه چون زبان برنامه نويسي ASP.NET يك زبان كامپايلري است و زبان PHP يك زبان مفسري است بنابراين سرعت اجرا كدها در ASP.NET بيشتر از سرعت اجرا كدها در PHP است.

اين حرف هم درست است و هم اشتباه. درست از اين بابت كه سرعت اجراي برنامه هاي كامپايل شده كه در قالب فايل هاي DLL وجود دارند از برنامه هاي مفسري كه به صورت خط به خط اجرا مي شوند بيشتر است. يك اسكريپت PHP سرعت بيشتري نسبت به اسكريپت مشابه در ASP.NET دارد اما دليلي براي اينكار وجود دارد. زماني كه شما يك اسكريپت PHP را اجرا مي كنيد، اين كد به سرعت تفسير شده و اجرا مي شود و خروجي به مرورگر كاربر ارسال مي شود كه در اين ميان وقفه اي نداريم؛ اما زماني كه صحبت از اسكريپت ASP.NET مي شود اين كد علاوه بر اين كه به خودي خود بايد اجرا شود، بايستي چندين ماژول مانند ماژول هاي خواندن تنظيمات، كنترل كردنWeb Form ها، انجامauthentication ها و بسياري ديگر از موارد را به صورت همزمان انجام دهد كه همين مورد باعث كمتر شدن سرعت آن نسبت به مفسر PHP مي شود.

اين جاست كه برنامه نويس هاي PHP به خود مغرور مي شوند كه زبان سريع‌تري دارند؛ اما حقيقت طور ديگري است. بدون شك در برنامه هايي با تعداد خطوط پايين و اسكريپت هاي كوچك برتري با PHP است؛ اما در سطوح كلان و برنامه هاي بسيار بزرگ سطح Enterprise كه داراي ده ها يا صدها هزاران خط هستند برتري بدون شك با زبان هاي كامپايلري است. هر چند برنامه هايي براي سرعت بخشيدن به عمليات اجراي كدهاي PHP ايجاد شده است اما همچنان برتري در سطح كلان با ASP.NET است.

نوع سيستم عامل نيز عامل بسيار مهمي در سرعت اجراي نرم افزارها مي باشد. قطعا و بدون شك سيستم عامل ويندوز از نظر كارايي و سرعت نمي تواند با سرويس هاي لينوكسي برابري كند. ويندوز به يكباره كليه منابع سيستم را در اختيار مي گيرد و وجود رابط گرافيكي ناخواسته سرعت اجراي نرم افزارها و سرويس ها را كند مي كند؛ اما لينوكس بر حسب نياز اينكار را انجام مي دهد و تمامي كارها از طريق Command و دستورات خط فرمان انجام مي شود و رابط گرافيكي عملا وجود ندارد. سرويس هاي لينوكس بسيار قابل اعتمادتر از سرويس ها در ويندوز هستند و قطعا به اين مورد برخورده ايد كه با انجام هر تغييري در سيستم عامل ويندوز يك Restart نياز است.

اما توجه كنيد كه اگر كدهاي ASP.NET را بر روي سرور لينوكس و از طرفي كدهاي PHP را بر روي سرور ويندوزي اجرا كنيد كه قطعا هم اين امكان وجود دارد ديگر سيستم عامل جزو ملاك هاي سرعت و كارايي نمي تواند باشد. از طرفي طبق تحقيقات، فايل سيستم مورد استفاده در هارد ديسك شما نيز مي تواند عامل سرعت اجراي كد شما باشد كه در اين حالت گفته مي شود بهترين فايل سيستم براي سرعت فايل سيستم لينوكسي ext4 است.

هر چند اين ملاك ها نسبي است؛ زيرا بيشتر ما مي خواهيم درباره ي خود برنامه نويسي صحبت كنيم نه سخت افزار و فايل سيستم. در اينصورت وجود RAID در هارد ديسك ها نيز مي تواند جزو ملاك ها محسوب شود. با توجه به تحقيقات انجام شده در صورت اجراي كدهاي ASP.NET با استفاده از MONO در لينوكس سرعت اجرا آن از PHP به نسبت بالاتر خواهد بود.

اما از همه اين ها كه بگذريم، مهم دانش برنامه نويسي است كه در اين حوزه استفاده مي شود. شيوه Query گرفتن و شيوه كد نويسي بر حسب دانش افراد در اين حوزه متفاوت است. هر چقدر هم كه شما پروژه بزرگتري داشته باشيد، طبيعي است كه دانش بيشتري را نياز خواهيد داشت. در اين خصوص به يك خاطره اكتفا مي كنم ، در حوزه پايگاه داده قطعا Oracle از برتري مشهوي نسبت به MSSQL Sever برخوردار است.

در يكي از پروژه هايي كه يكي از دوستان در يك سازمان دولتي داشت قرار شد كه يك Query از ديتابيس هاي Oracle گرفته شود كه بعد از نوشته شدن اين Query و اجراي آن در حدود 30 ثانيه پاسخ به Query و دريافت پاسخ از Oracle طول كشيد اما جالب اينجا بود كه همين Query در MSSQL Server تنها 5 ثانيه طول مي كشيد. در اينجا مسأله دانش Oracle بود كه دوست ما اين دانش را نداشت. فرداي همان روز يك Oracle كار حرفه اي همان Query را با كمي تغيير در Oracle وارد كرد و مشاهده كرديم كه پاسخ در كمتر از يك دهم ثانيه ارايه شد. اين نشان از اهميت دانش برنامه نويسي و كد نويسي در سرعت و كارايي يك برنامه دارد كه واقعا از همه چيز در بحث سرعت و كارايي مهمتر است. در مقاله بعدي فاكتورهاي نهايي مقايسه اين دو زبان برنامه نويسي را با هم مقايسه خواهيم كرد.

نتيجه گيري كلي در خصوص تفاوت و مقايسه زبان PHP و ASP.NET

فاكتورهاي مختلفي را در رابطه با مقايسه اين دو زبان برنامه‌نويسي وب عنوان كرديم اما همانطور كه در ابتداي مقاله هم اشاره كرديم سعي كرديم حقايق را عنوان كنيم و طرفداري از محصول خاصي را نكنيم. به هر حال با تمامي اين اوصاف در نهايت، اين خلاقيت، دانش و مهارت برنامه نويس است كه يك زبان برنامه‌نويسي را خوب جلوه مي دهد و يا بر عكس. يك برنامه نويس حرفه اي بايد بتواند باPlatform ها و ابزارهاي مختلف كار كند و با آن ها تا حدودي آشنايي داشته باشد. نوع ابزار مهم نيست.

مهم دانش و شيوه ي پياده سازي است. براي يك برنامه نويس حرفه اي، سويچ كردن از برنامه‌نويسي ASP.NET به PHP و برعكس، كار چندان سختي نيست زيرا مفاهيم را هميشه در ذهن دارد. فقط syntax اجراي آن را عوض مي كند. تعصب بيجا به يك زبان برنامه‌نويسي صرفا براي برنامه نويسان مبتدي است، نه براي برنامه نويسان حرفه اي. چيزي كه در شبكه نيز وجود دارد و به صورت نادرستي سيسكو را با مايكروسافت مقايسه مي كنند. در سطوح بالا هر دو به خوبي با هم كار مي كنند؛ اما در سطوح پايين همه با هم مشكل دارند. انتخاب يك زبان برنامه‌نويسي به صورت ويژه اي به سطح و اندازه كار و نيازمندي هاي پروژه شما دارد كه در پاراگراف هاي قبل به اين مسأله اشاره كرديم. در نهايت مهم ترين ركن در برتري يك زبان برنامه‌نويسي دانش شخصي است كه زبان را در دست مي گيرد.

نياز به طراحي سايت داريد ؟ قبل از اين كار با شماره تلفن هاي بالاي سايت تماس بگيريد و درخواست مشاوره كنيد . مشاورين سارين وب در خدمت شما هستند .

طراحي سايت ، سئو وبهينه سازي سايت خود را با سارين وب تجربه كنيد .

منبع:طراحي سايت

هميشه ميان برنامه نويسان و طراحان سايت ها براي طراحي سايت اين مشكل وجود داشته كه كداميك از زبان هاي برنامه نويسي براي وب مناسب است ؟ پي اچ پي يا asp.net ؟ در ادامه همراه با سارين وب باشيد .

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

يكي از اين اسامي PHP و ديگري ASP.NET و مشتقات آن است. يكي از مهمترين مشكلاتي كه در انتخاب يكي از اين زبان هاي برنامه‌نويسي وب وجود دارد اين است كه مقايسه درستي بين اين دو زبان به صورت جامع و به زبان فارسي وجود ندارد.

شما كافي است تفاوت بين زبان ASP.Net و PHP را در اينترنت به فارسي جستجو كنيد. مشاهده مي كنيد كه اكثر وب سايت ها با رويكرد طرفدارانه مقايسه خود را انجام داده اند يا فقط يه ترجمه يك متن خارجي كفايت كرده اند. اگر شخصي برنامه نويس ASP.NET است، به طرفداري از اين زبان برنامه‌نويسي و كوبيدن زبان برنامه‌نويسي PHP پرداخته است و برعكس همين مورد هم براي برنامه نويسان PHP وجود دارد.

ابتدا به معرفي ASP و PHP مي پردازيم و سپس ملاك هايي كه مي توان براي مقايسه اين دو زبان عنوان كرد را با هم مقايسه مي كنيم و در نهايت به يك نتيجه كلي مي رسيم كه قطعا اين نتيجه كلي طرفداري از زبان برنامه‌نويسي خاصي نخواهد بود و انتخاب اصلي با شما خواهد بود.

قبل از اين كه انتخابي انجام دهيد، مي خواهيم تفاوت بين اين دو زبان برنامه‌نويسي را براي شما تشريح كنيم تا در انتخاب ميان اين ها دچار مشكل نشويد. هر دو زبان برنامه‌نويسي تحت PHP و ASP.NET در واقع زبان هاي اسكريپت نويسي سمت سرور يا در اصطلاح فني Server Side Scripting هستند كه براي طراحي وب سايت هاي دايناميك مورد استفاده قرار مي گيرند.

طراحي سايت صفحات وب دايناميك ابتدا درخواست كلاينت (كاربر، بازديد كننده) را در سمت سرور پردازش كرده و در نهايت پس از هر بازديد كاربر، نتيجه را به سمت كاربر ارسال مي كنند.

انتخاب بين اين دو زبان اسكريپت نويسي بستگي به مواردي از قبيل اندازه و بزرگي وب سايت، قابليت هاي توسعه وب سايت، هزينه هاي هاستيگ وب، هزينه هاي پشتيباني و زمان پياده سازي و بسياري ديگر از مواردي از اين قبيل دارد كه در ادامه به بررسي اكثر اين موارد خواهيم پرداخت.

در طراحي سايت ، زبان برنامه‌نويسي وب ASP يا ASP.NET چيست؟


ASP مخفف كلمه Active Server Pages است و يك محصول منحصر به فرد براي شركت مايكروسافت به حساب مي آيد. اين زبان برنامه‌نويسي اكنون منسوخ شده است و جاي خود را به زبان اسكريپت نويسي ASP.NET داده است.

در همين جا به اين نكته اشاره كنم كه در واقع ASP.NET يك زبان برنامه‌نويسي نيست، بلكه يك تكنولوژي برنامه‌نويسي وب با استفاده از دات نت است. شما مي توانيد با #C يا #F يا زبان هاي برنامه‌نويسي ديگر دات نت ASP.NET بنويسيد؛ اما با توجه با اينكه شما به عنوان يك زبان بيشتر با اين محصول آشنا هستيد، ما در اين مقاله از ASP.NET به عنوان يك زبان برنامه‌نويسي ياد مي كنيم.

بيشتر شركت ها و سازمان هاي بزرگ براي نرم افزارهاي تحت وب خود از اين زبان برنامه‌نويسي استفاده مي كنند. نرم افزاري كه بيشترين هماهنگي با اين زبان برنامه‌نويسي را دارد، به عنوان Microsoft Visual Studio شناخته مي شود كه در واقع محيط برنامه‌نويسي مايكروسافت محسوب مي شود.

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

در صورتي كه تغييري در هر خط كد از اين زبان برنامه‌نويسي انجام شود، به ناچار كل برنامه بايستي مجددا كامپايل شود. بنابراين زمان برنامه‌نويسي تا حدودي افزايش مي يابد. وب سروري كه با اين زبان برنامه‌نويسي هماهنگ است صرفا وب سرور شركت مايكروسافت كه همان IIS است مي باشد و معمولا به عنوان پايگاه داده نيز در اين نوع زبان برنامه‌نويسي از Microsoft SQL Server استفاده مي شود.

درست است كه ASP.NET و IIS هر دو نرم افزارهايي رايگان هستند اما شما براي لايسنس ويندوز بايستي پول پرداخت كنيد و از طرفي نرم افزار Visual Studio نيز نرم افزار ارزان قيمتي نيست. پشتيباني زبان برنامه‌نويسي ASP.NET توسط وب سايت و مرجعي به نام MSDN انجام مي شود كه مخفف كلمه Microsoft Software Developer Network مي باشد. پيشرفت ها و توسعه هايي كه در اين زبان برنامه‌نويسي انجام مي شود، توسط بازخوردها و تجاربي است كه كاربران اين محصول به وب سايت اين شركت اطلاع مي دهند و همين موضوع باعث ارايه نسخه هاي جديدتر اين زبان برنامه‌نويسي با امكانات جديد مي شود.

ASP.NET تحت برند مايكروسافت است و اين يعني بسياري از زبان ها يا Platform هاي ديگر را پشتيباني نمي كند؛ اما در اين حين به شما امكانات بسيار ساده اي براي شروع برنامه‌نويسي مي دهد. ماژول هاي آماده، محيط ساده و رابط كاربري آسان، برنامه‌نويسي را براي كاربران لذت بخش مي كند. توجه كنيد كه يكي از مشكلاتي كه در دنياي برنامه‌نويسي به اين زبان برنامه‌نويسي وارد مي شود، هزينه اي است كه براي خريد نرم‌افزارهاي آن صرف مي شود. اما با توجه به اينكه ما در ايران هستيم و هيچ هزينه اي براي خريد اين نرم افزارها نمي كنيم،ASP.NET مي تواند گزينه مناسبي براي برنامه‌نويسي وب باشد.

در طراحي سايت ، زبان برنامه‌نويسي وب PHP چيست؟

PHP مخفف كلمه PHP Hypertext Preprocessor است و يك نرم‌افزار يا بستر برنامه‌نويسي متن باز و رايگان است كه توسط شخصي به نام رزموس لردورف در سال 1995 طراحي و ايجاد شد. يكي از نكات مهمي كه در خصوص برنامه‌نويسي به زبان PHP وجود دارد اين است كه اين زبان وابسته به هيچ Platform خاصي نيست و مي توان آن را بر روي هر سيستمي عاملي اجرا و استفاده كرد. شركت هاي متوسط و كوچك، بيشتر از اين زبان برنامه‌نويسي در دنيا استفاده مي كنند؛ زيرا هزينه توسعه و همچنين هزينه هاستينگي كه در اينترنت دارد، بسيار ارزان است. بسياري از ابزارهاي رايگان براي توسعه دهندگان اين زبان برنامه‌نويسي به صورت رايگان در اينترنت وجود دارد كه به برنامه نويسان PHP اين امكان را مي دهد كه بتوانند براحتي با آن ها برنامه بنويسند.

فاكتور اول: تكنولوژي مورد استفاده در ASP.NET بهتر است يا PHP؟

زبان برنامه‌نويسي PHP در طراحي سايت در اصل و ماهيت براي نوشتن اسكريپت هاي وب ايجاد شد و هدف اصلي آن كاهش پيچيدگي هاي برنامه‌نويسي هاي وب اي مانند Perl و CGI بود. Php براي اين ايجاد شد تا اين امكان را ايجاد كند كه افراد تازه وارد به دنياي برنامه‌نويسي وب نيز بتوانند در اين حوزه شروع به فعاليت كنند و به همين دليل بيشتر كارهاي ساده و طراحي وب سايت هاي كوچك با اين زبان برنامه‌نويسي وب شروع شد و اكثرا در اوايل برنامه نويسان حرفه اي از اين زبان استفاده نمي كردند.

اما به مرور زمان با توجه به گسترش روزافزون نرم افزارهاي Open Source و استفاده بيشتر از زبان Open Source اي به نامPHP حركت رو به جلوي اين زبان بسيار سريع صورت گرفت. يكي از مشكلاتي كه به اين زبان گرفته مي شد عدم وجود توابع زياد و همچنين دستورات كم بود كه با گستردگي استفاده از PHP به مرور اين موانع و مشكلات برطرف شد و امروزه مي توان با PHP توابع و كارهاي تقريبا پيچيده اي را برنامه‌نويسي كرد. PHP يك زبان مفسري است؛ يعني در هر بار اجرا بايستي كد توسط وب سرور خط به خط اجرا و نتيجه نمايش داده شود.يكي از مشكلاتي كه به PHP برنامه نويسان مي گيرند اين است كه اگر شخصي بتواند به سرور لينوكسي يا آپاچي شما دسترسي پيدا كند، با توجه به اينكه كدهاي شما به صورت كامپايل نشده و Open Source روي سرور قرار دارند، مي تواند به آن ها دسترسي پيدا كنند. اين مشكل در ASP.NET وجود ندارد زيرا برنامه قبل از اجرا به فايل هاي DLL كامپايل مي شود و باعث عدم نمايش كد به مهاجم مي شود.

اين مشكل را PHP با معرفي تكنولوژي رمزنگاري به نام Zend حل كرد تا بتواند كدهاي PHP را Encode كند و ديگر نگران اين مسأله نباشد.

در ابتدا PHP از شي گرايي پشتيباني نمي كرد؛ اما به مرور اين قابليت به يكي از قدرت هاي اين زبان تبديل شد. تكنولوژي كاربردي اين زبان بيشتر براي نوشتن و اجرا كردن اسكريپت هاي وب براي اجرا در سيستم عامل هاي Open Source اي مانند يونيكس و لينوكس استفاده مي شود.

البته يكي از خرده هايي كه به PHP گرفته مي شود اين است كه هنوز تا حدودي نقص هاي اوليه خود را در خصوص شي گرايي دارد و به گفته برخي برنامه نويسان خاصيت هاي حرفه اي شي گرايي در اين زبان برنامه‌نويسي ديده نشده است. يكي از قدرت هاي بي بديل PHP عدم وابستگي به Platform خاص است؛ يعني برنامه هايي كه با زبان PHP نوشته مي شوند، به راحتي قابل اجرا بر روي هر سيستم عاملي از جمله ويندوز هستند. اما ذاتا تكنولوژي برنامه‌نويسي وب PHP مبتني بر يك ساختار است كه به آن در اصطلاح فني LAMP مي گويند. LAMP مخفف كلمات Linux به عنوان سيستم عامل،Apache به عنوان وب سرور، MySQL به عنوان پايگاه داده و در نهايت PHP به عنوان زبان برنامه‌نويسي مي باشد.

بنابراين اكثر افرادي كه به برنامه‌نويسي وب PHP مي پردازند، با اين ابزارهاي كاملا رايگان آشنا هستند. جالب اينجاست كه به راحتي مي توان اين ابزارها را در سيستم عامل ويندوز نيز نصب و استفاده كرد.

از دات نت يا ASP.NET مي توان به عنوان يك Platform نام برد تا يك زبان برنامه‌نويسي. دات نت يك محصول كاملا مايكروسافتي است كه به عنوان نسل جديد ابزارهاي برنامه‌نويسي و توسعه نرم افزار شركت مايكروسافت به بازار ارايه شده است. دات نت را مي توان بيشتر با Platform هايي مثل جاوا مقايسه كرد و در اين ميان بيشتر رقابت بين ASP.NET و Java مي باشد.

توجه كنيد كه زبان برنامه‌نويسي كلاسيكي به نام ASP وجود داشت كه سابقا استفاده مي شد؛ اما امروزه اين زبان برنامه‌نويسي وب منسوخ شده است و ديگر استفاده اي ندارد. يكي از قدرت هاي اصلي ASP.NET وجود كتابخانه ها يا همان Library هاي بسيار غني و توايع زياد و همچنين كلاس هاي زيادي است كه در ASP.NET وجود دارد و همين امر امكان انجام تقريبا هر كاري را در محيط وب به يك برنامه نويس مي دهد. در بيشتر موارد براي برنامه‌نويسي ASP.NET از Microsoft Visual Studio و براي پايگاه داده نيز از Microsoft SQL Server و براي وب سرور نيز از IIS يا همان Internet Information Service مايكروسافت استفاده مي شود.

در ASP.NET كدها در سمت سرور Encode مي شوند و اگر كسي بتواند به سرور دسترسي پيدا كند نمي تواند از اين كدها كه در قالب فايل هاي DLL هستند استفاده كند. در اصطلاح فني به اين عمليات Code-Behind گفته مي شود.

زبان برنامه‌نويسي ASP.NET ذاتا براي سيستم عامل ويندوز و استفاده در آن طراحي و ايجاد شده است و بيشتر برنامه هايي كه در اين زبان نوشته مي شوند وابسته به سيستم عامل ويندوز هستند. البته اين نكته را به عنوان نكته منفي در خصوص زبان برنامه‌نويسي ASP.NET مطرح مي كنند؛ اما توجه كنيد كه مايكروسافت پروژه هايي را شروع كرده است كه برنامه هايي كه توسط ASP.NET نوشته مي شوند بر روي سيستم عامل هاي ديگر نيز قابل اجرا باشند. معروفترين اين پروژه ها به نام MONO شناخته مي شود.

بنابراين در آينده اي نه چندان دور شاهد اين خواهيم بود كه برنامه هايي كه توسط ASP.NET نوشته مي شوند، به راحتي بر روي لينوكس و يونيكس نيز اجرا شوند. از نظر تكنولوژي و معماري ASP.NET و Java از Platform هايي هستند كه در سطح Enterprise و كلان استفاده مي شوند و PHP معمولا براي نوشتن اسكريپت هاي وب استفاده مي شود. همانطور كه قبلا هم اشاره كرديم براي نوشتن يك برنامه پيچيده در زبان ASP.NET تعداد خطوط كد بيشتري نسبت به PHP نياز است و به همين دليل زمان توليد و توسعه يا همان Develop Time مربوط به زبان ASP.NET نسبت به زمان مشابه PHP بيشتر است. بر خلاف PHP كه يك زبان مفسري است ،ASP.NET يك زبان كامپايلري است. بدين معنا كه كدها بعد از هر بار نوشتن؛ مجددا بايستي كامپايل شده و با فايل هاي DLL تبديل شوند.

فاكتور دوم: در طراحي سايت برنامه‌نويسي با ASP.NET ساده تر است يا PHP ؟

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

شما با استفاده از هر ويرايشگر متني قادر به نوشتن كدهاي PHP هستيد كه اين خود يكي از مزاياي اصلي اين زبان برنامه نويسي وب مي باشد. متاسفانه PHP ويرايشگر و ابزار مشخصي براي كدنويسي ندارد. شركت هاي مختلفي در اينترنت ابزارهاي مختلفي براي استفاده براي كدنويسي اين محصول ارايه داده اند كه اين خود يك عدم تمركز براي برنامه نويسي PHP را ايجاد مي كند.

اما اگر قصد برنامه نويسي Web Application هايي در سطح Enterprise داريد، ترجيجا ASP.NET را انتخاب كنيد. هدف اصلي و ماهيت واقعي زبان ASP.NET (كه همانطور كه گفتيم يك Platform به حساب مي آيد) نوشتن Web Application هاي بزرگ و داراي فرم ها و اطلاعات ورودي و پيچيدگي هاي زياد است.

براي كساني كه به برنامه نويسي كردن در محيط هاي گرافيكي عادت دارند، اين زبان بسيار بهتر است. در ASP.NET شما در قالب استفاده از ابزارهاي گرافيكي براحتي مي توانيد توليد كد داشته باشيد و همچنين با استفاده از فرم هاي آماده يا همان Web Form ها مي توانيد به راحتي به بانك هاي اطلاعاتي و ماهيت هاي مختلف اطلاعات و جدول ها به صورت گرافيكي دسترسي پيدا كنيد، بدون اينكه نياز به كد نوشتن داشته باشيد.

ASP.NET به صورت خودكار با ماژول هايي كه در اختيار دارد اين كدها را براي شما ايجاد مي كند. در كنار اين ها فريم ورك .NET برخي از موارد مانندCaching ، احراز هويت و بسياري ديگر از اين مسايل را به خودي خود انجام مي دهد. توابع ASP.NET اينقدر زياد است كه تقريبا شما را از استفاده كردن از توابع خارجي در برنامه نويسي خود بي نياز مي كند. تمامي كارهايي كه قرار است شما در ASP.NET انجام دهيد در يك محيط يكپارچه يا بهتر بگوييم يك ابزار قدرتمند به نام Microsoft Visual Studio انجام مي شود كه طبيعتا سادگي هاي كار گرافيكي در محصولات مايكروسافت به خوبي در اين نرم افزار نيز ديده مي شود.

فاكتور سوم : امنيت ASP.NET بيشتر است يا PHP؟

پرسيدن اين موضوع كه امنيت در ASP.NET بيشتر است يا در PHP دقيقا مثل همين سؤال است كه امنيت در لينوكس بيشتر است يا در ويندوز؟

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

يكي از موارد امنيتي كه در پروژه هاي PHP وجود داشت اين بود كه فايل هاي PHP متن باز هستند و در صورتي كه كسي به سرور شما دسترسي داشته باشد، مي تواند سورس كدهاي شما را به راحتي بخواند؛ اما در ويندوز به دليل اينكه فايل ها قبل از اجرا توسط كامپايلر به فايل هاي DLL تبديل مي شوند و داراي قابليت Code-Behind هستند نمي توان از اين نقطه ضعف استفاده كرد.

PHP براي پوشش اين مسأله و Encode كردن سورس كد هاي خود قابليت Zend را معرفي كرد كه يك روش رمزنگاري براي كدهاي PHP مي باشد كه ديگر اين نقطه ضعف را نداشته باشند.

گفته مي شود: «يكي ديگر از مزايايي كه به عنوان مزيتي امنيتي براي PHP محسوب مي شود، اين است كه نرم افزارهايي كه به صورت عام و در قالب پروژه هايي مثل GNU ارايه مي شوند، متن باز هستند و شما مي توانيد سورس كد آن ها را مشاهده و از نظر امنيتي آن را تحليل كنيد و به دليل استفاده زياد افراد در دنيا از اين گونه نرم افزارها و به دست آوردن باگ هاي امنيتي آن كدهاي PHP از امنيت بالاتري برخوردارند.»

اما اين حرف درست نيست؛ زيرا همان طور كه كدهاي باز مي تواند باعث بالاتر رفتن امنيت شوند، باعث انتشار باگ هاي امنيتي يك محصول هم مي توانند باشند. يك هكر مي تواند سورس كد يك محصول را به صورت كامل در اختيار داشته باشد و آن را از نظر امنيتي تحليل و با نقاط ضعف به دست آمده به آن حمله كند؛ اما در كدهاي ASP.NET همچنين مشكلي وجود ندارد.

البته باز هم تاكيد مي كنم كه هيچ ملاكي براي امنيت بيشتر برنامه نويسي PHP بر ASP.NET و برعكس آن وجود ندارد و صرفا اين دانش يك برنامه نويس است كه تعيين كننده امنيت يك نرم افزار است. براي مثال CMS رايگان Joomla كه به صورت رايگان در اينترنت وجود دارد يكي از اهداف هميشگي و ساده هكرها محسوب مي شود.

برخي اوقات مشاهده مي كنيم كه برنامه نويس هاي PHP اين ادعا را دارند كه چون سايت هاي بزرگي مثل گوگل ، ياهو و … از برنامه نويسي PHP استفاده مي كنند، بنابراين امنيت اين برنامه نويسي از ASP.NET بيشتر است. قبل از هر چيز بايد يك نكته را خاطر نشان كنيم كه اين يك تصور نادرست است كه بگوييم يك وب سايت بزرگ در دنيا صرفا از يك زبان برنامه نويسي استفاده مي كند.

معمولا اين وب سايت ها از انواع زبان هاي برنامه نويسي براي كار خود استفاده مي كنند كه قطعا PHP هم مي تواند جزيي از آن ها باشد.PHP در گوگل به عنوان زبان برنامه نويسي اصلي به كار نمي رود. زبان غالب اكثرا در اين وب سايت ها C و C++ و جاوا مي باشد و در برخي از ماژول هاي زير مجموعه ممكن است از PHP استفاده كنند. عزيزان توجه كنيد كه ASP.NET با برند مايكروسافت معرفي مي شود و طبيعي است كه حتي اگر بهترين زبان برنامه نويسي دنيا هم باشد، شركت هاي رقيب از آن براي نمايش كار خود استفاده نكنند.

اما به واقع مي توان گفت زبان برنامه نويسي PHP بسيار بسيار محبوب تر و مرسوم تر از ASP.NET در اينترنت مي باشد.

فاكتور چهارم : در طراحي سايت سرعت و كارايي ASP.NET بيشتر است يا PHP ؟

قبل از اين كه اين بحث را باز كنيم، يك مسأله را روشن كنيم ، توجه كنيد كه شما هر كاري را كه مي توانيد با برنامه نويسي وب PHP انجام دهيد با برنامه نويسي ASP.NET نيز مي توانيد انجام دهيد و بر عكس همين موضوع نيز صادق است .

سرعت و كارايي هر زبان برنامه نويسي به عوامل مختلفي بستگي دارد كه از آن جمله مي توان به تكنولوژي مورد استفاده در زبان برنامه نويسي، نوع سيستم عامل مورد استفاده، نوع فايل سيستم مورد استفاده، بزرگي و گستردگي برنامه و پروژه و دانش برنامه نويسي اشاره كرد. در وهله اول برنامه نويسان ASP.NET اينطور القا مي كنند كه چون زبان برنامه نويسي ASP.NET يك زبان كامپايلري است و زبان PHP يك زبان مفسري است بنابراين سرعت اجرا كدها در ASP.NET بيشتر از سرعت اجرا كدها در PHP است.

اين حرف هم درست است و هم اشتباه. درست از اين بابت كه سرعت اجراي برنامه هاي كامپايل شده كه در قالب فايل هاي DLL وجود دارند از برنامه هاي مفسري كه به صورت خط به خط اجرا مي شوند بيشتر است. يك اسكريپت PHP سرعت بيشتري نسبت به اسكريپت مشابه در ASP.NET دارد اما دليلي براي اينكار وجود دارد. زماني كه شما يك اسكريپت PHP را اجرا مي كنيد، اين كد به سرعت تفسير شده و اجرا مي شود و خروجي به مرورگر كاربر ارسال مي شود كه در اين ميان وقفه اي نداريم؛ اما زماني كه صحبت از اسكريپت ASP.NET مي شود اين كد علاوه بر اين كه به خودي خود بايد اجرا شود، بايستي چندين ماژول مانند ماژول هاي خواندن تنظيمات، كنترل كردنWeb Form ها، انجامauthentication ها و بسياري ديگر از موارد را به صورت همزمان انجام دهد كه همين مورد باعث كمتر شدن سرعت آن نسبت به مفسر PHP مي شود.

اين جاست كه برنامه نويس هاي PHP به خود مغرور مي شوند كه زبان سريع‌تري دارند؛ اما حقيقت طور ديگري است. بدون شك در برنامه هايي با تعداد خطوط پايين و اسكريپت هاي كوچك برتري با PHP است؛ اما در سطوح كلان و برنامه هاي بسيار بزرگ سطح Enterprise كه داراي ده ها يا صدها هزاران خط هستند برتري بدون شك با زبان هاي كامپايلري است. هر چند برنامه هايي براي سرعت بخشيدن به عمليات اجراي كدهاي PHP ايجاد شده است اما همچنان برتري در سطح كلان با ASP.NET است.

نوع سيستم عامل نيز عامل بسيار مهمي در سرعت اجراي نرم افزارها مي باشد. قطعا و بدون شك سيستم عامل ويندوز از نظر كارايي و سرعت نمي تواند با سرويس هاي لينوكسي برابري كند. ويندوز به يكباره كليه منابع سيستم را در اختيار مي گيرد و وجود رابط گرافيكي ناخواسته سرعت اجراي نرم افزارها و سرويس ها را كند مي كند؛ اما لينوكس بر حسب نياز اينكار را انجام مي دهد و تمامي كارها از طريق Command و دستورات خط فرمان انجام مي شود و رابط گرافيكي عملا وجود ندارد. سرويس هاي لينوكس بسيار قابل اعتمادتر از سرويس ها در ويندوز هستند و قطعا به اين مورد برخورده ايد كه با انجام هر تغييري در سيستم عامل ويندوز يك Restart نياز است.

اما توجه كنيد كه اگر كدهاي ASP.NET را بر روي سرور لينوكس و از طرفي كدهاي PHP را بر روي سرور ويندوزي اجرا كنيد كه قطعا هم اين امكان وجود دارد ديگر سيستم عامل جزو ملاك هاي سرعت و كارايي نمي تواند باشد. از طرفي طبق تحقيقات، فايل سيستم مورد استفاده در هارد ديسك شما نيز مي تواند عامل سرعت اجراي كد شما باشد كه در اين حالت گفته مي شود بهترين فايل سيستم براي سرعت فايل سيستم لينوكسي ext4 است.

هر چند اين ملاك ها نسبي است؛ زيرا بيشتر ما مي خواهيم درباره ي خود برنامه نويسي صحبت كنيم نه سخت افزار و فايل سيستم. در اينصورت وجود RAID در هارد ديسك ها نيز مي تواند جزو ملاك ها محسوب شود. با توجه به تحقيقات انجام شده در صورت اجراي كدهاي ASP.NET با استفاده از MONO در لينوكس سرعت اجرا آن از PHP به نسبت بالاتر خواهد بود.

اما از همه اين ها كه بگذريم، مهم دانش برنامه نويسي است كه در اين حوزه استفاده مي شود. شيوه Query گرفتن و شيوه كد نويسي بر حسب دانش افراد در اين حوزه متفاوت است. هر چقدر هم كه شما پروژه بزرگتري داشته باشيد، طبيعي است كه دانش بيشتري را نياز خواهيد داشت. در اين خصوص به يك خاطره اكتفا مي كنم ، در حوزه پايگاه داده قطعا Oracle از برتري مشهوي نسبت به MSSQL Sever برخوردار است.

در يكي از پروژه هايي كه يكي از دوستان در يك سازمان دولتي داشت قرار شد كه يك Query از ديتابيس هاي Oracle گرفته شود كه بعد از نوشته شدن اين Query و اجراي آن در حدود 30 ثانيه پاسخ به Query و دريافت پاسخ از Oracle طول كشيد اما جالب اينجا بود كه همين Query در MSSQL Server تنها 5 ثانيه طول مي كشيد. در اينجا مسأله دانش Oracle بود كه دوست ما اين دانش را نداشت. فرداي همان روز يك Oracle كار حرفه اي همان Query را با كمي تغيير در Oracle وارد كرد و مشاهده كرديم كه پاسخ در كمتر از يك دهم ثانيه ارايه شد. اين نشان از اهميت دانش برنامه نويسي و كد نويسي در سرعت و كارايي يك برنامه دارد كه واقعا از همه چيز در بحث سرعت و كارايي مهمتر است. در مقاله بعدي فاكتورهاي نهايي مقايسه اين دو زبان برنامه نويسي را با هم مقايسه خواهيم كرد.

نتيجه گيري كلي در خصوص تفاوت و مقايسه زبان PHP و ASP.NET

فاكتورهاي مختلفي را در رابطه با مقايسه اين دو زبان برنامه‌نويسي وب عنوان كرديم اما همانطور كه در ابتداي مقاله هم اشاره كرديم سعي كرديم حقايق را عنوان كنيم و طرفداري از محصول خاصي را نكنيم. به هر حال با تمامي اين اوصاف در نهايت، اين خلاقيت، دانش و مهارت برنامه نويس است كه يك زبان برنامه‌نويسي را خوب جلوه مي دهد و يا بر عكس. يك برنامه نويس حرفه اي بايد بتواند باPlatform ها و ابزارهاي مختلف كار كند و با آن ها تا حدودي آشنايي داشته باشد. نوع ابزار مهم نيست.

مهم دانش و شيوه ي پياده سازي است. براي يك برنامه نويس حرفه اي، سويچ كردن از برنامه‌نويسي ASP.NET به PHP و برعكس، كار چندان سختي نيست زيرا مفاهيم را هميشه در ذهن دارد. فقط syntax اجراي آن را عوض مي كند. تعصب بيجا به يك زبان برنامه‌نويسي صرفا براي برنامه نويسان مبتدي است، نه براي برنامه نويسان حرفه اي. چيزي كه در شبكه نيز وجود دارد و به صورت نادرستي سيسكو را با مايكروسافت مقايسه مي كنند. در سطوح بالا هر دو به خوبي با هم كار مي كنند؛ اما در سطوح پايين همه با هم مشكل دارند. انتخاب يك زبان برنامه‌نويسي به صورت ويژه اي به سطح و اندازه كار و نيازمندي هاي پروژه شما دارد كه در پاراگراف هاي قبل به اين مسأله اشاره كرديم. در نهايت مهم ترين ركن در برتري يك زبان برنامه‌نويسي دانش شخصي است كه زبان را در دست مي گيرد.

نياز به طراحي سايت داريد ؟ قبل از اين كار با شماره تلفن هاي بالاي سايت تماس بگيريد و درخواست مشاوره كنيد . مشاورين سارين وب در خدمت شما هستند .

طراحي سايت ، سئو وبهينه سازي سايت خود را با سارين وب تجربه كنيد .

منبع:طراحي سايت

نظرات این مطلب

تعداد صفحات : 19

درباره ما
موضوعات
آمار سایت
  • کل مطالب : 193
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • بازدید امروز : 28
  • بازدید کننده امروز : 1
  • باردید دیروز : 26
  • بازدید کننده دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 283
  • بازدید ماه : 56
  • بازدید سال : 5677
  • بازدید کلی : 1972368
  • <
    آرشیو
    اطلاعات کاربری
    نام کاربری :
    رمز عبور :
  • فراموشی رمز عبور؟
  • خبر نامه


    معرفی وبلاگ به یک دوست


    ایمیل شما :

    ایمیل دوست شما :



    کدهای اختصاصی