۳۳ مطلب با کلمهی کلیدی «MVC 4» ثبت شده است
using کردن در view
بسم الله الرحمن الرحیم
آموزش asp.net mvc
هنگامی که با یک view کار می کنید شما بدون اینکه Namespaceهای مربوطه را اضافه کرده باشید (برخلاف سایر کلاس ها) می توانید با تعدادی از Namespace ها بدون استفاده از دستور using کار کنید؟
برخی از فضاهای نام که بیشتر مورد استفاده خواهند بود به صورت پیش فرض توسط مایکروسافت در کلاس پیاده ساز view اضافه شده است. اما این کلاس کجاست؟
برای یافتن این کلاس باید به آدرس زیر بروید و به دنبال کلاسی بگردید که شامل محتوای viewشما باشد چون نامهای انتخابی ارتباطی با نامی که شما برای view خود انتخاب کردید ندارد اما از محتوای این کلاس ها می توانید به کلاس مربوطه دست پیدا کنید.
برای این کار بنده یک view با محتوای خاصی ایجاد کردم که در مسیر مربوطه پس از بررسی فایل ها به فایل مورد نظرم دست پیدا کردم و این فایل شامل اطلاعات زیر بود:
همان طور که در این فایل مشخص است Namespaceهایی به صورت پیش فرض توسط مایکروسافت به viewشما اضافه شده است. شما نیز می توانید به view خود Namespaceهای مورد نظر خود را اضاه کنید. اگر به یک فضای نام، تنها در یک view نیاز دارید بهتر است به روش معمولی آن را به صفحه اضافه کنید مثل کد زیر:
@{
MvcApplication2.App_Code.Class1 c = new MvcApplication2.App_Code.Class1();
c.rets();
}
اما اگر به یک فضای نام در تمامی viewها نیاز دارید کافی است آن را در فایل web configیی که در فولدر view ها قراردارد، به صورت زیر اضافه کنید:
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="MvcApplication2.App_Code"/>
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
آموزش html Healper
بسم الله الرحمن الرحیم
آموزش asp.net mvc
در بیشتر مواقع شما نیاز دارید تا یک html Healper را ایجاد نمایید و از ان برای جلوگیری از تکرار دستورات و یا ایجاد یک خروجی مناسب استفاده کنید. برای این فرایند کافی است ابتدا یک کنترلر به صورت زیر با نوع empty ایجاد کنید:
namespace MvcApplication2.Controllers
{
public class SampleController : Controller
{
// GET: /Sample/
public ActionResult Index()
{
List List = new List();
List.Add("Esmaeil");
List.Add("Mojtaba");
List.Add("Reza");
List.Add("Hasan");
List.Add("Ali");
ViewBag.List = List;
return View();
}
}
}
حال view ای ایجاد و کد زیر را به آن اضافه کنید:
ادامه مطلب...آموزش TagBuillder
بسم الله الرحمن الرحیم
آموزش asp.net mvc
یکی از روش های تولید تگ های HTML اسنفاده از کلاس TagBuilder می باشد. این کلاس خصوصیات های زیادی را ارائه می دهد که پرکاربردترین آن ها را به همراه یک مثال ارائه داده شده است.
یک کنترلر جدید با نام Sample ایجاد کنید و سپس کد زیر را به آن اضافه نمایید:
namespace ExternalHtml.Controllers
{
public class SampleController : Controller
{
public MvcHtmlString CreateTagBuilder()
{
TagBuilder tagBuilderSpan = new TagBuilder("div");
tagBuilderSpan.SetInnerText("کلمه عبور");
TagBuilder tagBuilder = new TagBuilder("input");
tagBuilder.AddCssClass("inputTypeClass");
tagBuilder.Attributes.Add("type", "password");
tagBuilder.GenerateId("input~TagBuilder");
tagBuilder.IdAttributeDotReplacement = "input_TagBuilder";//Replace ~ char with _
tagBuilder.MergeAttribute("enable", "false");//set enable with false for understand below tag
tagBuilder.MergeAttribute("enable", "true", true);//true means exist tag replace and false denial tag
tagBuilderSpan.InnerHtml += tagBuilder.ToString();
return new MvcHtmlString(tagBuilderSpan.ToString());}
//
// GET: /Sample/
public ActionResult Index()
{
ViewBag.TagBuilder= CreateTagBuilder();
return View();
}
}
}
ادامه مطلب...
مرجع HTML Helper
بسم الله الرحمن الرحیم
آموزش ASP.NET MVC
در این مطلب قصد داریم کنترل های HTML Helper را معرفی نماییم. متناسب های با کنترل های HTML کنترلهایی را MVC ارائه می دهد که می توانید فرم های پویا برای ثبت اطلاعات طراحی نمایید:
از آن جا که تمامی دوستان با این کنترلها آشنا هستند فقط لیست این کنترلها با طرح یک مثال ارائه می شود:
برای شروع کار یک پروژه MVC ایجاد و سپس نوع آن را empty انتخاب کنید، حال یک کنترلر با نام Sample ایجاد و سپس view مربوطه را نیز ایجاد کنید و دستورات زیر را در view قرار دهید:
ادامه مطلب...آموزش طراحی قالب Responsive
بسم الله الرحمن الرحیم
آموزش طراحی قالب Responsive
در این بخش قصد دارم به صورت مختصر آموزش ساخت یک قالب Responsive را آموزش دهم. بدون هیچ بحث اضافی سراغ مباحث مربوطه می رویم:
برای نمایش عناصر صفحه در مقایس های مختلف مثل کامپیوتر ها یا تبلت و در نهایت موبایل به نحوی که بتوان اطلاعات را به صورت صحیح نمایش داد نیاز است شما در مورد هر مقایس تصمیمی اخذ نمایید برای این فرایند کافی است از دستور media@ استفاده نمایید. ساختار این دستور بسیار ساده می باشد. در دستور زیر ما مشخص کردیم که اگر خروجی ما صفحه نمایش بود و سایز ما حداقل 1200 پیکسل بود تغییرات مورد نظر صورت گیرد. این کار را به صورت های زیر می توان انجام داد:
درون یک فایل StyleSheet
@media screen and (min-width : 1200px) {
/* let's do somethin' */
}
لینک دادن به یک StyleSheet
<link rel="stylesheet" media="screen and (min-width: 1200px)" href="small.css" />
در روش بالا اگر سایز ما حداقل 1200 پیکسل بود فایل مشخص شده به صفحه ما اضافه می گردد.
لینک دادن به یک فایل StyleSheet (در صورت موبایل بودن دستگاه یا هر دستگاهی با نهایت وضوح 480 پیکسل)
<link rel="stylesheet" media="only screen and (max-device-width: 480px)" href="mobile.css" />
لینک دادن به یک فایل StyleSheet درون دستورات CSS
@import url( small.css ) screen and ( min-width: 1200px );
استفاده از عملگرهای منطقی
AND
@media (min-width: 600px) and (max-width: 800px) {
html { background: red; }
}
OR
@media (max-width: 600px), (min-width: 800px) {
html { background: red; }
}
NOT
@media not all and (max-width: 600px) {
html { background: red; }
}
Exclusive
@media (max-width: 400px) {
html { background: red; }
}
@media (min-width: 401px) and (max-width: 800px) {
html { background: green; }
}
@media (min-width: 801px) {
html { background: blue; }
}
Overriding
@media (min-width: 400px) {
html { background: red; }
}
@media (min-width: 600px) {
html { background: green; }
}
@media (min-width: 800px) {
html { background: blue; }
}
در نهایت یک مثال کامل
@media
only screen and (min-width: 100px),
not all and (min-width: 100px),
not print and (min-height: 100px),
(color),
(min-height: 100px) and (max-height: 1000px),
handheld and (orientation: landscape)
{
html { background: red; }
}
مرورگرهایی که دستورات media@ را پشتیبانی می کنند:
- Firefox 3.5+
- Opera 9.5+
- Safari 3+
- Chrome
- Internet Explorer 9+
آموزش Bundling
بسم الله الرحمن الرحیم
آموزش asp.net mvc
در این بخش قصد دارم در خصوص بهینه سازی و افزایش سرعت لود صفحات وب مباحثی را بررسی نماییم.
همان طور که می دانید اگر در یک سایت شما چندین فایل داشته باشید به ازای هر فایل می بایست یک درخواست به سرور ارائه شود و فایل مربوطه بازیابی گردد و این خود باعث طولانی شدن زمان لود صفحات می گردد، راهکاری که برای این مشکل ارائه گردیده است تبدیل چندین فایل به یک فایل می باشد که این روش متاسفانه فقط برای فایل های تصویری، رایج و مورد استفاده است.
واقعا بسیاری از ما نیز، هنوز از این روش رایج استفاده نمی کنیم کافی است که تمامی آیکون ها و تصاویر با سایز کوچکی که در سایت مورد استفاده می خواهیم قرار دهیم را به یک تصویر تبدیل کنیم.
ادامه مطلب...معرفی ابزار های Net.
بسم الله الرحمن الرحیم
آموزش برنامه نویسی و ابزارهای برنامه نویسی
در ابن بخش چند ابزار کارا را به صورت مختصر معرفی کردم انشالله که برای دوستان مفید واقع شود
Infragistics NetAdvantage for ASP.NET MVC
مجموعه کامل از کنترلهایی ساده و زیبا و پر کاربرد که برای پدید آوردن یک برنامه کاربردی تحت وب مبتنی بر ASP.NET MVC نیاز دارید.
البته نسخه رایگان را در زمان نوشتن مطلب وجود ندارد!
ComponentArt UI Framework 2012
مجموعه ComponentArt UI Framework 2012.1.1016.0 جدیدترین ورژن ComponentArt برای داشتن ظاهری زیبا در برنامه هاست.
مجموعه ی ارزشمند ComponentArt UI Framework 2012.1.1016.0 شامل :
- WebUi for asp.net ajax
- WebUi for asp.net mvc
- WebUi for silverlight
- WinUi for wpf
- SoaUi for .net
مجموعه کامپوننت های قوی شرکت Aspose . با نام Aspose.NET Components را برای طراحان وب و برنامه نویسان ویژوال استدیو و عاشقان زبان های برنامه نویسی ارائه کنیم.
این کامپوننت شامل:
- Aspose.Cells for .NET
- Aspose.Chart
- Aspose.Flash
- Aspose.Pdf.Kit.5.0.0
- Aspose.Recognition
- Aspose.Slides for .NET
- Aspose.Words for .NET
ComponentOne Studio Ultimate 2012 v2 + Enterprise 2012 v2
ComponentOne Studio Ultimate 2012 هفت برنامه بنیادی ، صدها مورد تحت کنترل ، همه و همه تحت یک استودیوی بی نظیر با نام ComponentOne Studio Ultimate جمع آوری شده اند. توسط این مجموعه بی نظیر شما می توانید نرم افزارهایی برای محیط دسکتاپ ، وب و موبایل که کاربرد در زمینه های WinForms, WPF, ASP.NET, Silverlight, iPhone, Mobile و ActiveX دارند را ایجاد کنید. این مجموعه به شما تکنولوژی لازم که برای جذب هر کاربر با هر سلیقه ای نیاز دارید را در اختیار شما قرار می دهد. تمامی نرم افزارهای این مجموعه به روز شده هستند و تحت Net Framework 4.0 قابل اجرا هستند.
قرارداد های MVC
بسم الله الرحمن الرحیم
آموزش ASP.NET MVC
ما در MVC دو نوع قرارداد داریم در نوع اول قرارداد ها اختیاری هستند مثل قراردادن فایلهای تصاویر و.. در پوشه content، در صورتی که اینکار را انجام ندهید هیچ مشکل پیش نخواهد آمد. قرارداد های نوع دوم که به Convention Over Configuration معروف هستند، به این معنی که قرارداد بر پیکربندی ارجحیت دارد در این نوع قرارداد هاکه باعث راحتی کاربر می شود و این روش از Ruby and Rails گرفته شده است؛ شما نیازی ندارید که ارتباط بین کنترلر و View را مشخص نمایید.
کلاس کنترلر با کلمه Controller ختم می شود و route ها یا HTML Helper ها فقط تا قبل از کلمه Controller اسم را می خوانند. Viewها و partial viewها باید در پوشه ای با نام کنترلر خود قرار گیرند، البته باز هم نام کنترلر بدون قسمت Controller آن. نام اکشن ها باید همان نام View ها باشد.
نیاز به ذکر پسوند فایل های View نیست خود موتور مورد استفاده می تواند تشخیص دهد که باید به دنبال چه پسوندی بگردد.(Razor بدنبال cshtml و aspx به دنبال aspx). در زمان جستجو View ها ابتدا بدنبال view های قرار گرفته در پوشه هم نام با کنترلر و سپس در پوشه Shared، بدین معنا که باید viewهایی که چند جا فراخوانی می شوند را دراین پوشه قرار دهید.
برای نام گذاری قالب ها باید نام آن را با کاراکتر underline، "_" شروع کنید و سپس در پوشه Shared قرار دهید. اگر viewایی قالب نداشته باشد به صورت پیش فرض قالب _Layout.cshtml به تمام view ها اعمال می شود این فرایند از طریق فراخوانی در فایل view/_viewStart.cshtml اعمال می شود. اگر می خواهید قالب خودتان را اعمال کنید کافی است دستور زیر را در فایل Layout.cshtml_ بنویسید:
@
{
Layout = “~/Views/Shared/MyLayout.cshtml”;
}
قابلیت Edit and Continue
بسم الله الرحمن الرحیم
آموزش برنامه نویسی
یک قابلیت مناسب وجود دارد برای خطایابی برنامه ها در VS که شاید بعضی دوستان از این قابلیت استفاده نکنند به همین دلیل سعی کردم به صورت کوتاه آن را بیان کنم البته به همکاران انشالله بر نمی خورد شاید کسانی باشند خارج از مجموعه و بخواهند از مطالب استفاده کنند.
این قابلیت اجازه می دهد تا در صورت بر خورد با خطایی آن خطا در مرحله debug بررسی و برطرف و به اجرای برنامه ادامه دهید. برای فعال سازی این قابلیت کافی است از منوی tools گزینه option وسپس در بخش سمت چپ گزینه debugging گزینه edit and continue enable را فعال کنید و سپس ok را بزنید. حال از منوی project گزینه properties را انتخاب نمایید سپس در پنجره باز شد در بخش سمت چپ گزینه web و در نهایت edit and continue enable را فعال کنید.
فقط این قابلیت در همه جا قابل استفاده نیست مثلا در مواردی که از متغییر های نوع dynamic مثل viewbag استفاده می کنید.
معرفی برخی از ابزارهای ALT.Net
بسم الله الرحمن الرحیم
آموزش ابزارهای ALT.Net
این مطلب را برای دوستان تیم طراحی و تست قرار دادم انشالله مفید واقع شود
معرفی برخی از ابزارهای ALT.Net
به ابزارهایی که جهت افزایش کیفیت و ابداع روش های جدید جهت افزایش بهره وری کار تولید می شوند را ALT.NET می گویند.
ابزارهایی که بسیار در تولید و توسعه نرم افزار کارا خواهند بود را معرفی کرده ام و البته در هر مورد چند نمونه ذکر کردم اما مطما تنها کافی است که بهترین را از دیدگاه خود و نیاز های خود انتخاب کنید و در طراحی خود از آن بهره ببرید من شخصا از هر مجموعه تنها یک ابزار را انتخاب و با آن کار می کنم اما بدلایلی چون شاید انتخاب من انتخاب مناسبی برای شما نباشد از مشخص نمودن ابزارهایی که از آنها استفاده می کنم خود داری کرده ام و انتخاب را به عهده خودتان قرار داده ام البته شاید با توجه کردن به مطالب آموزش داده شده در این وبلاگ به انتخاب من نیز پی ببرید:
برنامه های آزمایش واحد
NUnit
xNUnit
فریمورک های Mock
Moq
Rhino Mocks
فریمورک های واگذاری مسئولیت (inversion of control)
Ninject
Autofac
ابزارهای کنترل یکپارچه گیفیت نرم افزار که با عنوانContinuous Integration شناخته می شوند
Cruise Control
Team City
ابزارهای ORM
NHibernate
Subsonic
Entity Framework
توسعه تست محور
بسم الله الرحمن الرحیم
آموزش TDD - توسعه تست محور
این مطلب را برای دوستان تیم طراحی و تست قرار دادم انشالله مفید واقع شود.
توسعه تست محور
برای تست نرم افزار روش های متعددی وجود دارد، من شخصا در پروژه ها از روش Test Driven Development (TDD) یا به عبارتی توسعه تست محور استفاده می کنم این روش در واقع از تفکر Agile منشات می گیرد.
متاسفانه روش TDD و ابزار های موجود در این روش به خوبی با Asp.net Web Form سازگار نیست و ولی باز می توان از این روش استفاده کرد.
دو نوع از این ابزار ها را معرفی خواهم کرد:
ابزار های آزمایش واحد (Unit testing tools)
همانطور که از نام آن مشخص است اجازه می دهد تا کلاس ها، متدها و بخش های مختلف نرم افزار را به صورت جدا بررسی کنید.
اما نکته ای که وجود دارد این است که باید لایه های نرم افزار از هم جدا باشند و در واقع وابستگی به صورت صحیح باشد مبحث وابسگی را قبلا توضیح دادم در صورتی که در این زمینه اطلاعی ندارید مبحث تزریق وابستکی و سایر مباحث Design Pattern را مطالعه نمایید تا بتوانید از این ابزار استفاده نمایید.
متاسفانه بسیاری از دوستان در طراحی نرم افزار به گونه ای عمل می کنند که نرم افزار را نمی توان به صورت بخش های جدا تقسیم و تست نمود که این باعث مشکلات زیادی خواهد شد.
مخصوصا Asp.net Web Form کار ها به دلیل ماهیت خود این تکنولوژی ساختار را به گونه ای تعریف می کنند که بیشتر مواقع منطق را در Event ها قرار می دهند! به هر حال.
ابزار های خودکار سازی محیط
در واقع این نرم افزارها رفتار کاربر را برای کار با نرم افزار شما شبیه سازی می کنند از این نرم افزار ها نیز می توانید در تکنولوژی های مختلف استفاده کنید ولی به محض تغییر ساختار برنامه یا هر رخداد دیگری که باعث شود در شناسایی نرم افزار تغییری ایجاد شود باید مجددا ساختار جدید را معرفی نمایید.
روش BDD) Behavior Driven Design) یا به عبارتی توسعه رفتار محور آخرین روش موجود برای تست نرم افزار است که این روش نیز زیر مجموعه تفکر Agile است.
متدولوژی Domain Driven Design
بسم الله الرحمن الرحیم
این مطلب را برای دوستان طراح قرار دادم انشالله مفید واقع شود
متدولوژی Domain Driven Design
قبل از پرداختن به متدولوژی مربوطه می بایست با چند مبحث آشنا شویم.
Domain Model نمایی کلی از هر آنچه در سیستم می گذرد که قلب یک برنامه MVC است که قسمت های دیگر مثل View,Controller فقط وظیفه ایجاد ارتباط با این قسمت را دارند.
یک Domain Model شامل موارد زیر است:
اجزای سی شارپ مانند کلاس ها، Structها و همانند آنکه در مجموع به آن Domain type گفته می شود.
عملیاتی که در Domain Model انجام می شوند به وسیله متدهایی که در Domain Type تعریف شده اند انجام می پذیرند.
زمانی که نمونه ای از یک Domain Type را که نمایانگر موجودیتی است ایجاد می کنید، در حقیقت در حال ایجاد یک Domain Object هستید.
یک روش خوب برای ایجاد Domain Model ایجاد یک پروژه از نوع Class Library تنها برای Domain Model است بدین ترتیب می توان از قسمت های دیگر پروژه به پروژه ی Domain Model ارجاع داشت.
در Asp.Net MVC سه قابلیت برای کار با Domain Model وجود دارد:
Model Binding: همان ویژگی که در View از آن استفاده می کنید. (ارسال و دریافت پراپرتی ها به صورت یک مدل)
Model Metadata:روشهایی مانند [Display] که در مدل از آن استفاده می کنید.
Validation: اعتبارسنجی که در مدل انجام می دهید.
مدل کردن یک Domain
مدل کردن یک Domain یا Domain Modeling، فرایندی است که در طی آن اهداف و نیازمندی های پروژه شناسایی می شود.
ادامه مطلب...تاریخچه برنامه های مبتنی بر وب
بسم الله الرحمن الرحیم
تاریخچه برنامه های مبتنی بر وب
بازه انتشار |
نام تکنولوژی |
مزایا |
معایب |
وقتی به دنیا آمدم |
Common Getway Interface (CGI) |
· آسان · انعطاف پذیر · گزینه اول وآخر |
برنامه خارج از وب سرور اجرا می شود و به ازای هر درخواست یک پروسه ایجاد می کند |
زمانی که ما شرکتی هنوز نداشتیم (کودک بودیم) |
Microsoft Internet Database Connector |
در وب سرور اجرا می شود |
فقط واسطه ای که اجابزه انجام دستورات متداول SQL را می دهد |
1996 (زمانی در حال فراگرفتن علوم کامپیوتر بودیم) |
Active Server Page (ASP) |
چند منظوره |
کامپایل وتفسیر دستورات در زمان اجرا کدهای در هم آمیخته (مثل سالاد فصل) |
2002-2003 (شروع کار به صورت مبتدی) |
Asp.Net Web Form 1.0/1.1 |
· کدهای کامپایل شده · کنترل هایی که وضعیت خود را نگه می دارند · امکانات زیاد و زیر ساخت قدرتمند · دیدگاه جدیدی از برنامه نویسی شی گرا |
مصرف زیاد پهنای باند کدهای HTML غیر بهینه سخن بودن تست کد |
2005(تاسیس اولین شرکت) |
Asp.Net Web Form 2.0 |
|
|
2007 (فعالیت به صورت حرفه ای) |
Asp.Net Ajax |
|
|
2008 (تغییر حوزه کاری شرکت ) |
Asp.Net Web Form 3.5 |
|
|
2009 (فعالیت در حوزه و شرکت جدید) |
Asp.Net MVC 1.0 |
|
|
2010 (فراهم کردن بستر و آموزش نیروها) |
Asp.Net Web Form 4.0 Asp.Net MVC 2.0 |
|
|
2011 (به دنبال ایجاد زیرساخت ) |
Asp.Net MVC 3.0
|
|
|
2012 (فراهم کردن بستری حرفه ای) |
Asp.Net MVC 4.0 Asp.Net Web Form 4.0 |
|
|
شد آنچه شد |