برنامه نویسی تحت وب (Web Application ها )
مقایسه PHPو ASP
از آنجائیکه اطلاع رسانی ، برنامه های کاربردی بر مبنای Web و نیاز وجود پایگاههای داده بر روی اینترنت از موضوعات مطرح این سالها گردیده است لذا یافتن تکنولوژی برتر از لحاظ سرعت و هزینه و سایر ویژگیهای لازم از اهمیت ویژه ای برخوردار است.
اصول کار با ASP_Net
تکنولوژی PHP و ASP و ..... بر این اساس استوارند :
1)سورس برنامه نوشته شده روی وب سرور قرار میگیرد
2) به محض تقاضای کاربر، وب سرور برنامه نوشته شده را خط به خط تفسیر و اجرا میکند و به کاربر پاسخ میدهد
تکنولوژی ASPnet بر این اساس استوار است :
1)ابتدا سورس کد نوشته شده کامپایل شده و به یک اسمبلی دات نتی که در حقیقت یک فایل DLL است تبدیل میگردد و فایل مذکور بر روی وب سرور قرار میگیرد
2) زمانی که درخواستی که از سوی کاربر ارسال میشود ، بلافاصله وب سرور برنامه مورد درخواست در فایل DLL مذکور را اجرا کرده و به کاربر پاسخ میدهد. بدون آن که برنامه را کامپایل کند یا تفسیر و ... کند نتیجه را سریعا برگشت میدهد
بنابراین در دات نت دیگر نیازی به تفسیر و .... در زمان اجرا نیست چراکه برنامه فقط یکبار کامپایل شده و در زمان اجرا به سرعت اجرا میشود اما در PHP یا ASP برنامه باهر تقاضا ابتدا تفسیر میشود سپس اجرا میشود .
با این حساب است که سرعت دات نت بسیار بالاتر است ، ضمن آنکه قابلیت کامپایل و دیباگ زمان طراحی را نیز میدهد
مزیتهای Asp.Net
یکی از مزیتهای عمده ASp.Net نسبت به پی اچ پی استفاده از تکنولوژی code behind است ،در این تکنولوژی صفحه وب شما صرفا محتوای کنترل ها و تصاویر و ... را در بر خواهد داست (و تاحدودی کدهای اسکریپتی سمت کلاینت را) اما سورس کد شما در فایل جداگانه ای ثبت خواهد شد.این فایل (ها) جداگانه در نهایت پس از کامپایل شدن به یک اسمبلی دات نتی (که مثل یک DLL است) تبدیل شده و به همراه صفحه وب روی وب سرور قرار میگیرند.
دیگر مزیتهای Asp.Net
- محیط توسعه بسیار قوی Visual Studio .Net که حاوی تعداد زیادی ابزار توسعه کاملا ویژوال و الگوهای از پیش طراحی شده و راحتی و توانایی کار و مدیریت پروژه ها است.
- استفاده از فضای نام System.Web که حاوب تعداد زیادی کلاس ، انواع داده ای شمارشی (enum) ، اینترفیس و .... است که کلیه نیازهای توسعه دهندگان را پاسخ میدهد.
- تقسیم کنترل ها به دو بخش کنترل های سمت سرور و سمت کلاینت که نوعی فانکشنالیتی خاصی به این تکنولوژی داده است.
- استفاده از وب سرور IIS که طبق اذعان همگان (یا حداقل اکثر آنهایی که با این وب سرور و دیگر وب سرور ها کار کرده اند) بسیار محیط ساده و کاربر پسندی داشته و مدیریت و پیکربندی وب سایتها در آن به سادگی هر چه تمامتر صورت میگیرد و همه این ها ویژگی های مثبت اینترفیسی از طریق تکنولوژی MMC (Microsoft Management Console) صورت میگیرد . (
- در آمیختگی Asp.Net با .Net Framework اساسی ترین و مهمترین ویژگی آن به شمار میرود. این ویژگی مهم باعث شده تا Asp.Net شامل مزایای متعدد دیگری نیز بشود از قبیل :
- پشتیبانی از چند زبان مختلف جهت راحتی کاربران خاصیت cross language))
- امکان استفاده از تمام قدرت microsoft .net framewok که به شدت قدرتمند است و تقریبا اکثر کلاسهای مهم آن
- مدل داده ای ADO.Net و سهولت و بهینه بودن آن
ACT- یا Microsoft Application Center Test جهت آزمودن برنامه تحت فشار بالا
- به روز شدن در آن واحد که دیگر نیازی نیست برای به روز کردن پروژه وب سرور را راه اندازی مجدد کنیم.
- امکان debugging
- کامپایل شدن صفحات
از زیباییهای Asp.Net داشتن فایلی است به نام web.config.
تنظیمات کلی سایت مانند دیتا بیس و connection string و ... اینجا تعریف می شوند .
این کار باعث می شود سرعت بسیار بالا برود. این مورد به ویژه در مورد connection string ها و تنظیمات دیتا بیس ها خود را نشان میدهد .
نقطه ضعف بسیار بزرگ Asp.Net
از آنجایی که Asp.Net تحت وب سرور IIS اجرا میشود ، لذا کاملا وابسته به پلاتفرم ویندوز است و قادر به اجرا بر روی سیستم عامل های دیگر نیست !!! در حالی که وب سرور آپاچی میتواند بر روی اکثر سیستم عامل ها نصب شده و PHP را اجرا کند.
مزیتهای php
asp >> active server pages زبان اسکریپت نویسی اختصاصی microsoft است. در حقیقت asp یک زبان اسکریپت نویسی نیست بلکه یک شاخه از visual basic است به همین دلیل asp برای کسی که با visual basic آشنایی دارد ساده است.
هفت دلیل برای استفاده از PHP
۱- سرعت
سرعت در برنامه نویسی پی اچ پی حرف اول را میزند
Microsoft از یک Technology در اجرا کردن کدهای زبان ASP استفاده می کند که در آن هر موقع شما تصمیم به استفاده از یک عنصر خارجی مانند VBScript, MSSQL, ODBC و خیلی چیزهای دیگر که در حقیقت از Engine های خارجی استفاده می کنند دستور به آن Engine خارجی می دهد و جواب بدست آمده را بررسی و برای استفاده در اختیار ادامه برنامه می گذارد . همین رفت و برگشت و اجرا کردن Engine های خارجی باعث کند شدن سرویس دهی می شود که این را شما به خوبی می توانید در استفاده از MSSQL به طرق مختلف احساس کنید.
۲- استفاده بهینه از Memory
در IIS4 اگر شما در یک صفحه مثلا ۲۰ بار یک صفحه را Include کنید این صفحه ۲۰ بار در حافظه بارگذاری می شود و در حقیقت حافظه شما ۲۰ برابر زیادتر اشغال می شود . البته این مشکل در ویندوز ۲۰۰۰ و IIS5 حل شده است اما بازهم برای کسانی که ASP را مینویسند و می خواهند آنرا بر روی سرور های Hosting که دارای سیستم عامل NT هستند اجرا کنند مشکل زا است و باعث کند شدن سیستم می شود و در Load بالا مسلما مشکل زا خواهد شد .
این مشکل به طور کلی در PHP وجود نداشته و ندارد و استفاده درست از Memory در هنگام اجرای یک کد باعث شده است که صفحات در Load بالا نیز به خوبی قابل رٶیت باشند .
۳- خرج اضافی ندارید !
اگر شما بخواهید یک ارسال نامه توسط کد به برنامه اضافه کنید ASP در
خود خریداری کنید و موارد مشابه دیگر IIS میبایست خدمات آن را بر روی
.اما پی اچ پی در خودش تابع های مناسب برای این دستورات را دارد
۴- MySQL بهترین انتخاب، بیشترین سرعت
به خاطر قدرت خارق العاده MySQL و سازگار بودن این DBMS با زبان PHP به صورتیکه PHP اتصال به MySQL را به صورت دستورات Internally پشتیبانی می کند و حتی نیاز به نصب Module اضافی برای این کار نمی باشد ، از سرعت بسیار بالاﺋی در کار با SQL برخوردار است
5- نزدیک بودن Syntax به ++C/C و Java
از آنجاﺋیکه اکثر برنامه نویسان از ++C/C استفاده کرده اند و بخاطر محبوب بودن بی حد Java معمولا با Syntax های این دو زبان اکثرا آشنا هستند . PHP هم اکثر Syntax های خود را شبیه به این زبانها انتخاب کرده است که برای یادگیری دوباره Syntax دستورات دچار مشکل نشوید که مسلما Microsoft اصلا برایش این مساﺋل مشکل حساب نمی شود .
۶- رفع ایرادات ، سریع ، بی دردسر
OpenSource بودن PHP این امکان را به شما می دهد که شخصا اقدام به رفع مشکل کنید و آنرا برای دستندرکاران PHP ارسال کنید و یا اینکه در Mailing List های عمومی PHP موضوع را مطرح کنید و خواهید دید که از سراسر دنیا برای رفع ایراد شما Patch ارسال می گردد .
۷- اجرا بر روی Platform های مختلف
درست است که خیلی از این ایرادات را Microsoft رفع خواهد کرد و Technology های جدیدتر اراﺋه خواهد کرد ( چه بسا این Net. که الان آمده همه را درست کرده باشد ) اما یک مشکل اساسی برای ASP وجود دارد و آن این است که ASP بدون Windows یعنی هیچ ! بدلیل اینکه ASP نصفی از کدها را توسط Engine های ویندوز اجرا می کند که در سیستم عامل های دیگر خبری از آنها نیست . لذا ASP در سیستم عاملهای دیگر همیشه دارای ضعفهای بزرگی است .
اما PHP به دلیل آنکه توسط GNU C Compiler در همه Platform ها قابل Compile شدن است و از Engine های خاص هیچ سیستم عاملی برای اجرای کدها استفاده نمی کند قابلیت اجرا بر روی تعدا زیادی از OS ها را داراست که این یک مزیت برای برنامه نویس ها محسوب می شود.
مقایسه تکنولوژیهای سمت Server در مواجهه با پایگاههای داده:
در ادامه به نتایج یک پژوهش که بر اساس تحقیقات به عمل آمده از سایتهای تخصصی برنامه نویسی در اینترنت تهیه شده است اشاره می شود :
هدف تحقیقاتی که در زمینه تکنولوژی های موجود دراین زمینه انجام شده پیدا کردن ترکیبی مناسب از تکنولوژیهای پایگاه داده و تکنولوژیهای پردازش سمت Server ، از لحاظ سرعت و هزینه ای بود که بابت این تکنولوژیها باید پرداخت میشد.
برای این منظور Benchmark ای طراحی و برای ترکیبهای مختلفی از پایگاههای داده و تکنولوژی ها سمت Server این Benchmark اجرا شده است ؛ جدولی که در ادامه آمده است بیانگر نتیجه اجرای این آزمایش می باشد.
Sql Server
Oracle
Access
MySql
Started 18:36:22
Started 18:33:47
Started 18:42:43
Started 19:08:47
PHP
Finished 18:37:19
Finished 18:35:25
Finished 18:43:08
Finished 19:09:00
243573 records found
243573 records found
243573 records found
243573 records found
57 secs
1 min ,38 secs
25 secs
13 secs
Started 9:42:40
Started 18:32:59
Started 18:41:52
Started 19:5:13
ASP
Finished 9:47:24
Finished 18:33:16
Finished 18:42:19
Finished 19:5:36
243573 records found
243573 records found
243573 records found
243573 records found
در آزمایش انجام شده مشخصات ابزارهای بکار گرفته شده به صورت پیرو قرار داشت :
MySQL 3.23.40
Oracle 8.i Personal Edition
SQL Server 2000 Standard Edition
PHP 4.0.4p11
ASP 3
Java 2/JDK 1.3/Jakarta-tomcat – 3.2.3
این تست برای پایگاه داده
mySQL- سریعترین تکنولوژی سمت Server را PHP معرفی کرد .
Access - سریعترین تکنولوژی سمت Server را Java Servlet معرفی کرد
Oracle - سریعترین تکنولوژی سمت Server را ASP معرفی کرد .
SQL Server- سریعترین تکنولوژی سمت Server را Java Servlet معرفی کرد.
نتیجه گیریهای صورت گرفته به صورت زیر می باشد :
PHP با mySQL سریعتر عمل می نماید.
ASP با Oracle سریعتر عمل می نماید.
Java Servlet با SQL Server سریعتر عمل می نماید.
ترین ها :
سریعترین ترکیب پایگاه داده و تکنولوژی سمت Server ترکیب Java Servlet و SQL Server می باشد .
کند ترین ترکیب پایگاه داده و تکنولوژی سمت Server ترکیب ASP و SQL Server می باشد .
نتیجه گیری نهائی :
به عنوان نتیجه گیری نهائی می شود عنوان کرد که بهترین ترکیب و کم هزینه تری آن ترکیب mySQL و PHP می باشد .