نظرات مطالب
استفاده از GitHub Actions برای Build و توزیع خودکار پروژه‌های NET Core.
یک نکته تکمیلی:
اگه در workflow خود توسط دستور dotnet nuget push   اقدام به پابلیش پکیج خود کردید و با خطای زیر مواجه شدید (که منجر به fail شدن workflow شما در github خواهد شد)
error: File does not exist (src\bin\Release\*.snupkg).
راه حل آن افزودن کد‌های زیر به فایل csproj. پروژه است
<PropertyGroup>
   ...
   <DebugSymbols>true</DebugSymbols>
   <IncludeSymbols>true</IncludeSymbols>
   <SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>
این دستور باعث میشه فایلی با پسوند snupkg. در که شامل symbol‌های پکیج شماست ساخته شود و در نتیجه خطای مذکور برطرف و عملیات workflow با موفقیت انجام شود.
نظرات مطالب
امن سازی برنامه‌های ASP.NET Core توسط IdentityServer 4x - قسمت دوم - ایجاد ساختار اولیه‌ی مثال این سری
- مثالی که در GitHub هست، در حقیقت آخرین نگارش موجود یا حاصل نهایی کل این سری است. بنابراین برای راه اندازی آن نیاز است قسمت آخر و تنظیم مجوز ssl آن‌را رعایت کنید تا بتوانید آن‌را اجرا کنید. خصوصا قسمت «تنظیم مجوز امضای توکن‌های IDP » آن + مطلب «اجبار به استفاده‌ی از HTTPS در حین توسعه‌ی برنامه‌های ASP.NET Core 2.1» را هم باید پیگیری کنید. نیاز هست مجوز SSL آزمایشی ASP.NET Core را به «Trusted Root Certification Authorities/Certificates» منتقل کنید که در آن مطلب توضیح داده شده‌است.  
- یا مراجعه کنید به لیست commits آن و در اینجا هر مرحله را جداگانه دریافت و اجرا کنید. هر کامیت متناظر با یک قسمت است.
نظرات مطالب
نحوه‌ی مشارکت در پروژه‌های GitHub به کمک Visual Studio
یک نکته‌ی تکمیلی: چگونه یک مخزن Fork شده‌ی Git را به روز رسانی کنیم؟

اگر پس از مدتی، مجددا نیاز به کار با مخزن Fork شده‌ی خود را داشته باشید، احتمالا این مخزن هم اکنون دیگر با مخزن اصلی که از آن Fork شده، هماهنگ نیست و قدیمی شده‌است. به همین جهت نیاز است در مخزن محلی خود (Clone ایی که از این Fork بر روی سیستم خود دارید)، این دستورات را صادر کنید تا هم این مخزن محلی و هم مخزن راه دور GitHub شما، هر دو با مخزن اصلی هماهنگ شوند:
git remote add upstream https://github.com/user/project_name.git
git pull upstream master
git push -f origin master
در این دستورات https://github.com/user/project_name.git به آدرس مخزن اصلی که از آن Fork را تهیه کرده‌اید، اشاره می‌کند.
نظرات مطالب
کار با یک مخزن کد GitHub‌ از طریق VSCode
یک نکته ، چنانچه در مرحله "ایجاد یک Clone از مخزن موجود GitHub توسط VSCode    " با خطای " it looks like git is not installed on your system   " یا خطای "error git.clone not found  " مواجه شدید مراحل زیر را انجام دهید:
  •   ctrl+shift+p   را فشرده و Setting را جستجو نمایید .
  •  در کادر باز شده User Settings را انتخاب کرده تا در چپ تنظیمات پیش فرض و در سمت راست تنظیمات کاربر نمایش داده شود.
  •  از لیست موجود  Git  را باز نمایید
  • در صورتی که مقدار  "git.path"  برابر با null   بود ، از منوی سمت راست آن را با مسیر مناسب مثلا "D:\\Programs\\Git\\bin\\git.exe   " جایگزین نمایید .
  • VSCode را ری استارت کنید.
نظرات مطالب
Asp.Net Identity #1
نکته‌ای رو خیلی‌ها به اون دقت نمی‌کنند و اون پایان توسعه‌ی نگارش 2x این کتابخانه هست. الان تمام همت و تلاش مایکروسافت بر روی نگارش 3 آن در GitHub هست به صورت سورس باز البته (قسمت commits و قسمت issues آن‌را بررسی کنید). یعنی اگر قصد شروع پروژه‌ای را دارید، شروع کردن با فناوری که دیگر پشتیبانی ندارد، اشتباه و اتلاف وقت هست.
Identity 2.0 is no longer under primary development. No new features will be added, only bugs will be considered
نظرات مطالب
ASP.NET MVC #11
- صفحه تعویض پسورد کاربر، چک باکس IsAdmin را ندارد. اما چون Model کامل کاربر در پشت صحنه آپدیت می‌شود، اگر با جعل صفحه یا درخواست ارسالی به سرور، اطلاعات IsAdmin هم ارسال شود، آنگاه Model binder که با model کامل User کار می‌کند، اطلاعات IsAdmin اضافی را هم دریافت کرده و پردازش می‌کند. بنابراین به نحوی باید سطح کلی در معرض عموم قرارگیری model را کاهش داد که روش‌های آن هم ذکر شد.
- در مورد نحوه انجام این حمله توضیحی نخواهم داد... فقط بدونید که سایت github چند وقت قبل بر همین اساس هک شد و سر و صدای زیادی هم به پا کرد: (^)
مطالب
تهیه فید از تغییرات SVN

کتابخانه‌ی iTextSharp 5.1.2 هفته‌ی قبل منتشر شده و ... من هر چقدر سایتی، بلاگی جایی را جستجو کردم که خلاصه‌ای از تغییرات انجام شده آن‌را گزارش دهد، چیزی نیافتم. ولی خوب، مطابق روال متداول کتابخانه‌های سورس باز، حداقل می‌توان به change log مرتبط با سورس کنترل آن‌ها مراجعه کرد. مثلا:


البته این هم خوب است ولی ای‌کاش می‌شد مثلا یک فید هم از این تغییرات تهیه کرد. یک سری از سایت‌های هاستینگ مثل CodePlex و GitHub یک چنین فیدهایی را دارند. اما به نظر SourceForge از این لحاظ اندکی ضعیف است.
سایت روسی زیر می‌تواند با گرفتن آدرس یک مخزن کد SVN (برای مثال: https://itextsharp.svn.sourceforge.net/svnroot/itextsharp/trunk/ ) یک فید RSS از آن تهیه کند:


در همین راستا برنامه‌ی CommitMonitor هم موجود است.



مطالب
تهیه فید از تغییرات SVN

کتابخانه‌ی iTextSharp 1.5.2 هفته‌ی قبل منتشر شده و ... من هر چقدر سایتی، بلاگی جایی را جستجو کردم که خلاصه‌ای از تغییرات انجام شده آن‌را گزارش دهد، چیزی نیافتم. ولی خوب، مطابق روال متداول کتابخانه‌های سورس باز، حداقل می‌توان به change log مرتبط با سورس کنترل آن‌ها مراجعه کرد. مثلا:


البته این هم خوب است ولی ای‌کاش می‌شد مثلا یک فید هم از این تغییرات تهیه کرد. یک سری از سایت‌های هاستینگ مثل CodePlex و GitHub یک چنین فیدهایی را دارند. اما به نظر SourceForge از این لحاظ اندکی ضعیف است.
سایت روسی زیر می‌تواند با گرفتن آدرس یک مخزن کد SVN (برای مثال: https://itextsharp.svn.sourceforge.net/svnroot/itextsharp/trunk/ ) یک فید RSS از آن تهیه کند:


در همین راستا برنامه‌ی CommitMonitor هم موجود است.



مطالب
آدرس جدید مخزن کد NHibernate
تیم NHibernate از سیستم SVN سورس فورج، به سورس کنترل Git در سایت GitHub نقل مکان کرده است: [^]
همچنین Issue tracker آن‌ها هم مدتی است که به آدرس جدیدی منتقل شده است: [^]
و ... اگر علاقمند باشید که از آخرین تغییرات این کتابخانه آگاه شوید، زیاد به دنبال وبلاگ‌ یا سایت خاصی نگردید. روش متداول کار با کتابخانه‌های سورس باز، دنبال کردن change log ارسالی آن‌ها به سیستم‌های سورس کنترل است (همان متنی که حین commit ارسال می‌کنند). برای مثال جهت آگاه شدن از آخرین تغییرات NHibernate مشترک این فید شوید: [^]






بازخوردهای پروژه‌ها
خطای Provider
سلام مهندس
هنگام اجرای پروژه برای اولین بار با خطای زیر مواجه میشم لطفا راهنمایی بفرمائید
An exception of type 'System.Data.ProviderIncompatibleException' occurred in System.Data.Entity.dll but was not handled in user code


   at System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   at StackExchange.Profiling.Data.ProfiledDbProviderServices.GetDbProviderManifestToken(DbConnection connection) in c:\Code\github\SamSaffron\MiniProfiler\StackExchange.Profiling.EntityFramework\ProfiledDbProviderServices.cs:line 67
   at System.Data.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)