#Script is a simple, fast, highly versatile and embeddable scripting language for .NET Core and .NET Apps that utilizes a familiar JavaScript inspired expressive Syntax to enable dynamic scripting of .NET Apps via controlled access to pluggable methods and arguments within a sandbox environment - ensuring scripts are encapsulated and encourages the use of reusable and testable components where live environments can be easily re-created and simulated.
کتابخانه overscroll
ساخت بستههای نیوگت مخصوص NET Core.
در فایلهای csproj بجای ذکر post build event زیر:
<Target Name="PostcompileScript" AfterTargets="Build"> <Exec Command="dotnet pack --no-build --configuration $(Configuration)" /> </Target>
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netcoreapp1.1</TargetFramework> <Version>1.1.1</Version> <GeneratePackageOnBuild>True</GeneratePackageOnBuild> </PropertyGroup> </Project>
dotnet pack -c release
کنفرانس مجازی blazor day
The blazor day is the online event around Blazor technologies. Originally, this event was organized by three MVP friends, Adrien, Christophe, and Denis. Their objective of this event is to share their passion for .NET and more particularly Blazor. Joined by the famous Charline to upgrade the event to the next level. Blazor is part of the ASP.NET Core product which is offered in Open Source by Microsoft....
Webpack 5 منتشر شد
webpack is arguably the most popular bundler right now and this is the first major release in over two years. We get big improvements to caching (and therefore performance), reduced bundle sizes with better tree shaking, and a variety of breaking changes to prepare for the future (automatic Node polyfills are gone, for one).
بررسی وضعیت کتابخانهی Moq
Moq is a mocking library for .NET Unit Testing (cue the TDD folks reminding us mocks are unnecessary), and it is by far the most widely used mocking library in .NET (475 million downloads vs 87 million for the next largest, NSubstitute). Yesterday, its author released version 4.20.1; which added nagware and a backdoor to Moq, in a bid to drive up paid usages of Moq through ‘Sponsorships’.
فعالسازی کامپایلر C# 7.1 در VS 2017
ابتدا مسیر Visual Studio -> Build tab -> Advanced را طی کنید:
پس از کلیک بر روی دکمهی Advanced، نیاز است C# 7.1 را انتخاب نمائید:
سؤال: چرا چنین مشکلی با نگارشهای پیشین زبان سیشارپ در ویژوال استودیو وجود نداشت؟
تابحال زبان سیشارپ نگارش minor نداشتهاست. همانطور که در تصویر فوق ملاحظه میکنید، گزینهی پیشفرض زبان مورد استفاده بر روی C# latest major version قرار دارد. این گزینه به معنای انتخاب نگارش 7.0، در این لیست است و نه 7.1. در اینجا major به نگارش 7.0 اشاره میکند و یا نگارشهای 8.0، 9.0 و پس از آن (در صورت ارائه و نصب به روز رسانیها). به همین جهت است که نمیتوان برای مثال static async Task Main را به صورت پیش فرض و با اعمال آخرین به روز رسانیها کامپایل کرد. برای رفع این مشکل یا میتوان برای مثال C# 7.1 را مستقیما انتخاب کرد و یا میتوان «C# latest minor version» را انتخاب کرد که این مورد گزینهی بهتری است نسبت به حالت C# latest major version و دقیقا به C# 7.1 و یا نگارشهای پس از آن اشاره میکند.
انتخاب زبان در پروژههای NET Core.
روش فوق با تمام نگارشهای NET. کار میکند. اما با توجه به اینکه یک چنین گزینههایی برای مثال در VSCode وجود ندارند و یا برنامههای NET Core. را میتوان صرفا از طریق خط فرمان، ایجاد، کامپایل و اجرا کرد، در این نوع پروژهها برای انتخاب زبان باید به صورت ذیل عمل نمود:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <PropertyGroup> <LangVersion>latest</LangVersion> <!-- <LangVersion>7.1</LangVersion> --> </PropertyGroup> </Project>
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract> <RuntimeIdentifier>win-x86</RuntimeIdentifier> <PublishSingleFile>true</PublishSingleFile>
name: "Publish"
- push = هر زمان که کامیتی روی گیتهاب پوش شود، اکشن اجرا میشود.
- pull_request = هر زمانی که یک پول ریکوئست مرج شود، اکشن اجرا میشود.
- workflow_dispatch = برنامه نویس خودش میتواند با کلیک بر روی دکمهی مشخصی در قسمت اکشنها، اکشن موردنظر را اجرا کند.
on: push: tags: - "v*"
env: PROJECT_PATH: src/HandySub/HandySub.csproj ZIP_PATH: src/HandySub/bin/Release/net5.0-windows/win-x86/publish/HandySub-x86.zip EXE_PATH: src/HandySub/bin/Release/net5.0-windows/win-x86/publish/HandySub.exe
jobs: deploy: runs-on: windows-latest
steps: - name: Initialize Actions uses: actions/checkout@v2
- name: Initialize .Net uses: actions/setup-dotnet@v1 with: dotnet-version: 5.0.x
- name: Restore Project run: dotnet restore ${{ env.PROJECT_PATH }}
- name: Publish Project run: dotnet publish ${{ env.PROJECT_PATH }} -c Release --self-contained -r win-x86 --no-restore
- name: Create Zip File uses: papeloto/action-zip@v1 with: files: ${{ env.EXE_PATH }} dest: ${{ env.ZIP_PATH }}
- name: Initialize Release uses: actions/create-release@v1 id: create_release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }}
- name: Create Release uses: csexton/release-asset-action@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} file: ${{ env.ZIP_PATH }} release-url: ${{ steps.create_release.outputs.upload_url }}
name: "Publish" on: push: tags: - "v*" env: PROJECT_PATH: src/HandySub/HandySub.csproj ZIP_PATH: src/HandySub/bin/Release/net5.0-windows/win-x86/publish/HandySub-x86.zip EXE_PATH: src/HandySub/bin/Release/net5.0-windows/win-x86/publish/HandySub.exe jobs: deploy: runs-on: windows-latest steps: - name: Initialize Actions uses: actions/checkout@v2 - name: Initialize .Net uses: actions/setup-dotnet@v1 with: dotnet-version: 5.0.x - name: Restore Project run: dotnet restore ${{ env.PROJECT_PATH }} - name: Publish Project run: dotnet publish ${{ env.PROJECT_PATH }} -c Release --self-contained -r win-x86 --no-restore - name: Create Zip File uses: papeloto/action-zip@v1 with: files: ${{ env.EXE_PATH }} dest: ${{ env.ZIP_PATH }} - name: Initialize Release uses: actions/create-release@v1 id: create_release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} - name: Create Release uses: csexton/release-asset-action@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} file: ${{ env.ZIP_PATH }} release-url: ${{ steps.create_release.outputs.upload_url }}
git tag v1.0.0
git push origin tag v1.0.0