.NET Core - Thư viện lớp di động
Trong chương này, chúng ta sẽ thảo luận về PCL (Thư viện lớp di động) là gì và tại sao chúng ta cần PCL. Để hiểu khái niệm này, chúng ta hãy mở thư mục dự án thư viện lớp mà chúng ta đã tạo trong chương trước.
Trong thư mục này, bạn có thể thấy rằng ngoài các tệp project.json và CS, chúng ta còn có tệp * .xproj và đó là do Visual Studio thiết lập kiểu dự án .NET Core là * .xproj thay vì * .csproj.
Như đã được Microsoft đề cập, * .xproj sẽ không còn nữa, nhưng nó vẫn ở đây trong công cụ xem trước 2. Như chúng tôi đã trình bày, ứng dụng UWP sử dụng * .csproj.
Bây giờ thực sự không khả thi để lấy * .csproj làm tham chiếu và * .xproj và chức năng đó sẽ không được triển khai vì * .xproj sẽ chuyển ra ngoài.
Vì vậy, thay vào đó, chúng ta cần một thư viện lớp có thể được chia sẻ giữa ứng dụng console và ứng dụng UWP và ở đây là PCL.
PCL là gì
Bây giờ chúng ta hãy hiểu PCL là gì -
Dự án Thư viện Lớp di động cho phép bạn viết và xây dựng các hợp ngữ được quản lý hoạt động trên nhiều nền tảng .NET Framework.
Bạn có thể tạo các lớp chứa mã mà bạn muốn chia sẻ trên nhiều dự án, chẳng hạn như logic nghiệp vụ được chia sẻ, rồi tham chiếu các lớp đó từ các loại dự án khác nhau.
Nó cũng có thể giúp bạn xây dựng các ứng dụng và thư viện đa nền tảng cho các nền tảng của Microsoft một cách nhanh chóng và dễ dàng.
Thư viện lớp di động có thể giúp bạn giảm thời gian và chi phí phát triển và kiểm tra mã.
Sử dụng loại dự án này để viết và xây dựng các hội đồng .NET Framework di động, sau đó tham chiếu các hội đồng đó từ các ứng dụng nhắm mục tiêu đến nhiều nền tảng như Windows và Windows Phone, v.v.
Bây giờ chúng ta hãy xóa thư viện lớp mà chúng ta đã tạo khỏi Trình khám phá giải pháp. Đồng thời, xóa nó khỏi thư mục Giải pháp và thêm một mục dự án mới.
Chọn Visual C# → Windows mẫu trong ngăn bên trái và chọn Thư viện lớp (Di động) trong ngăn giữa.
Nhập StringLibrary vào trường tên và nhấp vào OK để tạo dự án này.
Bây giờ chúng ta cần chọn các khung mục tiêu để tham chiếu. Hãy để chúng tôi chọn Windows Universal và ASP.NET Core trong giây lát sau đó chúng tôi sẽ nhắm mục tiêu lại nó. Nhấp chuộtOK.
Bạn có thể thấy rằng nó đã tạo một dự án mới ở định dạng PCF. Bây giờ chúng ta hãy nhấp chuột phải vào dự án StringLibrary trong Solution Explorer và chọn Properties.
Nhấp vào Tiêu chuẩn nền tảng .NET mục tiêu.
Nhấp vào Có; nó bây giờ là cùng một thư viện lớp với một sự khác biệt nhỏ. Sự khác biệt là nó cũng có thể được sử dụng bởi UWP, vì nó chứa tệp * .csproj thay vì * .xproj.
Bây giờ chúng ta hãy thêm một lớp mới; đối với điều này, bạn cần nhấp chuột phải vào dự án trong Solution Explorer và chọnAdd → Class...
Chọn lớp trong ngăn giữa và nhập StringLib.cs trong trường tên và sau đó Nhấp vào Add. Sau khi lớp được thêm, sau đó thay thế mã sau trong tệp StringLib.cs.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StringLibrary {
public static class StringLib {
public static bool StartsWithUpper(this String str) {
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsUpper(ch);
}
public static bool StartsWithLower(this String str) {
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsLower(ch);
}
public static bool StartsWithNumber(this String str) {
if (String.IsNullOrWhiteSpace(str))
return false;
Char ch = str[0];
return Char.IsNumber(ch);
}
}
}
Hãy để chúng tôi xây dựng dự án thư viện lớp di động này và nó sẽ biên dịch mà không có lỗi. Bây giờ chúng ta cần thêm tham chiếu của thư viện lớp di động này trong dự án bảng điều khiển của chúng ta. Vì vậy, hãy mở rộng FirstApp và nhấp chuột phải vào Tham khảo và chọnAdd Reference…
Trong hộp thoại Trình quản lý tham chiếu, chọn StringLibrary là dự án thư viện lớp di động của chúng tôi, sau đó bấm OK.
Bạn có thể thấy rằng tham chiếu StringLibrary được thêm vào dự án bảng điều khiển và nó cũng có thể được nhìn thấy trong tệp project.json.
Bây giờ bạn có thể chạy lại ứng dụng và bạn sẽ thấy kết quả tương tự.
Bây giờ hãy để chúng tôi sử dụng các phương thức mở rộng khác của thư viện lớp di động trong dự án của bạn. Cùng một thư viện di động cũng sẽ được sử dụng trong ứng dụng UWP của bạn.