مطالب
بالا بردن سرعت DbContext هنگام ثبت داده های زیاد
تشریح مسئله :شاید شما هم هنگام ثبت، ویرایش و حتی حذف داده‌های زیاد در Code First متوجه کاهش چشمگیر کارایی پروژه خود شده  باشید.(برای مثال ثبت 5000 داده یا بیشتر به صورت هم زمان).برای رفع مشکل بالا چه باید کرد؟

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

EntityFramework Code First هنگام کار با Poco Entities برای اینکه مشخص شود که چه داده هایی باید به دیتابیس  ارسال شود مکانیزمی به نام Detect Changed معرفی کرده است که وظیفه آن بررسی تفاوت‌های بین مقادیر خواص CurrentValue و OriginalValue هر Entity است که باعث افت چشمگیر سرعت هنگام اجرای عملیات CRUD می‌شود.
هنگامی که از یک Entity کوئری گرفته می‌شود یا از دستور Attach برای یک Entity استفاده می‌کنیم مقادیر مورد نظر در حافظه ذخیره می‌شوند. استفاده از هر کدام دستورات زیر DbContext را مجبور به فراخوانی الگوریتم Automatic Detect Changed می‌کند.

  • DbSet.Find
  • DbSet.Local
  • DbSet.Remove
  • DbSet.Add
  • DbSet.Attach
  • DbContext.SaveChanges
  • DbContext.GetValidationErrors
  • DbContext.Entry
  • DbChangeTracker.Entries 

البته Code First امکانی را فراهم کرده است که هنگام پیاده سازی عملیات CRUD  اگر تعداد داده‌های شرکت کننده زیاد است برای رفع مشکل کاهش سرعت بهتر است این رفتار را غیر فعال کنیم . به صورت زیر:

using (var context = new BookContext())
{
    try
    {
        context.Configuration.AutoDetectChangesEnabled = false;
 
        foreach (var book in aLotOfBooks)
        {
            context.Books.Add(book);
        }
    }
    finally
    {
        context.Configuration.AutoDetectChangesEnabled = true;
    }
در پایان هم وضعیت را به حالت قبل بر می‌گردانیم.
در مورد کاهش مصرف حافظه EF CodeFirst  هنگام واکشی داده‌های زیاد هم می‌تونید از این مقاله استفاده کنید.
مطالب
خلاصه‌ای از مبحث نمایش اطلاعات hierarchical در WPF

در این مطلب خلاصه‌ای را در مورد نحوه‌ی نمایش اطلاعات hierarchical (سلسله مراتبی، درختی) در WPF به همراه یک سری لینک مرتبط ملاحظه خواهید نمود.

کلاس زیر را در نظر بگیرید:
using System.Collections.Generic;

namespace WpfTests.Hierarchy.Raw.Model
{
public class Person
{
private readonly List<Person> _children = new List<Person>();
public IList<Person> Children
{
get { return _children; }
}

public string Name { get; set; }
}
}
و همچنین یک ObservableCollection ساخته شده از آن‌را با مقدار دهی اولیه:
using System.Collections.ObjectModel;

namespace WpfTests.Hierarchy.Raw.Model
{
public class People : ObservableCollection<Person>
{
public People()
{
this.Add(
new Person
{
Name = "P1",
Children =
{
new Person
{
Name="P2",
Children=
{
new Person
{
Name="P3",
Children=
{
new Person
{
Name="P4",
}
}
}
}
}
}
}
);
}
}
}
قصد داریم این اطلاعات را در یک TreeView نمایش دهیم.
روش صحیح Binding این نوع اطلاعات در WPF استفاده از HierarchicalDataTemplate است به صورت زیر :
<TreeView ItemsSource="{Binding People}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>


یک سری منبع آموزشی برای آشنایی بیشتر با HierarchicalDataTemplate
Hierarchical Databinding in WPF
Binding WPF Treeview and Objects
A TreeView, a HierarchicalDataTemplate, and a 2D collection
Non-recursive WPF TreeView controls

همچنین هنگام کار با بانک‌های اطلاعاتی:
- یک Extension method عالی قابل استفاده در LINQ to SQL و همچنین Entity framework به نام AsHierarchy
- مثالی دیگر از کاربرد LINQ to SQL برای این منظور
- و یا مثالی از ADO.NET و DataSets و مثالی دیگر

مطالب
خواندنی‌های 29 تیر
مطالب
مثال‌هایی در مورد استفاده از SQL Server 2005 Reporting Services
SQL Server 2005 Reporting Services راه حلی مبتنی بر سرور جهت گزارشگیری‌های جامع با قابلیت ارائه گزارش‌های paper-based ، ad hoc و Web-based است. (جهت آشنایی بیشتر می‌توان به مقاله "SQL Server Reporting Service چیست؟" آقای رمضانی مراجعه کرد)

اخیرا مجموعه‌ای مثال در مورد کار با Reporting Services ارائه شده است که از آدرس زیر قابل دریافت است:

این مجموعه شامل 7 بسته آموزشی و مثال‌های مرتبط می‌باشد:

SQL Server 2005 Integration Services Log Reports
SQL Server 2005 Report Pack for Microsoft Dynamics Axapta 3.0
SQL Server 2005 Report Pack for Microsoft Dynamics Navision 4.0
SQL Server 2005 Report Pack for Microsoft Dynamics Great Plains 8.0
SQL Server 2005 Report Pack for Microsoft Dynamics Great Plains 9.0
SQL Server 2005 Report Pack for Microsoft Internet Information Services (IIS)
SQL Server 2005 Report Pack for Financial Reporting


مطالب
لینک‌های هفته‌ی اول اسفند

وبلاگ‌ها ، سایت‌ها و مقالات ایرانی (داخل و خارج از ایران)

Visual Studio

ASP. Net

طراحی و توسعه وب

اس‌کیوال سرور

عمومی دات نت

ویندوز

متفرقه
مطالب
لینک‌های هفته اول آذر

وبلاگ‌ها و سایت‌های ایرانی


Visual Studio


ASP. Net


طراحی وب


اس‌کیوال سرور


به روز رسانی‌ها


سی‌شارپ


عمومی دات نت


PHP



متفرقه



مسیرراه‌ها
Git
بازخوردهای دوره
بوت استرپ (نگارش 3) چیست؟
- همانطور که عنوان شد، در سایت اصلی دریافت بوت استرپ، امکان سفارشی سازی و کار پویا با نگارش LESS آن وجود دارد. برای مثال قسمت تغییر پویای پیش فرض‌های navbar در اینجا
- اگر خودتان مستقیما می‌خواهید این موارد را تغییر دهید، کلیه فایل‌های LESS آن در مخزن اصلی کدهای بوت استرپ موجود هستند. در اینجا . برای نمونه فایل navbar.less آن.
اگر به فایل‌های less آن دقت کنید، تمام آن‌ها پارامتری هستند و هیچکدام دارای مقدار پیش فرضی نیستند. مقادیر پیش فرض مورد استفاده در فایل variables.less تعریف شده‌اند. برای تغییر کلی فایل CSS نهایی فقط کافی است که مقادیر این فایل را تغییر دهید.
فایل نهایی که سبب کامپایل تمام تغییرات خواهد شد، فایل bootstrap.less است.
- استفاده از فایل‌های LESS در نگارش‌های جدید VS.NET ساده‌است و به صورت توکار و خودکار، تغییرات را کامپایل کرده و فایل CSS نهایی را تولید می‌کند:


روی فایل bootstrap.less دوبار کلیک کنید (تمام فایل‌های پوشه less سورس بوت استرپ به VS.NET اضافه شده‌اند). اندکی صبر کنید تا کار کامپایل تمام شود. در صفحه‌ای که باز می‌شود، دو ستون قابل مشاهده است. ستون سمت چپ، فایل less اصلی است و ستون سمت راست، خروجی CSS کامپایل شده نهایی.
نظرات اشتراک‌ها
نقدی بر سامانۀ اتوماسیون اداری همکاران سیستم و نامۀ جوابیۀ شرکت
هرچند که هیچوقت نظر مثبتی در مورد سیستمهای همکاران سیستم نداشته ام اما با نظر شما در مورد این نقد موافقم. جمله "انگار سیستم بر اساس بی اعتمادی بین مدیران و کارشناسان طراحی شده است." در مورد مکانیزم دقیق جلوگیری از خطای کاربران و سطوح‌های مختلف کاربران نشان از یک نقد غیر کارشناسانه داشته باشد. در مورد وابستگی به برنامه‌های دیگر هم تقریبا همه سیستمهای اتوماسیون به برنامه هایی مانند Word و Acrobat و ... وابستگی دارند
در مورد باقی ماندن سرورهای قدیمی بعد از عملیات Convert هم باید عرض کنم که این یک اصله و یک باید. اگر سازمانی خلاف این عمل کند اشتباه کرده است. همیشه برای اطمینان از عملکرد صحیح و بررسی داده‌های انتقال داده شده مدتی سیستمهای قدیمی سرپا نگهداشته میشن.
و اما در جواب جمله "و نهایتا اینکه سیستم با اعتراض‌های مختلف کاربران در حال پیاده سازی می‌باشد." متاسفانه این واکنش طبیعی کارمندان ایرانی به تغییرات همیشگی است و باید اینو خدمت شما عرض کنم که بر خلاف دلیل اصلی نوشتن این مقاله که تنبلی شرکتهای قدیمی و بزرگ است در ایران مشکل اصلی تنبلی کاربران (بخوانید کارمندان) شرکتهاست که به خاطر این تنبلی در برابر تغییرات مقاومت می‌کنن. نمونه همین مقاومتها را در بسیاری از شرکتهای ایرانی دیده ام و گاها حتی باعث کندی فرایند مهاجرت به سیستم جدید و یا حتی ممانعت از سیستم جدید شده اند.
اشتراک‌ها
ویژگیهای نسخه 1.12 شیرپوینت فریم ورک SharePoint Framework (SPFx) V1.12


 تقریبا چهار روز پیش اواسط هفته گذشته ( در تاریخ 16 March )  مایکروسافت نسخه 1.12 شیرپوینت فریم ورک ( SPFx ) را منتشر کرد. نسخه تازه منتشر شده شامل برخی از تغییرات مربوط به generator و بعضی از تغییرات همانند سایر نسخه‌ها بود. (همانطور که بهتر میدانید generator همان تکنولوژی است که با آن سولوشن‌های شیرپوینت فریم ورک ایجاد میشوند ، با استفاده از yeoman ) . اما موضوع مهمی که در این نسخه که برای توسعه دهندگاه SharePoint Framework حائز اهمیت است، پشتیبانی از Node.js V12 است. این موضوع خبر بسیار خوبی برای توسعه دهنگان SPFx است چون از ماه آینده ( اواخر April ) نسخه Node.js V10 رسما پشتیبانی نخواهد شد.

البته ممکن است بسته به نوع سولوشنی که در SPFx v1.12 ایجاد می‌نمایید بتوانید بدون مشکل از node.js v14  استفاده کنید اما نسخه ای که به صورت غیر رسمی توصیه شده همان نسخه 12 نود جی اس است. خبر خوب‌تر اینکه انتظار می‌رود برای نسخه 1.13 شیرپوینت فریم ورک ( SharePoint Framework v.13 ) که از هفته‌های آینده )نهایتا ( در ماه آینده منتشر خواهد شد بتوان از آخرین نسخه node.js بدون محدودیت استفاده از ورژن‌های مختلف بدون مشکل استفاده نمود.

ویژگیهای نسخه 1.12 شیرپوینت فریم ورک SharePoint Framework (SPFx) V1.12