Учебники

.NET Core — Портативная библиотека классов

В этой главе мы обсудим, что такое PCL (Portable Class Library), а также зачем нам нужен PCL. Чтобы понять эту концепцию, давайте откроем папку проекта библиотеки классов, которую мы создали в предыдущей главе.

PCL

В этой папке вы можете видеть, что в дополнение к файлам project.json и CS у нас также есть файл * .xproj, и это потому, что Visual Studio устанавливает тип проекта .NET Core как * .xproj вместо * .csproj.

Как уже упоминалось в Microsoft, * .xproj уйдет, но он все еще здесь, в инструменте предварительного просмотра 2. Как мы уже говорили, приложение UWP использует * .csproj.

механическая обработка

Теперь на самом деле невозможно получить * .csproj для ссылки и * .xproj, и эта функциональность не будет реализована, потому что * .xproj будет удален.

Таким образом, вместо этого нам нужна библиотека классов, которую можно использовать совместно с консольным приложением и приложением UWP, и вот идет PCL.

Что такое PCL

Давайте теперь поймем, что такое PCL —

  • Проект Portable Class Library позволяет создавать и создавать управляемые сборки, которые работают на нескольких платформах .NET Framework.

  • Вы можете создавать классы, которые содержат код, который вы хотите совместно использовать во многих проектах, например разделяемую бизнес-логику, а затем ссылаться на эти классы из разных типов проектов.

  • Он также может помочь вам быстро и легко создавать кроссплатформенные приложения и библиотеки для платформ Microsoft.

  • Переносимые библиотеки классов могут помочь вам сократить время и затраты на разработку и тестирование кода.

  • Используйте этот тип проекта для написания и сборки переносимых сборок .NET Framework, а затем ссылайтесь на эти сборки из приложений, предназначенных для нескольких платформ, таких как Windows и Windows Phone и т. Д.

Проект Portable Class Library позволяет создавать и создавать управляемые сборки, которые работают на нескольких платформах .NET Framework.

Вы можете создавать классы, которые содержат код, который вы хотите совместно использовать во многих проектах, например разделяемую бизнес-логику, а затем ссылаться на эти классы из разных типов проектов.

Он также может помочь вам быстро и легко создавать кроссплатформенные приложения и библиотеки для платформ Microsoft.

Переносимые библиотеки классов могут помочь вам сократить время и затраты на разработку и тестирование кода.

Используйте этот тип проекта для написания и сборки переносимых сборок .NET Framework, а затем ссылайтесь на эти сборки из приложений, предназначенных для нескольких платформ, таких как Windows и Windows Phone и т. Д.

Теперь давайте удалим созданную нами библиотеку классов из обозревателя решений. Одновременно удалите его из папки Solution и добавьте новый элемент проекта.

Удалить

Выберите шаблон Visual C # → Windows на левой панели и выберите Class Library (Portable) на средней панели.

Введите StringLibrary в поле имени и нажмите OK, чтобы создать этот проект.

StringLibrary

Теперь нам нужно выбрать целевые рамки для ссылки. Давайте на мгновение выберем Windows Universal и ASP.NET Core, а затем перенастроим его. Нажмите ОК .

перенацелить

Вы можете видеть, что он создал новый проект в формате PCF. Теперь давайте щелкните правой кнопкой мыши по проекту StringLibrary в обозревателе решений и выберите Свойства.

свойства

Нажмите на Target .NET Platform Standard.

цель

Нажмите Да; теперь это та же библиотека классов с одним небольшим отличием. Разница в том, что он также может быть использован UWP, поскольку он содержит файл * .csproj вместо * .xproj.

библиотека классов

Давайте теперь добавим новый класс; для этого вам нужно щелкнуть правой кнопкой мыши проект в обозревателе решений и выбрать Добавить → Класс …

добавить новый класс

Выберите класс в средней панели и введите StringLib.cs в поле имени, а затем нажмите кнопку « Добавить» . После добавления класса замените следующий код в файле 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); 
      } 
   } 
} 

Давайте создадим этот проект библиотеки переносимых классов, и он должен скомпилироваться без ошибок. Теперь нам нужно добавить ссылку на эту переносимую библиотеку классов в наш консольный проект. Итак, разверните FirstApp, щелкните правой кнопкой мыши на References и выберите Add Reference…

Рекомендации

В диалоговом окне «Диспетчер ссылок» выберите «StringLibrary», который представляет собой проект переносимой библиотеки классов, и нажмите « ОК» .

Библиотечный проект

Вы можете видеть, что ссылка на StringLibrary добавлена ​​в консольный проект, и это также можно увидеть в файле project.json.

Теперь вы можете снова запустить приложение, и вы увидите тот же результат.

Запустить приложение

Позвольте нам теперь использовать другие методы расширения вашей переносимой библиотеки классов в вашем проекте. Та же портативная библиотека будет использоваться и в вашем приложении UWP.