اشتراک‌ها
پلاگین نوار منوی کناری (Sidebar) واکنشگرا

پروژه bootstrap-sidebar : پلاگین نوار منوی کناری (Sidebar) بر روی BootStap 3.0

اگر منوهای شما داخل یک نوار منو (menubar ) افقی، زیاد هستند یا شما احتیاج به نوار منوی کناری واکنشگرای سازگار با Bootstrap3 دارید، می‌توانید از این پلاگین برای نمایش لیست منوهای خودتان در صفحات واکنشگرای وب استفاده نمایید. 

نسخه‌ی نمایشی (دمو)

پلاگین نوار منوی کناری (Sidebar) واکنشگرا
نظرات مطالب
استفاده از پروایدر SQLite در Entity Framework 7

یک نکته‌ی تکمیلی: اگر از SQLite به همراه بسته‌ی Microsoft.EntityFrameworkCore.Sqlite استفاده می‌کنید ... موتور SQLite آن، کمی قدیمی است. برای به‌روز رسانی موتور خود SQLite، نیاز است بسته‌ی SQLitePCLRaw.bundle_e_sqlite3 را هم به لیست ارجاعات برنامه‌ی خود اضافه کنید (به صورت صریح). برای مثال نگارش 8.0.7 به همراه EF-Core هر چند ارجاعی را به SQLitePCLRaw.bundle_e_sqlite3 دارد، اما از نگارش 2.1.6 آن استفاده می‌کند که مربوط به سال قبل است.

نظرات مطالب
سفارشی سازی ASP.NET Core Identity - قسمت پنجم - سیاست‌های دسترسی پویا
وقتی از فیلتر ConstantPolicies در کنترل هایی که در یک area  مجزا قرار دارند (تعدادی از اکشن‌ها توسط ConstantPolicies مزین شده اند )  استفاده میشود ، اکشن‌ها توسط GetAllSecuredControllerActionsWithPolicy شناسایی نمی‌شوند   و در صفحه اعمال دسترسی پویا لیست نمی‌گردند ! لطفا در این مورد راهنمایی بفرمایید.
لازم به ذکر است مکانیزم دسترسی پویا در کنترل هایی که در area قرار نمی‌گیرند به درستی اجرا می‌شود 
نظرات مطالب
روش‌هایی برای بهبود قابلیت دیباگ بسته‌های NuGet
ممنون البته من منظور با VS بود نه VS Code و بلاخره مشکل رو پیدا کردم. ایراد این بود که Symbols‌ها توی VS لود نمیشد و علتش هم غیر فعال بودن Nuget Symbols Server بود (و جالب اینجاست که ظاهرا به صورت پیشفرض غیرفعاله!)

در اینجا میخوام تمام نکاتی که لازمه تا Source Link توی VS بدرستی کار بکنه رو لیست کنم

نظرات مطالب
کوئری نویسی در EF Core - قسمت هشتم - کوئری‌های بازگشتی
راه حل بهتر!
کتابخانه‌ی « linq2db » از CTEها و recursive CTE پشتیبانی می‌کند. می‌توان این کتابخانه را توسط « linq2db.EntityFrameworkCore » با EF-Core یکی کرد. برای کار با آن ابتدا نیاز است بسته‌ی نیوگت آن‌را نصب کنید:
dotnet add package linq2db.EntityFrameworkCore
سپس در ابتدای برنامه یکبار آ‌ن‌را فعال کنید:
LinqToDB.EntityFrameworkCore.LinqToDBForEFTools.Initialize();
LinqToDB.Data.DataConnection.TurnTraceSwitchOn();
پس از آن به صورت زیر می‌توان از CTEها در کوئری‌های معمولی EF-Core استفاده کرد. برای مثال:

راه حل مثال 1 با استفاده از یک recursive CTE
می‌خواهیم لیست IDهای parent و childها را توسط یک recursive CTE تولید کنیم. به همین جهت ابتدا مدل معادل آن‌را تهیه می‌کنیم:
public class MemberHierarchyCTE
{
   public int ChildId { set; get; }
   public int? ParentId { set; get; }
}
سپس CTE زیر، این لیست را تهیه می‌کند:
var memberHierarchyCte =
                    context.CreateLinqToDbContext().GetCte<MemberHierarchyCTE>(memberHierarchy =>
                    {
                        return
                            (
                                from member in context.Members
                                select new MemberHierarchyCTE
                                {
                                    ChildId = member.MemId,
                                    ParentId = member.RecommendedBy
                                }
                            )
                            .Concat
                            (
                                from member in context.Members
                                from hierarchy in memberHierarchy
                                            .InnerJoin(hierarchy => member.MemId == hierarchy.ParentId)
                                select new MemberHierarchyCTE
                                {
                                    ChildId = hierarchy.ChildId,
                                    ParentId = member.RecommendedBy
                                }
                            );
                    });
که به این صورت ترجمه خواهد شد:
WITH [memberHierarchy] ([ChildId], [ParentId])
AS
(
    SELECT
        [member_1].[MemId],
        [member_1].[RecommendedBy]
    FROM
        [Members] [member_1]
    UNION ALL
    SELECT
        [hierarchy_1].[ChildId],
        [member_2].[RecommendedBy]
    FROM
        [Members] [member_2]
            INNER JOIN [memberHierarchy] [hierarchy_1] ON [member_2].[MemId] = [hierarchy_1].[ParentId]
)
و با کوئری گرفتن از آن برای مثال می‌توان لیست والدهای id=27 را تولید کرد (همان مثال 1):


راه حل مثال 2 با استفاده از یک recursive CTE 
و یا می‌توان لیست فرزندان id=1 را با کوئری گرفتن از این CTE تولید کرد (همان مثال 2):

نظرات مطالب
React 16x - قسمت 16 - مسیریابی - بخش 2 - پارامترهای مسیریابی
- اگر path ذکر نشود، به عنوان مسیریابی پیش‌فرض (catch all) پردازش می‌شود:
<Switch>
    <Route exact path="/users" component={MyComponent} />
    <Route component={GenericNotFound} />
</Switch>
- و یا یک مسیریابی را برای آن، بر اساس مسیر جاری صفحه، در ابتدای لیست تعریف کنید:
<Route exact path="/current/page/path" component={NewComp}/>
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 15 - بررسی تغییرات Caching
- پروژه‌ای برای کش کردن نتایج حاصل از کوئری‌های EF Core که می‌تواند سرعت آن‌ها را تا 3 برابر افزایش دهد: « EFSecondLevelCache.Core »
- کش کردن قسمت نمایش لیست کاربران آنلاین و منوهای کنار صفحه در پروژه‌ی DNT Identity.
+ پروژه‌های SPA، حتما نیاز به ارتباط با سرور را دارند و در این حالت برای گزارشگیری‌ها می‌توان از کش سمت سرور و یا پروژه‌ی اولی که نامبرده شد، استفاده کرد.
نظرات مطالب
ارتقاء به ASP.NET Core 1.0 - قسمت 22 - توزیع برنامه توسط IIS
علت اینجا است که وابستگی‌های مورد استفاده‌ی قسمت‌های مختلف solution شما، از نگارش‌های مختلفی از بسته‌ی Microsoft.AspNetCore.App، استفاده می‌کنند. به همین جهت لیست بسته‌های پایه‌ای مانند *.Microsoft.AspNetCore را هم مشاهده می‌کنید که نباید حضور داشته باشند (چون توسط run-time store تامین می‌شوند؛ اگر ... تمام وابستگی‌های شما یک دست باشند). بنابراین اگر نکته‌ی «روش صحیح به روز رسانی وابستگی‌های پروژه‌های NET Core.» را رعایت کنید، خروجی DNT Identity فعلی، که مبتنی بر آخرین نگارش SDK موجود است، 41 فایل بیشتر ندارد:

نظرات مطالب
سفارشی سازی ASP.NET Core Identity - قسمت پنجم - سیاست‌های دسترسی پویا
- لیست صفحاتی را که کاربر به آن دسترسی دارد، پس از لاگین برای او ارسال کنید (یا به صورت یک آرایه که در سمت Angular کش شود یا به صورت Claims سفارشی داخل توکن JWT او؛ مانند Claims سفارشی نقش‌ها که هم اکنون موجود است).
- سپس توسط یک محافظ مسیر سفارشی، دسترسی‌ها را از این آرایه خوانده و اعمال کنید. برای نمونه محافظ مسیر سفارشی یاد شده، بر اساس Claims مربوط به نقش‌های کاربر که پس از لاگین به سمت کلاینت ارسال می‌شوند، دسترسی به مسیرها را کنترل می‌کند.
نظرات مطالب
ابزارهای سراسری در NET Core 2.1.
یک نکته‌ی تکمیلی: لیست ابزارهای سراسری پیش‌فرض NET Core 2.1. که نیازی به نصب مجدد ندارند
- Microsoft.DotNet.Watcher.Tools (aka dotnet-watch)
- Microsoft.EntityFrameworkCore.Tools.DotNet (aka dotnet-ef)
- Microsoft.Extensions.SecretManager.Tools (aka dotnet-user-secrets)
- Microsoft.Extensions.Caching.SqlConfig.Tools (aka dotnet-sql-cache)