1658887312
Tìm hiểu khái niệm về Kiến trúc Microservices. Tìm hiểu cách xây dựng, triển khai và kiểm tra Kiến trúc Microservices trong .NET và C # bằng cách sử dụng vùng chứa Docker.
Thuật ngữ microservices mô tả một phong cách phát triển phần mềm đã phát triển từ các xu hướng hiện đại để thiết lập các phương pháp thực hành nhằm tăng tốc độ và hiệu quả của việc phát triển và quản lý các giải pháp phần mềm trên quy mô lớn. Microservices thiên về việc áp dụng một số nguyên tắc và mô hình kiến trúc nhất định làm kiến trúc. Mỗi microservice sống độc lập, nhưng mặt khác, tất cả cũng dựa vào nhau. Tất cả các microservices trong một dự án đều được triển khai trong quá trình sản xuất theo tốc độ riêng của chúng, tại chỗ trên đám mây, độc lập, sống song song với nhau.
Trong bài viết này, chúng ta sẽ tìm hiểu khái niệm về Microservices, kiến trúc của chúng và cách tạo microservices trong .NET và C #. Bạn cũng sẽ tìm hiểu các bước để xây dựng, triển khai và kiểm tra các microservices trong .NET bằng cách sử dụng bộ chứa docker.
Hình ảnh sau đây từ Microsoft Docs cho thấy kiểu kiến trúc microservices.
Có nhiều thành phần khác nhau trong kiến trúc microservices ngoài bản thân microservices.
Quản lý . Duy trì các nút cho dịch vụ.
Nhà cung cấp danh tính . Quản lý thông tin nhận dạng và cung cấp dịch vụ xác thực trong mạng phân tán.
Khám phá dịch vụ . Theo dõi các dịch vụ và địa chỉ dịch vụ và điểm cuối.
Cổng API . Đóng vai trò là điểm vào của khách hàng. Một đầu mối liên hệ từ khách hàng sẽ trả lại phản hồi từ các dịch vụ nhỏ cơ bản và đôi khi là phản hồi tổng hợp từ nhiều dịch vụ vi mô cơ bản.
CDN . Mạng phân phối nội dung để cung cấp tài nguyên tĩnh cho các trang và nội dung web trong mạng phân tán
Nội dung tĩnh Các tài nguyên tĩnh như các trang và nội dung web
Các dịch vụ vi mô được triển khai độc lập với cơ sở dữ liệu của riêng chúng cho mỗi dịch vụ, do đó các dịch vụ vi mô cơ bản trông như thể hiện trong hình sau.
Các ứng dụng nguyên khối không chỉ là một gói hoàn chỉnh có tất cả các thành phần và dịch vụ cần thiết liên quan được gói gọn trong một gói.
Sau đây là biểu diễn sơ đồ của kiến trúc nguyên khối được đóng gói hoàn toàn hoặc dựa trên dịch vụ.
Microservice là một cách tiếp cận để tạo ra các dịch vụ nhỏ, mỗi dịch vụ chạy trong không gian riêng của chúng và có thể giao tiếp qua tin nhắn. Đây là các dịch vụ độc lập gọi trực tiếp cơ sở dữ liệu của riêng chúng.
Sau đây là biểu diễn sơ đồ của kiến trúc microservices.
Trong kiến trúc nguyên khối, cơ sở dữ liệu vẫn giữ nguyên cho tất cả các chức năng ngay cả khi tuân theo cách tiếp cận của kiến trúc hướng dịch vụ, trong khi trong microservices, mỗi dịch vụ sẽ có cơ sở dữ liệu riêng.
Các vùng chứa như Dockers và những vùng khác chia nhỏ tài nguyên của hệ điều hành, chẳng hạn như ngăn xếp mạng, không gian tên quy trình, phân cấp hệ thống tệp và ngăn xếp lưu trữ. Dockers giống như ảo hóa hệ điều hành hơn. Tìm hiểu thêm về dockers tại đây . Mở URL này và nhấp vào Tải xuống từ trung tâm Docker. Sau khi tải xuống, hãy đăng nhập vào Docker và làm theo hướng dẫn để cài đặt Docker cho Windows.
Phần này sẽ trình bày cách tạo một dịch vụ sản phẩm nhỏ bằng cách sử dụng ASP.NET Core từng bước với sự trợ giúp của hình ảnh. Dịch vụ sẽ được xây dựng bằng ASP.NET Core 2.1 và Visual Studio 2017. Asp.NET Core được tích hợp với VS 2017. Dịch vụ này sẽ có DBcontext và cơ sở dữ liệu riêng với kho lưu trữ riêng biệt để dịch vụ có thể được triển khai độc lập.
Mặc dù dự án .NET Core API có hỗ trợ sẵn cho EF Core và tất cả các phần phụ thuộc liên quan được tải xuống tại thời điểm tạo và biên dịch dự án có thể được tìm thấy trong phần SDK trong dự án như được hiển thị bên dưới.
Microsoft.EntityFrameworkCore.SqlServer (2.1.1) phải là gói bên trong SDK đã tải xuống. Nếu nó không có mặt, nó có thể được thêm vào dự án một cách rõ ràng thông qua Nuget Packages.
Một bối cảnh cơ sở dữ liệu là cần thiết để các mô hình có thể tương tác với cơ sở dữ liệu.
using Microsoft.EntityFrameworkCore;
using ProductMicroservice.Models;
namespace ProductMicroservice.DBContexts
{
public class ProductContext : DbContext
{
public ProductContext(DbContextOptions<ProductContext> options) : base(options)
{
}
public DbSet<Product> Products { get; set; }
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>().HasData(
new Category
{
Id = 1,
Name = "Electronics",
Description = "Electronic Items",
},
new Category
{
Id = 2,
Name = "Clothes",
Description = "Dresses",
},
new Category
{
Id = 3,
Name = "Grocery",
Description = "Grocery Items",
}
);
}
}
}
Mở tệp Startup.cs để thêm nhà cung cấp db máy chủ SQL cho EF Core. Thêm mã services.AddDbContext <ProductContext> (o => o.UseSqlServer (Configuration.GetConnectionString ("ProductDB"))); trong phương thức ConfigureServices. Lưu ý rằng trong phương thức GetConnectionString, tên của khóa của chuỗi kết nối được chuyển được thêm vào tệp appsettings.
Kho lưu trữ hoạt động như một thành phần vi mô của microservice bao bọc lớp truy cập dữ liệu và cũng giúp duy trì độ bền và khả năng kiểm tra của dữ liệu.
using Microsoft.EntityFrameworkCore;
using ProductMicroservice.DBContexts;
using ProductMicroservice.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace ProductMicroservice.Repository
{
public class ProductRepository: IProductRepository
{
private readonly ProductContext _dbContext;
public ProductRepository(ProductContext dbContext)
{
_dbContext = dbContext;
}
public void DeleteProduct(int productId)
{
var product = _dbContext.Products.Find(productId);
_dbContext.Products.Remove(product);
Save();
}
public Product GetProductByID(int productId)
{
return _dbContext.Products.Find(productId);
}
public IEnumerable<Product> GetProducts()
{
return _dbContext.Products.ToList();
}
public void InsertProduct(Product product)
{
_dbContext.Add(product);
Save(); }
public void Save()
{
_dbContext.SaveChanges();
}
public void UpdateProduct(Product product)
{
_dbContext.Entry(product).State = EntityState.Modified;
Save();
}
}
}
Microservice phải có một điểm cuối cần có bộ điều khiển để hiển thị các phương thức HTTP cho máy khách như là điểm cuối của các phương thức dịch vụ.
using Microsoft.AspNetCore.Mvc;
using ProductMicroservice.Models;
using ProductMicroservice.Repository;
using System;
using System.Collections.Generic;
using System.Transactions;
namespace ProductMicroservice.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ProductController : ControllerBase
{
private readonly IProductRepository _productRepository;
public ProductController(IProductRepository productRepository)
{
_productRepository = productRepository;
}
[HttpGet]
public IActionResult Get()
{
var products = _productRepository.GetProducts();
return new OkObjectResult(products);
}
[HttpGet("{id}", Name = "Get")]
public IActionResult Get(int id)
{
var product = _productRepository.GetProductByID(id);
return new OkObjectResult(product);
}
[HttpPost]
public IActionResult Post([FromBody] Product product)
{
using (var scope = new TransactionScope())
{
_productRepository.InsertProduct(product);
scope.Complete();
return CreatedAtAction(nameof(Get), new { id = product.Id }, product);
}
}
[HttpPut]
public IActionResult Put([FromBody] Product product)
{
if (product != null)
{
using (var scope = new TransactionScope())
{
_productRepository.UpdateProduct(product);
scope.Complete();
return new OkResult();
}
}
return new NoContentResult();
}
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
_productRepository.DeleteProduct(id);
return new OkResult();
}
}
}
Di chuyển cho phép chúng tôi cung cấp mã để thay đổi cơ sở dữ liệu từ phiên bản này sang phiên bản khác.
Dịch vụ có thể được chạy qua IIS Express, tức là Visual Studio mặc định hoặc qua vùng chứa Docker.
Chọn IIS Express trong Visual Studio như được hiển thị bên dưới và nhấn F5 hoặc nhấp vào chính nút IIS Express đó.
Ứng dụng sẽ hoạt động sau khi trang trình duyệt được khởi chạy. Vì nó không có gì để hiển thị nên nó sẽ trống, nhưng dịch vụ có thể được kiểm tra thông qua bất kỳ ứng dụng thử nghiệm API nào. Ở đây Postman được sử dụng để kiểm tra các điểm cuối của dịch vụ. Giữ nó mở và ứng dụng chạy.
Cài đặt Postman nếu nó không có trên máy và khởi chạy nó.
BƯU KIỆN
Để kiểm tra phương thức POST; tức là tạo một tài nguyên mới, chọn phương thức là POST trong postman và cung cấp điểm cuối, tức là https: // localhost: 44312 / api / product và trong phần Body, thêm một JSON tương tự như có thuộc tính của Product model như hình dưới đây và nhấp vào Gửi.
Phản hồi cũng được trả về cùng với Id của sản phẩm.
Phương thức “Đăng” của bộ điều khiển chịu trách nhiệm tạo một tài nguyên trong cơ sở dữ liệu và gửi phản hồi.
Dòng trả về CreatedAtAction (nameof (Get), new {id = product.Id}, product); trả về vị trí của tài nguyên đã tạo có thể được kiểm tra trong thuộc tính Vị trí trong phản hồi dưới tab Tiêu đề.
Thực hiện truy vấn chọn trên bảng sản phẩm và một hàng đã thêm được hiển thị cho sản phẩm mới được tạo.
Tạo thêm một sản phẩm theo cách tương tự.
LẤY
Thực hiện yêu cầu GET ngay bây giờ với cùng một địa chỉ và hai bản ghi được hiển thị dưới dạng phản hồi kết quả JSON.
XÓA BỎ
Thực hiện yêu cầu xóa bằng cách chọn XÓA làm động từ và thêm id là 1 (nếu sản phẩm có id 1 cần được xóa) và nhấn Gửi.
Trong cơ sở dữ liệu, một bản ghi có Id 1 sẽ bị xóa.
ĐẶT
Động từ PUT chịu trách nhiệm cập nhật tài nguyên. Chọn động từ PUT, cung cấp địa chỉ API và trong phần Body, cung cấp thông tin chi tiết về sản phẩm nào cần được cập nhật ở định dạng JSON. Ví dụ: cập nhật sản phẩm với Id 2 và cập nhật tên, mô tả và giá của sản phẩm đó từ Samsung đến iPhone cụ thể. Nhấn Gửi.
Kiểm tra cơ sở dữ liệu để xem sản phẩm cập nhật.
Việc chạy dịch vụ có thể được thực hiện thông qua các lệnh của docker để chạy trong dấu nhắc lệnh của docker và sử dụng visual studio. Vì chúng tôi đã thêm hỗ trợ docker, nên dễ dàng chạy dịch vụ trong docker container bằng cách sử dụng studio trực quan.
Điều này chứng tỏ rằng microservice đang chạy trên hai điểm cuối và trên hai hệ điều hành được triển khai cục bộ một cách độc lập.
Dịch vụ vi mô là một dịch vụ được xây dựng xung quanh một khả năng kinh doanh cụ thể, có thể được triển khai độc lập được gọi là ngữ cảnh bị ràng buộc. Bài viết này về microservices tập trung vào microservices là gì và lợi thế của chúng so với kiến trúc dịch vụ nguyên khối. Bài viết mô tả chi tiết để phát triển một microservice bằng ASP.NET Core và chạy nó qua IIS và Docker container. Tương tự như vậy, dịch vụ có thể có nhiều hình ảnh và có thể được chạy trên nhiều vùng chứa tại cùng một thời điểm.
Nguồn bài viết gốc tại https://www.c-sharpcorner.com
#microservice #aspdotnet #dotnet #csharp #docker
1658887312
Tìm hiểu khái niệm về Kiến trúc Microservices. Tìm hiểu cách xây dựng, triển khai và kiểm tra Kiến trúc Microservices trong .NET và C # bằng cách sử dụng vùng chứa Docker.
Thuật ngữ microservices mô tả một phong cách phát triển phần mềm đã phát triển từ các xu hướng hiện đại để thiết lập các phương pháp thực hành nhằm tăng tốc độ và hiệu quả của việc phát triển và quản lý các giải pháp phần mềm trên quy mô lớn. Microservices thiên về việc áp dụng một số nguyên tắc và mô hình kiến trúc nhất định làm kiến trúc. Mỗi microservice sống độc lập, nhưng mặt khác, tất cả cũng dựa vào nhau. Tất cả các microservices trong một dự án đều được triển khai trong quá trình sản xuất theo tốc độ riêng của chúng, tại chỗ trên đám mây, độc lập, sống song song với nhau.
Trong bài viết này, chúng ta sẽ tìm hiểu khái niệm về Microservices, kiến trúc của chúng và cách tạo microservices trong .NET và C #. Bạn cũng sẽ tìm hiểu các bước để xây dựng, triển khai và kiểm tra các microservices trong .NET bằng cách sử dụng bộ chứa docker.
Hình ảnh sau đây từ Microsoft Docs cho thấy kiểu kiến trúc microservices.
Có nhiều thành phần khác nhau trong kiến trúc microservices ngoài bản thân microservices.
Quản lý . Duy trì các nút cho dịch vụ.
Nhà cung cấp danh tính . Quản lý thông tin nhận dạng và cung cấp dịch vụ xác thực trong mạng phân tán.
Khám phá dịch vụ . Theo dõi các dịch vụ và địa chỉ dịch vụ và điểm cuối.
Cổng API . Đóng vai trò là điểm vào của khách hàng. Một đầu mối liên hệ từ khách hàng sẽ trả lại phản hồi từ các dịch vụ nhỏ cơ bản và đôi khi là phản hồi tổng hợp từ nhiều dịch vụ vi mô cơ bản.
CDN . Mạng phân phối nội dung để cung cấp tài nguyên tĩnh cho các trang và nội dung web trong mạng phân tán
Nội dung tĩnh Các tài nguyên tĩnh như các trang và nội dung web
Các dịch vụ vi mô được triển khai độc lập với cơ sở dữ liệu của riêng chúng cho mỗi dịch vụ, do đó các dịch vụ vi mô cơ bản trông như thể hiện trong hình sau.
Các ứng dụng nguyên khối không chỉ là một gói hoàn chỉnh có tất cả các thành phần và dịch vụ cần thiết liên quan được gói gọn trong một gói.
Sau đây là biểu diễn sơ đồ của kiến trúc nguyên khối được đóng gói hoàn toàn hoặc dựa trên dịch vụ.
Microservice là một cách tiếp cận để tạo ra các dịch vụ nhỏ, mỗi dịch vụ chạy trong không gian riêng của chúng và có thể giao tiếp qua tin nhắn. Đây là các dịch vụ độc lập gọi trực tiếp cơ sở dữ liệu của riêng chúng.
Sau đây là biểu diễn sơ đồ của kiến trúc microservices.
Trong kiến trúc nguyên khối, cơ sở dữ liệu vẫn giữ nguyên cho tất cả các chức năng ngay cả khi tuân theo cách tiếp cận của kiến trúc hướng dịch vụ, trong khi trong microservices, mỗi dịch vụ sẽ có cơ sở dữ liệu riêng.
Các vùng chứa như Dockers và những vùng khác chia nhỏ tài nguyên của hệ điều hành, chẳng hạn như ngăn xếp mạng, không gian tên quy trình, phân cấp hệ thống tệp và ngăn xếp lưu trữ. Dockers giống như ảo hóa hệ điều hành hơn. Tìm hiểu thêm về dockers tại đây . Mở URL này và nhấp vào Tải xuống từ trung tâm Docker. Sau khi tải xuống, hãy đăng nhập vào Docker và làm theo hướng dẫn để cài đặt Docker cho Windows.
Phần này sẽ trình bày cách tạo một dịch vụ sản phẩm nhỏ bằng cách sử dụng ASP.NET Core từng bước với sự trợ giúp của hình ảnh. Dịch vụ sẽ được xây dựng bằng ASP.NET Core 2.1 và Visual Studio 2017. Asp.NET Core được tích hợp với VS 2017. Dịch vụ này sẽ có DBcontext và cơ sở dữ liệu riêng với kho lưu trữ riêng biệt để dịch vụ có thể được triển khai độc lập.
Mặc dù dự án .NET Core API có hỗ trợ sẵn cho EF Core và tất cả các phần phụ thuộc liên quan được tải xuống tại thời điểm tạo và biên dịch dự án có thể được tìm thấy trong phần SDK trong dự án như được hiển thị bên dưới.
Microsoft.EntityFrameworkCore.SqlServer (2.1.1) phải là gói bên trong SDK đã tải xuống. Nếu nó không có mặt, nó có thể được thêm vào dự án một cách rõ ràng thông qua Nuget Packages.
Một bối cảnh cơ sở dữ liệu là cần thiết để các mô hình có thể tương tác với cơ sở dữ liệu.
using Microsoft.EntityFrameworkCore;
using ProductMicroservice.Models;
namespace ProductMicroservice.DBContexts
{
public class ProductContext : DbContext
{
public ProductContext(DbContextOptions<ProductContext> options) : base(options)
{
}
public DbSet<Product> Products { get; set; }
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Category>().HasData(
new Category
{
Id = 1,
Name = "Electronics",
Description = "Electronic Items",
},
new Category
{
Id = 2,
Name = "Clothes",
Description = "Dresses",
},
new Category
{
Id = 3,
Name = "Grocery",
Description = "Grocery Items",
}
);
}
}
}
Mở tệp Startup.cs để thêm nhà cung cấp db máy chủ SQL cho EF Core. Thêm mã services.AddDbContext <ProductContext> (o => o.UseSqlServer (Configuration.GetConnectionString ("ProductDB"))); trong phương thức ConfigureServices. Lưu ý rằng trong phương thức GetConnectionString, tên của khóa của chuỗi kết nối được chuyển được thêm vào tệp appsettings.
Kho lưu trữ hoạt động như một thành phần vi mô của microservice bao bọc lớp truy cập dữ liệu và cũng giúp duy trì độ bền và khả năng kiểm tra của dữ liệu.
using Microsoft.EntityFrameworkCore;
using ProductMicroservice.DBContexts;
using ProductMicroservice.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace ProductMicroservice.Repository
{
public class ProductRepository: IProductRepository
{
private readonly ProductContext _dbContext;
public ProductRepository(ProductContext dbContext)
{
_dbContext = dbContext;
}
public void DeleteProduct(int productId)
{
var product = _dbContext.Products.Find(productId);
_dbContext.Products.Remove(product);
Save();
}
public Product GetProductByID(int productId)
{
return _dbContext.Products.Find(productId);
}
public IEnumerable<Product> GetProducts()
{
return _dbContext.Products.ToList();
}
public void InsertProduct(Product product)
{
_dbContext.Add(product);
Save(); }
public void Save()
{
_dbContext.SaveChanges();
}
public void UpdateProduct(Product product)
{
_dbContext.Entry(product).State = EntityState.Modified;
Save();
}
}
}
Microservice phải có một điểm cuối cần có bộ điều khiển để hiển thị các phương thức HTTP cho máy khách như là điểm cuối của các phương thức dịch vụ.
using Microsoft.AspNetCore.Mvc;
using ProductMicroservice.Models;
using ProductMicroservice.Repository;
using System;
using System.Collections.Generic;
using System.Transactions;
namespace ProductMicroservice.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class ProductController : ControllerBase
{
private readonly IProductRepository _productRepository;
public ProductController(IProductRepository productRepository)
{
_productRepository = productRepository;
}
[HttpGet]
public IActionResult Get()
{
var products = _productRepository.GetProducts();
return new OkObjectResult(products);
}
[HttpGet("{id}", Name = "Get")]
public IActionResult Get(int id)
{
var product = _productRepository.GetProductByID(id);
return new OkObjectResult(product);
}
[HttpPost]
public IActionResult Post([FromBody] Product product)
{
using (var scope = new TransactionScope())
{
_productRepository.InsertProduct(product);
scope.Complete();
return CreatedAtAction(nameof(Get), new { id = product.Id }, product);
}
}
[HttpPut]
public IActionResult Put([FromBody] Product product)
{
if (product != null)
{
using (var scope = new TransactionScope())
{
_productRepository.UpdateProduct(product);
scope.Complete();
return new OkResult();
}
}
return new NoContentResult();
}
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
_productRepository.DeleteProduct(id);
return new OkResult();
}
}
}
Di chuyển cho phép chúng tôi cung cấp mã để thay đổi cơ sở dữ liệu từ phiên bản này sang phiên bản khác.
Dịch vụ có thể được chạy qua IIS Express, tức là Visual Studio mặc định hoặc qua vùng chứa Docker.
Chọn IIS Express trong Visual Studio như được hiển thị bên dưới và nhấn F5 hoặc nhấp vào chính nút IIS Express đó.
Ứng dụng sẽ hoạt động sau khi trang trình duyệt được khởi chạy. Vì nó không có gì để hiển thị nên nó sẽ trống, nhưng dịch vụ có thể được kiểm tra thông qua bất kỳ ứng dụng thử nghiệm API nào. Ở đây Postman được sử dụng để kiểm tra các điểm cuối của dịch vụ. Giữ nó mở và ứng dụng chạy.
Cài đặt Postman nếu nó không có trên máy và khởi chạy nó.
BƯU KIỆN
Để kiểm tra phương thức POST; tức là tạo một tài nguyên mới, chọn phương thức là POST trong postman và cung cấp điểm cuối, tức là https: // localhost: 44312 / api / product và trong phần Body, thêm một JSON tương tự như có thuộc tính của Product model như hình dưới đây và nhấp vào Gửi.
Phản hồi cũng được trả về cùng với Id của sản phẩm.
Phương thức “Đăng” của bộ điều khiển chịu trách nhiệm tạo một tài nguyên trong cơ sở dữ liệu và gửi phản hồi.
Dòng trả về CreatedAtAction (nameof (Get), new {id = product.Id}, product); trả về vị trí của tài nguyên đã tạo có thể được kiểm tra trong thuộc tính Vị trí trong phản hồi dưới tab Tiêu đề.
Thực hiện truy vấn chọn trên bảng sản phẩm và một hàng đã thêm được hiển thị cho sản phẩm mới được tạo.
Tạo thêm một sản phẩm theo cách tương tự.
LẤY
Thực hiện yêu cầu GET ngay bây giờ với cùng một địa chỉ và hai bản ghi được hiển thị dưới dạng phản hồi kết quả JSON.
XÓA BỎ
Thực hiện yêu cầu xóa bằng cách chọn XÓA làm động từ và thêm id là 1 (nếu sản phẩm có id 1 cần được xóa) và nhấn Gửi.
Trong cơ sở dữ liệu, một bản ghi có Id 1 sẽ bị xóa.
ĐẶT
Động từ PUT chịu trách nhiệm cập nhật tài nguyên. Chọn động từ PUT, cung cấp địa chỉ API và trong phần Body, cung cấp thông tin chi tiết về sản phẩm nào cần được cập nhật ở định dạng JSON. Ví dụ: cập nhật sản phẩm với Id 2 và cập nhật tên, mô tả và giá của sản phẩm đó từ Samsung đến iPhone cụ thể. Nhấn Gửi.
Kiểm tra cơ sở dữ liệu để xem sản phẩm cập nhật.
Việc chạy dịch vụ có thể được thực hiện thông qua các lệnh của docker để chạy trong dấu nhắc lệnh của docker và sử dụng visual studio. Vì chúng tôi đã thêm hỗ trợ docker, nên dễ dàng chạy dịch vụ trong docker container bằng cách sử dụng studio trực quan.
Điều này chứng tỏ rằng microservice đang chạy trên hai điểm cuối và trên hai hệ điều hành được triển khai cục bộ một cách độc lập.
Dịch vụ vi mô là một dịch vụ được xây dựng xung quanh một khả năng kinh doanh cụ thể, có thể được triển khai độc lập được gọi là ngữ cảnh bị ràng buộc. Bài viết này về microservices tập trung vào microservices là gì và lợi thế của chúng so với kiến trúc dịch vụ nguyên khối. Bài viết mô tả chi tiết để phát triển một microservice bằng ASP.NET Core và chạy nó qua IIS và Docker container. Tương tự như vậy, dịch vụ có thể có nhiều hình ảnh và có thể được chạy trên nhiều vùng chứa tại cùng một thời điểm.
Nguồn bài viết gốc tại https://www.c-sharpcorner.com
#microservice #aspdotnet #dotnet #csharp #docker
1602560783
In this article, we’ll discuss how to use jQuery Ajax for ASP.NET Core MVC CRUD Operations using Bootstrap Modal. With jQuery Ajax, we can make HTTP request to controller action methods without reloading the entire page, like a single page application.
To demonstrate CRUD operations – insert, update, delete and retrieve, the project will be dealing with details of a normal bank transaction. GitHub repository for this demo project : https://bit.ly/33KTJAu.
Sub-topics discussed :
In Visual Studio 2019, Go to File > New > Project (Ctrl + Shift + N).
From new project window, Select Asp.Net Core Web Application_._
Once you provide the project name and location. Select Web Application(Model-View-Controller) and uncheck HTTPS Configuration. Above steps will create a brand new ASP.NET Core MVC project.
Let’s create a database for this application using Entity Framework Core. For that we’ve to install corresponding NuGet Packages. Right click on project from solution explorer, select Manage NuGet Packages_,_ From browse tab, install following 3 packages.
Now let’s define DB model class file – /Models/TransactionModel.cs.
public class TransactionModel
{
[Key]
public int TransactionId { get; set; }
[Column(TypeName ="nvarchar(12)")]
[DisplayName("Account Number")]
[Required(ErrorMessage ="This Field is required.")]
[MaxLength(12,ErrorMessage ="Maximum 12 characters only")]
public string AccountNumber { get; set; }
[Column(TypeName ="nvarchar(100)")]
[DisplayName("Beneficiary Name")]
[Required(ErrorMessage = "This Field is required.")]
public string BeneficiaryName { get; set; }
[Column(TypeName ="nvarchar(100)")]
[DisplayName("Bank Name")]
[Required(ErrorMessage = "This Field is required.")]
public string BankName { get; set; }
[Column(TypeName ="nvarchar(11)")]
[DisplayName("SWIFT Code")]
[Required(ErrorMessage = "This Field is required.")]
[MaxLength(11)]
public string SWIFTCode { get; set; }
[DisplayName("Amount")]
[Required(ErrorMessage = "This Field is required.")]
public int Amount { get; set; }
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}")]
public DateTime Date { get; set; }
}
C#Copy
Here we’ve defined model properties for the transaction with proper validation. Now let’s define DbContextclass for EF Core.
#asp.net core article #asp.net core #add loading spinner in asp.net core #asp.net core crud without reloading #asp.net core jquery ajax form #asp.net core modal dialog #asp.net core mvc crud using jquery ajax #asp.net core mvc with jquery and ajax #asp.net core popup window #bootstrap modal popup in asp.net core mvc. bootstrap modal popup in asp.net core #delete and viewall in asp.net core #jquery ajax - insert #jquery ajax form post #modal popup dialog in asp.net core #no direct access action method #update #validation in modal popup
1618666860
This year’s .NET Conf was the largest one yet, with over 80 live sessions across three days that were co-organized and presented by the .NET community and Microsoft. On top of all of that, it also marked the release of .NET 5.0 that brings a full set of new capabilities, performance gains, and new languages features for developers to create amazing apps. If you missed this year’s .NET Conf live stream, don’t worry because we have you covered!
#.net #.net core #asp.net #c# #.net conf #.net foundation #community #demos
1597368540
Docker is an open platform that allows use package, develop, run, and ship software applications in different environments using containers.
In this course We will learn How to Write Dockerfiles, Working with the Docker Toolbox, How to Work with the Docker Machine, How to Use Docker Compose to fire up multiple containers, How to Work with Docker Kinematic, Push images to Docker Hub, Pull images from a Docker Registery, Push stacks of servers to Docker Hub.
How to install Docker on Mac.
#docker tutorial #c++ #docker container #docker #docker hub #devopstools
1618348620
Adding Docker support to a project in Rider is now easier – you can generate the Dockerfile while creating a new project. Just select Docker Support in the New project dialog. If you want to add a Dockerfile to an existing project, use** Add | Docker Support** in the context menu for a project in the Solution Explorer tool window.
Rider can also run Dockerfiles generated by Visual Studio with no additional changes required from you.
#net-tools #releases #debugger #c# #c++ #c