آرشیو - برنامه نویسی

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

۱۸ اردیبهشت ۱۳۹۱ توسط , بدون نظر

اگر سری مقالات “منوی ویژه : کیک شکلاتی ASP.NET با نسکافه داغ” را دنبال کرده باشید، در مقاله پیشین به ماهیت Razor اشاره کردیم و مقرر شد در این قسمت از مقاله نگاهی بر برنامه نویسی Razor داشته باشیم. همانگونه که در مقالات پیشین اشاره شد کدهای مطرح شده در این سری از مقالات بر اساس زبان #C نگارش می شوند با این حال می توانید در صورت تسلط، کدهای خود را به زبان Visual Basic نگارش نمایید. باتوجه به اینکه هدف این سری از مقالات مطرح کردن و آموزش موازی و همزمان تمامی تکنولوژی های لازم است، در ابتدا قصد داریم تا نگاهی مختصر به Razor داشته باشیم و نکاتی ضروری و اولیه را در مورد آن مطرح نماییم تا بتوانیم روند آموزشی خود را پیش ببریم.

هشت نکته اولیه که باید در مورد Razor بدانید

یک . کدهای خود را با استفاده از کاراکتر @ به صفحه اضافه نمایید
اگر مقاله قبلی را دنبال کرده باشید، اشاره شد که Razor ساختار زبانی درون خطی را دنبال می کند. این بدین معناست که با استفاده از Razor می توانید کدهای خود را در میان خطوط صفحه بگنجانید. View Engine ها را به خاطر دارید؟ برای قرار دادن کدهای خود در بین صفحه می توانید از علامت @ استفاده نمایید. مترجم با رسیدن به علامت @ متوجه می شود که به قسمت کد رسیده است. به طور کلی کدهایی که از طریق علامت @ می توانید در صفحه قرار دهید به سه دسته تقسیم می شوند:

[مشاهده ادامه مطلب]

مـنوی ویژه : کیک شـکلاتی ASP.NET بــا نسکـافه داغ (قسمت نهم) – آغازی بر Microsoft WebMatrix و Razor

۲۹ فروردین ۱۳۹۱ توسط , ۲ نظر

در مقاله پیشین از سری مقالات “منوی ویژه : کیک شکلاتی ASP.NET با نسکافه داغ” به بررسی انواع تکنولوژی های توسعه برنامه های کاربردی وب تحت چارچوب ASP.NET پرداختیم و نهایتا ASP.NET Web Pages Framework مبتنی بر WebMatrix را به عنوان گزینه مناسبی برای شروع انتخاب کردیم. در جمع بندی کلیه مطالب پیشین مهمترین دلایل این انتخاب به صورت زیر خلاصه می گردد:

  • امکان یادگیری آسان برای مبتدیان
  • امکان رسیدن سریع به محصول بدلیل ساختار ساده توسعه
  • دسترسی کامل به تمامی قابلیت های NET Framework. در عین بهره گیری از ساختار توسعه ساده
  • امکان یادگیری ساده تر برای برنامه نویسان سایر زبان ها
  • تماماً رایگان بودن ابزارهای توسعه مبتنی بر آن

آیا پیش نیازی برای شروع وجود دارد؟

[مشاهده ادامه مطلب]

تغییرات Razor در ASP.NET MVC 4

۲۸ فروردین ۱۳۹۱ توسط , ۱ نظر

این مطلب برداشت آزادی از مطلب درج شده در وبلاگ Alexander Beletsky می باشد. ساختار دستورات Razor در ASP.NET MVC4 تغییرات کوچکی را بهمراه داشته است. هر چند از آنها نمی توان به عنوان تغییرات انقلابی یاد کرد اما مطمئنا می توانند پدید آمدن حس رضایت در بسیاری از برنامه نویسان را موجب شوند. مطمئنا بسیاری از برنامه نویسان از نوشتن کدهای کمتر برای حصول نتیجه ای یکسان خوشحال خواهند شد.

عدم احتیاج به Url.Content@
در گذشته برای ارجاع به فایل های CSS و JavaScript باید از Url.Content@ استفاده می کردید. ازجائیکه این کد در توسعه بارها مورد استفاده قرار می گرفت، تیم توسعه دهنده تصمیم به انتقال آن به سطح Engine گرفت. بنابراین از این پس به جای:

<script src="@Url.Content("~/Scripts/Controls.js")">
</script>

می توانید براحتی بنویسید:

<script src="~/Scripts/Controls.js">
</script>

اگر Razor  با “~/ ” در کد مواجه شود، حاصل مشابهی با Url.Content@ را در خروجی تولید می نماید.  برای این منظور تنها نیاز به تغییراتی در فایل های View دارید.

شرط ها
شرط های قرار گرفته در Attribute ها بسیار آشفته به نظر می رسیدند. آیا شما هم تابحال کدی مانند عبارت زیر را تولید کرده اید؟

<div @{if (myClass != null)
{ <text>class="@myClass"</text> } }>Content</div>

اگر با مورد مشابهی برخورد کرده بودید مطمئنا انجام آن چندان خوشایند نبود. بسیاری استفاده از HTML Helper ها ساده را به جای آن ترجیح می دادند. در ساختار جدید Razor مساله کمی ساده تر شده است، اکنون می توانید براحتی عبارت زیر را به جای عبارت فوق بنویسید:

<div class="@myClass">Content</div>

اگر مقدار myClass@ برابر null باشد، ویژگی Class به خروجی ارسال نخواهد شد. مورد توضیح داده شده فوق در مورد Boolean ها نیز به همین منوال است. در واقع شرط ها تنها از نوع های nullable پشتیبانی نمی نمایند بلکه Boolean ها نیز شامل همین تغییرات جدید می شوند. بنابراین به عنوان مثال در صورتی که کدی مانند عبارت زیر داشته باشیم:

<input checked="@ViewBag.Checked" type="checkbox"/>

اگر ViewBag.Checked@ برابر null و یا false باشد، به صورت زیر Render خواهد شد:

<input type="checkbox"/>

و در غیراینصورت اگر ViewBag.Checked@ برابر true باشد، به شکل زیر Render خواهد شد:

<input checked="checked" type="checkbox"/>
برچسب ها : ,