Trong chương này, chúng ta sẽ thảo luận về PCL (Thư viện lớp di động) là gì, cũng như lý do 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 tôi còn có tệp *.xproj và đó là do Visual Studio thiết lập loại dự án .NET Core là *.xproj thay vì *.csproj.
Như Microsoft đã đề cập, *.xproj sẽ biến mất, nhưng nó vẫn ở đây trong công cụ xem trước 2. Như chúng tôi đã đề cập, ứ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ẽ bị loại bỏ.
Vì vậy, thay vào đó, chúng tôi cần một thư viện lớp có thể được chia sẻ giữa ứng dụng bảng điều khiển 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 tổ hợp đượ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ẻ, sau đó 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 tập hợp .NET Framework di động, sau đó tham chiếu các tập hợp đó từ các ứng dụng nhắm mục tiêu 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 từ Solution Explorer. Đồ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 mẫu Visual C# → Windows ở ngăn bên trái và chọn Thư viện lớp (Portable) ở 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 khảo. 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ó. Bấm OK .
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 Thuộc tính.
Nhấp vào Tiêu chuẩn nền tảng .NET mục tiêu.
Nhấp vào Có; bây giờ nó 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ọn Thêm → Lớp…
Chọn lớp ở ngăn giữa và nhập StringLib.cs vào trường tên rồi nhấp vào Thêm . Khi lớp được thêm vào, sau đó thay thế đoạn mã sau vào 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 Tài liệu tham khảo và chọn Thêm tài liệu tham khảo…
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, rồi 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ờ chúng ta hãy 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. Thư viện di động tương tự cũng sẽ được sử dụng trong ứng dụng UWP của bạn.