آموزش ASP.NET MVC 4

moradaliyan

عضو جدید
The ADO.NET Entity Frame Work

The ADO.NET Entity Frame Work

EF یا اینتیتی فریم ورک یک نوع نگاشت یا تبدیل کننده است که به کمک تکنیک های برنامه نویسی ایجاد شده است و وظیفه اش تبدیل تایپ های ناشناس به نمونه های قابل فهم برای زبان برنامه نویسیست. این جمله را نوشتم تا بدین جا برسیم ما در سی شارپ یا ویژوال بیسیک نمی توانیم به راحتیه ، دسترسی به متد ها و متغییر ها به بانک اطلاعاتی دسترسی داشته باشیم بلکه باید روش هایی را برای انجام این کار یاد بگیریم یک روش دسترسی به بانک اطلاعاتی با ADO.NET است :
Data Provider در ADO.NET : مجموعه ای از کلاس های ADO.NET است که اجازه می دهد به بانک اطلاعاتی خاصی دستیابی داشته باشید ، دستورات T-SQL را اجرا کنید و اطلاعات را بازیابی کنید. در اصل Data Provider واسطی بین برنامه کاربردی و منبع داده است به شکل زیر توجه کنید :
ADO.jpg
با استفاده از کلاس های موجود Connection ، Command ، DataReader ، DataAdapter می توان با بانک اطلاعاتی مورد نظر ارتباط برقرار کرد و با ساخت نمونه هایی مختص دیتا بیس تازه به جایی برسیم که مثلا سی شارپ بتواند ارتباط معنی داری به کمک روش های معمول خودش با این ها برقرار کند. خوب زبان و تایپ دیتابیس با زبان و تایپ سی شارپ متفاوت است پس مجبوریم ارتباط را به سختی بین این دو برقرار کنیم. به هر حال اگر از زحمت بگذریم نوبت به رحمت یعنی Entity Frame Work می رسد کار EF این است که یک ارتباط معنا دار را بین زبان برنامه نویسی و دیتا بیس برقرار می کند و ما می توانیم با روش های معمول برنامه نویسی به دیتا بیس دسترسی داشته باشیم.
EF محتویات دیتابیس را به صورت کلاس های برنامه نویسی در اختیار کاربر قرار می دهد و کاربر می تواند به صورت مستقیم به آن ها دسترسی داشته باشد = Domain specific object

در بالا به صورت ناچیز در مورد EF صحبت کردیم برای آشنایی بیشتر رجوع کنید به :
مروری بر Entity Frame Work قسمت اول
توصیحات نوشته شد تا به کار با دیتا در MVC برسیم از سه راه می توانیم این کار را انجام دهیم :
1. Schema First
2. Model First
3. Code First
که در مقاله ی بعدی روش Code First را توصیح خواهیم داد.;)
 

moradaliyan

عضو جدید
استفاده از روش Code First در MVC

استفاده از روش Code First در MVC

زمانی که سخن از Code First زده می شود یعنی ابتدا باید سراغ کدنویسی برویم. زمانی که از طریق Entity Frame Work یک دیتا بیس را Import می کردیم ، Entity Frame Work جداول را به کلاس تبدیل می کرد حال می خواهیم بر عکس این کار را انجام دهیم یعنی ابتدا کلاس ها را ایجاد کنیم بعد جداول موجود در دیتا بیس را ، به عبارت دیگر از کلاس ها به جدول ها برسیم.

از این مرحله به بعد وارد قسمت های اساسی تر خواهیم شد به همین دلیل آموزش را در قالب یک پروژه پیش می بریم یک پروژه جدید ایجاد کنید به نام OdeToFood می خواهیم یک دیتا بیس به روش Code First برای پروژه ایجاد کنیم در این دیتا بیس می خواهیم دو جدول داشته باشیم که یکی مربوط به اطلاعات رستوران ها(Restaurant) و دیگری مربوط به بررسی وضعیت رستوران ها(RestaurantReviews) باشد.
سراغ فولدر Models رفته و یک کلاس به نام Restaurant با فیلد های زیر ایجاد نمایید :
کد:
public class Restaurant
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string City { get; set; }
        public string Country { get; set; }
        public ICollection<RestauranReview> Reviews { get; set; }
    }
فیلد آخر در کلاس Restaurant مربوط به Navigation Properties می باشد این فیلد برای ایجاد ارتباط بین دو جدول استفاده می شود.
داخل فولدر Models یک کلاس دیگر به نام RestaurantReviews با فیلد ها زیر ایجاد کنید :
کد:
public class RestauranReview
    {
        public int Id { get; set; }
        public int Rating { get; set; }
        public string Body { get; set; }
        public int RestaurantId { get; set; }
    }
فیلد RestaurantId به عنوان کلید خارجی جدول Restaurant مورد استفاده قرار می گیرد.
در مرحله بعد برای استفاده از Entity Frame Work یک کلاس به نام OdeToFoodDb مشتق شده از کلاس DbContext ایجاد می کنیم این کلاس قرار است نقش Context را در پروژه ایفا کند.کلاس را به صورت زیر ایجاد کنید :
کد:
public class OdeToFoodDb : DbContext
    {
        public DbSet<Restaurant> Restaurants { get; set; }
        public DbSet<RestauranReview> Reviews { get; set; }
    }
داخل یک کنترلر دلخواه به طور مثال Home رفته و بستر ارتباط با بانک اطلاعاتی را ایجاد کنید :
کد:
OdeToFoodDb _db = new OdeToFoodDb();
شما می توانید برای خالی کردن Context یا Clean کردن منابع مدیریت نشده در پایان هر پردازش از متد Dispose به صورت زیر استفاده کنید:
کد:
protected override void Dispose(bool disposing)
        {
            if (_db != null)
            {
                _db.Dispose();
            }
            base.Dispose(disposing);
        }
در ادامه می خواهیم با دیتا بیس کار کنیم در متد Index یک کوئری می نویسیم که اطلاعات رستوران ها را واکشی کند و سپس نتیجه را به ویو پاس می دهیم.
کد:
public ActionResult Index()
        {
            var model = _db.Restaurants.ToList();
            return View(model);
        }
خوب ویو Index مربوط به کنترلر Home را باز کنید تمام کد ها را پاک کنید می خواهیم به اطلاعات ارسال شده از کنترل دسترسی داشته باشیم برای این کار باید دیتا تایپ مورد نظر شناخته شود در بالای ویو این کار را به صورت زیر انجام می دهیم :
کد:
@model IEnumerable<OdeToFood.Models.Restaurant>
و با یک حلقه foreach ردیف ها را بیرون می کشیم :
کد:
@foreach (var item in Model)
{
    <div>
        <h4>@item.Name</h4>
        <div>@item.City,@item.Country</div>
        <hr/>
    </div>
}
پروژه را Build و سپس اجرا می کنیم به دلیل عدم وجود داده چیزی نمایش داده نمی شود در اصل دیتا بیس ساخته شده است ولی درون جدول Restaurants داده ای وجود ندارد که نمایش داده شود به صورت دستی چند ردیف در بانک وارد کنید و سپس پروژه را مجددا اجرا کنید برای دسترسی به دیتا بیس تصویر زیر را دنبال کنید:
localdb.jpg
اجرای پروژه پس از وارد کردن اطلاعات در دیتا بیس :
Rundatabase.jpg
در مقاله بعد Data Base Migration را بررسی خواهیم کرد.;)
 

moradaliyan

عضو جدید
Database Migrations در MVC

Database Migrations در MVC

ماجرا از این قرار است زمانی که شما یک دیتا بیس از روش Code First ایجاد کرده اید ، حال می خواهید تغییراتی در دیتا بیس بوجود آورید از EF Migrations استفاده می کنیم.
Migrations دو کار انجام می دهید:
1. اضافه کردن اطلاعات به دیتا بیس(seed)
2. ردگیری تغییرات اعمال شده به کلاس های EF و اعمال آن ها روی دیتا بیس(Sync)
اما چگونه و کجا این کار را انجام دهیم ؟
فایل مربوط به DataContext ، که از کلاس DbContext ارث می برد را باز می کنیم این همان فایلی است که پروپرتی هایی با خروجی DbSet دارد ، داخل این کلاس یک کانستراکتور می سازیم که از والدی ارث بری می کند که ورودی آن اسم Connection String مخصوص خودش می باشد :
کد:
public class OdeToFoodDb : DbContext
    {
        public OdeToFoodDb():base("name=DefaultConnection")
        {

        }
        public DbSet<Restaurant> Restaurants { get; set; }
        public DbSet<RestauranReview> Reviews { get; set; }
    }
name نام همان Connection String موجود در فایل Web.config موجود در Root پروژه می باشد.
در قدم بعدی سراغ فایل Web.config می رویم و تغییراتی بر روی آن اعمال می کنیم :
کد:
<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=OdeToFoodDb;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\OdeToFoodDb.mdf" providerName="System.Data.SqlClient" />
  </connectionStrings>
پروژه را اجرا کنید اطلاعاتی نمایش داده نخواهد شد اگر به فولدر App_Data مراجعه کنید خواهید دید که یک فایل جدید به نام OdeToFoodDb.mdf ایجاد شده است که خالی از دیتا می باشد به همین دلیل در زمان اجرا شما اطلاعاتی را مشاهده نکردید.
اما چگونه امتیاز Migrations را برای Context مورد نظر فعال کنیم؟
Package Manager Console را باز کنید (View/Other Windows/Package Manager Console) سپس عبارت زیر را بنویسید سپس دکمه زیر اینتر را بزنید:
کد:
PM> Enable-Migrations -ContextTypeName OdeToFoodDb
این خط یعنی ویژگی و امتیاز Migrations را برای کانتکستی که نامش OdeToFoodDb می باشد را فعال کن اگر کار را درست انجام داده باشید پیغام نمایش داده شده در تصویر زیر نمایش داده خواهد شد :
Migrations.jpg
انجام این عملیات بر روی پروژه منجر به تشکیل یک فولدر به نام Migrations و حداکثر 2 قایل می گردد.
1. فایل کانفیگ Configuration.cs
2. فایل مربوط به نحوه تبدیل طرح شماتیک سی شارپ به چداول دیتا بیس 201403191058244_InitialCreate.cs
فایل دوم قبل از عمل Migration اجرا می شود تا دیتا بیس ایجاد و موجود باشد.
اما فایل Configuration برای کنترل کردن Migrations می باشد اگر AutomaticMigrationsEnabled برابر False باشد به صورت پیش فرض EF هیچ تغییری بر روی دیتا بیس اعمال نمی کند اگر آن را در حالت True قرار دهیم یعنی به EF به صورت صریح گفته اید که می خواهید بر روی دیتا بیس تغییراتی اعمال کنید. اما کار متد Seed چیست ؟ کار این متد اضافه کردن تعدادی اطلاعات اولیه به جداول دیتا بیس است در حقیقت در هر بار آپدیت دیتا بیس متد Seed صدا زده خواهد شد.
فایل Configuration.cs را باز کنید و تغییرات زیر را درون آن اعمال کنید :
کد:
internal sealed class Configuration : DbMigrationsConfiguration<OdeToFood.Models.OdeToFoodDb>
    {
        public Configuration()
        {
            AutomaticMigrationsEnabled = true;
        }

        protected override void Seed(OdeToFood.Models.OdeToFoodDb context)
        {
            context.Restaurants.AddOrUpdate(r => r.Name,
                new Restaurant(){Name = "Night",City = "Tehran",Country = "Iran"},
                new Restaurant(){Name = "Gold",City = "Tehran",Country = "Iran"},
                new Restaurant()
                {
                    Name = "Silver",City = "Tehran",Country = "Iran",
                    Reviews = new List<RestauranReview>()
                    {
                        new RestauranReview(){Rating = 9,Body = "Great Food!"}
                    }
                });
        }
    }
در ادامه می خواهیم یک بار دیتا بیس را آپدیت کنیم تا تفییرات کلاس های EF بر روی دیتا بیس انجام شود در Console دستور زیر را می نویسیم و دکمه اینتر را می زنیم :
کد:
PM> Update-Database -verbose
پیغام زیر نمایش داده خواهد شد :
Update.jpg
پروژه را اجرا کنید به دلیل آپدیت کردن دیتا بیس این بار اطلاعات نمایش داده خواهند شد.
برای امتحان Migrations یک فیلد به کلاس RestaurantReview اضافه می کنیم :
کد:
public string ReviewerName { get; set; }
دستور زیر را در Console می نویسیم :
کد:
PM> Update-Database -verbose
همانطور که مشاهده خواهید کرد متوجه می شوید که این بار پیام های نمایش داده شده در دو خط آخر شبیه آپدیت قبلی نیست بلکه خط های زیر اضافه شده است :
کد:
Applying automatic migration: 201403191217477_AutomaticMigration.
ALTER TABLE [dbo].[RestauranReviews] ADD [ReviewerName] [nvarchar](max)
[Inserting migration history record]
خوب حالا در متد seed به صورت دستی به فیلد اضافه شده مقدار می دهیم و دوباره عملیات آپدیت را انجام می دهیم:
کد:
protected override void Seed(OdeToFood.Models.OdeToFoodDb context)
        {
            context.Restaurants.AddOrUpdate(r => r.Name,
                new Restaurant(){Name = "Night",City = "Tehran",Country = "Iran"},
                new Restaurant(){Name = "Gold",City = "Tehran",Country = "Iran"},
                new Restaurant()
                {
                    Name = "Silver",City = "Tehran",Country = "Iran",
                    Reviews = new List<RestauranReview>()
                    {
                        new RestauranReview(){Rating = 9,Body = "Great Food!",ReviewerName = "Morad Aliyan"}
                    }
                });
        }
 

moradaliyan

عضو جدید
استفاده از ViewModel در MVC

استفاده از ViewModel در MVC

تصور کنید شما می خواهید اطلاعات را از چندین جدول به ویو پاس دهید شاید ViewModel بهترین گزینه باشد ، با استفاده از ViewModel می توان از چندین موجودیت یک شی مستقل بسازیم و در یک View از آن استفاده کنیم. همچنین در مواقع مورد نیاز می توانید از Auto Mapper استفاده نمایید در آینده به این موضوع خواهیم پرداخت.
چگونه از ViewModel استفاده کنیم؟
کار را با یک مثال ادامه می دهیم فرض کنید در پروژه می خواهیم تعداد وضعیت های ثبت شده از یک رستوران را از جدول RestaurantReviews و مشخصات رستوران را از جدول Restaurant واکشی کنیم و داخل فیلد های یک ViewModel قرار دهیم و به View پاس دهیم.
قدم اول : داخل فولدر Models یک کلاس به نام RestaurantListViewModel با فیلد های زیر ایجاد ایجاد می کنیم:
کد:
public class RestaurantListViewModel
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
    public int CountOfReviews { get; set; }
}
قدم دوم : داخل کنترلر Home ، اکشن Index یک کوئری می نویسیم مشخصات هر رستوران به همراه تعداد وضعیت ثبت شده از هر رستوران را نمایش دهد :
کد:
public ActionResult Index()
{
    var model = from r in _db.Restaurants
        orderby r.Reviews.Average(reviews => reviews.Rating)
        select new RestaurantListViewModel()
        {
            Id = r.Id,
            Name = r.Name,
            City = r.City,
            Country = r.Country,
            CountOfReviews = r.Reviews.Count()
        };
    return View(model);
}
قدم سوم : باید داخل ویو تغییراتی را اعمال کنیم یعنی ViewModel را به ویو پاس دهیم پس ویو Index را به صورت زیر تغییر می دهیم :
کد:
@model IEnumerable<OdeToFood.Models.RestaurantListViewModel>
@foreach (var item in Model)
{
    <div>
        <h4>@item.Name</h4>
        <div>@item.City,@item.Country</div>
        <div>Reviews:@item.CountOfReviews</div>
        <hr/>
    </div>
}
در آخر باید به این نکته اشاره کرد که این مقاله یک آشنایی کلی در مورد ویو مدل بود برای آشنایی با جزئیات بیش تر از سایر منابع استفاده نمایید.;)
 

moradaliyan

عضو جدید
فیلتر کردن و جست و جو کردن بر اساس یک فیلد خاص

فیلتر کردن و جست و جو کردن بر اساس یک فیلد خاص

فرض کنید شما یکسری اطلاعات را به کاربر نمایش داده اید و به وی می خواهید این اجازه را بدهید تا در اطلاعات بر اساس یک فیلد جست و جو نماید این کار بسیار ساده انجام خواهد شد زمانی که فقط یک بار مثال زیر را انجام دهید :
همانطور که ملاحظه فرمودید ما اطلاعات مربوط به رستوران و تعداد وضعیت ثبت شده در مورد هریک را نمایش دادیم حال می خواهیم یک کوئری بنویسیک که نام رستوران را از ورودی دریافت و رستوران هایی که با حرف اول نام وارد شده شروع می شوند را نمایش دهد.
قدم اول : در ویو Index مربوط به کنترل Home یک فرم با متد GET ایجاد می کنیم و داخل فرم یک TextBox و Button قرار می دهیم به صورت زیر :
کد:
@model IEnumerable<OdeToFood.Models.RestaurantListViewModel>
<form method="GET">
    <input name="SearchTerm" type="search"/>
    <input type="submit" value="Search By Name"/>
</form>
@foreach (var item in Model)
{
    <div>
        <h4>@item.Name</h4>
        <div>@item.City,@item.Country</div>
        <div>Reviews:@item.CountOfReviews</div>
        <hr/>
    </div>
}
کد متد Index را نیز به شکل زیر می نویسیم یعنی متد باید یک پارامتر ورودی دریافت کند زمانی که تکست باکس حاوی مقدار بود بر اساس مقدار وارد شده جست و جو انجام شود و اگر مقداری نداشت کل اطلاعات مربوطه نمایش داده شود :
کد:
public ActionResult Index(string SearchTerm=null)
{
   
    var model = from r in _db.Restaurants
    where (SearchTerm == null || r.Name.StartsWith(SearchTerm))
    orderby r.Reviews.Average(reviews => reviews.Rating)
    select new RestaurantListViewModel()
        {
            Id = r.Id,
            Name = r.Name,
            City = r.City,
            Country = r.Country,
            CountOfReviews = r.Reviews.Count()
        };
    return View(model);
}
پروژه را اجرا می کنیم :
SearchInput.jpg
 

moradaliyan

عضو جدید
پیاده سازی تنظیم مجدد رمز ورود در MVC4 – قسمت اول

پیاده سازی تنظیم مجدد رمز ورود در MVC4 – قسمت اول

[h=4]قسمت اول – ایجاد یک برنامه MVC با استفاده از ایمیل موجود در پروفایل کاربر.[/h]
مراحل زیر نشان می دهد که چگونه می توانید ایمیل یا هر پارامتر دیگری را به User Profile با استفاده از Simple Membership اضافه کنید. این مسئله بخصوص در زمانی مفید خواهد بود که شما اطلاعات بیشتری را در مورد کاربران نیاز خواهید داشت. به عنوان مثال شما آدرس ایمیل ، شماره تلفن و ... را می خواهید در جدول پروفایل کاربران داشته باشید. در هر صورت ، موارد زیر باید به شما کمک کند تا نحوه ی اضافه کردن فیلد به جدول User Profile و ارسال لینک Reset کردن پسورد را درک کنید.

ادامه مقاله را می توانید با مراجعه به این آدرس مطالعه فرمایید.
 

moradaliyan

عضو جدید
پیاده سازی تنظیم مجدد رمز ورود در MVC4 – قسمت دوم

پیاده سازی تنظیم مجدد رمز ورود در MVC4 – قسمت دوم

در مقاله قبلی نحوه ی اضافه کردن آدرس ایمیل به User Profile را بررسی کردیم. قبل از پرداختن به ادامه کار شما باید پروژه ای که در
قسمت اول
ایجاد کردیم را داشته باشید.اما ادامه ی بحث در قسمت دوم ، مدلی توسعه یافته از حساب کاربری وجود دارد که برای اجازه ورود می بایست از آدرس ایمیل استفاده می شود. در قسمت 2 ، چگونگی استفاده از WebSecurity را یاد می گیریم. GeneratePasswordResetToken برای ایجاد یک رمز عبور جدید برای کاربر یا به عبارت دیگر تنظیم مجدد رمز عبور کاربر استفاده می شود. در حال حاضر رایج ترین روش برای بازیابی رمز عبور : دریافت یک آدرس ایمیل معتبر از کاربر (آدرس ایمیلی که با آن در سایت حساب کاربری ایجاد کرده باشد) و ارسال یک لینک برای تنطیم مجدد رمز عبور به ایمیل مورد نظر که کاربر با کلیک بر روی این لینک به صفحه ی تغییر رمز عبور هدایت شده و می تواند رمز عبور خود را تغییر دهد.
ادامه مقاله را می توانید در این سایت مشاهده نمایید.
 

moradaliyan

عضو جدید
پیاده سازی باینری Json در ASP.Net Web API2.1 با استفاده از MVC5

پیاده سازی باینری Json در ASP.Net Web API2.1 با استفاده از MVC5

همان طور که همه می دانیم Visual Studio 2013 با یک نسخه ی جدیدی از Web API پا به دنیای تکنولوژی گذاشت. نسخه ی جدید به روز رسانی شده Web API2.1 ، با انبوهی از ویژگی های جدید ، از جمله پشتیبانی از باینری Json را در خود جای داده است. در این مقاله چگونگی عملکرد و بکارگیری باینری Json را با استفاده از سرویس Web API2.1 آموزش می دهیم.چارچوب web API به شما برنامه نویسان وب اجازه می دهد با سرعت چشم گیری سرویس هایی را با استفاده از امکانات موجود مثل MVC ایجاد کنید. ارائه سرویس های انعطاف پذیری به سبک REST و بکاربردن داده هایی با فرمت های مختلف ، که جدید ترین آن پشتیبانی از فرمت Json Binary می باشد. این مقاله بر روی ایجاد یک Web API2.1 با استفاده از سرویس جدید BSON تمرکز دارد. ASP.Net Web API یک تکنولوژی نسبتا جدیدی از مایکروسافت است ، که ابتدا با Entity Frame Work 4.5 منتشر شد. این تکنولوژی اجازه می دهد تا وب سرویس فقط برای برقراری ارتباط با سرویس گیرنده های مختلف از فرمت های مختلفی مثل XML ، Json و OData استفاده کند. ASP.Net API2 در اکتبر سال 2013 با Visual Studio و به دنبال آن نسخه ی بروز شده یعنی ASP.Net API2.1 در ژانویه 2013 منتشر شد.
ادامه مقاله را می توانید در این سایت بخوانید.
 
  • Like
واکنش ها: RIG

moradaliyan

عضو جدید
چرا ASP.NET را به PHP و فریم ورک های آن ترجیح میدهیم؟

چرا ASP.NET را به PHP و فریم ورک های آن ترجیح میدهیم؟

شاید به عنوان یک ASP کار از شما سوال شود که چرا با وجود CMS های آماده مثل Joomla و Worpress و ... شما یک وب سایت را با استفاده از چارچوب MVC طراحی می کنید با خواندن این مقاله به خوبی می توانید یک پاسخ ایده آل به شخص مورد نظر بدهید.
با اینکه نگارنده برای پاسخ به این سوال دلایل کاملا شخصی دارد که دلایل قانع کننده ای به حساب نمی آید اما دست به کیبورد برده و کمی عقلانی مسئله را در مقاله زیر پیاده سازی کرده است! این مقاله را زمانی نوشتم که از این و آن میشنیدم که راحت جوملا و وردپرس را با ASP.NET MVC مقایسه میکنند و مزیت های آن را بر سر ماکروسافت میکوبند! مثل اینکه نوشتن با قلم خوشنویسی را با حروف چاپ شده توسط پرینتر مقایسه کنیم! معیار ما چیست؟ هنر است یا دسترسی یا سرعت یا چیزهای دیگر؟

یک مساله را همین اول روشن کنیم که مقایسه ASP.NET MVC با ابزارهای آماده مدیریت محتوا مثلا جوملا و وردپرس کار بیهوده ایست. مثل این است که آفیس را با C++ مقایسه کنیم!
فرض کنید شما یک برنامه نویس هستید و اتفاقا یک مغازه در محلتان دارید. ساندویچی محل از شما میخواهد که یک کاغذ که حاوی جمله زیر باشد برایش بسازید :
"سمبوسه تازه آبادانی"
شما یک حرفه ای هستید میتوانید با کمی فکر و به کمک C++ یک متن با حروف فوق و تحت فونت Titr تولید کنید و به کمک کلاس های مخصوص چاپگر در C++ آن را در اندازه ای دلخواه پرینت کنید. اینکار مثلا 2 ساعت زمان شما را خواهد گرفت. مسئول ساندویچی کمی از شما شاکیست که "چرا اینقدر ساده؟" شما منظورش را جویا میشوید؛ خب چیز خاصی نیست. وی یک کادر در اطراف متن میخواهد که گل و بلبل داشته باشد. کمی وقت گیر است اما شدنیست.
برای مطالعه مقاله بر روی این لینک کلیک کنید.
 
  • Like
واکنش ها: RIG

moradaliyan

عضو جدید
مدیریت جداول Simple Membership در MVC4 با ساختن مدل

مدیریت جداول Simple Membership در MVC4 با ساختن مدل

اگر شما برای ایجاد امنیت در پروژه خود از WebMatrix WebSecurity استفاده می کنید ، WebSecurity با یک کنترلی به نام SimpleMemberShipProvider در تماس است که دارای چندین لایه ی پیچیده است که در انتها وظیفه ذخیره کردن اطلاعات در دیتابیس را به عهده دارد. در حین کار در بعضی مواقع لازم است تا شما برای راحتی کار یا پیاده سازی کد نویسی مورد علاقه ی خود به جداول Simple Membership دسترسی داشته باشید در این مقاله چگونگی انجام این کار را بررسی خواهیم کرد.
Simple Membership در اصل به عنوان یک سیستم عضویت برای Web Matrix ایجاد شده است ، اما در حال حاضر توسط web developer ها در قالب پروژه ASP.Net از آن استفاده می شود. وب ماتریکس ابزاری است که توسط ماکروسافت برای ایجاد وب سایت ارائه شده است که می توان از تکنولوژی های موجود درون آن برای امنیت پروژه در MVC استفاده کرد. زمانی که شما در یک پروژه ASP.Net به همراه Entity Frame Work مشغول کار هستید ، در دسترس بودن جداول ایجاد شده برای Simple Membership یک امر بسیار خوب برای شما خواهد بود یعنی شما می توانید از این جداول در کنار سایر جداول موجود در پروژه به راحتی استفاده کنید ، بدون اینکه مشکلی برای پروژه شما ایجاد شود این جمله را برای این نوشتم که به صورت پیش فرض ، Simple Membership وجود جداول مورد نیاز برای اجرای خود را چک می کند در صورت عدم وجود خودش جداول را ایجاد می کند پس ایجاد مدل ها توسط شما در روند کار مشکلی ایجاد نخواهد کرد. در این مقاله به نحوه ی ایجاد این جداول با استفاده از Entity Frame Work و Migration خواهیم پرداخت.

برای مشاهده ادامه مقاله بر روی این لینک کلیک کنید.
 
  • Like
واکنش ها: RIG

moradaliyan

عضو جدید
آموزش ASP.Net Identity در MVC5

آموزش ASP.Net Identity در MVC5

اگر به دنبال یک آموزش کامل و کاربردی در مورد Identity هستید این ویدیوی آموزشی بهترین گزینه است.
آخرین تکنولوژی ماکروسافت برای مدیریت کاربران در ASP.NET به نام Identity است. در سال های اخیر برنامه نویسان دات نتی برای مدیریت کاربران از ASP.NET Membership استفاده می کردند ولی در Identity تحول اساسی در این تکنولوژی رخ داده است بطوری که میتوان گفت سیستم مدیریت کاربران فعلی ارتباط چندانی با سیستم قدیمی ندارد. محدودیت ها تا اندازه زیادی کاسته شده و برنامه نویس انعطاف پذیری و قابلیت های زیادی را به کمک Identity احساس خواهد کرد.دوره آموزشی ASP.NET Identity بر پایه MVC تهیه شده است و بطور کامل این تکنولوژی را برای علاقمندان بیان کرده است. پیش نیاز این دوره، آشنایی با مبانی ASP.NET MVC و همچنین EntityFramework است. اگر تا امروز تنها یک پروژه و آن هم دست و پا شکسته با MVC و EF تهیه کرده اید نگران نباشید. در این دوره سعی شده برخی مفاهیم ASP.NET MVC نیز توضیح داده شود.از دیگر ویژگی های این دوره، وجود توضیحات در مورد کاربرد Owin در ASP.NET MVC است که کمترین منابع در اینترنت را داراست. فصل اول در شش قسمت، اختصاصا به این موضوع پرداخته است.همچنین موضوع Claim نیز که در دوره های آموزشی و کتاب ها کمتر به آن پرداخته شده است در فصل آخر به طور کامل توضیح داده شده است.مباحثی که به عنوان مبانی از آن یاد میشود، مثل توابع و متدهای جنریک و همچنین Func ها در حدی که نیاز های مربوط به درک Identity را برطرف کنند، توضیح داده شده است. بخش های اختصاصی در مورد Seed و Migration در این دوره موجود است و ویدیوهای بخش Migration برای عموم قابل دسترسی است.سرفصل و محتوای این دوره بر اساس کتاب های مرتبط با MVC تنظیم شده است و از لحاظ آموزشی دارای منطق درست و مفیدی برای یادگیری است.
برای دانلود ویدیو های آموزش به این آدرس مراجعه کنید.
 

moradaliyan

عضو جدید
آموزش WEB API و SPA

آموزش WEB API و SPA

در این دوره آموزشی ویژگی های WebAPI توضیح داده شده است که یک فریم ورک تازه در پلتفرم Asp.NET محسوب میشود و به شما اجازه میدهد به سرعت و به سادگی یک وب سرویس ایجاد کنید و میتواند یک API برای کلاینت از نوع HTTP فراهم نمایید.

ویژگی Web API بر مبنای همان ساختار برنامه MVC Framework است اما نمی توان آن را بخشی از فریم ورک MVC دانست. در این دوره آموزشی پس از معرفی مقدماتی WebAPI سراغ SPA یا Single Page Application رفته ایم و ارتباط آن با وب سرویس ها را توضیح داده ایم. این آموزش بر اساس یک مثال و تکمیل آن طراحی شده است.

دوره آموزشی فوق برای افرادی تهیه شده که با ASP.NET MVC آشنایی دارند و همچنین نسبت به Jquery و جاوااسکریپت بیگانه نیستند.

برای دانلود ویدیو آموزش از این لینک استفاده کنید.
 

RIG

متخصص C#.net
با تشکر از اقای moradiyan که خیلی لطف کردن....
من مقداری در مورد mvc حرف میزنم ..
اینکه شما در مورد web api می خونید باید بگم web api برای ajax تماما طراحی شده و برای کار با اون هست که متدهای get put و.... رو شامل میشه. معمولا تو سایت ها واسه لاگین کردن ازش استفاده میکنن .. webapi یه کنترلر داره تو ویو هم با script ار تباط برقرار میکنیم و سپس ته اسکریپت یه done میگیریم تا بدونیم چی شد و ...
 

RIG

متخصص C#.net
من به نسبت برای کار با انک اطلاعات روش دیتابیس فرست رو بخاطر سرعت انجام کار نسبت به بفقیه ترجیح میدم چون راست کارش تو دستمه .. مثلا برای کار با dbfirst شما حتما باید validation ها رو از رو اسم property موجود تو کلاساتون باس بذارید که اگه روش dbfirst است و شما بخای update model کنی اطلاعاتت از دست میره .. که شما در این صورت باید از هر کلاس کلاس بسازی و ببری validation ها رو از اونجا بهره بگیری ...
روش برای بهترین حالت این کار وجودداره. یه جورایی من تا ته این کار رفتم
 

RIG

متخصص C#.net
از پارشیال ویو ها تو برنامه هاتون استفاده کنید ... در مورد پارشیال ویو ها اطلاعات کسب کنید. ...
render section چیست؟ خودتون برید دنبالش تا بهش برسید. باید بیشتر بدونید
 

moradaliyan

عضو جدید
آموزش ایجاد یک فروشگاه اینترنتی به کمک ASP.NET MVC5

آموزش ایجاد یک فروشگاه اینترنتی به کمک ASP.NET MVC5

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

moradaliyan

عضو جدید
آموزش MVC5 از سیر تا پیاز

آموزش MVC5 از سیر تا پیاز

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

moradaliyan

عضو جدید
دلیگیت ها و هر چیز مشکل مرتبط با آن در #C

دلیگیت ها و هر چیز مشکل مرتبط با آن در #C

در این دوره به Delegate ها پرداخته شده است. این دوره برای افرادی مناسب است که با سی شارپ و برنامه نویسی آشنایی دارند و می خواهند اطلاعات خود را گسترش دهند. کسانی که با Winform یا WPF کار می کنند حتما با رویداد ها(events) آشنایی دارند ، اما رویدادها از کجا آمده اند و چگونه کار می کنند؟ در این دوره به این سوالات بصورت کامل پاسخ داده شده است.
برای مشاهده جزئیات یر روی این لینک کلیک کنید.
 

RIG

متخصص C#.net
سایت
WWW.TakCode.Com
آموزش ویدیویی برنامه نویسی سایت با سی شارپ ، Kendo ui For Asp.NET MVC ، Bootstrap وSqlserver 2012 ...
برگزاری کلاس های آموزش برنامه نویسی در استان گیلان - با همکاری موسسه تیلار و آموزشگاه TakCode
 

فیلم شاپ

عضو جدید
وبسايت فيلم شاپ با هدف بالا بردن سطح دانش فني دانشجويان و علاقمندان رشته کامپيوتر شروع بکار کرد و اکنون با افتخار اعلام ميکينم که هر انجه از کامپيوتر و ديگر رشته ها نياز داشته باشيد را بصورت اموزش تصويري و پروژه محور و تقريبا رايگان در اين وبسايت مي توانيد پيدا کنيد. يار هميشگي شما در اموزش هاي فيلم شاپ،مرجع فيلم هاي اموزشي به زبان فارسي،پل ورود به بازار کار،يادگيري اسان،کاربردي و پروژه محور.با ما همراه باشيد،ادرس سايت:www.filmshopdl.zepo.ir
 

Similar threads

بالا