Esercitazione: Creare una libreria di classi .NET con Visual Studio Code
In questa esercitazione viene creata una semplice libreria di utilità che contiene un singolo metodo di gestione delle stringhe.
La libreria di classi definisce tipi e metodi chiamati da un'applicazione. Se la libreria è destinata a .NET Standard 2.0, può essere chiamata da qualsiasi implementazione di .NET (incluso .NET Framework) che supporti .NET Standard 2.0. Se la libreria è destinata a .NET 8, può essere chiamata da qualsiasi applicazione destinata a .NET 8. Questa esercitazione illustra come usare .NET 8 come destinazione.
Quando si crea una libreria di classi, è possibile distribuirla come componente di terze parti o come componente in bundle con una o più applicazioni.
Prerequisiti
Visual Studio Code con l'estensione C# installata.
Se è installata l'estensione C# Dev Kit, disinstallarla o disabilitarla. Non viene usato da questa serie di esercitazioni.
Per informazioni su come installare le estensioni in Visual Studio Code, vedere Vs Code Extension Marketplace.
Creazione di una soluzione
Per iniziare, creare una soluzione vuota in cui inserire il progetto di libreria di classi. Una soluzione funge da contenitore per uno o più progetti. Si aggiungeranno altri progetti correlati alla stessa soluzione.
Avviare Visual Studio Code.
Selezionare File>Apri cartella (Apri... in macOS) dal menu principale
Nella finestra di dialogo Apri cartella, creare una cartella ClassLibraryProjects e fare clic su Seleziona cartella (Apri in macOS).
Aprire il terminale in Visual Studio Code selezionando Visualizza>terminale dal menu principale.
Il terminale viene aperto con il prompt dei comandi nella cartella ClassLibraryProjects.
Nel Terminale immettere il comando seguente:
dotnet new sln
L'output del terminale è simile all'esempio seguente:
The template "Solution File" was created successfully.
Creare un progetto di libreria di classi
Aggiungere alla soluzione un nuovo progetto di libreria di classi .NET denominato "StringLibrary".
Nel terminale eseguire il comando seguente per creare il progetto di libreria:
dotnet new classlib -o StringLibrary
Il comando
-o
o--output
specifica il percorso in cui inserire l'output generato.L'output del terminale è simile all'esempio seguente:
The template "Class library" was created successfully. Processing post-creation actions... Running 'dotnet restore' on StringLibrary\StringLibrary.csproj... Determining projects to restore... Restored C:\Projects\ClassLibraryProjects\StringLibrary\StringLibrary.csproj (in 328 ms). Restore succeeded.
Eseguire il comando seguente per aggiungere il progetto di libreria alla soluzione:
dotnet sln add StringLibrary/StringLibrary.csproj
L'output del terminale è simile all'esempio seguente:
Project `StringLibrary\StringLibrary.csproj` added to the solution.
Verificare che la libreria sia destinata a .NET 8. In Esplora risorse, aprire StringLibrary/StringLibrary.csproj.
L'elemento
TargetFramework
mostra che il progetto è destinato a .NET 8.0.<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net8.0</TargetFramework> </PropertyGroup> </Project>
Aprire Class1.cs e sostituire il codice con il codice seguente.
namespace UtilityLibraries; public static class StringLibrary { public static bool StartsWithUpper(this string? str) { if (string.IsNullOrWhiteSpace(str)) return false; char ch = str[0]; return char.IsUpper(ch); } }
La libreria di classi,
UtilityLibraries.StringLibrary
, contiene un metodo denominatoStartsWithUpper
. Questo metodo restituisce un valore Boolean che indica se l'istanza della stringa corrente inizia con un carattere maiuscolo. Lo standard Unicode distingue i caratteri maiuscoli dai minuscoli. Il metodo Char.IsUpper(Char) restituiscetrue
se un carattere è maiuscolo.StartsWithUpper
viene implementato come metodo di estensione in modo da poterlo chiamare come se fosse membro della classe String.Salvare il file.
Eseguire il comando seguente per compilare la soluzione e verificare che il progetto venga compilato senza errori.
dotnet build
L'output del terminale è simile all'esempio seguente:
Microsoft (R) Build Engine version 17.8.0+b89cb5fde for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... All projects are up-to-date for restore. StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net8.0\StringLibrary.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:02.78
Aggiungere un'app console alla soluzione
Aggiungere un'applicazione console che usa la libreria di classi. L'app chiederà all'utente di immettere una stringa e di segnalare se la stringa inizia con un carattere maiuscolo.
Nel terminale eseguire il comando seguente per creare il progetto di app console:
dotnet new console -o ShowCase
L'output del terminale è simile all'esempio seguente:
The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on ShowCase\ShowCase.csproj... Determining projects to restore... Restored C:\Projects\ClassLibraryProjects\ShowCase\ShowCase.csproj (in 210 ms). Restore succeeded.
Eseguire il comando seguente per aggiungere il progetto di app console alla soluzione:
dotnet sln add ShowCase/ShowCase.csproj
L'output del terminale è simile all'esempio seguente:
Project `ShowCase\ShowCase.csproj` added to the solution.
Aprire ShowCase/Program.cs e sostituire tutto il codice con il codice seguente.
using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; Console.WriteLine($"Input: {input}"); Console.WriteLine("Begins with uppercase? " + $"{(input.StartsWithUpper() ? "Yes" : "No")}"); Console.WriteLine(); row += 4; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; } } }
Il codice usa la variabile
row
per mantenere il conteggio del numero di righe di dati scritti nella finestra della console. Ogni volta che è maggiore o uguale a 25, il codice cancella la finestra della console e visualizza un messaggio all'utente.Il programma richiede all'utente di immettere una stringa. Indica se la stringa inizia con un carattere maiuscolo. Se l'utente preme il tasto INVIO senza immettere una stringa, l'applicazione termina e la finestra della console viene chiusa.
Salva le modifiche.
Aggiungere un riferimento al progetto
Inizialmente, il nuovo progetto di app console non ha accesso alla libreria di classi. Per consentire di chiamare i metodi nella libreria di classi, creare un riferimento al progetto di libreria di classi.
Esegui questo comando:
dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj
L'output del terminale è simile all'esempio seguente:
Reference `..\StringLibrary\StringLibrary.csproj` added to the project.
Eseguire l'app
Eseguire il comando seguente nel terminale:
dotnet run --project ShowCase/ShowCase.csproj
Provare il programma immettendo stringhe e premendo INVIO, quindi premere INVIO per uscire.
L'output del terminale è simile all'esempio seguente:
Press <Enter> only to exit; otherwise, enter a string and press <Enter>: A string that starts with an uppercase letter Input: A string that starts with an uppercase letter Begins with uppercase? : Yes a string that starts with a lowercase letter Input: a string that starts with a lowercase letter Begins with uppercase? : No
Risorse aggiuntive
- Sviluppare librerie con l'interfaccia della riga di comando di .NET
- Versioni di .NET Standard e piattaforme supportate.
Passaggi successivi
In questa esercitazione è stata creata una soluzione, è stato aggiunto un progetto di libreria e è stato aggiunto un progetto di app console che usa la libreria. Nell'esercitazione successiva si aggiunge un progetto di unit test alla soluzione.
In questa esercitazione viene creata una semplice libreria di utilità che contiene un singolo metodo di gestione delle stringhe.
La libreria di classi definisce tipi e metodi chiamati da un'applicazione. Se la libreria è destinata a .NET Standard 2.0, può essere chiamata da qualsiasi implementazione di .NET (incluso .NET Framework) che supporti .NET Standard 2.0. Se la libreria è destinata a .NET 7, può essere chiamata da qualsiasi applicazione destinata a .NET 7. Questa esercitazione illustra come usare .NET 7 come destinazione.
Quando si crea una libreria di classi, è possibile distribuirla come componente di terze parti o come componente in bundle con una o più applicazioni.
Prerequisiti
- Visual Studio Code con l'estensione C# installata. Per informazioni su come installare le estensioni in Visual Studio Code, vedere Vs Code Extension Marketplace.
- .NET 7 SDK.
Creazione di una soluzione
Per iniziare, creare una soluzione vuota in cui inserire il progetto di libreria di classi. Una soluzione funge da contenitore per uno o più progetti. Si aggiungeranno altri progetti correlati alla stessa soluzione.
Avviare Visual Studio Code.
Selezionare File>Apri cartella (Apri... in macOS) dal menu principale
Nella finestra di dialogo Apri cartella, creare una cartella ClassLibraryProjects e fare clic su Seleziona cartella (Apri in macOS).
Aprire il terminale in Visual Studio Code selezionando Visualizza>terminale dal menu principale.
Il terminale viene aperto con il prompt dei comandi nella cartella ClassLibraryProjects.
Nel Terminale immettere il comando seguente:
dotnet new sln
L'output del terminale è simile all'esempio seguente:
The template "Solution File" was created successfully.
Creare un progetto di libreria di classi
Aggiungere alla soluzione un nuovo progetto di libreria di classi .NET denominato "StringLibrary".
Nel terminale eseguire il comando seguente per creare il progetto di libreria:
dotnet new classlib -o StringLibrary
Il comando
-o
o--output
specifica il percorso in cui inserire l'output generato.L'output del terminale è simile all'esempio seguente:
The template "Class library" was created successfully. Processing post-creation actions... Running 'dotnet restore' on StringLibrary\StringLibrary.csproj... Determining projects to restore... Restored C:\Projects\ClassLibraryProjects\StringLibrary\StringLibrary.csproj (in 328 ms). Restore succeeded.
Eseguire il comando seguente per aggiungere il progetto di libreria alla soluzione:
dotnet sln add StringLibrary/StringLibrary.csproj
L'output del terminale è simile all'esempio seguente:
Project `StringLibrary\StringLibrary.csproj` added to the solution.
Verificare che la libreria sia destinata a .NET 7. In Esplora risorse, aprire StringLibrary/StringLibrary.csproj.
L'elemento
TargetFramework
mostra che il progetto è destinato a .NET 7.0.<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net7.0</TargetFramework> </PropertyGroup> </Project>
Aprire Class1.cs e sostituire il codice con il codice seguente.
namespace UtilityLibraries; public static class StringLibrary { public static bool StartsWithUpper(this string? str) { if (string.IsNullOrWhiteSpace(str)) return false; char ch = str[0]; return char.IsUpper(ch); } }
La libreria di classi,
UtilityLibraries.StringLibrary
, contiene un metodo denominatoStartsWithUpper
. Questo metodo restituisce un valore Boolean che indica se l'istanza della stringa corrente inizia con un carattere maiuscolo. Lo standard Unicode distingue i caratteri maiuscoli dai minuscoli. Il metodo Char.IsUpper(Char) restituiscetrue
se un carattere è maiuscolo.StartsWithUpper
viene implementato come metodo di estensione in modo da poterlo chiamare come se fosse membro della classe String.Salvare il file.
Eseguire il comando seguente per compilare la soluzione e verificare che il progetto venga compilato senza errori.
dotnet build
L'output del terminale è simile all'esempio seguente:
Microsoft (R) Build Engine version 16.7.4+b89cb5fde for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... All projects are up-to-date for restore. StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net7.0\StringLibrary.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:02.78
Aggiungere un'app console alla soluzione
Aggiungere un'applicazione console che usa la libreria di classi. L'app chiederà all'utente di immettere una stringa e di segnalare se la stringa inizia con un carattere maiuscolo.
Nel terminale eseguire il comando seguente per creare il progetto di app console:
dotnet new console -o ShowCase
L'output del terminale è simile all'esempio seguente:
The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on ShowCase\ShowCase.csproj... Determining projects to restore... Restored C:\Projects\ClassLibraryProjects\ShowCase\ShowCase.csproj (in 210 ms). Restore succeeded.
Eseguire il comando seguente per aggiungere il progetto di app console alla soluzione:
dotnet sln add ShowCase/ShowCase.csproj
L'output del terminale è simile all'esempio seguente:
Project `ShowCase\ShowCase.csproj` added to the solution.
Aprire ShowCase/Program.cs e sostituire tutto il codice con il codice seguente.
using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; Console.WriteLine($"Input: {input}"); Console.WriteLine("Begins with uppercase? " + $"{(input.StartsWithUpper() ? "Yes" : "No")}"); Console.WriteLine(); row += 4; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; } } }
Il codice usa la variabile
row
per mantenere il conteggio del numero di righe di dati scritti nella finestra della console. Ogni volta che è maggiore o uguale a 25, il codice cancella la finestra della console e visualizza un messaggio all'utente.Il programma richiede all'utente di immettere una stringa. Indica se la stringa inizia con un carattere maiuscolo. Se l'utente preme il tasto INVIO senza immettere una stringa, l'applicazione termina e la finestra della console viene chiusa.
Salva le modifiche.
Aggiungere un riferimento al progetto
Inizialmente, il nuovo progetto di app console non ha accesso alla libreria di classi. Per consentire di chiamare i metodi nella libreria di classi, creare un riferimento al progetto di libreria di classi.
Esegui questo comando:
dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj
L'output del terminale è simile all'esempio seguente:
Reference `..\StringLibrary\StringLibrary.csproj` added to the project.
Eseguire l'app
Eseguire il comando seguente nel terminale:
dotnet run --project ShowCase/ShowCase.csproj
Provare il programma immettendo stringhe e premendo INVIO, quindi premere INVIO per uscire.
L'output del terminale è simile all'esempio seguente:
Press <Enter> only to exit; otherwise, enter a string and press <Enter>: A string that starts with an uppercase letter Input: A string that starts with an uppercase letter Begins with uppercase? : Yes a string that starts with a lowercase letter Input: a string that starts with a lowercase letter Begins with uppercase? : No
Risorse aggiuntive
- Sviluppare librerie con l'interfaccia della riga di comando di .NET
- Versioni di .NET Standard e piattaforme supportate.
Passaggi successivi
In questa esercitazione è stata creata una soluzione, è stato aggiunto un progetto di libreria e è stato aggiunto un progetto di app console che usa la libreria. Nell'esercitazione successiva si aggiunge un progetto di unit test alla soluzione.
In questa esercitazione viene creata una semplice libreria di utilità che contiene un singolo metodo di gestione delle stringhe.
La libreria di classi definisce tipi e metodi chiamati da un'applicazione. Se la libreria è destinata a .NET Standard 2.0, può essere chiamata da qualsiasi implementazione di .NET (incluso .NET Framework) che supporti .NET Standard 2.0. Se la libreria è destinata a .NET 6, può essere chiamata da qualsiasi applicazione destinata a .NET 6. Questa esercitazione illustra come usare .NET 6 come destinazione.
Quando si crea una libreria di classi, è possibile distribuirla come componente di terze parti o come componente in bundle con una o più applicazioni.
Prerequisiti
- Visual Studio Code con l'estensione C# installata. Per informazioni su come installare le estensioni in Visual Studio Code, vedere Vs Code Extension Marketplace.
- .NET 6 SDK.
Creazione di una soluzione
Per iniziare, creare una soluzione vuota in cui inserire il progetto di libreria di classi. Una soluzione funge da contenitore per uno o più progetti. Si aggiungeranno altri progetti correlati alla stessa soluzione.
Avviare Visual Studio Code.
Selezionare File>Apri cartella (Apri... in macOS) dal menu principale
Nella finestra di dialogo Apri cartella, creare una cartella ClassLibraryProjects e fare clic su Seleziona cartella (Apri in macOS).
Aprire il terminale in Visual Studio Code selezionando Visualizza>terminale dal menu principale.
Il terminale viene aperto con il prompt dei comandi nella cartella ClassLibraryProjects.
Nel Terminale immettere il comando seguente:
dotnet new sln
L'output del terminale è simile all'esempio seguente:
The template "Solution File" was created successfully.
Creare un progetto di libreria di classi
Aggiungere alla soluzione un nuovo progetto di libreria di classi .NET denominato "StringLibrary".
Nel terminale eseguire il comando seguente per creare il progetto di libreria:
dotnet new classlib -f net6.0 -o StringLibrary
Il comando
-f
o--framework
modifica il framework di destinazione predefinito nella versionenet6.0
.Il comando
-o
o--output
specifica il percorso in cui inserire l'output generato.L'output del terminale è simile all'esempio seguente:
The template "Class library" was created successfully. Processing post-creation actions... Running 'dotnet restore' on StringLibrary\StringLibrary.csproj... Determining projects to restore... Restored C:\Projects\ClassLibraryProjects\StringLibrary\StringLibrary.csproj (in 328 ms). Restore succeeded.
Eseguire il comando seguente per aggiungere il progetto di libreria alla soluzione:
dotnet sln add StringLibrary/StringLibrary.csproj
L'output del terminale è simile all'esempio seguente:
Project `StringLibrary\StringLibrary.csproj` added to the solution.
Verificare che la libreria sia destinata a .NET 6. In Esplora risorse, aprire StringLibrary/StringLibrary.csproj.
L'elemento
TargetFramework
mostra che il progetto è destinato a .NET 6.0.<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> </PropertyGroup> </Project>
Aprire Class1.cs e sostituire il codice con il codice seguente.
namespace UtilityLibraries; public static class StringLibrary { public static bool StartsWithUpper(this string? str) { if (string.IsNullOrWhiteSpace(str)) return false; char ch = str[0]; return char.IsUpper(ch); } }
La libreria di classi,
UtilityLibraries.StringLibrary
, contiene un metodo denominatoStartsWithUpper
. Questo metodo restituisce un valore Boolean che indica se l'istanza della stringa corrente inizia con un carattere maiuscolo. Lo standard Unicode distingue i caratteri maiuscoli dai minuscoli. Il metodo Char.IsUpper(Char) restituiscetrue
se un carattere è maiuscolo.StartsWithUpper
viene implementato come metodo di estensione in modo da poterlo chiamare come se fosse membro della classe String.Salvare il file.
Eseguire il comando seguente per compilare la soluzione e verificare che il progetto venga compilato senza errori.
dotnet build
L'output del terminale è simile all'esempio seguente:
Microsoft (R) Build Engine version 16.7.0+b89cb5fde for .NET Copyright (C) Microsoft Corporation. All rights reserved. Determining projects to restore... All projects are up-to-date for restore. StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net6.0\StringLibrary.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:02.78
Aggiungere un'app console alla soluzione
Aggiungere un'applicazione console che usa la libreria di classi. L'app chiederà all'utente di immettere una stringa e di segnalare se la stringa inizia con un carattere maiuscolo.
Nel terminale eseguire il comando seguente per creare il progetto di app console:
dotnet new console -f net6.0 -o ShowCase
L'output del terminale è simile all'esempio seguente:
The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on ShowCase\ShowCase.csproj... Determining projects to restore... Restored C:\Projects\ClassLibraryProjects\ShowCase\ShowCase.csproj (in 210 ms). Restore succeeded.
Eseguire il comando seguente per aggiungere il progetto di app console alla soluzione:
dotnet sln add ShowCase/ShowCase.csproj
L'output del terminale è simile all'esempio seguente:
Project `ShowCase\ShowCase.csproj` added to the solution.
Aprire ShowCase/Program.cs e sostituire tutto il codice con il codice seguente.
using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; Console.WriteLine($"Input: {input}"); Console.WriteLine("Begins with uppercase? " + $"{(input.StartsWithUpper() ? "Yes" : "No")}"); Console.WriteLine(); row += 4; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; } } }
Il codice usa la variabile
row
per mantenere il conteggio del numero di righe di dati scritti nella finestra della console. Ogni volta che è maggiore o uguale a 25, il codice cancella la finestra della console e visualizza un messaggio all'utente.Il programma richiede all'utente di immettere una stringa. Indica se la stringa inizia con un carattere maiuscolo. Se l'utente preme il tasto INVIO senza immettere una stringa, l'applicazione termina e la finestra della console viene chiusa.
Salva le modifiche.
Aggiungere un riferimento al progetto
Inizialmente, il nuovo progetto di app console non ha accesso alla libreria di classi. Per consentire di chiamare i metodi nella libreria di classi, creare un riferimento al progetto di libreria di classi.
Esegui questo comando:
dotnet add ShowCase/ShowCase.csproj reference StringLibrary/StringLibrary.csproj
L'output del terminale è simile all'esempio seguente:
Reference `..\StringLibrary\StringLibrary.csproj` added to the project.
Eseguire l'app
Eseguire il comando seguente nel terminale:
dotnet run --project ShowCase/ShowCase.csproj
Provare il programma immettendo stringhe e premendo INVIO, quindi premere INVIO per uscire.
L'output del terminale è simile all'esempio seguente:
Press <Enter> only to exit; otherwise, enter a string and press <Enter>: A string that starts with an uppercase letter Input: A string that starts with an uppercase letter Begins with uppercase? : Yes a string that starts with a lowercase letter Input: a string that starts with a lowercase letter Begins with uppercase? : No
Risorse aggiuntive
- Sviluppare librerie con l'interfaccia della riga di comando di .NET
- Versioni di .NET Standard e piattaforme supportate.
Passaggi successivi
In questa esercitazione è stata creata una soluzione, è stato aggiunto un progetto di libreria e è stato aggiunto un progetto di app console che usa la libreria. Nell'esercitazione successiva si aggiunge un progetto di unit test alla soluzione.