12/08/2018, 15:12

Asp.net Core những thay đổi lớn cho lập trình viên .NET

ASP.NET Core là một open-source mới và framework đa nền tảng (cross-platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như web apps, IoT và backend cho mobile. Ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên phiên bản đầy đủ của .NET Framework. Nó được ...

ASP.NET Core là một open-source mới và framework đa nền tảng (cross-platform) cho việc xây dựng những ứng dụng hiện tại dựa trên kết nối đám mây, giống như web apps, IoT và backend cho mobile. Ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên phiên bản đầy đủ của .NET Framework. Nó được thiết kế để cung cấp và tối ưu development framework cho những dụng cái mà được triển khai trên đám mây (clound) hoặc chạy on-promise. Nó bao gồm các thành phần theo hướng module nhằm tối thiểu tài nguyên và chi phí phát triển, như vậy bạn giữ lại được sự mềm giẻo trong việc xây dựng giải pháp của bạn. Bạn có thể phát triển và chạy những ứng dụng ASP.NET Core đa nền tảng trên Windows, Mac và Linux. Đồng thời nó đã trở thành một mã nguồn mở. Đây là một thay đổi rất lớn và theo mình là quan trọng nhất của ASP.NET Core. Điều mà trước đây khó có một lập trình viên nào có thể nghĩ đến. Có lẽ đó cũng là một xu thế mà các ngôn ngữ lập trình hiện nay đang hướng tới.

Bản phát hành đầu tiên của ASP.NET đã xuất hiện cách đây 15 năm trước, nó là một phần của .NET Framework. Từ đó, hàng triệu lập trình viên đã sử dụng nó để xây dựng những ứng dụng web tuyệt vời, và trên những năm đó Microsoft đã phát triển thêm nhiều tính năng mới.

ASP.NET Core có một số thay đổi kiến trúc lớn, đó là kết quả của việc học hỏi rất nhiều từ các framework module hóa khác. ASP.NET Core không còn dựa trên System.Web.dll nữa. Nó được dựa trên một tập hợp các gói, các module hay cũng được gọi là các Nuget packages. Điều này cho phép bạn tối ưu ứng dụng của bạn để chỉ bao gồm những packages nào cần thiết. Lợi ích của nó là giúp cho ứng dụng nhỏ hơn, bảo mật chặt chẽ hơn, giảm sự phức tạp, tối ưu hiệu suất hoạt động và giảm chi phí, thời gian cho việc phát triển.

Với ASP.NET Core bạn đạt được những nền tảng cải tiến dưới đây:

  • Hợp nhất việc xây dựng web UI và web APIs
  • Tích hợp những client-side frameworks hiện đại và những luồng phát triển
  • Hệ thống cấu hình dựa trên môi trường đám mây thật sự
  • Dependency injection được xây dựng sẵn
  • HTTP request được tối ưu nhẹ hơn
  • Có thể host trên IIS hoặc self-host trong process của riêng bạn
  • Được xây dựng trên .NET Core, hỗ trợ thực sự app versioning
  • Chuyển các thực thể, thành phần, module như những NuGet packages
  • Những công cụ mới để đơn giản hóa quá trình phát triển web hiện đại
  • Xây dựng và chạy đa nền tảng(Windows, Mac và Linux)
  • Mã nguồn mở và tập trung vào cộng đồng
  • Bạn có thể tạo ra các ứng dụng web có thể testing theo mô hình MVC(Model-View-Controller)
  • Bạn có thể xây dựng HTTP services cái mà hỗ trợ nhiều định dạng và có đầy đủ hỗ trợ cho nội dung của dữ liệu trả về
  • Razor cung cấp một ngôn ngữ hiệu quả để tạo Views
  • Tag Helper cho phép code server side tham gia vào việc tạo và render phần tử HTML
  • Model Binding tự động ánh xạ dữ liệu từ HTTP request tới tham số của method action
  • Model Validation tự động thực hiện validate client và server

ASP.NET Core được thiết kế để tích hợp một cách liên tục với nhiều client-side frameworks, bao gồm AngularJS, KnockoutJS và Bootstrap. Về phần này tôi sẽ giới thiệu với các bạn ở những bài viết sau

Như vậy tôi đã giới thiệu một cách tổng quan các khái niệm của ASP.NET Core. Giờ là lúc chúng ta tìm hiểu cấu trúc một project ASP.NET Core MVC thông qua một ví dụ đơn giản

5.1 Cài đặt Visual Studio and .NET Core

Cài đặt Visual Studio Community 2017. Chọn phiên bản download Community. Bỏ qua bước này nếu bạn đã có Visual Studio cài đặt trong máy

  • Visual Studio 2017 Home page installer

Chạy bản cài đặt và chọn những workloads bên dưới:

  • ASP.NET và web development
  • .NET Core cross-platform development

5.2 Tạo một web app

Từ Visual Studio, chọn File > New > Project.

Hoàn thành họp thoại New Project:

  • Trong phần bên trái, chọn .NET Core
  • Trong phần giữa, chọn ASP.NET Core Web Application(.NET Core)
  • Tên của project ví dụ là "MvcMovie"
  • Nhấn OK

Visual Studio đã sử dụng một template mặc định cho dự án MVC bạn vừa tạo. Bạn có một ứng dụng làm việc bây giờ bằng việc điền tên dự án và một vài tùy chọn. Điều này là một dự án bắt đầu đơn giản. Nhấn F5 để chạy ứng dụng trong chế độ debug hoặc Ctrl-F5 trong chế độ non-debug. Các bạn có thể quan sát kết quả của trang chủ. Thật đơn giản phải không ?

  • Visual studio bắt đầu với IIS Express và chạy ứng dụng của bạn. Chú ý rằng thanh địa chỉ hiển thị dạng localhost:port# và không phải kiểu như example.com. Đó là bởi vì localhost là hostname chuẩn cho máy tính local của bạn. Khi Visual Studio tạo một dự án web, một ramdom port được sử dụng cho web server. Trong hình trên, số cổng là 5000. Khi bạn chạy ứng dụng, bạn sẽ thấy một số cổng khác.
  • Việc chạy ứng dụng với Ctrl-F5(non-debug) cho phép bạn làm code thay đổi, lưu file, refresh trình duyệt và thấy ngay những thay đổi của code. Nhiều lập trình viên thích sử dụng chế độ non-debug để nhanh chóng chạy ứng dụng và xem những thay đổi. Điều này là tương tự với ngôn ngữ thông dịch như php, python hay ruby,..
  • Chạy với chế độ self-host. Một điểm mới trong ASP.NET Core là các bạn có thể chạy server như một ứng dụng console thay vì host trên IIS. Để dùng chế độ này, tại điểm bắt đầu với IIS chúng ta thay bằng bắt đầu với self-host(Tên chính là tên ứng dụng)

Cửa sổ console ứng dụng

Qua những giới thiệu về ASP.NET Core trong bài viết này, các bạn có thể thất đây thực sự là những thay đổi lớn cho những ai đã quen với ASP.NET trước kia. Giờ đây ASP.NET đã trở thành một open-source, đa nền tảng có thể chạy trên nhiều môi trường, thiết kế tối ưu cho clound, module hóa, hợp nhất ASP.NET và ASP.NET MVC làm một (chỉ còn phiên bản MVC) và rất nhiều thay đổi tuyệt vời khác. Tôi hy vọng sẽ chia sẻ nhiều hơn đến các bạn. Chúc các bạn có những khám phá thú vị cùng ASP.NET Core

Link tham khảo:

  • Introduction to ASP.NET Core

  • Building your first ASP.NET Core MVC app with Visual Studio

  • Asp.net core trên github

0