Ինչպես տեղափոխել ձեր հավելվածը Dotnet 5-ից Dotnet 6


Microsoft-ը պաշտոնապես դադարեցրել է .NET 5-ը, այնպես որ, եթե ցանկանում եք շարունակական աջակցություն, միացեք և թարմացրեք .NET 6-ի հնարավորինս շուտ:

.NET (Dotnet) Framework-ն առաջին անգամ թողարկվել է 2000 թվականի սկզբին: Այն անվճար, բաց կոդով մշակման շրջանակ է, որը կարող եք օգտագործել հավելվածների լայն շրջանակ մշակելու համար:

Microsoft-ը դադարեցրեց .NET 5-ի պաշտոնական աջակցությունը 2022 թվականի մայիսի 8-ին: Եթե դուք պատահաբար օգտագործում եք .NET 5 ձեր հավելվածներում, դա նշանակում է, որ ձեր հավելվածներն ավելի խոցելի են անվտանգության խախտումների նկատմամբ: Բարեբախտաբար, դուք կարող եք հեշտությամբ թարմացնել կամ տեղափոխել ձեր հավելվածները .NET-ի նոր LTS տարբերակին, տարբերակ 6:

Ինչ է Dotnet 6-ը:

.NET 6-ը .NET Framework-ի ընթացիկ LTS տարբերակն է և թողարկվել է 2021 թվականի նոյեմբերին:

Դուք կարող եք հավելվածներ մշակել՝ օգտագործելով .NET 6 Windows-ի, Linux-ի և macOS-ի վրա: Այն նաև աջակցվում է M1 Apple Silicon չիպերի և Arm-ի վրա հիմնված Windows օպերացիոն համակարգերի վրա:

.NET 6 Framework-ը նաև աջակցում է հավելվածների մշակմանը բազմաթիվ լեզուներով, ինչպիսիք են C# (C-Sharp), Visual Basic և F# (F-Sharp):

.NET Framework-ի հիմնական առավելություններից մեկն այն է, որ դուք կարող եք զարգացնել հավելվածների լայն տեսականի դրանով: Դրանք ներառում են վեբ հավելվածներ, խաղեր, բջջային հավելվածներ և աշխատասեղանի հավելվածներ: Բացի այդ, շրջանակը և՛ լավ փորձարկված է, և՛ փաստաթղթավորված:

NET 6 SDK-ի տեղադրում

Դուք պետք է ձեր համակարգչի վրա տեղադրեք .NET SDK-ն, որպեսզի կարողանաք մշակել .NET հավելվածներ:

Պարզապես ներբեռնեք .NET 6 Software Development Kit-ը (SDK), ապա տեղադրեք այն ձեր համակարգչի վրա: SDK-ն պարունակում է բոլոր անհրաժեշտ գործիքները .NET 6-ում ծրագրակազմ մշակելու համար:

Տեղադրումն ավարտվելուց հետո կարող եք ցուցակագրել ձեր ԱՀ-ում հասանելի SDK-ները՝ օգտագործելով հետևյալ .NET CLI հրամանը.

dotnet --list-sdks

Եթե պարզապես ցանկանում եք ստուգել այն տարբերակը, որի վրա գտնվում եք, կարող եք գործարկել հետևյալ հրամանը.

dotnet --version

Ներբեռնում՝ .NET 6 (անվճար)

Թիրախային շրջանակի թարմացում

Սկսեք թարմացումը՝ թարմացնելով .NET թիրախային շրջանակը: Ձեր վեբ հավելվածը պարունակում է թիրախային շրջանակի անվանում, որը ցույց է տալիս ձեր հավելվածին, թե ինչպիսի .NET գործարկման ժամանակ պետք է օգտագործել:

Ձեր վեբ հավելվածի նպատակային շրջանակը գտնվում է ձեր հավելվածի նախագծի XML ֆայլում: Այն ունի .csproj ընդլայնումը: Բացեք հավելվածի նախագծի ֆայլը և թարմացրեք TargetFramework մակնիշը, որը գտնվում է PropertyGroup պիտակի տակ net5.0-ից մինչև net6.0:

<PropertyGroup>
    <!-- <TargetFramework>net5.0</TargetFramework> -->
    <TargetFramework>net6.0</TargetFramework>
 
    <UserSecretsId>xxx33795-1b05-xxxx-926f-dcc112c2xxxd</UserSecretsId>
    <DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
</PropertyGroup>

Եթե ձեր հավելվածն օգտագործում է global.json ֆայլը, ապա համոզվեք, որ թարմացրել եք SDK տարբերակը «տարբերակի»՝ «6.0.100»ի:

Փաթեթի հղումների թարմացում

Հաջորդ քայլը ձեր հավելվածի փաթեթի հղումները կամ NuGet փաթեթի կախվածությունները թարմացնելն է: .NET շրջանակը շատ մոդուլային է և աշխատում է կախվածության ներարկման հայեցակարգի վրա: Ձեր NuGet փաթեթի հղումները գտնվում են .csproj նախագծի ֆայլում, պիտակի տակ:

NuGet փաթեթների քանակը կտարբերվի՝ կախված ձեր հավելվածի չափից և դրա բարդությունից:

NuGet փաթեթի տարբերակի առաջին համարը սովորաբար ցույց է տալիս, թե որ .NET շրջանակն է այն թիրախավորում, այս դեպքում՝ 6: Համոզվեք, որ թարմացնում եք բոլոր NuGet փաթեթները՝ արտացոլելու ձեր թիրախային շրջանակը: Կոդի հետևյալ ցուցակագրման կոդը ցույց է տալիս նոր փաթեթը թավով: Հին NuGet փաթեթները մեկնաբանված են:

<ItemGroup>
    <!-- <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.13" /> -->
    <!-- <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.9"> -->
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.3" />
 
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.3">
        <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
        <PrivateAssets>all</PrivateAssets>
    </PackageReference>
 
    <!-- <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.9" /> -->
    <!-- <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.2" /> -->
    <!-- <PackageReference Include="Swashbuckle.AspNetCore" Version="5.6.3" /> -->
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.3" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.2" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="6.3.0" />
</ItemGroup>

Վրիպազերծման գրացուցակի թարմացում

Եթե դուք օգտագործում եք Visual Studio Code (VS Code) ձեր զարգացման համար, կարևոր է, որ թարմացնեք հետևյալ տողը launch.json ֆայլում: VS Code-ն օգտագործում է ծրագրի հատկության արժեքը վրիպազերծիչի ուղին պահելու համար: Ձեր հավելվածը դեռ լավ կաշխատի, եթե չթարմացնեք վրիպազերծիչի պանակը, բայց չեք կարողանա գործարկել VS Code կարգաբերիչը:

VS Code-ը միջպլատֆորմային խմբագիր է, որն աջակցում է կոդերի վրիպազերծմանը, ի թիվս այլ հզոր հատկանիշների: Դուք նույնիսկ կարող եք տեղադրել այն ARM-ի վրա հիմնված չիպերի վրա, ինչպիսին Raspberry Pi-ն է:

Նվազագույն հոստինգ մոդել

Նոր .NET 6 Framework-ի հիմնական թարմացումներից մեկը նվազագույն հոսթինգի մոտեցումն է: Լռելյայնորեն, նոր .NET 6 հավելվածները չեն պարունակում startup.cs ֆայլը: Ծառայության կազմաձևումը և հավելվածի բեռնաթափումը կատարվում են program.cs ֆայլում: Հին հավելվածները կշարունակեն լավ աշխատել, բայց մտածեք ապագայում դրանք թարմացնել նվազագույն հոսթինգի:

Նշում. NET 6-ին միգրացիայի ժամանակ անհրաժեշտ չէ օգտագործել նվազագույն հոսթինգ:

Տեղափոխել .NET 6

.NET 6-ը .NET Framework-ի երկարաժամկետ աջակցության նորագույն տարբերակն է: Եթե դուք դեռ օգտագործում եք .NET 5-ը ձեր հավելվածում, ժամանակն է, որ թարմացնեք .NET 6-ի:

Մշակողները ստեղծել են շատ օգտակար շրջանակներ .NET-ի վերևում, ինչպես ASP.NET-ը՝ վեբ հավելվածների շրջանակը: ASP.NET-ը բաց կոդով հարթակ է, որը թույլ է տալիս արագ ստեղծել հզոր հավելվածներ: Այժմ այն կարող է լինել ավելի քան 20 տարեկան, բայց այսօր դեռևս մեծ պահանջարկ կա ASP.NET-ի համար: