‫۲ سال و ۴ ماه قبل، شنبه ۳ اردیبهشت ۱۴۰۱، ساعت ۱۷:۴۷
یک نکته: experimentalEnableShadowCopy دات نت 6، در دات نت 7، دیگر experimental نیست و دات نت 7 از shadow copy جهت توزیع ساده‌تر برنامه‌های ASP.NET Core، بدون نیاز به offline کردن آن‌ها پشتیبانی می‌کند.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <remove name="aspNetCore"/>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified"/>
    </handlers>
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".logsstdout">
      <handlerSettings>
        <handlerSetting name="enableShadowCopy" value="true" />
        <!-- Ensure that the IIS ApplicationPool identity has permission to this directory -->
        <handlerSetting name="shadowCopyDirectory" value="../ShadowCopyDirectory/" />
      </handlerSettings>
    </aspNetCore>
  </system.webServer>
</configuration>
این سری را کامل مطالعه کنید. قسمت هشتم آن به این موضوع پرداخته. بدیهی است این claims یا از IDP (همان قسمت هشتم ذکر شده) و یا خصوصی‌تر به روش Identity core توکار خود دات نت قابل تامین است و منعی هم در مورد تعریف یا استفاده‌ی خصوصی از آن وجود ندارد.
‫۲ سال و ۴ ماه قبل، دوشنبه ۲۹ فروردین ۱۴۰۱، ساعت ۲۲:۳۲
یک نکته‌ی تکمیلی: لیست کردن تمام مسیریابی‌های یک برنامه‌ی ASP.NET Core

با اضافه شدن Minimal API, Controllers, Razor Pages, gRPC, Health checks به ASP.NET Core، اینبار جهت یافتن تمام مسیریابی‌های موجود در برنامه می‌توان از سرویس توکار EndpointDataSource استفاده کرد. فقط کافی است <IEnumerable<EndpointDataSource را از سیستم تزریق وابستگی‌های برنامه درخواست کنید تا لیست تمام endpoints موجود را ارائه دهد:
app.MapGet("/debug/routes", (IEnumerable<EndpointDataSource> endpointSources) =>
        string.Join("\n", endpointSources.SelectMany(source => source.Endpoints)));
‫۲ سال و ۴ ماه قبل، چهارشنبه ۲۴ فروردین ۱۴۰۱، ساعت ۱۴:۳۰
معادل این مطلب برای ASP.NET Core 6x
- روش Model binder دیگر با نگارش‌های جدیدتر ASP.NET Core کار نمی‌کند و همچنین محدودیت‌های زیادی هم مانند عدم پشتیبانی از پارامترهای [FromBody] را دارد؛ چون بکارگیری [FromBody]، استفاده‌ی از تمام Model binders سفارشی را لغو می‌کند.
- در حال حاضر، استفاده از روش Action filters توصیه می‌شود که به این نحو قابل ثبت است.
‫۲ سال و ۴ ماه قبل، سه‌شنبه ۲۳ فروردین ۱۴۰۱، ساعت ۲۲:۴۹
- هر درخواست ASP.NET Core، توسط یک ترد مدیریت می‌شود. بنابراین، هرچند کل برنامه‌ی وب، چندریسمانی است، اما به معنای به اشتراک گذاری اطلاعات آن درخواست خاص، با تردها و درخواست‌های دیگر نیست.
- Scoped بودن یک سرویس، فقط به معنای یکبار نمونه سازی آن در طول یک درخواست هست و هیچ معنای دیگری ندارد و هیچ ضمانت خاصی به همراه آن نیست.
- آیا می‌توان در طول یک درخواست، اطلاعات این سرویس Scoped را توسط سرویس‌های دیگر تغییر داد؟ بله. نمونه‌اش پیاده سازی الگوی واحد کار با Scoped تعریف کردن DbContext برنامه است. سرویس‌های مختلف، بر روی اطلاعات این یک نمونه از سرویس در دسترس، می‌توانند تاثیر گذار باشند و در آخر کار فقط یک تراکنش Commit شود.
- آیا اگر درون یک درخواست، آن یک نمونه از سرویس Scoped را به صورت چندریسمانی استفاده کنیم، thread-safe است؟ خیر. اطلاعات بیشتر.
‫۲ سال و ۴ ماه قبل، شنبه ۲۰ فروردین ۱۴۰۱، ساعت ۱۴:۴۱
یک نکته‌ی تکمیلی: چگونه یک پروژه یا پوشه‌ی خاصی را از ارث‌بری editorconfig. خارج کنیم؟

زمانیکه فایل editorconfig. در ریشه‌ی solution قرار می‌گیرد، تنظیمات آن به کل زیر پوشه‌های موجود نیز اعمال می‌شود. اگر می‌خواهید پوشه یا پروژه‌ی خاصی از حالت ارث‌بری این تنظیمات خارج شود، می‌توان یک سطر زیر را به editorconfig. جدید و خاص آن پوشه اضافه کرد:
# Remove the line below if you want to inherit .editorconfig settings from higher directories
root = true