ASPX افتضاحی در توسعه وب
by
تکنولوژی مایکروسافت برای توسعه و طراحی صفحات وب پویا ابتدا یک زبان برنامه نویسی نسبتا نامنظم به نام ASP بود که تا حدود زیادی از معماری و روش جاوا کپی برداری کرده بود. مایکروسافت با جهش دات نت خود (جهش رو به عقب!) زبان ASPX را معرفی کرد که از هسته .NET استفاده می کرد. این زبان که منظم تر شده بود، از سیستم JIT و واسط مفسر مایکروسافت استفاده می کند که باعث می شود سرعت آن کاهش یابد. در زیر برخی از معایب این زبان را بررسی می کنم:
- این زبان مانند بقیه اجزای دات نت، مفسری است نه کامپایلری. البته می دانیم که اصلی ترین دلیل مفسری بودن یک برنامه، قابلیت انتقال آن است تا بتوان آنرا بر روی سیستم های مختلف منتقل و اجرا نمود. از آنجایی که دات نت و سولوشن مایکروسافت تنها بر روی ویندوز NT دارای NET Framework. اجرا می شود، این کار تنها باعث کاهش سرعت اجرای آن خواهد بود!
- از آنجایی که این زبان تنها بر روی ویندوز و با مایکروسافت SQL Server کار می کند، تنها با استفاده از محیطی کار با اینها و تنها در ویندوز میشود برای آن سایت طراحی کرد!
- وبسایت های طراحی شده توسط این زبان تنها بر روی هاستهای ویندوزی قابل اجرا هستند که هم گران است هم کند و هم کمیاب و هم نگهداری آن سخت و هم امکانات جانبی آن کم! (بلا بلا بلا!)
- از آنجایی که این زبان واسط گرافیکی دارد، برنامه ساز نمی فهمد که دقیقا چه کار دارد می کند و چگونه باید کار خود را بهینه کند، در حالی که بهینه سازی از مهمترین اصول وب است.
- اکثر سایتهای تولید شده توسط این زبان فقط بر روی مرورگر Internet Explorer قابل اجرا هستند، زیرا طراح فقط سایت را بر روی این مرورگر تست می کند و معمولا از امکانات مخصوص این مرورگر غیر استاندارد استفاده میکند، که این با هدف وب (یعنی قابل دسترسی برای همه) منافات دارد و عملا ۵۰٪ کاربران سایت نمی توانند از آن استفاده کنند!
- از آنجایی که امنیت سایتهای ASPX به عهده دات نت است، برنامه ساز چیزی از امنیت سایت که مسئله بسیار مهمیست نمی فهمد و رخنه های بسیاری در برنامه خود باقی می گذارد (چرا ۹۰٪ سایتهای ایرانی به راحتی هک می شوند؟)
- از آنجایی که دات نت ORM داخلی دارد، برنامه ساز ارتباط سایت خود با پایگاه داده را درک نمی کند و ممکن است عملیات بسیار سنگین و کندی را بجای یک عملیات ساده انجام دهد! (ORM= Object Relational Mapping http://en.wikipedia.org/ObjectRelationalMapping)
- از آنجایی که طراحان ASPX تنبل بوده اند، به جای اینکه سیستم فرمهای وبی این زبان، از جاوااسکریپت استفاده کند که صحت اطلاعات وارد شده در فرم را بررسی کند، سپس اطلاعات مجددا در سرور توسط ASPX چک و بررسی شوند تا هم کاربر راحت باشد هم اطمینان از صحت اطلاعات حاصل شود، قسمت مربوط به جاوااسکریپت و کلاینت را حذف کرده اند و پس از اینکه فرم را پر کردید، اطلاعات آن به صورت نامحسوس برای سرور ارسال می شوند، آنجا بررسی می شوند و بر می گردند تا از دوبار نویسی کد بررسی جلوگیری به عمل آید. البته این عملیات نامحسوس بر روی Dial Up بین ۲ تا ۱۰ ثانیه زمان می گیرد! (چقدر نامحسوس!)
- طراحان ASPX حتی حاضر شدند که پارا فراتر گذارده، ماهیت Request/Response ای در وب را برای برنامه ساز خود مخفی کنند تا بتواند مانند یک برنامه سیستم عامل سایت طراحی کند! در حالی که ماهیت وب طور دیگریست و مخفی کردن این ماهیت سربار فراوانی دارد (هم از نظر سرعت، هم حافظه، هم حجم داده منتقل شده، رجوع شود به ViewState در ASPX) و این سربار برای وب قابل پذیرش نیست.
حالا به نظر شما، با وجود زبانهایی بسیار قدرتمند و بدون این مشکلات، چرا هنوز برنامه سازان از ASPX استفاده می کنند؟ جواب اینست که دیگر نمی کنند، فقط در ایران استفاده از این زبان زیاد است که به دلیل سادگی و غیرتخصصی بودن بالای این زبان است! اما شما این را در ذهن داشته باشید و همواره از ASPX فراری باشید که هیچ خیری به همراه ندارد…
به نظر شما کدام زبان از همه زبان های وب نویسی کاملتر است HTML نه ها مثلا PHP ، Frontpage یا چیزهای دیگه
HTML زبان ارائه محتواست نه وب نویسی. Frontpage هم نرم افزار ویرایش HTML است. زبانهای معمول وب PHP, ASP, JSP, CSF , … هستند که من پی اچ پی رو ترجیح اساسی میدم.