اشتراکها
// <Name>Aggregate Type Complexity</Name> from t in Application.Types let aggregateTypeCC = t.MethodsAndContructors.Sum(m => m.CyclomaticComplexity / 10) let rawCC = t.MethodsAndContructors.Sum(m => m.CyclomaticComplexity) // optional optimization if not comparing rawCC // where aggregateCC >= 10 orderby aggregateTypeCC descending select new { t, aggregateTypeCC, rawCC }
اشتراکها
VisualSVN Server 3.3 منتشر شد
در صورت کار نکردن edit & continue:
از منوی Tools در ویژوال استدیو، Options را باز کنید و در قسمت جستجوی آن، عبارت Intellitrace را بنویسید و اگر چیزی پیدا شد، تیک Enable Intellitrace را بردارید تا غیر فعال شود. همچنین مجدد Suppress JIT optimization را جستجو کنید و تیک آن را بزنید تا فعال شود. همچنین اگه مشکل پابرجا موند، پروژههای Android/iOS را un load کرده و ویژوال استدیو را ببندید و باز کنید و مجدد تست کنید.
فقط برای یکبار از منوی Tools در ویژوال استدیو، Options را باز کنید و در قسمت جستجوی آن، عبارت Intellitrace را بنویسید و اگر چیزی پیدا شد، تیک Enable Intellitrace را بردارید تا غیر فعال شود. همچنین مجدد Suppress JIT optimization را جستجو کنید و تیک آن را بزنید تا فعال شود.
میشه این بخش رو بیشتر توضیح بدید برای چه منظور این کار رو میکنیم؟
نظرات مطالب
ASP.NET MVC #5
در مورد فعال کردن MvcBuildViews من وقتی این کارو انجام میدم با خطای زیر روبه رو میشم.
Error1The type or namespace name 'Optimization' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\temp\93647db0\578ae027\App_Web_krwrdmvd.0.cs26
اگر به میزان مصرف حافظه اولیهی برنامههای دات نت دقت کنیم، نسبت به مثلا یک برنامهی MFC چند برابر به نظر میرسند و ... این علت دارد:
زمانیکه یک برنامهی مبتنی بر دات نت اجرا میشود، ابتدا JIT compiler شروع به کار کرده و شروع به کامپایل برنامه میکند. این بارگزاری هم در همان پروسهی اصلی برنامه انجام میشود. به همین جهت میزان مصرف حافظهی برنامههای دات نت عموما بالا به نظر میرسد.
اکنون سؤال اینجا است که آیا می توان این حافظهای را که دیگر مورد استفاده نیست (و توسط JIT compiler اخذ شده) به سیستم بازگرداند و محاسبهی مجددی را در این مورد انجام داد. پاسخ به این سؤال را در متد ReEvaluateWorkingSet زیر میتوان مشاهده کرد:
using System;
using System.Diagnostics;
namespace Toolkit
{
public static class Memory
{
public static void ReEvaluateWorkingSet()
{
try
{
Process loProcess = Process.GetCurrentProcess();
//it doesn't matter what you set maxWorkingSet to
//setting it to any value apparently causes the working set to be re-evaluated and excess discarded
loProcess.MaxWorkingSet = (IntPtr)((int)loProcess.MaxWorkingSet + 1);
}
catch
{
//The above code requires Admin privileges.
//So it's important to trap exceptions in case you're running without admin rights.
}
}
}
}
در این متد ابتدا پروسه جاری دریافت شده و سپس MaxWorkingSet به یک عدد دلخواه تنظیم میشود. مهم نیست که این عدد چه چیزی باشد، زیرا این تنظیم سبب میشود که در پشت صحنه به شکل حساب شدهای حافظهای که مورد استفاده نیست به سیستم بازگردانده شود و سپس عددی که در task manager نمایش داده میشود، مجددا محاسبه گردد. همچنین باید دقت داشت که این کد تنها با دسترسی مدیریتی قابل اجرا است و به همین دلیل وجود این try/catch ضروری است.
نحوه استفاده از متد ReEvaluateWorkingSet در برنامههای WinForms :
فایل Program.cs را یافته و سپس در روال رویداد گردان Idle برنامه، متد ReEvaluateWorkingSet را فراخوانی کنید (مثلا هر زمان که برنامه minimized شد اجرا میشود):
//Program.cs
namespace MemUsage
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
//...
Application.Idle += applicationIdle;
}
static void applicationIdle(object sender, EventArgs e)
{
Memory.ReEvaluateWorkingSet();
}
}
}
نحوه استفاده از متد ReEvaluateWorkingSet در برنامههای WPF :
فایل App.xaml.cs را یافته و سپس در روال رویدادگردان Deactivated برنامه، متد ReEvaluateWorkingSet را فراخوانی کنید:
//App.xaml.cs
public App()
{
this.Deactivated += appDeactivated;
}
void appDeactivated(object sender, EventArgs e)
{
Memory.ReEvaluateWorkingSet();
}
تاثیر آن هم قابل ملاحظه است (حداقل از لحاظ روانی!). تست کنید!
این تمام کد برنامه است :
کتابخانه PersianDateTime را از نیوگت دریافت کردم .
ولی چیزی در گرید نمایش نمیدهد .
مدل برنامه هم :
سوال دیگه اینکه وقتی تبدیلی انجام نمیشود ، خروجی زیر را دارم :
حالا چطور از فیلدی که تاریخ را نمایش میدهد فقط آن را تبدیل به شمسی و نمایش دهد ؟ شبیه این 1365/02/02 ؟
تشکر
using System; using System.Linq; using System.Windows.Forms; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // این قسمت برای ورود اطلاعات به بانک است و با کمک کتابخانه پرژن دات نت تاریخ شمسی را به میلادی تبدیل و ذخیره میکنم using(var db = new h7Entities()) { var t = new test { ResponseDate = PersianDateTime.Parse(textBox1.Text).ToDateTime() }; db.test.Add(t); db.SaveChanges(); } } private void Form1_Load(object sender, EventArgs e) { // این قسمت هم فقط اطلاعات واکشی شده را در گرید نمایش میدهد . بدون هیچ شرطی ، یک سلکت ساده . . فقط از پرژن دانت نت برای تبدیل میلادی به شمسی کمک میگیرم using (var db = new h7Entities()) { dataGridView1.DataSource =(from t in db.test select new { Id= t.Id, time = new PersianDateTime(DateTime.Parse(t.ResponseDate.ToString())).ToString(PersianDateTimeFormat.DateShortTime) }).ToList(); } } } }
کتابخانه PersianDateTime را از نیوگت دریافت کردم .
ولی چیزی در گرید نمایش نمیدهد .
مدل برنامه هم :
public partial class test { public int Id { get; set; } public Nullable<System.DateTime> ResponseDate { get; set; } }
سوال دیگه اینکه وقتی تبدیلی انجام نمیشود ، خروجی زیر را دارم :
حالا چطور از فیلدی که تاریخ را نمایش میدهد فقط آن را تبدیل به شمسی و نمایش دهد ؟ شبیه این 1365/02/02 ؟
تشکر
ممنون البته من منظور با VS بود نه VS Code و بلاخره مشکل رو پیدا کردم. ایراد این بود که Symbolsها توی VS لود نمیشد و علتش هم غیر فعال بودن Nuget Symbols Server بود (و جالب اینجاست که ظاهرا به صورت پیشفرض غیرفعاله!)
در اینجا میخوام تمام نکاتی که لازمه تا Source Link توی VS بدرستی کار بکنه رو لیست کنم
نظرات مطالب
ASP.NET MVC #1
با تشکر از مطلب جالب آقای نصیری.
در مورد کتاب ها سایت رسمی asp بخش جالب http://www.asp.net/mvc/books رو داره که من کتاب
Professional ASP.NET MVC 3 (Wrox Programmer to Programmer) رو انتخاب کردم و ازشم راضیم .
در مورد مدارک هم می دونم که فعلا فقط توی امتحان Exam 70-515 برای مدرک TS: Web Applications Development with Microsoft .NET Framework 4 تنها 20 درصد از امتحان رو بحث mvc تشکیل میده . ولی اولا که این مدارک 2 سال پیش تنظیم شده و ثانیا که مدرک گرفتن آدم رو برنامه نویس خوب نمیکنه .
در مورد کتاب ها سایت رسمی asp بخش جالب http://www.asp.net/mvc/books رو داره که من کتاب
Professional ASP.NET MVC 3 (Wrox Programmer to Programmer) رو انتخاب کردم و ازشم راضیم .
در مورد مدارک هم می دونم که فعلا فقط توی امتحان Exam 70-515 برای مدرک TS: Web Applications Development with Microsoft .NET Framework 4 تنها 20 درصد از امتحان رو بحث mvc تشکیل میده . ولی اولا که این مدارک 2 سال پیش تنظیم شده و ثانیا که مدرک گرفتن آدم رو برنامه نویس خوب نمیکنه .