리눅스 코드 : .NET Core!
Windows 시스템에서 C #으로 코딩하는 것은 절대적인 요구 사항은 아니지만 기본 지원과 최상의 개발 경험을 제공하기 때문에 매우 유리합니다.
일부 C # 코드를 작성하려면 Linux, Android, OS X 등 어디서나 실행할 수 있습니다.
리눅스에서 C #으로 코딩 할 때의 첫 번째 단점 중 하나는 Visual Studio와 같은 적절한 GUI IDE가 없다는 것입니다 (농담입니다. JetBrains Rider IDE가 있지만 요점을 알 수 있습니다).
일반적으로 구문 강조 표시 및 기타와 같은 기본 항목에 대한 기본 확장과 함께 VS Code를 사용하거나 플러그인이 있는 Vim/Neovim을 사용합니다(일반적으로 사용하는 것입니다).
참고 : 이것은 dotnet 7을 사용하여 만들어졌습니다.
먼저 dotnet sdk를 설치해야 합니다.
아치 리눅스
$ sudo pacman -s dotnet-sdk #To Install the lattest
$ sudo pacman -s dotnet6-sdk-6 #To Install the .net 6 sdk
우분투, 설치하는 방법에는 여러 가지가 있습니다.
$ sudo add-apt-repository universe
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install dotnet-sdk-6.0
dotnet-7에 대한 일반적인 방법은 문서를 확인합니다.
$ mkdir -p $HOME/dotnet && tar zxf dotnet-sdk-7.0.302-linux-x64.tar.gz -C $HOME/dotnet
$ export DOTNET_ROOT=$HOME/dotnet
$ export PATH=$PATH:$HOME/dotnet
설치 테스트
새 프로젝트를 만들려면 다음을 수행하기만 하면 됩니다.
dotnet new nameOfProject -o OutputFolder
asp.net 프로젝트의 경우 mvc, razor pages, blazor, webapi 등 다양한 유형을 만들 수 있습니다.
인증없이 간단한 mvc 프로젝트로 가자.
$ dotnet new mvc -o DemoMVC
데모를 실행하는 것은
$ dotnet run
$ dotnet watch run #to update the page realtime
첫 번째 asp net 웹 응용 프로그램이 있습니다.
여기까지는 그다지 많지 않으며 Visual Studio를 더 매력적으로 만드는 것은 Microsoft가 몇 번의 클릭만으로 "리버스 엔지니어링"이라고 부르는 것처럼 스캐폴드할 수 있는 기능입니다.
리눅스에서는 약간 다르며, 터미널은 dotnet cli 도구를 사용하는 친구이며 그 옵션은 루틴입니다. 일부 컨트롤러 및/또는 뷰를 즉시 스캐폴딩할 수 있으려면 도움이 되는 몇 가지 사항을 설치해야 합니다! Visual Studio에서 이러한 것들은 마술처럼 자동으로 설치됩니다.
첫 번째 도구는 aspnet 코드 생성기이며, 전 세계적으로 설치하면 향후 프로젝트에 필요합니다!
dotnet tool install -g dotnet-aspnet-codegenerator
다른 필요한 패키지
$ dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design
$ dotnet add package Microsoft.EntityFrameworkCore.Design
$ dotnet add package Microsoft.EntityFrameworkCore.Sqlite
$ dotnet add package Microsoft.EntityFrameworkCore.SqlServer
$ dotnet add package Microsoft.EntityFrameworkCore.Tools
다른 db 공급자를 사용하는 경우 설치해야 합니다. 리버스 엔지니어링할 수 있도록 models 폴더에 간단한 모델을 만들어 보겠습니다.
namespace DemoMVC.Models;
using System;
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public DateTime CreatedAt { get; set; }
}
데이터베이스 컨텍스트 및 Data 폴더에 모든 항목을 만듭니다
using Microsoft.EntityFrameworkCore;
using DemoMVC.Models;
namespace DemoMVC.Data;
public class ApplicationDbContext : DbContext
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
public DbSet<Product> Products { get; set; }
}
앱 설정의 연결 문자열을 보려면 SQLite를 예로 사용하십시오.
{
"ConnectionStrings": {
"DefaultConnection": "DataSource=app.db;Cache=Shared",
"AnotherDBConection": "Server=(localdb)\\mssqllocaldb;Database=demo;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}
컨테이너에 서비스 추가Add services to the container
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlite(connectionString));
스캐폴드, 우리는 ASPNET 코드 생성을 사용할 것입니다, 옵션을 가지고 자유롭게 놀아보세요
dotnet aspnet-codegenerator controller -name ProductController -m Product -dc ProductContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
경로가 제대로 작동하지 않으면 오류가 반환될 수 있습니다.
그래서 asp-gen 응용 프로그램의 전체 경로를 사용하는 것이 좋습니다.
$HOME/.dotnet/tools/dotnet-aspnet-codegenerator
전체 명령을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
보기가 모두 설정되었으므로 이제 마이그레이션을 만들고 컨텍스트가 많은 경우 컨텍스트를 지정하는 데이터베이스를 업데이트합니다. dotnet-ef 도구(엔터티 프레임워크 도구)를 설치해야 합니다.
dotnet tool install --global dotnet-ef
dotnet ef --version
dotnet ef migrations add "Initial Create" --context ApplicationDbCon
text
dotnet ef database update --context ApplicationDbContext
작동하지 않으면 전체 경로를 사용합니다
거기에서 성공과 매트릭스 효과를 볼 때 모든 설정이 완료된 것이며 Linux에서 리버스 엔지니어링을 완료한 것입니다.
앱을 실행하면 제품과 관련된 몇 가지 옵션과 함께 새로운보기가 표시됩니다.
'프로그래밍 > 리눅스' 카테고리의 다른 글
프로그래밍 「 리눅스 편」WSL2를 사용하여 Windows 내에서 Linux 실행 (0) | 2023.06.13 |
---|---|
프로그래밍 「 리눅스 편」리눅스 페도라 38에 MongoDB 설치 (1) | 2023.06.13 |
프로그래밍 「 리눅스 편」터미널 경험을 향상시키는 Linux 명령 (0) | 2023.06.13 |
프로그래밍 「 리눅스 편」리눅스 해킹 : 시스템 관리자를위한 가이드 [비밀번호 재설정] (0) | 2023.06.12 |
프로그래밍 「 리눅스 편」AWS에서 2티어 아키텍처 구축: Apache 웹 서버 및 MySQL 데이터베이스 배포 (0) | 2023.06.11 |