نظرات مطالب
ایجاد قابلیت قالب یا Theme در ASP.NET MVC
با تشکر از مطلب جاری
فقط یه نکته و نظر کوچک
بهتر هست از این قبیل اطلاعات (مثل نام تم) در یک مکان دیگر ذخیره شوند. چون بهتر است  اطلاعاتی که در وب کانفیگ ذخیره می‌شوند عناصری باشند که به راحتی تغییر نمی‌کنند. چون تغییر مقدار در وب کانفیگ باعث ریست شدن یا راه اندازی مجدد سایت می‌شود و هم اینکه سشن‌های جاری را از بین میبرد. مثلا فرض کنید اگر ورود کاربران بر اساس سشن باشد تمام کاربرهای لاگین شده از سایت بیرون انداخته می‌شود یا اینکه اگر کاربری منتظر پاسخ از سرور باشد به دلیل راه اندازی مجدد به مشکل بر میخورد.
اشتراک‌ها
شبیه سازی OAuth2 با Dev Proxy
Achieve more with APIs in your organization. We’re excited to share with you a new version of Dev Proxy that helps you to build robust apps connected to APIs.
In this version:
  • Easily simulate authentication and authorization using API keys and OAuth2
  • Quickly generate JWT tokens for testing
  • …and more!

شبیه سازی OAuth2 با Dev Proxy
مطالب
نحوه راه اندازی مجدد یک دیتابیس اس کیوال سرور پس از پر شدن هارد دیسک

امروز یکی از برنامه‌ها (برنامه ASP.Net) با مشکل زیر مواجه شده بود:

پیغام خطا:
اتصال با سرور اس کیوال قطع شده است. لطفا با مسئول مربوطه هماهنگ نمائید.
SQLErr:4060

این خطا به معنای عدم امکان باز کردن دیتابیس است.

در طی این مدت با موارد زیادی از این دست (مشکلات مختلف عدم امکان برقراری ارتباط با اس کیوال سرور) برخورد داشتم که خلاصه تمام آن‌ها تابع زیر شده است:
public void CheckSQLServerStat(Exception ex)
{
try
{
SqlException ar = (SqlException) ex;
switch (ar.Number)
{
case 2:
case 11:
case 17:
case 40:
case 4060:
case 1326:
case 17142:
case 18456:
HttpContext.Current.Response.Write("<br/>" + "اتصال با سرور اس کیوال قطع شده است. لطفا با مسئول مربوطه هماهنگ نمائید." + "<br/> SQLErr:" + ar.Number + "<br/>");
break;
}
}catch{}
}

هنگام رخ‌دادن یک خطا (در توابعی که با اس کیوال سرور کار می‌کنند)، exception حاصل را به این تابع پاس کرده و خطای حاصل را به صورت مختصر و مفید به کاربر نشان می‌دهم. کاربر متوجه می‌شود که یک مشکل اساسی در سیستم رخ داده است. برنامه نویس هم با جستجو در مورد شماره خطا می‌تواند مشکل یابی کند. تابع Response.Write هم بالاتر از هر المان دیگری در صفحه، این خطا را به شکل واضحی نمایش می‌دهد. (کلا ریخت صفحه را به هم می‌ریزد که از لحاظ روانی لازم است! چون عملا در این حالت سیستم از کار افتاده است)

به management studio اس کیوال سرور که مراجعه کردم، علامت خاصی کنار نام دیتابیس نبود فقط برخلاف سایر دیتابیس‌ها که آیکون + مربوط به باز شدن tree آن وجود دارد، این یک مورد آن‌را نداشت. بر روی نام دیتابیس کلیک راست کردم و انتخاب خواص، خطای زیر نمایش داده شد:
------------------------------
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
Database 'dbName' cannot be opened due to inaccessible files or insufficient memory or disk space. See the SQL Server errorlog for details. (Microsoft SQL Server, Error: 945)
------------------------------

بله! دیتابیس قابل باز شدن نبود چون درایو مربوطه پر شده بود. بعد از خالی کردن درایو و باز کردن فضای لازم، باز هم دیتابیس به حالت اجرایی و قابل استفاده برنگشت. یک راه این است که کل سرویس مربوط به اس کیوال سرور را استاپ و استارت کرد. که البته این مورد سبب قطع ارتباط کل مجموعه می‌شود. یا راه دیگر اجرای چند سطر زیر است که دیتابیس را مجددا راه اندازی خواهد کرد (بدون نیاز به ری استارت سرویس)

use master;
alter database dbName set OFFLINE;
alter database dbName set online;

به این صورت دیتابیس مربوطه به حالت عادی بازگشت و قابل استفاده شد.

اشتراک‌ها
نقص در NET Core 2.1. پشتیبانی نسخه 2.0 به تاخیر افتاد

Microsoft has announced that the .NET Core 2.0 will be considered "end of life" and thus no longer supported as of October 1, 2018.  .NET Core 2.0 is considered a non-LTS release, and as such Microsoft only commits its support for three months after a successor has been released.  In this case, with .NET Core 2.1 having been released May 31, .NET Core 2.0’s end has come. 

نقص در NET Core 2.1. پشتیبانی نسخه 2.0 به تاخیر افتاد
نظرات مطالب
امن سازی برنامه‌های ASP.NET Core توسط IdentityServer 4x - قسمت دهم- ذخیره سازی اطلاعات کاربران IDP در بانک اطلاعاتی
- Identity server یک محصول کاملا مجزای از ASP.NET Core Identity است و توسط تیم دیگری خارج از مایکروسافت توسعه داده می‌شود و این دو ارتباطی به هم ندارند.
- هرچند امکان استفاده‌ی از ASP.NET Core Identity برای مدیریت کاربران Identity server هم وجود دارد.
- کاری که در این سری انجام شده، ابتدا در «قسمت چهارم - نصب و راه اندازی IdentityServer» فایل‌های Quick Start UI را به پروژه‌ی IDP اضافه کردیم (یعنی دقیقا از کدهای اصلی تیم Identity server استفاده شده). بعد در این قسمت، سایر کدهای اصلی بسته‌ی EF Core آن‌را (^ و ^) به پروژه اضافه و سفارشی سازی کرده و در قسمت‌های دیگر، این کدها را تکمیل کرده‌ایم. بنابراین در این سری از کدهای استاندارد خود  Identity server استفاده شده و سپس توسعه‌ی بیشتری پیدا کرده‌اند. برای نمونه کلاس‌های موجودیت‌های مثال این سری، از اینجا تامین شده‌اند.
اشتراک‌ها
بررسی imageهای مختلف NET. در Docker

.NET and .NET Core (and Windows!) have been getting better and better with Docker. I run Docker for Windows as it supports both Linux Containers and Windows Containers. They have both a Stable and Edge channel. The Edge (Beta) channel is regularly updated and, as a rule, gets better and better in the year I've been running it. 

بررسی imageهای مختلف NET. در Docker