‫۵ سال قبل، یکشنبه ۲۴ شهریور ۱۳۹۸، ساعت ۰۰:۵۴
یکی از پیشنیازهای کار با سیستم‌های DevOps، دسترسی به یک CLI پیشرفته‌است. CLI مربوط به NET Full. برای کامپایل یک پروژه، چنین شکلی را دارد (و من بعید می‌دانم که 99 درصد توسعه دهندگان دانت، حتی یکبار از آن به صورت مستقیم استفاده کرده باشند). ایرادی هم به آن وارد نیست؛ چون طراحی اصلی آن به حدود سال‌های 2000 میلادی بر می‌گردد. اما برای NET Core. وضع فرق می‌کند. CLI پیشرفته‌ی آن هست که از ایجاد پروژه تا افزودن ارجاعات، ساخت و اجرا را به سادگی مدیریت می‌کند و همچنین چندسکویی است و سازگاری کاملی را با سیستم‌های DevOps جدید دارد. یک چنین CLI ایی برای Full .NET Framework وجود ندارد و در حد batch نویسی برای csc.exe است؛ چون ویژوال استودیو تا به امروز تمام پیچیدگی‌های آن‌را مدیریت کرده و نیازی به این CLI نبوده. اما در سایر سکوهای کاری این CLI هست که مدیریت تمام امور را انجام می‌دهد. حتی اگر بحث انتقال پروژه‌های WinForms و یا WPF به NET Core 3.0. مطرح هست، باز هم یکی از مهم‌ترین دلایل آن دسترسی به همین سیستم Build پیشرفته‌است. 
‫۵ سال قبل، پنجشنبه ۲۱ شهریور ۱۳۹۸، ساعت ۱۶:۰۷
خیر. زمان اجرای کدهای program.cs (نقطه‌ی آغازین برنامه‌ی وب)، متد StartUp.Configure خارج از context یک درخواست وب اجرا می‌شود (پیش از اینکه درخواستی پردازش شود). اما میان‌افزارهای ثبت شده‌ی در StartUp.Configure دسترسی به context دارند. اطلاعات بیشتر
‫۵ سال قبل، پنجشنبه ۲۱ شهریور ۱۳۹۸، ساعت ۱۵:۵۵
چند نکته‌ی تکمیلی:
- مخزن کد action نصب دات نت Core در اینجا است: « setup-dotnet »
- دستور ارسال nupkgها اگر به نمونه‌ی موجودی برخورد کند، با خطای 409 متوقف می‌شود (یعنی اگر سعی در ارسال مجدد یک nupkg به علت تغییری خاص، صورت گیرد). به همین جهت کل Build را به صورت شکست خورده معرفی می‌کند. قرار است پرچم skip-duplicate-- پس از ارائه‌ی نهایی NET Core 3.0. به دستور dotnet nuget push اضافه شود. به همین جهت فعلا اگر می‌خواهید نماد صفحه‌ی اول، پیام شکست خوردن را نمایش ندهد، دو work flow را ایجاد کنید؛ یکی برای build و یکی برای ارسال به نیوگت.
- نماد را به این صورت هم می‌توان نمایش داد:
<p align="left">  
  <a href="https://github.com/actions/setup-java">
     <img alt="GitHub Actions status" src="https://github.com/actions/setup-java/workflows/Main%20workflow/badge.svg">
  </a>
</p>
‫۵ سال قبل، پنجشنبه ۲۱ شهریور ۱۳۹۸، ساعت ۱۱:۵۴
دقیقا همان مثال IMessagesService است که در ابتدای متن بررسی شده:
public void Configure(
    IApplicationBuilder app,
    IHostingEnvironment env,
    IMessagesService messagesService)
متدهای async را هم در StartUp.Configure به صورت ()task.GetAwaiter().GetResult باید فراخوانی کرد.