Helpex - Trao đổi & giúp đỡ Đăng nhập

Bản phát hành .NET Core 1.0 - Những điều bạn cần biết để bắt đầu

Với bản phát hành gần đây của .NET Core 1.0 và bản cập nhật khuôn khổ MVC tương ứng cho nó, nhiều người trong số bạn có thể quan tâm đến việc di chuyển các dự án web hiện có hoặc bắt đầu một greenfields với nó. Điều sẽ sớm trở nên rõ ràng là đây là một cuộc đại tu khá lớn và khác ở nhiều điểm so với MVC 5.

Nói chung, nó mang lại những ý tưởng và công cụ mới từ thế giới nguồn mở (đặc biệt là NodeJS) cho hệ sinh thái của Microsoft. Đó là một khung nhanh và trực quan, hầu như chỉ hoạt động (một khi bạn tìm ra sự khác biệt). .

Thực tế là C # và CLR hiện có thể được phát triển trên OS X và triển khai cho Linux là khá tốt. Cần nhớ rằng bản phát hành .NET Core 1.0 mới là một thay đổi lớn và khá khác biệt. Lúc đầu, một số cách cũ sẽ cần phải được phân phối lại, vì vậy cần lưu ý rằng cam kết ban đầu của một dự án .NET Core 1.0 mới có thể trông như thế nào so với trước đây.

Thiết lập làm trang web phát triển địa phương

.NET Core sử dụng máy chủ web của nó, Kestrel, để cung cấp mã CLR. Chúng tôi đang sử dụng quy trình làm việc IIS truyền thống để chuyển tiếp các yêu cầu tới Kestrel. Để IIS xử lý các yêu cầu HTTP tới mã ứng dụng .NET Core của bạn, bạn cần cài đặt gói Lưu trữ Máy chủ Windows Server .NET Core . Điều này chứa Mô-đun lõi ASP.NET và tạo một proxy ngược giữa IIS và máy chủ Kestrel.

Tạo trang web dành cho nhà phát triển cục bộ trong IIS Giống như bình thường:

  1. Nhấn Win + R, mở 'inetmgr', sau đó nhấp chuột phải vào Sites -> Thêm trang web.
  2. Thêm tên trang web, ví dụ: sample.local và đặt đường dẫn vật lý của nó vào thư mục dự án của bạn (đường dẫn có web.configtrong đó). Đặt tên máy chủ lưu trữ thành một miền chẳng hạn như sample.local.
  3. Thêm miền trên vào tệp HOSTS của bạn, trỏ miền đó vào 127.0.0.1.

Tài liệu Xuất bản lên IIS khá hữu ích vì nó liệt kê tất cả các bước liên quan. Đặc biệt, hãy kiểm tra phần 'Các lỗi thường gặp' vì có một số trạng thái lỗi có thể xảy ra tùy thuộc vào những gì bạn đã cài đặt hoặc chế tạo, nó cũng sẽ đánh dấu liệu các bộ phận chuyển động khác nhau có thể định vị những gì chúng cần hay không.

Đặc biệt, để gỡ lỗi cấu hình, bạn sẽ muốn kiểm tra hai điều sau:

  • Bật ghi nhật ký stdout: tạo một log/thư mục trong thư mục gốc dự án của bạn (nơi có web.config) và đặt stdoutLogEnabledthành truetrong web.config
  • Kiểm tra Trình xem sự kiện: Win + R -> eventvwr, sau đó tìm trong Ứng dụng.

Có một bước bổ sung liên quan đến 'Xuất bản' dự án để tạo các tập hợp cùng với mã ứng dụng. Bạn có thể đặt thư mục đích này thành một thư mục bên ngoài dự án hoặc bên trong nó và trỏ Kestrel vào thư mục phát hành. Sau đó, bạn chỉ cần nhấp chuột phải vào dự án trong VS một lần và nhấp vào 'Xuất bản', đặt Vị trí mục tiêu của nó thành Hệ thống tệp và .\bin\Release\PublishOutput. Sau đó, bạn có thể phát triển trang web của mình trong VS. Các thay đổi sẽ được phản ánh khi lưu, như bình thường.

Sau khi bạn đã xuất bản điểm trang web của mình, cuối cùng là aspNetCorephần tử trong web.config tại vị trí đó. Dòng của bạn sẽ trông giống như sau:

<aspNetCore
  processPath="dotnet"
  arguments=".\bin\release\publishoutput\SampleApp.dll"
  stdoutLogEnabled="true"
  stdoutLogFile=".\logs\stdout"
  forwardWindowsAuthToken="false" />


Cuối cùng, chạy miền của bạn trong trình duyệt web và bắt đầu phát triển! Sau đây là một loạt các nhiệm vụ phát triển web thông thường cần được thiết lập trong một dự án mới. Chúng sẽ giúp bạn bắt kịp tốc độ với .NET Core 1.0.

Các tác vụ phía máy khách phổ biến

Cung cấp nội dung tĩnh

Các dự án mặc định có nội dung tĩnh (JS / CSS / images) được kết nối và sẵn sàng để định tuyến ngay lập tức. Bây giờ chúng nằm trong wwwroot / theo mặc định, bên dưới thư mục dự án của bạn. Sử dụng các plugin Gulp hoặc Grunt để xây dựng lại nội dung là cách dễ nhất để phát triển chúng. Cập nhật chúng khi lưu tệp, bằng cách sử dụng trình xem tệp hoặc Trình khám phá trình chạy tác vụ. Các mẫu dự án hoặc Yeoman có thể bao gồm các tệp cấu hình này (chẳng hạn như yo aspnet --gulp). Dưới đây là cách thiết lập quy trình làm việc từ đầu:

  1. Thêm gói NPM.json và gulpfile.js hoặc Gruntfile bằng cách sử dụng Thêm mục mới trong Trình khám phá giải pháp.
  2. Mở Task Runner Explorer bằng cách nhấp chuột phải vào tệp cấu hình Gulp hoặc Grunt, sau đó nhấp vào Chạy trên tác vụ đã chọn.
  3. Thêm các phụ thuộc cụ thể cho Gulp / Grunt .

Dự án mặc định trỏ đến các tệp site.css / site.js nếu là môi trường Development, hoặc site.css.min / site.js.min nếu là Staginghoặc Production(không phân biệt chữ hoa chữ thường). Nếu môi trường đang trỏ đến một trong hai phần sau, bạn sẽ cần chạy các tác vụ Minify với hoặc Gulp / Grunt để cập nhật nội dung phía máy khách. Nếu bạn được chỉ vào nhà phát triển, nội dung sẽ cập nhật tại chỗ.

Có một số cách để thiết lập môi trường phát triển. Nếu bạn đang chạy Kestrel từ VS, bạn có thể đặt nó bằng cách nhấp chuột phải vào dự án trong VS, sau đó đi tới Gỡ lỗi và đặt giá trị ASPNETCORE_ENVIRONMENT. Ngoài ra, bạn có thể đặt tương tự trong Thuộc tính -> khởi chạySettings.json. Nếu bạn đang chạy nó trong IIS và muốn đặt nó trong web.config, bạn có thể làm như sau:

<aspNetCore ...>
  <environmentVariables>
    <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
  </environmentVariables>
</aspNetCore>


Gói nội dung phía máy khách trong .NET Core 1.0

Khi bạn đã thiết lập một trong các trình chạy tác vụ phía máy khách ở trên, tính năng đóng gói và thu nhỏ truyền thống có sẵn bằng cách sử dụng các đường ống tiêu chuẩn của chúng như gulp-concat và UglifyJS2 (được gọi là sử dụng các thư viện trình bao bọc của nó). Tài liệu tuyệt vời cho điều này có sẵn ở đây . Nếu bạn muốn quản lý gói phía máy khách tiên tiến hơn như Webpack, hãy tiếp tục với phần tiếp theo.

Quản lý gói phía máy khách với Webpack

Có sẵn một cách tiếp cận tiên tiến hơn đối với phần trên để phát triển. Một ứng dụng phổ biến và đặc biệt hữu ích với các ứng dụng React là Webpack. Một gói NuGet có sẵn ở đây hỗ trợ điều này từ .NET Core 1.0. Điều này nhận được một máy chủ phát triển cho Tải lại nóng để lặp lại nhanh chóng các mô-đun và trang - khi mã được cập nhật và lưu, các thay đổi ngay lập tức được phản ánh trong trình duyệt mà không cần tải trang tĩnh.

Webpack mạnh mẽ và cũng cung cấp khả năng cho các gói sản xuất sử dụng tải không đồng bộ các phụ thuộc khi chúng cần ('Tải lại nóng' là tính năng giết người đối với tôi).

Các tác vụ phía máy chủ chung

Định tuyến URL

May mắn thay, định tuyến URL trong .NET Core MVC không khác lắm so với MVC 5. Các tuyến khai báo bắt tất cả hiện được chỉ định trong Startup.cs với app.UseMvc()hàm lambda. Do đó, định tuyến bộ điều khiển và phương thức hành động mặc định hoạt động ngoài hộp như trước đây.

Kết quả của việc này là MVC chuẩn không có thật - một FooController kế thừa từ Controller, với phương thức Bar trả về một ActionResult và một View (). Thao tác này sẽ tải chế độ xem nằm trong Views\Foo\Bar.cshtml/ foo / bar được yêu cầu bởi tác nhân người dùng.

Định tuyến thuộc tính cũng được hỗ trợ. Phương thức sau sẽ trả về khi '/ baz' được yêu cầu:

public class FooController : Controller
{
    [Route("/baz")]
    public ActionResult Bar()
    {
      return View();
    }
}


Khu vực

Các thư mục vùng cũng hoạt động như trước đây, vì vậy bạn có thể nhóm các Bộ điều khiển và Chế độ xem có liên quan thành các phần. Ví dụ: khi sử dụng ánh xạ tuyến đường mặc định, bạn có thể thêm các khu vực như sau:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{area=Home}/{controller=Home}/{action=Index}/{id?}");
});


Ghi nhật ký

ILoggerFactory được chuyển vào Startup.Configure cho phép bạn định cấu hình các mục tiêu trình ghi có sẵn và mức độ chi tiết (với LogLevel), v.v.

Để đăng xuất thông báo, bạn chấp nhận một thể hiện của ILogger trong đó T là kiểu lớp khởi tạo. Lưu trữ điều này trong một biến cá thể sau đó cho phép bạn gọi _logger.LogDebug()và tương tự.

Các phần kết xuất

Kể từ khi cập nhật, nếu bạn cố gắng hiển thị chế độ xem Một phần từ chế độ xem Razor với @Html.RenderPartialnó sẽ bị nghẹt. Cú pháp đã thay đổi một chút và API không đồng bộ ở mọi nơi dường như được ưu tiên hơn. Thay vào đó, cú pháp sau hoạt động chính xác:

 @{await Html.RenderPartialAsync("Partial");} 

Đã hết!

Chúng tôi hy vọng bạn thấy bài đăng này hữu ích và thích tìm hiểu .NET Core 1.0. Thêm Báo cáo sự cố và Xung nhịp của Raygun vào trang web của bạn sau khi bạn đã chuẩn bị xong mọi thứ để đảm bảo mọi thứ chạy trơn tru. Cài đặt gói NuGet Mindscape.Raygun4Net.AspNetCore trong Visual Studio bằng cách nhấp chuột phải vào dự án của bạn -> Quản lý Gói NuGet.

Bạn có câu hỏi về bản phát hành .NET Core 1.0 và ý nghĩa của nó đối với bạn? Chia sẻ ý kiến ​​của bạn!

16 hữu ích 0 bình luận 6.5k xem chia sẻ

Có thể bạn quan tâm

loading