نظرات مطالب
OutputCache در ASP.NET MVC
- با استفاده از jQuery که یک بحث سمت کاربر است، زمانیکه صفحه نمایش داده شد، یک درخواست Ajax ایی به اکشن متدی خاص، جهت به روز رسانی تعداد بار مشاهده ارسال کنید. به این روش client side tracking هم می‌گویند (کل اساس کار Google analytics به همین نحو است).
- روش دوم استفاده از Donut Caching است. در یک چنین حالتی، کد زیر مجاز است:
[LogThis]
[DonutOutputCache(Duration=5, Order=100)]
public ActionResult Index()
اطلاعات بیشتر
نظرات مطالب
سفارشی سازی عناصر صفحات پویای افزودن و ویرایش رکوردهای jqGrid در ASP.NET MVC
از تنظیمات hidden ستون‌ها استفاده کنید:
colModel:[
    {
       name:'providerUserId',
       index:'providerUserId', 
       width:100,
       editable:true, 
       editrules:{
           required:true, 
           edithidden:true
       }, 
       hidden:true,
       editoptions:{ 
          dataInit: function(element) { 
             $(element).attr("readonly", "readonly"); 
          } 
      }
},
//...
]
در اینجا فیلد فوق در گرید نمایش داده نمی‌شود (hidden:true)، در حین ویرایش نمایان خواهد شد (edithidden:true)، همچنین در قسمت dataInit (البته در صورت نیاز)، به صورت readonly تنظیم شده‌است.
نظرات مطالب
ایجاد جداول بهینه سازی شده برای حافظه در SQL Server 2014
با سلام و تشکر فراوان جهت این آموزش.
میشه لطفاً بررسی کنید چرا نتیجه نهایی برای من متفاوت شده، طوری که زمان جستجو برای جدول نرمال کمتره!
راستی زمان ورود اطلاعات (100 رکورد) شبیه به زمان‌های مثال شما است و من از یک هارد SSD Corsair استفاده میکنم.



ویرایش:
تست جدید با بیش از 11 میلیون رکورد و خاموش کردن فایروال کومودو و خاموش کردن windows defender
 

نظرات مطالب
نصب Mono 3.0 بر روی Ubuntu
- مجبور نیستید 100 درصد در لینوکس برنامه نویسی کنید. در ویندوز با VS.NET کار کنید. نتیجه قرار است در لینوکس اجرا شود یا هاست شود.
- نمی‌دونم. من اصلا مشتری دولتی ندارم. (ضمن اینکه به نظر خیلی‌ها اصل خبر رو درست نخوندند و بد تفسیر کردند)
- یک سری اما و اگر داره. اگر از API ویندوز استفاده نکرده باشید، اگر از WPF استفاده نکرده باشید برنامه شما به احتمال زیاد قابل اجرا و انتقال خواهد بود.
نظرات مطالب
NOSQL قسمت سوم

اگر مطالب مقدماتی‌تر رو مطالعه می‌کردید، می‌دید که اصلا هدف از بانک اطلاعاتی NoSQL این نیست که باهاش سایت معمولی درست کنند اون هم روی سرور اجاره‌ای با 100 مگ فضا. هدفش توزیع شده بودن در سرورهایی متعدد و یا با پراکندگی جغرافیایی بالا است.

نتیجه گیری؟ ابزار زده نباشید. اول مفاهیم رو مطالعه کنید. اول تئوری کار مهمه.

نظرات مطالب
مقایسه بین حلقه های تکرار (Lambda ForEach و for و foreach)
یک روش ساده : 
Stopwatch sw = Stopwatch.StartNew();
var ListOfNumber = new List<int>() { 100, 200, 300 , 400 , 500  };
for ( int i = 0 ; i < ListOfNumber.Count ; i++ )
{
       Console.WriteLine( ListOfNumber[i] );
}
sw.Stop();
Console.WriteLine("Total time (ms): {0}", (long) sw.ElapsedMilliseconds);

نظرات مطالب
مباحث تکمیلی مدل‌های خود ارجاع دهنده در EF Code first
با تشکر فراوان از پاسخ کامل جنابعالی.
مشکل من از اینجا شروع شد که با Json.Net خواستم نتیجه این کوئری را به Json تبدیل کنم، من دستور زیر را نوشتم، پس از اولین اجرا رکورد اول دو فیلد Body و Id را دارد که کاملاً درست است، اما رکورد بعدی که فرزند رکورد اول است شامل تمام فیلدهای جدول BlogComment و تمام جداول مرتبط با آن است.
ممنون از شما به خاطر صرف وقت گرانبها.
var list = context.BlogComment.Where(p => p.UserId == 100)
                .Select(p => p.Body, p.Id, p.Children)
                .ToList();


نظرات مطالب
EF Code First #5
آقای نصیری با سلام. من هر وقت برای بروزرسانی دیتابیس دستور Add-migration را در Package manager console وارد می‌کنیم ، همیشه در اسکریپت ایجاد شده من جدول reportparameter هم وجود دارد ، در حالیکه اصلاً تغییری در آن ایجاد نکردم.
namespace Dal.Ef.Migrations
{
using System;
using System.Data.Entity.Migrations;
public partial class AddActiveColumnToClassesTable : DbMigration
{
public override void Up()
{
CreateTable(
"dbo.ReportParameters",
c => new
{
Id = c.Int(nullable: false, identity: true),
CenterCode = c.String(maxLength: 10),
CenterTitle = c.String(maxLength: 100),
TermCode = c.String(maxLength: 10),
TermTitle = c.String(maxLength: 100),
MasulBarnamerizi = c.String(maxLength: 100),
ModirAmuzesh = c.String(maxLength: 100),
Term_Id = c.Int(nullable: false),
Center_Id = c.Int(nullable: false),
})
.PrimaryKey(t => t.Id)
.ForeignKey("dbo.Terms", t => t.Term_Id, cascadeDelete: true)
.ForeignKey("dbo.Centers", t => t.Center_Id, cascadeDelete: true)
.Index(t => t.Term_Id)
.Index(t => t.Center_Id);
AddColumn("dbo.Classes", "IsActive", c => c.Boolean(nullable: false));
}
public override void Down()
{
DropIndex("dbo.ReportParameters", new[] { "Center_Id" });
DropIndex("dbo.ReportParameters", new[] { "Term_Id" });
DropForeignKey("dbo.ReportParameters", "Center_Id", "dbo.Centers");
DropForeignKey("dbo.ReportParameters", "Term_Id", "dbo.Terms");
DropColumn("dbo.Classes", "IsActive");
            DropTable("dbo.ReportParameters");
        }
    }
}
در بالا فقط یک ستون به جدول classes ایجاد کردم ولی همیشه برای جدول reportParameter که در جدول نیز وجود دارد هم اسکریپت ایجاد میکند. 
البته من یکبار بعد از آنکه جدول reportParameter  را ایجاد کرده بودم ، دستی آن را از دیتابیس حذف کرده بودم. 
متشکرم.

نظرات مطالب
تفاوت انواع var و dynamic
تفاوت مهم دیگه‌ای که بین این دو وجود دارد این است که می‌توان نوع تعریف شده توسط dynamic را در حین کدنویسی تغییر داد اما اینکار برای var امکان پذیر نیست(با انتساب اول نوع برای متغیر درنظر گرفته می‌شود.برای مثال:
int k=100;
var data1=k;
dynamic data2=k;
data1="Hello World!"// خطای حین کامپایل به دلیل تغییر نوع
data2="Hello World!"//بدون خطا در زمان کامپایل و یا اجرا
نظرات مطالب
مرتب سازی رکوردها به صورت اتفاقی در Entity framework
این روش رو جداول حجیم سرعت رو میاره پایین تو محیط sql میشه از TABLESAMPLE استفاده کرد که متاسفانه معادلی براش تو linq نیست و...
آقای نصیری یه روش هم به این صورته
 SELECT * FROM Table1
  WHERE (ABS(CAST(
  (BINARY_CHECKSUM(*) *
  RAND()) as int)) % 100) < 10
 میخواستم بدونم این روش رو میشه به linq تبدیل کرد؟