منوی ویژه: کیک شکلاتی ASP.NET با نسکافه داغ (قسمت دوم) – چرا دات نت؟

نوشته آراد حقی 09 بهمن 1390

بعد از انتشار اولین قسمت از سری مقالات «منوی ویژه: کیک شکلاتی ASP. NET با نسکافه داغ» در وبلاگینا واکنش‌های مختلفی در مورد این مقاله از طریق نظرات و ایمیل بدست من رسید. با بررسی دقیق نظرات رسیده، این نکته برای من روشن شد که با دامنه وسیعی از خوانندگان روبرو هستم. دامنه‌ای از خوانندگانی که تابحال یک خط کد هم ننوشته‌اند تا برنامه‌نویسانی که مدت‌هاست به کدنویسی و طراحی و تولید برنامه‌های تحت وب مشغول هستند. مسلما افزایش دامنه خوانندگان یک مطلب، نظرات متفاوتی را نیز با خود به‌همراه می‌آورد.

asp-dot-net-Cake_2.jpg

برخی از خوانندگان بر این عقیده بودند که ASP. NET یک تکنولوژی منسوخ و نه‌چندان محبوب است و برخی دیگر بر این عقیده بودند که برنامه نویسی یک برنامه تحت وب با ASP. NET لذتی وصف ناشدنی دارد. یقینا افرادی نیز هستند که از خودشان می‌پرسند آیا یادگیری این تکنولوژی کار درستی است؟ چرا از PHP استفاده نکنیم؟ اگر ASP. NET تکنولوژی بهتری است پس چرا PHP هم محبوب است؟. این مقاله به این دلیل نگارش شده است تا پاسخ تمامی این سوال‌ها و موارد را بدهد.

درباره نویسنده

«درباره نویسنده» معمولا از جمله قسمت‌هایی از کتاب‌ها و مقالات است که خوانده نمی‌شود! اما اینبار خواندن آن را به شما توصیه می‌کنم بدلیل اینکه دربرگیرنده نکات مهمی است. نویسنده این سری مطالب ابتدا بدنیا آمد و بعد از آن نامی برای آن برگزیدند و سپس بزرگ‌تر شد و بعد از اتمام دوران هنرستان به دانشگاه رفت و در رشته‌ای مشغول به تحصیل شد. وی پیش از ورود به دانشگاه یادگیری PHP را آغاز نمود و برای مدت حدوداً ۴ سال به برنامه نویسی PHP مشغول بود. در همین حین بود که کچل شد و بعد‌ها برنامه نویسی ASP. NET را آغاز کرد. در حال حاضر هم مشغول نگارش این مطلب است.

اگر بخواهیم از اطلاعات دقیق ارائه شده فوق، مهم‌ترین بخش آن را استخراج نماییم می‌توانیم به این نکته اشاره کنیم که وی برای مدت ۴ سال به برنامه نویسی PHP مشغول بود. چه نتیجه‌ای از مطلب فوق می‌گیریم؟ آیا چون برنامه نویس PHP بود کچل شد؟ – خیر. آیا PHP ضعیف‌تر از ASP. NET بود که به ASP. NET گرایش پیدا کرد؟ – خیر. آیا برای یادگیری ASP. NET ابتدا بهتر است PHP را یاد بگیریم؟ – خیر. پس هدف از مطرح کردن این مطالب چه بود؟ – نویسنده مطلب هر دو جبهه اصلی طراحی وب را تجربه کرده است. تلخی‌ها و شیرین‌های PHP را چشیده و سرد و گرم ASP. NET را نیز تجربه کرده است. از همین الان با خودتان عهد کنید بدون تعصب نسبت به چیزی قضاوت کنید. اگر شما برنامه نویس حرفه‌ای PHP هستید دلیلی بر منسوخ شدن و مقبول نبودن ASP. NET نیست. همانطور که گوشی ویندوز فون ۷ بدلیل اینکه نویسنده آن را برای خرید انتخاب کرده بهتر از گوشی‌های آندرویدی نیست. همه ما دلایلی برای انتخاب خود داریم. در ادامه دلایل مورد نظر نویسنده برای انتخاب ASP. NET مطرح می‌شود در صورتی که با آن‌ها موافق بودید همچنان قسمت‌های بعدی این سری مقالات را دنبال کنید. در صورتی که با آن‌ها موافق نبودید، یک ضربدر در بالای صفحه مرورگر بسته به نوع مرورگر و سیستم عاملتان در طرح و رنگ‌های مختلف قرار دارد. لطفا همین الان آن را فشار دهید و وقت خود را صرف کسب دانش بیشتر در مورد زبان برنامه نویسی مورد علاقه‌تان نمایید.

چرا ASP. NET؟

اگر هنوز قسمت درباره نویسنده را مطالعه نکردید، حتما آن را مطالعه کنید! اگر همین الان بینگ را باز کنید و عبارت «مقایسه PHP و ASP. NET» را در آن جستجو کنید هزاران بحث و مقاله در مورد آن خواهید یافت. اکثر این بحث‌ها بدون نتیجه و فاقد پایه علمی مناسب هستند. مطمئن باشید اگر جستجوی فوق را انجام دهید در پایان نخواهید توانست به جواب سوال خود برسید. مهم‌ترین واقعیتی که باید از روز اول به عنوان یک برنامه نویس به آن توجه داشته باشید این است که در پایان، برنامه شما باید بتواند نیازهای مشتری را پاسخگو باشد. اگر توانستید نیازهای مشتری خود را برطرف سازید دیگر مهم نیست که از PHP استفاده می‌کنید یا از ASP. NET. با در نظر داشتن اصل فوق، برخی از مزایای ASP. NET برای انتخاب آن به عنوان یک تکنولوژی مناسب برای طراحی و تولید برنامه‌های کاربردی تحت وب ذکر خواهد شد.

یک. سرعت پیاده سازی بالا

اگر قصد دارید شغل شریف برنامه نویسی را برای خود انتخاب کنید، در نظر داشتن این نکته که در کمترین زمان به مطلوب‌ترین نتیجه ممکن دست پیدا کنید، بسیار حائز اهمیت خواهد بود. یکی از ویژگی‌های برنامه نویسی تحت ASP. NET سرعت بسیار بالای توسعه برنامه‌های کاربردی تحت آن است. بسیاری از پایه‌ای‌ترین مسائل مربوط به تولید یک برنامه تحت وب قبلا توسط مایکروسافت طراحی و پیاده سازی شده‌اند. بسیاری از کارکردهای برنامه شما که باید ساعت‌ها کد بدون خطا برای آن‌ها نوشته شود، براحتی و توسط چند کلیک در محیط Visual Studio پیاده سازی می‌شوند. کنترل‌های بسیاری از قبل تولید شده‌اند و با کمترین تنظیماتی می‌توانید آن‌ها را بکار گیرید. سوال: آیا زمان پیاده سازی برای مشتری مهم است؟ – بله، ممکن است براحتی یک پروژه را بدلیل عدم ارائه آن در زمان مناسب از دست بدهید. سوال: اگر یک تقویم را از ابتدا شخصا برنامه نویسی کنم، آیا بهتر از کنترل تقویم که به صورت آماده در بستر دات نت وجود دارد، نخواهد بود؟ – غالباً خیر، به این دلیل که برنامه نویسی کنترل‌های دات نت توسط برنامه نویسان خبره مایکروسافت صورت گرفته که همین امر امنیت و کیفیت کد را تضمین می‌کند با این حال اگر نظری متفاوت دارید، خودتان کنترل تقویم را از ابتدا بنویسید و یا برخی از متدهای آن را تغییر دهید. سوال: به نظر شما برنامه نویسان مایکروسافت واقعا خبره هستند؟ – بله. سوال: به نظر شما امپراتوری مایکروسافت رو به افول نیست؟ – چرا قسمت درباره نویسنده را مطالعه نکردید؟! سوال: مگر برنامه نویس نباید همه کد‌ها را از ابتدا شخصا بنویسد؟ – خیر سوال: زشت نیست؟ – خیر.

دو. سرعت اجرا

در این زمینه تابحال بحث‌های زیادی شده است. در این قسمت ما قصد مقایسه سرعت اجرای ASP. NET با سایر زبان‌های مشابه را نداریم اما تلاش بر این است که ثابت کنیم بر اساس منطق علم کامپیو‌تر ASP. NET در اجرا بسیار سریع است. بدلیل اینکه هنوز از ساختار دات نت و شکل اجرای برنامه‌ها چیزی نمی‌دانیم به این نکته اکتفا می‌کنیم که برنامه‌های دات نت بعد از اولین اجرا کامپایل می‌شوند و در اجراهای بعدی (تا عدم تغییر در کد برنامه) نسخه کامپایل شده آن‌ها تقدیم درخواست کننده می‌شود. منطق علم کامپیو‌تر بیان می‌کند که سرعت اجرا «کد از پیش کامپایل شده» بسیار بیشتر از اجرای خط به خط هر باره کد مانند آنچه در زبان PHP اتفاق می‌افتد، است. سوال: آیا کامپایل کل کد در صورتی که ما تنها نیاز به قسمتی از آن داریم نمی‌تواند باعث افت سرعت اجرا شود؟ – اساسا یکی از برتری‌های دات نت نسبت به جاوا، کامپایل تنها قسمت‌های درخواست شده از کد است. سوال: برای پیاده سازی این قابلیت‌ها باید چه کاری به عنوان یک برنامه نویس انجام بدهم؟ – لیوان نسکافه خود را پر کنید و نوش جان کنید! سوال: دوست من می‌گوید سرعت اجرای PHP بیشتر است، اینطور نیست؟ – به کیفیت برنامه‌تان بیاندیشید و از این بحث‌ها دوری کنید.

سه. منابع بیشمار برای توسعه دهنده

اگر تصمیم گرفتید برنامه نویس دات نت شوید، بهتر است به وجود اقیانوس عظیمی از اطلاعات در غالب سایت‌های زیر مجموعه شبکه توسعه مایکروسافت، کتابهای فراوان رسمی و غیر رسمی افتخار کنید. بدون شک یکی از مهم‌ترین مواردی که یک برنامه نویس باید در نظر داشته باشید، چگونگی بروزکردن دانش خود و آشنایی با تکنولوژی‌های جدید مطرح شده در آن حوزه است. حجم اطلاعات و اسناد موجود تهیه شده توسط مایکروسافت در این زمینه بی‌نظیر به نظر می‌رسد. سوال: آیا می‌توانم از این اطلاعات به صورت رایگان بهره‌مند شوم؟ – بله. مگر این امکانات برای سایر زبان‌ها و تکنولوژی‌ها فراهم نیست؟ – بله وجود دارد اما حجم و کیفیت مطالب آن‌ها به هیچ وجه قابل مقایسه نیست.

چهار. ابزار رایگان

علیرغم تبلیغ‌هایی که به صورت نادرست و گاهاً عمداً در زمینه رایگان بودن زبان‌هایی مانند PHP می‌شود، برای استفاده از IDEهای مطرح مرتبط با آن باید هزینه بپردازید. زبان برنامه نویسی به خودی خود رایگان است. بنابراین در این زمینه تفاوتی بین ASP. NET و PHP نیست. اما آیا واقعا حاضر هستید برنامه‌های خود را در نرم افزاری مانند Notepad و یا سایر نرم افزارهایی که از قابلیت خطایابی بی‌بهره هستند و یا در این زمینه ضعیف هستند ادامه دهید؟ بر خلاف تبلیغات نادرست برای شروع کار با ASP. NET نیاز به پرداخت حتی یک ریال هم ندارید. Visual Studio express (و یا Visual Web Developer Express) به عنوان IDE و SQL Server Express به عنوان ابزار مدیریت پایگاه داده به صورت رایگان برای دانلود موجود هستند.

پنج. امنیت

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

شش. دید مبتنی بر راه حل

یکی از برجسته‌ترین نکات مطرح در ASP. NET تغییر دید و نگرش برنامه نویس است. اصولا به عنوان یک برنامه نویس ASP. NET می‌توانید (نه لزوما)، محصول نهایی خود را به عنوان یک راه حل در نظر بگیرید. هر برنامه‌ای اصطلاحا برای حل یک مشکل بوجود می‌آید که مشکلات از نیازهای مشتریان ناشی می‌شوند. در ASP. NET می‌توانید یک راهکار برای حل مشکلات و یا بر طرف کردن نیازهای مشتری در نظر بگیرید که آن راه حل از مجموعه‌ای از پروژه‌ها تشکیل می‌شود. راه حل شما می‌تواند شامل چندین وب سایت، وب سرویس، کتابخانه کد به زبان‌های مختلف باشد! سوال: منظورتان از زبان‌های مختلف چیست؟ مگر کل سایت را به زبان ASP. NET نمی‌نویسیم؟ – خیر، در مقالات آینده به صورت جز به جز به کلیه این موارد خواهیم پرداخت اما همین قدر بدانید که ASP. NET به نوبه خود یک زبان نیست بلکه یک پلتفرم برای توسعه نرم افزارهای تحت وب می‌باشد. برای برنامه نویسی صفحات ASP. NET می‌توانید از زبان‌های مختلفی که تحت دات نت کار می‌کنند استفاده نمایید. زبان‌هایی مانند C# و یا Visual Basic. اگر پیاده سازی یک قسمت از سایت با زبان Visual Basic راحت‌تر از C# است، هیچ مشکلی نیست، آن قسمت را به Visual Basic بنویسید و در ‌‌نهایت چندین پروژه را در قالب یک راه حل ارائه دهید.

هفت. یکپارچگی بهتر با ویندوز

چه از بستر ASP. NET برای توسعه نرم افزارهای تحت وب خود استفاده کنید و چه از سایر زبان‌های برنامه نویسی، بر اساس منطق صفحات وب هر کاربری با هر سیستم عامل و مرورگری می‌تواند سایت شما را مشاهده نماید. اما سناریو‌ای را در نظر بگیرید که می‌خواهید سایتی را به صورت اینترانت در شبکه داخلی یک سازمان پیاده سازی نمایید که نام‌های کاربری و کلمه‌های عبور ورود به وب سایت بر اساس نام‌های کاربری و کلمه‌های عبور موجود در شبکه داخلی سازمان تعریف شده باشد و قابل استفاده باشد. همانگونه که می‌دانید سیستم عامل ویندوز در حال حاضر محبوب‌ترین سیستم عامل دنیاست. بنابراین وجود سناریو‌هایی از این دست بویژه در سازمان‌های بزرگ چیز چندان عجیبی نیست. همچنین در نظر بگیرید که می‌خواهید نرم افزاری تحت ویندوز و مرتبط با وب سایتتان بر روی اینترنت ارائه کنید، انتخاب کدام تکنولوژی برای توسعه وب سایتتان بهتر است؟ سوال: اگر از زبان‌های غیر از ASP. NET برای این منظور‌ها استفاده کنم مشکلی خواهم داشت؟ – در بسیاری از سناریو‌ها حتما نیاز به استفاده از ASP. NET خواهید داشت، در غیر اینصورت هم باید سختی بسیاری را متحمل شوید. به سختی کشیدن علاقه دارید؟

هشت. مدل‌های مختلف توسعه وب

ASP. NET از مدل‌های مختلفی برای توسعه صفحات وب استفاده می‌کند که در حال حاضر بارز‌ترین آن‌ها، Web From، MVC و نهایتاً Web Matrix می‌باشد. هر کدام از این مدل‌ها ویژگی‌ها، مزایا و معایب خاصی دارند و در ‌‌نهایت هر نوع نیاز و سلیقه‌ای را برطرف می‌کنند.

سوال: آیا ASP. NET معایبی هم دارد؟ – بله. سوال: آیا اگر شما موفق به علاقمند کردن چندین نفر به ASP. NET شوید از استیو بالمر پورسانت دریافت می‌کنید؟ – خیر. سوال: از بیل گیتس چطور؟ – خیر. سوال: آیا هنوز هم کسی از تکنولوژی منسوخ ASP. NET استفاده می‌کند؟ – نمی‌خواهید از این حرف‌ها دست بردارید؟

ASP. NET مزایای بسیار دیگری دارد که اشاره به آن‌ها مسلتزم ورود به مباحث تخصصی است. به نظر می‌رسد موارد ذکر شده فوق دلایل کافی و قانع کننده‌ای برای انتخاب ASP. NET به عنوان یک بستر مناسب برای توسعه نرم افزارهای تحت وب باشد. باز هم یادآور می‌شوم که قصد ما مقایسه آن با سایر زبان‌های برنامه نویسی نیست و همه ما دلایلی برای استفاده از یک تکنولوژی خاص داریم. اگر دلایل فوق توانست شما را برای استفاده از این تکولوژی قانع سازد، در ادامه مقالات این سری با ما همراه باشید.