اشتراک‌ها
معرفی کتابخانه‌ی iTextSharp.LGPLv2.Core

iTextSharp تا نگارش 4.6.1 آن با مجوز LGPL ارائه شد و پس از آن بود که مجوز آن به AGPL تجاری تغییر کرد. به همین جهت کسانیکه نمی‌خواهند از مجوز AGPL آن استفاده کنند، هنوز با نگارش 4.6.1 آن کار می‌کنند. کتابخانه‌ی iTextSharp.LGPLv2.Core حاصل انتقال کدهای این نگارش ویژه به NET Core. است.

معرفی کتابخانه‌ی iTextSharp.LGPLv2.Core
نظرات مطالب
شروع به کار با EF Core 1.0 - قسمت 2 - به روز رسانی ساختار بانک اطلاعاتی
یک نکته‌ی تکمیلی
برای نصب آخرین نگارش 3، می‌توان از * بجای ذکر نگارش دقیق استفاده کرد:
dotnet tool install --global dotnet-ef --version 3.0.0-*
و همچنین برای به روز رسانی به آخرین نگارش 3:
dotnet tool update --global dotnet-ef --version 3.0.0-*
نظرات مطالب
مبانی TypeScript؛ تنظیمات TypeScript در ویژوال استودیو
- TypeScript نگارش 2.0.3 منتشر شد
- اطلاعات بیشتر

پس از نصب TypeScript 2.0 برای ویژوال استودیو و همچنین NodeJS
npm install -g typescript@2.0
- ابتدا شماره نگارش ابزارهای آن در فایل csproj باید اصلاح شود:
<TypeScriptToolsVersion>2.0</TypeScriptToolsVersion>
- سپس در Resharper هم نیاز است این نگارش جدید را انتخاب کنید:

نظرات مطالب
نکته‌ای تکمیلی در مورد مجوز استفاده از iTextSharp
یک نکته‌ی تکمیلی
iTextSharp تا نگارش 4.6.1 آن با مجوز LGPL ارائه شد و پس از آن بود که مجوز آن به AGPL تجاری تغییر کرد. به همین جهت کسانیکه نمی‌خواهند از مجوز AGPL آن استفاده کنند، هنوز با نگارش 4.6.1 آن کار می‌کنند. کتابخانه‌ی iTextSharp.LGPLv2.Core حاصل انتقال کدهای این نگارش ویژه به NET Core. است. 
نظرات مطالب
نصب Mono 3.0 بر روی Ubuntu
اینکار رو انجام ندید. نصب MonoDevelop از طریق مرکز نرم افزار آن یا صدور فرمان sudo apt-get install monodevelop نگارش 3 این برنامه را نصب خواهد کرد (نگارش جاری آن تا این تاریخ 4 است) و همچنین مونوی قدیمی را هم به اجبار اضافه می‌کند (مونوی نگارش 2).
نظرات مطالب
EF Code First #4
شماره نگارش EF با شماره نگارش دات نت یکی نیست و مدتی هست که برای انتشار ارائه‌های منظم و در فواصل زمانی کمتر این سیاست رو در پیش گرفتن. EF 4.3 برای مثال مبتنی بر دات نت 4 است و نه دات نت 4 و نیم که در این زمان در نگارش نهایی قرار ندارد.
پاسخ به بازخورد‌های پروژه‌ها
خطا هنگام ایجاد هدر سفارشی با html
- نگارش 1.4 مربوط به 4 سال قبل است. آخرین نگارش آن که 2.9.2 است را نصب کنید.
- در نگارش جدید بجای HtmlHeader از XHtmlHeader استفاده کنید.
- برای مشاهده‌ی کامل stack trace، گزارش را در حالت دیباگ اجرا کنید:
.Generate(data => ..., ..., debugMode: true);
مطالب
C# 8.0 - پیشنیاز و روش راه اندازی
پیشنیاز کار با C# 8.0

هرچند بسیاری از قابلیت‌های C# 8.0 در خود کامپایلر #C پیاده سازی شده‌اند، اما برای مثال قابلیتی مانند «پیاده سازی پیش‌فرض اینترفیس‌ها» نیاز به یک runtime جدید دارد که به همراه NET Core 3.0. ارائه می‌شود. بنابراین NET Full 4x. شاهد پیاده سازی C# 8.0 نخواهد بود. همچنین یک سری از قابلیت‌های C# 8.0 وابسته‌ی به NET Standard 2.1. و  netcoreapp3.0  هستند؛ مانند نوع‌های جدید System.IAsyncDisposable و یا System.Range. به همین جهت است که برای کار با C# 8.0، حتما نیاز به نصب NET Core 3.0. نیز می‌باشد و به روز رسانی کامپایلر #C کافی نیست.


چه نگارش‌هایی از Visual Studio از NET Core 3.0. پشتیبانی می‌کنند؟

مطابق مستندات رسمی موجود، یک چنین جدولی در مورد نگارش‌های مختلف NET Core. و نگارش‌های ویژوال استودیوهایی از که از آن‌ها پشتیبانی می‌کنند، وجود دارد:

.NET Core SDK .NET Core Runtime Compatible Visual Studio MSBuild Notes
2.1.5nn 2.1 2017 15 Installed as part of VS 2017 version 15.9
2.1.6nn 2.1 2019 16 Installed as part of VS 2019
2.2.1nn 2.2 2017 15 Installed manually
2.2.2nn 2.2 2019 16 Installed as part of VS 2019
3.0.1nn 3.0 (Preview) 2019 16 Installed manually

بنابراین فقط VS 2019 است که قابلیت پشتیبانی از NET Core 3.0. را دارد. به همین جهت اگر قصد دارید با ویژوال استودیو کار کنید، نصب VS 2019 برای کار با C# 8.0 الزامی است.


فعالسازی C# 8.0 در ویژوال استودیو 2019

در زمان نگارش این مطلب، NET Core 3.0. در حالت پیش‌نمایش، ارائه شده‌است. به همین جهت جزء یکپارچه‌ی VS 2019 محسوب نشده و باید جداگانه نصب شود:


- برای این منظور ابتدا نیاز است آخرین نگارش NET Core 3.0 SDK. را دریافت و نصب کنید.
- سپس از منوی Tools | Options، گزینه‌ی Projects and Solutions را انتخاب و در ادامه گزینه‌ی Use previews of the .NET Core SDK را انتخاب کنید.
- پس از آن، این SDK جدید NET Core. به صورت زیر قابل انتخاب خواهد بود:


البته انتخاب شماره SDK صحیح به تنهایی برای کار با C# 8.0 کافی نیست؛ بلکه باید شماره‌ی زبان مورد استفاده را نیز صریحا انتخاب کرد:


برای اینکار بر روی پروژه کلیک راست کرده و گزینه‌ی Properties آن‌را انتخاب کنید. سپس در اینجا در برگه‌ی Build، بر روی دکمه‌ی Advanced کلیک کنید تا بتوان شماره نگارش زبان را مطابق تصویر فوق انتخاب کرد. در اینجا بجای C# 8.0 (beta)، گزینه‌ی unsupported preview را نیز می‌توانید انتخاب کنید.

یک نکته: خلاصه‌ی تمام این مراحل، منوها و تصاویر، همان تنظیمات فایل csproj است که در ادامه بررسی می‌کنیم.


فعالسازی C# 8.0 در VSCode

مدت‌ها است که برای کار با NET Core. نیازی به استفاده‌ی از نگارش کامل ویژوال استودیو نیست. همینقدر که VSCode را به همراه افزونه‌ی #C آن نصب کرده باشید، می‌توانید برنامه‌های مبتنی بر NET Core. را بر روی سیستم عامل‌های مختلفی که NET Core SDK. بر روی آن‌ها نصب شده‌است، توسعه دهید.
پشتیبانی ابتدایی از C# 8.0، با نگارش v1.18.0 افزونه‌ی #C مخصوص VSCode ارائه شد. بنابراین هم اکنون اگر آخرین نگارش آن‌را نصب کرده باشید، امکان کار با پروژه‌های NET Core 3.0 و C# 8.0 را نیز دارید.
بنابراین در اینجا به صورت خلاصه:
- ابتدا باید NET Core 3.0 SDK. را به صورت جداگانه‌ای دریافت و نصب کنید.
- سپس آخرین نگارش افزونه‌ی #C مخصوص VSCode را نیز نصب کنید.
- در آخر، یک پوشه‌ی جدید را ایجاد کرده و در خط فرمان دستور dotnet new console را صادر کنید. این دستور بر اساس آخرین شماره نگارش SDK نصب شده، یک پروژه‌ی جدید کنسول را ایجاد می‌کند که ساختار فایل csproj آن به صورت زیر است:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
  </PropertyGroup>
</Project>
همانطور که مشاهده می‌کنید، TargetFramework را به آخرین SDK نصب شده، تنظیم کرده‌است (معادل دومین تصویر این مطلب). مرحله‌ی بعد، تنظیم شماره نگارش زبان آن است. برای این منظور یکی از دو حالت زیر را می‌توان انتخاب کرد:
- یا معادل همان گزینه‌ی unsupported preview در تصویر سوم این مطلب:
<Project Sdk="Microsoft.NET.Sdk"> 
   <PropertyGroup> 
      <OutputType>Exe</OutputType> 
      <TargetFramework>netcoreapp3.0</TargetFramework> 
      <LangVersion>preview</LangVersion> 
   </PropertyGroup>
 </Project>
- و یا تعیین صریح شماره نگارش C# 8.0 (beta) به صورت زیر:
<Project Sdk="Microsoft.NET.Sdk"> 
   <PropertyGroup> 
      <OutputType>Exe</OutputType> 
      <TargetFramework>netcoreapp3.0</TargetFramework> 
      <LangVersion>8.0</LangVersion> 
   </PropertyGroup>
</Project>

یک نکته: در اینجا نمی‌توان LangVersion را به latest تنظیم کرد؛ چون C# 8.0 هنوز در مرحله‌ی بتا است. زمانیکه از مرحله‌ی بتا خارج شد، مقدار پیش‌فرض آن دقیقا latest خواهد بود و ذکر صریح آن غیر ضروری است. انتخاب latest در اینجا به latest minor version یا همان نگارش C# 7.3 فعلی (آخرین نگارش پایدار زبان #C در زمان نگارش این مطلب) اشاره می‌کند.



Rider و پشتیبانی از C# 8.0

Rider 2019.1 نیز به همراه پشتیبانی از C# 8.0 ارائه شده‌است و می‌تواند گزینه‌ی مطلوب دیگری برای توسعه‌ی برنامه‌های مبتنی بر NET Core. باشد.


نصب NET Core 3.0 SDK. و عدم اجرای برنامه‌های پیشین

یکی از مزایای کار با NET Core.، امکان نصب چندین نوع مختلف SDK آن، به موازت هم است؛ بدون اینکه بر روی یکدیگر تاثیری بگذارند. البته این نکته را باید درنظر داشت که برنامه‌های NET Core. بدون وجود فایل مخصوص global.json در پوشه‌ی ریشه‌ی آن‌ها، همواره از آخرین نگارش SDK نصب شده، برای اجرا استفاده خواهند کرد. اگر این مورد بر روی کار شما تاثیرگذار است، می‌توانید شماره SDK مورد استفاده‌ی برنامه‌ی خود را قفل کنید، تا SDKهای جدید نصب شده، به عنوان SDK پیش‌فرض برنامه‌های پیشین، انتخاب نشوند. بنابراین ابتدا لیست SDKهای نصب شده را با دستور زیر پیدا کنید:
> dotnet --list-sdks
سپس برای پروژه‌های قدیمی خود که فعلا قصد به روز رسانی آن‌ها را ندارید، یک فایل global.json را به صورت زیر‌، در ریشه‌ی پروژه تولید کنید:
> dotnet new globaljson --sdk-version 2.2.300
> type global.json
در اینجا 2.2.300 یکی از شماره‌هایی است که توسط دستور dotnet --list-sdks یافته‌اید و پروژه‌ی قبلی شما بر اساس آن کار می‌کند.
اشتراک‌ها
نمایش و آنالیز رکوردهای Elmah با قابلیت‌های فراوان
بسیاری از عزیزانی که با Elmah  کار کرده‌اند ، احتمالا زمانیکه تعداد رکورد‌ها زیاد می‌شود و بخواهند مورد خاصی را جستجو یا پیگیری کنند مجبورند خروجی اکسل رو فیلتر کنن که این کار زمان بر است. اگر تعداد رکورد‌ها زیاد باشد، باید از طریق خود جدول داخل دیتابیس رکورد مورد نظر خود را جستجو کنن. در این مطلب قصد دارم ابزاری که open source هست رو معرفی کنم که به کمک این ابزار به راحتی میتوانید خطای خاصی را جستجو کنید و حتی آماری از تعداد رکورد‌ها در بازه‌های زمانی مختلف داشته باشید. همچنین میتوانید با دخل و تصرف در کد این برنامه آن را به صورت دلخواه تغییر دهید.
برای دانلود سورس این برنامه به لینک زیر مراجعه کنید The ELMAH Log Analyzer 
 
نمایش و آنالیز رکوردهای Elmah با قابلیت‌های فراوان