隐藏

c# 常用框架汇总

发布:2023/7/24 8:42:21作者:管理员 来源:本站 浏览次数:1691

在C#开发中,有很多常用的框架可以帮助我们快速开发、简化操作和提高效率,比如ASP.NET Core、Entity Framework、NLog等。本篇攻略将会汇总一些常用的C#框架,并对这些框架的特点、使用方法和示例进行详细讲解。

1. ASP.NET Core


ASP.NET Core是微软官方推出的一套跨平台的Web应用程序框架,它旨在创建适用于云、网站、IoT等不同应用场景的高性能Web应用。ASP.NET Core的特点有:


   跨平台

   高性能

   更好的开发者体验

   社区支持活跃


ASP.NET Core的使用


创建ASP.NET Core应用的步骤:


   打开Visual Studio 2019,选择新建项目,然后选择ASP.NET Core Web Application模板。

   从下拉列表中选择Web应用程序,然后点击“创建”按钮。

   配置新建项目的信息,比如名称、位置、身份验证等。

   进入新建项目的主页面,添加控制器、视图、模型等。


示例1:使用ASP.NET Core构建RESTful API


以下是一个使用ASP.NET Core构建RESTful API的示例,请先在Visual Studio中创建一个ASP.NET Core Web应用程序项目:


[Route("api/[controller]")]

[ApiController]

public class BooksController : ControllerBase

{

   private readonly IBookRepository _bookRepository;


   public BooksController(IBookRepository bookRepository)

   {

       _bookRepository = bookRepository;

   }


   [HttpGet]

   public async Task<IEnumerable<Book>> GetAllAsync()

   {

       return await _bookRepository.GetAllAsync();

   }


   [HttpGet("{id}")]

   public async Task<Book> GetByIdAsync(int id)

   {

       return await _bookRepository.GetByIdAsync(id);

   }


   [HttpPost]

   public async Task CreateAsync([FromBody] Book book)

   {

       await _bookRepository.CreateAsync(book);

   }


   [HttpPut("{id}")]

   public async Task UpdateAsync(int id, [FromBody] Book book)

   {

       book.Id = id;

       await _bookRepository.UpdateAsync(book);

   }


   [HttpDelete("{id}")]

   public async Task DeleteAsync(int id)

   {

       await _bookRepository.DeleteAsync(id);

   }

}




   基于RESTful API风格,每个接口都对应一个HTTP方法。

   用注入的方式引用IBookRepository,实现了依赖注入的效果。


2. Entity Framework


Entity Framework是一个ORM(Object-Relational Mapping)框架,它封装了数据库操作,程序员可以使用面向对象的方式来操作数据,无需编写复杂的SQL语句。Entity Framework的特点有:


   面向对象的数据访问方式

   支持多种数据库

   提供基于LINQ的查询语言

   模型中可以包含计算字段和函数


Entity Framework的使用


Entity Framework的使用步骤:


   创建一个.NET Standard类库,然后在其中创建DbContext类和实体类。

   使用配置文件或Fluent API指定实体类与数据表之间的映射关系。

   实现数据访问层,对外提供数据操作接口。


示例2:使用Entity Framework操作数据库


以下是一个使用Entity Framework进行数据操作的示例,请先在Visual Studio中创建一个名为“Books”的.NET Standard类库:


public class Book

{

   public int Id { get; set; }

   public string Title { get; set; }

   public string Author { get; set; }

   public double Price { get; set; }

}


public class BooksContext : DbContext

{

   public DbSet<Book> Books { get; set; }


   protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

   {

       optionsBuilder.UseSqlite("Data Source=books.db");

   }

}


public interface IBookRepository

{

   Task<IEnumerable<Book>> GetAllAsync();

   Task<Book> GetByIdAsync(int id);

   Task CreateAsync(Book book);

   Task UpdateAsync(Book book);

   Task DeleteAsync(int id);

}


public class BookRepository : IBookRepository

{

   private readonly BooksContext _context;


   public BookRepository(BooksContext context)

   {

       _context = context;

   }


   public async Task<IEnumerable<Book>> GetAllAsync()

   {

       return await _context.Books.ToListAsync();

   }


   public async Task<Book> GetByIdAsync(int id)

   {

       return await _context.Books.FindAsync(id);

   }


   public async Task CreateAsync(Book book)

   {

       await _context.Books.AddAsync(book);

       await _context.SaveChangesAsync();

   }


   public async Task UpdateAsync(Book book)

   {

       _context.Entry(book).State = EntityState.Modified;

       await _context.SaveChangesAsync();

   }


   public async Task DeleteAsync(int id)

   {

       var book = await _context.Books.FindAsync(id);

       _context.Books.Remove(book);

       await _context.SaveChangesAsync();

   }

}


这个示例包含了使用Entity Framework进行数据访问的所有步骤:


   在Books类库中定义了实体类Book和DbContext类BooksContext。

   通过配置DbContext类指定了数据库连接字符串。

   在数据访问层中实现了IBookRepository接口,以提供CRUD(增删改查)操作。