چهار شنبه 23 بهمن 1398

آیا زبان برنامه نویسی ASP برای طراحی سایت مناسب است؟

آیا زبان برنامه نویسی ASP برای طراحی سایت مناسب است؟

راه اندازی یک کسب و کار در جامعه امروزی نیازمند مدرن سازی آن می باشد. به عبارتی در شرایط تجاری و اقتصادی حال حاضر اداره یک کسب و کار سنتی، درآمد و سود کافی برای شما فراهم نمی آورد. از این جهت لازم است استراتژی کسب و کارتان را تغییر داده و به تجارت مدرن قدم بگذارید. یکی از راهکارهای موجود ایجاد وب سایت جهت معرفی کسب و کارتان می باشد. برای طراحی وب سایت لازم است ابتدا پلتفرم ها و روش های طراحی سایت را بشناسید تا بهترین و مناسبترین گزینه را انتخاب نمایید.

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

انواع روش های طراحی سایت

در حال حاضر روش های مختلفی برای ساخت یک وب سایت وجود دارند که برخی از آن ها عبارتند از: سیستم های مدیریت محتوا وردپرس (CMS)، سایت سازها و زبان های برنامه نویسی (کدنویسی صفر تا صد). انتخاب بین این گزینه ها تصمیم سختی است؛ بنابراین مهم است که تفاوت های بین آن ها را بدانید تا بتوانید انتخاب درستی داشته باشید. سایت سازها و سیستم های مدیریت محتوا (CMS)، تکنولوژی هایی هستند که امکان طراحی یک وبسایت را بدون نیاز به دانش فنی بالا و گسترده فراهم می آورند. روش کار این نرم افزارها به این صورت است که تعدادی رابط و عناصر از پیش ساخته را به شما ارائه می دهند و تنها با انتخاب آن ها می توانید وب سایتتان را طراحی نموده و یا ظاهر و نحوه عملکرد آن را تغییر دهید. اما زبان های برنامه نویسی امکان طراحی سایت را به صورت صفر تا صد و کاملا مطابق با نظر و سلیقه خود فرد ایجاد می کنند. در اینجا قصد بررسی یکی از زبان های برنامه نویسی وب سایت به نام ASP را داریم.

ASP چیست؟

آشنایی با زبان برنامه نویسی ASPASP مخفف عبارت Active Server Page است و یک زبان برنامه نویسی شی گرا بر پایه C# می باشد. زبان ASP نوعی تکنولوژی سمت سرور است که می توان از آن برای ساخت و تولید برنامه های تحت وب و وب سایت های تعاملی استفاده نمود. این زبان در سال 1998 برای اولین بار توسط مایکروسافت به دولوپرها معرفی شد که از آن نسخه با نام ASP کلاسیک یادآوری می شود. البته باید بدانید نسخه کلاسیک ASP یک زبان شی گرا نبود و گاها برای تولید یک برنامه لازم بود توابع را چندین بار کدنویسی کنید. از آن موقع تا به الان چندین نسخه مختلف از روی این فریم ورک ساخته شده است که شامل ASP.Net و ASP.Net MVC می شود. در حال حاضر این دو نسخه ASP با یکدیگر ترکیب شده و یک ورژن تحت عنوان ASP.Net Core را تشکیل داده اند. این ورژن در سال ۲۰۱۶ معرفی گردید. نسخه های جدید ASP از زبان های برنامه نویسی بیشتری نسبت به ورژن کلاسیک آن پشتیبانی می کنند و همچنین قابلیت شی گرایی دارند. از این جهت استفاده از این ورژن ها راحت تر و بهتر خواهد بود. در ASP شی گرا شما قادر خواهید بود توابعی که یک بار برای سایت خود طراحی نموده اید در قسمت های مختلف به کار بگیرید و بخش اعظمی از کدنویسی را کاهش دهید. در نتیجه سرعت ساخت وب سایت و بارگذاری آن بر روی مرورگر میزبان بیشتر خواهد بود.

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

مزایا و معایب ASP چیست؟

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

  • مزایا و معایت زبان برنامه نویسی ASPاولین مورد سرعت بارگذاری وب سایت می باشد: اغلب وب سایت هایی که با استفاده از ASP توسعه یافته اند از سرعت بارگذاری مناسبی برخوردارند. اما باید توجه داشت که پلتفرم هایی که بر پایه هر زبان طراحی می شوند به خاطر رعایت نکردن موارد لازم ممکن است سرعت کافی را نداشته باشند و این امر ارتباطی با زبان برنامه نویسی آن ها ندارد.
  • مورد دوم امنیت در وب سایت ها می باشد: استفاده از زبان برنامه نویسی ASP و یا فریم ورک های دیگر در طراحی یک سایت دلیل موجهی برای ادعای امن بودن آن نمی باشد. اما اغلب اهداف هک شده در زمره سیستم های مدیریت محتوا و فریم ورک های آماده می باشند.
  • قابلیت توسعه سایت به صورت همزمان: یکی از ویژگی‌ ای خوب ASP این است که بخش front-end را از back-end جدا می کند، بنابراین طراحان و توسعه دهندگان می توانند همزمان روی یک سایت کار کنند.
  • عدم توسعه وب سایت توسط ASP بدون داشتن دانش کافی: برخلاف سیستم های CMS و یا سایت سازها، برای طراحی یک سایت بر اساس زبان ASP لازم است ابتدا آن را بیاموزید و دانش گسترده ای در حوزه طراحی وب سایت داشته باشید.

از این جهت عموم افراد نمی توانند از این روش برای ساخت سایت استفاده نمایند و در صورت تمایل برای بهره بردن از مزایای ASP شما نیاز دارید یک دولوپر استخدام نمایید و یا اینکه کار طراحی وب سایت خود را به یک شرکت حرفه ای در این زمینه بسپارید. شرکت داده پردازی فراتک طراح و سازنده وب سایت بر اساس زبان برنامه نویسی ASP.Net می باشد. البته افراد مبتدی می توانند از برنامه دسکتاپ تحت ویندوز به نام visual web developer استفاده نمایند. این برنامه ویرایشگری تحت عنوان WYSIWYG و مخفف عبارت «هر چه را که می بینی، همان در خروجی ظاهر خواهد شد» است. ضمن اینکه در این برنامه قالب هایی آماده برای ساخت وب سایت با کاربردهای مختلف از جمله سایت های فروشگاهی، معرفی و ... وجود دارد که کار شما را راحت تر می کند.

  • انتخاب سرویس میزبانی مناسب برای وب سایت: در صورتی که تصمیم دارید از زبان ASP برای وب سایت خود استفاده نمایید باید از سرویس میزبانی که از سایت های ASP پشتیبانی می کند استفاده نمایید تا سرعت راه اندازی و عملکرد وب سایتتان افزایش یابد.

چک لیست تهیه یک برنامه ASP.NET در طراحی سایت

  • از سیستم minification و bundling، برای یکی سازی اسکریپت‌ها و CSSهای برنامه استفاده شود.
  • قسمت custom errors فایل web.config برنامه به نحو صحیحی مقدار دهی شود.
  • تمام فرم‌های عمومی برنامه باید captcha داشته باشند.
  • در web.config، مقادیر executionTimeout و maxRequestLength مرتبط با httpRuntime تنظیم شوند.
  • بهتر است بومی سازی برنامه از روز اول آن درنظر گرفته شده و تمام عبارات مورد استفاده در فایل‌های Resource درج شوند.
  • برای مدیریت ساده‌تر بسته‌های مورد استفاده (وابستگی‌های برنامه) بهتر است از NuGet استفاده شود.
  • امکان دوبار کلیک کردن بر روی تمام دکمه‌ها نباید وجود داشته باشد.
  • از هش‌های ترکیبی استفاده شود. مستقیما از MD5 یا SHA1 استفاده نشود.
  • اگر کاربری JavaScript را در مرورگر خود غیرفعال کرد، نباید بتواند از سایت استفاده کند. (نمایش پیغام خطای مناسب)
  • در web.config و در زمان ارائه، compilation debug=false تنظیم شود.
  • در تمام قسمت‌هایی که Validation غیر فعال شده باید از پاکسازی Html دریافتی جهت مقابله با XSS مطمئن شد.
  • تمام صفحات باید عنوان مناسب داشته باشند.
  • در صفحه لاگین سایت، autocomplete خاموش شود.
  • تمام deleteهای برنامه باید به HttpPost محدود شوند. تمام گزارشات و نمایش اطلاعات غیرعمومی برنامه به HttpGet محدود شوند.
  • اطلاعات عمومی پرمصرف کش شوند.
  • تمام درخواست‌های jQuery Ajax باید بررسی شوند. آیا واقعا مرتبط هستند به سایت جاری و آیا واقعا Ajax ایی هستند

 شرکت داده پردازی فراتک با طراحی بیش از 500 وب سایت، در سال های فعالیت خود و با به کارگیری این تکنولوژی آماده ارائه خدمات در زمینه طراحی وب سایت با ویژگی های منحصر به فرد است. از نمونه کارهای ما دیدن فرمایید: www.faratechdp.com

روش های بهینه سازی و افزایش سرعت ASP.NET

اگرچه ASP.NET مدل جديدی از برنامه‌نویسی تحت وب می‌باشد و آمده است که نواقص و کمبود های قبلی را برطرف نموده و به کارایی برنامه‌های تحت وب بی افزاید، اما شما همچنان نياز داريد که جهت کارایی و بهينه بودن برنامه‌هایتان نکاتی را رعايت کنيد. اين نکات جهت افزايش کارایی، سرعت و صرفه‌جویی در مصرف منابع بر روی سرور است. که به شرح زیر است:

1- Session State را در صورت عدم نياز حتماً غيرفعال نمایید

بصورت پيش فرض وضعيت Session State برای هر صفحه فعال است. اگر مطمئن هستيد که در آن صفحه از متغيرهای Session استفاده نمی کنيد، حتما آن را در دايرکتيو Page بالای صفحه تان با قراردادن آن برابر False غيرفعال کنيد تا بدين ترتيب منابع اضافی در سرور مصرف نشود. اگر هم مطمئن هستيد که در کل برنامه يا سايت تان نمی خواهيد از متغيرهای Session استفاده کنيد می توانيد آن را در web.config بطور کلی غيرفعال کنيد (توجه: در اجرای این روش دقت کافی داشته باشید).

2- تا آنجائيکه ممکن است از View State استفاده نکنيد

View State هم مانند Session State برای نگهداری اطلاعات و سابقه يک فرم از منابع سرور استفاده کرده و به حجم صفحات اضافه می کند. از طرفی اين حالت بصورت پيش فرض فعال می باشد. لذا در صورتيکه به آن نياز نداريد از آن استفاده نکنيد و حالت آن را در دايرکتيو Page غيرفعال نمائيد و همچنین می تواند مقدار ویژگی EnableViewState کنترل ها را نیز false قرار داد.

3 - از رفت و برگشت (Postback) های زياد از حد پرهيز کنيد

فرم های وب جهت پردازش بايد به سرور ارسال شده و نتيجه پردازش برگشت داده شود. به اين عمل يک رفت و برگشت يا Round trip می گويند. از آنجا که اين رفت و برگشت ها برای سرور ايجاد بار پردازشی و ترافيک می کنند، سعی کنيد بگونه ای از کنترل های وب استفاده کنيد که حداقل رفت و برگشت را داشته باشيد و تا جائيکه می توانيد از پردازش های سمت کاربر (Client side) برای کارهای ساده ماننده بررسی صحت ورود اطلاعات استفاده کنيد. در این روش جهت تبادل داده با سرور می توان از Ajax استفاده کرد.

4- از Page.IsPostback استفاده کنيد

استفاده از Page.IsPostback سبب کاهش رفت و برگشت های (Round trip) اضافی می گردد. همچنين به شما کمک می کند که تشخيص دهيد چه موقع نياز به توليد داده جديد برای يک صفحه داريد.

5- استفاده صحیح و به موقع از کنترل های سرور

اگرچه کنترلهای سرور دارای قابليت های بسيار زياد و جالبی می باشند اما اين قابليتها ناشی از اجرای آنها بر روی سرور است. از آنجا که هر اجرائی بر روی سرور ايجاد بار اضافی در سرور می کند لذا در استفاده از اين نوع کنترلها خساست و دقت بخرج دهيد و اگر جایی می توانيد از کنترلهای معمولی HTML استفاده نمائيد. به دلیل اینکه همانگونه که ما به لایه های پایین تر از زبان برنامه نویسی برویم سرعت کار بیشتر خواهد بود.

6- فشرده سازی فایل های css و js

کاهش زمان بارگزاری صفحات از طریق فشرده سازی فایل های css و js بسیار مفید است و این کار را می توانید با استفاده از افزونه های ویژوال استودیو مانند: Web Essentials و همچنین وب سایت های آنلاین مانند: cssminifier.com و javascript-minifier.com انجام داد. (نمونه کار اجرا شده: darvishihotel.com)

7- از Stored Procedure استفاده کنيد

اگر از بانک اطلاعاتی در برنامه تان استفاده می کنيد، سعی کنيد که حتما پرس و جوهای (Query) خود را به روال های ذخيره شده (Stored procedure)  بسپاريد. از آنجائيکه اين روال ها برای مراجعه اول کامپايل شده و از آن پس جهت اجرا در اختيار مدير بانک اطلاعاتی (DBMS) قرار می گيرد، نسبت به پرس و جوهای معمولی درون برنامه ای بسيار کاراتر و سريعتر هستند. از طرفی با بهينه سازی خاصی که برای گرداننده SQLServer (driver) در مجموعه دات نت شده است، سرعت اجرای روال های ذخيره شده نسبت به روش های معمولی OLEDB يا ODBC بيش از دو الی سه برابر می باشد.

8- از SqlDataReader استفاده کنيد

اگر حجم بالایی از داده نداريد يا تنها می خواهيد از بانک اطلاعاتی عمل خواندن را انجام دهيد حتما از Data Reader استفاده کنيد. استفاده از Data Set سبب کندی کار و مصرف بالای منابع می گردد. در کل می توان گفت از کارهایی که به مدت طولانی برنامه را جهت دریافت اطلاعات از سرور بانک اطلاعاتی بلاک می کنند بپرهیزید.

9- صفحه بندی در نمایش داده ها

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

10- از Caching استفاده کنيد

Caching یکی از ویژگی های منحصر به فرد ASP.NET است. تا آنجائيکه ممکن است از Caching استفاده کنيد. استفاده از Caching  سبب می شود تا از توليد مجدد کد  HTML (Page Rendering)لازم برای يک صفحه تکراری جلوگيری شده و کاربر هم صفحات را خيلی سريعتر دريافت کند. در این روش میتوان متناسب با وابستگی به یک متغییر یا بازه زمانی خاص، کد تولید شده را جهت تازه سازی دوباره تولید کرد.

11- حالت Debug را غيرفعال کنيد

هنگاميکه کار برنامه نويسی شما تمام شده است و زمان استفاده واقعی از برنامه فرا رسيده است، فراموش نکنيد که حالت Debug در کامپايل نهائی برنامه تان را غيرفعال نمائيد. این کار را می توان از طریق نوار ابزار Standard انجام دهید.

 

در طراحی سایت، PHP سریع‌تر از ASP.NET! افسانه یا واقعیت؟

خیلی وقتها در بسیاری از نوشته‌ها و اظهارنظر‌ها می‌بینیم ادعا می‌شود که PHP بسیار سریعتر از ASP.net است و اینکه ASP.net از لحاظ سرعت کند است. آزار دهنده‌ترین بخش این ادعاها، آن است که هر یک از آنها را که نگاه می‌کنی بصورت کاملا غیر واقع بینانه به موضوع نگاه می‌کنند و فقط بدون دلیل این موضوع را ادعا می‌کنند. زیرا به این موضوع بصورتی کاملا متعصبانه و بدور از واقعیتها نگاه می‌شود. به همین دلیل بصورت گسترده ای این افسانه در میان اهالی وب پذیرفته شده است.

حال بجای اینکه این موضوع را بارها و بارها در جاهای مختلف بیان کنیم، این مقاله را نوشته و در هر کجا که لازم باشد به آن ارجاع خواهیم داد. باید توجه کنید این حقیقت که زبان PHP یک زبان اصیل و قدرتمند است هیچ شکی در آن نیست اما اینکه بخواهیم بصورت مغرضانه و به این دلیل که ما از این زبان استفاده می‌کنیم، آنرا از هر لحاظ برتر از سایر زبانها بدانیم (کمی که نه) بسیار اغراق آمیز است.

Compiled در مقابل Interpreted Languages

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

در اینجا به یک نقل قول از دانشنامه آزاد ویکی پدیا اشاره می‌کنم که میزان سریعتر بودن برنامه‌های کامپایل شده را نشان می‌دهد:

"A program translated by a compiler tends to be much faster than an interpreter executing the same program: even a 10:1 ratio is not uncommon. The mixed solution's efficiency is typically somewhere in between."

به این معنا که یک برنامه بصورت کامپایل شده بسیار سریعتر از همان برنامه بصورت تفسیر شده، اجرا می‌شود.

اعداد و ارقام

حال که تئوری خود را مبنی بر دلیل سریعتر بودن ASP.net بیان کردیم بیایید با هم نگاهی به برخی آمارها بیاندازیم تا این تئوری را در عمل هم نشان داده باشیم.

آمارهای زیر توسط شرکت WrenSoft جهت مقایسه زمان اجرای یک کد مشابه در زبانهای مختلف تهیه شده است. اگر می‌خواهید توصیف عمیق‌تری از آمارها داشته باشید لطفا لینک را دنبال کنید. 

  • نمودار اول: زمان صرف شده برای تولید ونمایش نتایج برای جستجوی وب سایت‌های کوچک

مان صرف شده برای تولید ونمایش نتایج برای جستجوی وب سایت‌های کوچک 

  •  نمودار دوم: زمان صرف شده برای تولید و نمایش نتایج برای جستجوی وب سایت‌های متوسط

زمان صرف شده برای تولید و نمایش نتایج برای جستجوی وب سایت‌های متوسط

 

 PHP، 1.0097 ثانیه طول می‌کشد در حالی که ASP.net، 0.0810 ثانیه زمان نیاز دارد. می‌بینیم که PHP دوازده بار بیشتر از ASP.net زمان می‌برد. درحال حاضر این آزمون با یک کد مشابه در زبانهای برنامه نویسی مختلف پیاده سازی و اجرا شد و نتیجه را مشاهده نمودید. حال این موضوع پیش میاید که این اجرای کدها بر روی سیستم عامل ویندوزی بوده است و این می‌تواند به نفع ASP.net باشد، پس همین آزمون را بر روی سیستم عامل لینوکسی مشاهده می‌کنیم.

آمارهای زیر از سایت معتبر shootout.alioth.debian.org گرفته شده است. این آمارها نحوه اجرای همان کد را بر روی سیستم عامل لینوکسی برای هردو زبان نشان می‌دهد: 

php     c#

 

 همانطور که مشاهده می‌کنید در سیستم لینوکسی نیز همچنان ASP.net سریعتر از PHP عمل می‌کند.

نتیجه گیری

همین حالا جمله‌ی "asp.net vs php speed" را در google جستجو کنید. خواهید دید که در اکثر پست‌ها گفته شده که PHP از ASP.net سریعتر است اما دلیلی بر این ادعا نخواهید یافت و فقط در حد حرف است. مشکل این است که اکثر مردم وقتی چیزی را زیاد می‌بینند یا زیاد می‌شنوند بدون آنکه دلیل بخواهند آنرا می‌پذیریند و حتی بعضی اوقات از آن نیز دفاع می‌کنند که واقعا جای تاسف دارد.

توسعه وب بوسیله PHP کار خوبی است، بسیاری از اپلیکیشن‌ها و وبسایتهای شگفت انگیز توسط این زبان نوشته شده اند. اگر احساس می‌کنید PHP یک زبان برتر است از آن استفاده کنید اما این دلیل نمی‌شود که اطلاعات غلط را به دیگران القاء کنید و بدون دلیل و مدرک این زبان را از هر لحاظ برتر بدانید حال آنکه در این مقاله دیدیم که براساس چیزی که ارائه شد، ASP.net سرعت بیشتری نسبت به PHP دارد.

طراحی سایت وردپرسی و اختصاصی با فراتک

شرکت فراتک با بهره‌گیری از تیمی متخصص و باسابقه، راهکارهای جامعی را در حوزه وب ارائه می‌دهد؛ این مجموعه علاوه بر تسلط کامل بر طراحی و پیاده‌سازی سایت‌های وردپرسی با ظاهری مدرن و کاربرپسند، توانایی بالایی در انجام پروژه‌های کدنویسی اختصاصی برای کسب‌وکارهای پیچیده دارد تا دقیقاً مطابق با نیازهای منحصربه‌فرد هر مشتری، پلتفرمی مقیاس‌پذیر و بهینه را خلق کند.

سخن پایانی

ASP یک زبان برنامه نویسی برای ساخت وب سایت است که به کمک آن می توانید طراحی صفر تا صد سایت خود را انجام دهید و در نهایت وب سایتی تعاملی با امنیت و سرعت بالا داشته باشید. استفاده از این زبان نیازمند داشتن دانش برنامه نویسی و فنی می باشد و برای شروع کار بهتر است ورژن ASP.Net آن را بیاموزید.


منبع: faratechdp.com

اخبار مرتبط
نظرات

قوانین ارسال نظر

  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط با خبر باشد منتشر نخواهد شد.
  • با توجه به آن که امکان موافقت یا مخالفت با محتوای نظرات وجود دارد، معمولا نظراتی که محتوای مشابه دارند، انتشار نمی‌یابند بنابراین توصيه مي‌شود از مثبت و منفی استفاده کنید.