ASP.NET Core 作为微软推出的新一代Web开辟框架,以其跨平台、高机能跟模块化计划博得了众多开辟者的青睐。本文将缭绕 ASP.NET Core 的实战项目,从入门到进阶,具体剖析其核心不雅点、关键技巧以及一些实用技能。
起首,你须要在你的开辟情况中安装 .NET Core SDK 跟 Visual Studio Code 或 Visual Studio IDE。
利用以下命令创建一个简单的 Web API 项目:
dotnet new webapi -n MyFirstApi
ASP.NET Core 项目存在以下目录构造:
Controllers
:存放把持器类。Models
:存放数据模型类。Views
:存放 Razor 视图文件。wwwroot
:存放静态文件,如 CSS、JavaScript 跟图片。myVariable
)。MyClass
)。利用 Entity Framework Core 停止数据库操纵,实现增删改查(CRUD)功能。
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
public class StudentContext : DbContext
{
public DbSet<Student> Students { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=StudentDB;Trusted_Connection=True;");
}
}
利用 async/await 关键字实现异步操纵,进步利用顺序的机能。
public async Task<IActionResult> GetStudents()
{
var students = await _context.Students.ToListAsync();
return Ok(students);
}
在 wwwroot
目录下存放静态文件,如 CSS、JavaScript 跟图片。
<link href="~/css/styles.css" rel="stylesheet" />
<script src="~/js/app.js"></script>
自定义旁边件以处理恳求跟呼应,如身份验证、日记记录等。
public class LoggingMiddleware
{
private readonly RequestDelegate _next;
public LoggingMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
var body = await new StreamReader(context.Response.Body).ReadToEndAsync();
context.Response.Body = new MemoryStream();
await _next(context);
context.Response.Body.Seek(0, SeekOrigin.Begin);
await context.Response.Body.WriteAsync(Encoding.UTF8.GetBytes(body));
context.Response.Body.Seek(0, SeekOrigin.End);
}
}
利用身份验证跟受权机制保护利用顺序。
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
{
options.LoginPath = "/Account/Login";
options.AccessDeniedPath = "/Account/AccessDenied";
});
经由过程本文的讲解,信赖你曾经对 ASP.NET Core 有了必定的懂得。在现实开辟过程中,一直现实跟积聚经验是进步技能的关键。祝你在 ASP.NET Core 之旅中全部顺利!