نظرات مطالب
ASP.NET MVC #20
من یه viewmodel به صورت زیر درست کردم:
 public class viewmodel1
    {
        public model1 M1 { get; set; }
        public IEnumerable<model1> IEM1 { get; set; }
    }
این viewmodel رو تو view استفاده می‌کنم. از M1 برای گرفتن بازه گزارشگیری از کاربر و از IEM1 برای وب گرید، ولی به محض اجرای برنامه، اون قسمت که دارم وب گرید رو با IEM1،
 new میکنم خطای null میده.
نظرات مطالب
نحوه صحیح تولید Url در ASP.NET MVC
سلام؛ من توی پروژم 2 تا Area دارم.یک هلپر برای نمایش گالری هم دارم که توی اون هلپر از Url.Action استفاده میکنم.جالب اینجاست که این هلپر توی یک Area مسیر اکشن رو درست بر می‌گردونه ولی برای Area دومی که همون هلپر رو استفاده میکنم اسم اکشن (که Index هست) رو بر نمیگردونه.اینه :
Url.Action("Index", "ShowGallery", null, Request.Url.Schem)
نظرات مطالب
ایندکس منحصر به فرد با استفاده از Data Annotation در EF Code First
از چه دیتابیسی استفاده می‌کنید؟ اگر SQL Server است که تا قبل از نگارش 2008 آن چنین اجازه‌ای رو به شما نمی‌ده تا یک فیلد منحصربفرد نال پذیر داشته باشید. اگر 2008 به بعد است، باید ایندکس فیلتر شده برای اینکار تعریف کنید. مثلا:
create unique nonclustered index idx on dbo.DimCustomer(emailAddress)
where EmailAddress is not null;
اطلاعات بیشتر اینجا و اینجا
بر همین مبنا باید قسمت ADD CONSTRAINT متد ExecuteUniqueIndexes را در صورت نیاز بازنویسی کنید.
نظرات مطالب
مخفی کردن کوئری استرینگ‌ها در ASP.NET MVC توسط امکانات Routing
در همان مثال فوق اگر projectId تقدم دارد، آن‌را ابتدا ذکر کنید (در تعریف MapRoute ایی به نام IssueDetails که پیش از مسیریابی پیش فرض ذکر شده).
Details/{projectId}/{issueId}
بعد امضای متد Details هم باید بر همین اساس و ترتیب تغییر کند.
سپس اگر نمی‌خواهید یکی از پارامترها را ذکر کنید؛ پارامترهای این متد را nullable تعریف کنید. به این ترتیب با مقدار دهی null به issueId در ActionLink، خودبخود در لینک تولیدی نهایی ظاهر نخواهد شد.
نظرات مطالب
آغاز به کار با Twitter Bootstrap در ASP.NET MVC
با سلام.
در قسمت Bundling وقتی از کد شما استفاده میکنم تنها فقط Site.css را باندل میکند و سایر css‌ها باندل نمی‌شوند. وقتی کد زیر را کامنت کردم مشکل حل شد. 
 @BundleConfig.AddStyles("~/Content/css",
                            "~/Content/bootstrap.css",
                            "~/Content/Site.css")
...
    var existing = BundleTable.Bundles.GetBundleFor(virtualPath);
            //if (existing != null)
            //    return;
کامنت کردن این کد مشکلی ایجاد میکند؟
نظرات مطالب
رمزنگاری Connection String از طریق خط فرمان
یک سری بررسی سطح دسترسی و همچنین محافظت نشده بودن ابتدا باید انجام شود:
var config =  ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var provider = "RsaProtectedConfigurationProvider";
var connStrings = config.ConnectionStrings;
if (connStrings != null)
{
    if (!connStrings.SectionInformation.IsProtected) // اگر محافظت شده نبود
    {
        if (!connStrings.ElementInformation.IsLocked) // اگر از طرف هاست قفل نشده بود
        {
            // Protect the section.
            connStrings.SectionInformation.ProtectSection(provider);

            connStrings.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);
        }
    }
}
نظرات مطالب
آشنایی با TransactionScope
برای اجرای تراکنش در سیستم‌های با کاربر و حجم داده زیاد بهتر ه از امکانات تراکنش موجود در ORM‌ها استفاده کنید. برای مثال در Entity Framework می‌تونید از DBTransaction‌ها استفاده کنید یا در NHibernate از تراکنش موجود در Session  استفاده کنید. برای مثال در CodeFirst
  public void Save( TEntity entity )
        {
            DbTransaction transaction = null;
            try
            {
                transaction = this.Database.Connection.BeginTransaction();
                //عملیات مورد نظر
                transaction.Commit();
            }
            catch
            {
                transaction.Rollback();
            }
            finally
            {
                transaction.Dispose();
            }          
        }
البته در زمان مناسب در صورت نیاز یک پست رو به این مورد اختصاص خواهم داد.


نظرات مطالب
نحوه استفاده از ViewModel در ASP.NET MVC
من چندتایی سوال پیش اومد برام ::: چرا از نظر لایه بندی مورد داره ؟
جای کودوم مسائل ؟ viewmodel ؟
یعنی الان ذخیره سازی اطلاعات کجا باشه ؟ مگه نباید تو قسمت کنترلر اینکار انجام شه ؟ 
من سازنده‌ها رو حذف کردم و viewmodel  رو صدا زدم ولی بعد از تغییرات وقتی به متد پست فرستاده میشه همچنان مقدارش null  هست ... چرا ؟ :(
نظرات مطالب
EF Code First #12
با سلام 
من در حین اجرای نمونه کد‌های این مقاله در بخش MVC به خطای Value Cannot be null در کلاس
 public class StructureMapControllerFactory : DefaultControllerFactory
    {
        protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
        {
            return ObjectFactory.GetInstance(controllerType) as Controller;
        }
    }
مواجه شدم که با اضافه کردن : 
 routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
به متد Register Route برطرف شد.
نظرات مطالب
EF Code First #12
برای استفاده در شرایط واقعی:
    public class StructureMapControllerFactory : DefaultControllerFactory
    {
        protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
        {
            if (controllerType == null)
                throw new InvalidOperationException(string.Format("Page not found: {0}", requestContext.HttpContext.Request.Url.AbsoluteUri.ToString(CultureInfo.InvariantCulture)));
            return ObjectFactory.GetInstance(controllerType) as Controller;
        }
    }