Skryptowanie i Wykonanie Plików C# w .NET 10: Dogłębna Analiza z Timmem Coreym
C# tradycyjnie był językiem kompilowanym, wymagającym projektu, solucji i konfiguracji Visual Studio do wykonania nawet najprostszych programów. Jednak wraz z .NET 10 sytuacja zmieniła się diametralnie. Tim Corey, w swoim wideo o skryptowaniu C# i wykonywaniu plików, pokazuje, jak programiści mogą teraz traktować C# jako język skryptowy, wykonując pliki skryptowe bez tworzenia pełnego projektu. Ta nowa umiejętność pozwala programistom pisać kod skryptowy w jednym pliku cs, uruchamiać go z wiersza poleceń i szybko eksperymentować z nowym kodem.
W tym artykule zbadamy te funkcje szczegółowo, podążając za wskazówkami Tima, aby zrozumieć przepływ pracy, użycie wiersza poleceń i zaawansowane możliwości wykonywania plików C# opartego na plikach.
Introduction to C# Scripting in .NET 10
Tim rozpoczyna wideo, podkreślając, że skryptowanie C# w .NET 10 pozwala na to, aby pojedynczy plik cs działał jako pełna aplikacja. W przeciwieństwie do tradycyjnych projektów Visual Studio, nie ma potrzeby deklaracji publicznych klas, pliku Program.cs ani pliku solucji. Można teraz napisać skrypt, zapisać go jako demo.cs i natychmiast go wykonać.
To podejście jest podobne do skryptowania w Pythonie czy JavaScripcie, gdzie pojedynczy plik może wykonywać zadania bez tworzenia projektu. Tim podkreśla, że jest to więcej niż wygoda—daje to możliwość wykonywania zadań, testowania stwierdzeń i szybkiego eksperymentowania z obiektami lub danymi.
Tworzenie swojego pierwszego pliku skryptowego
Tim demonstruje tworzenie prostego pliku cs o nazwie FileDemo.cs w Visual Studio Code. Poniższy kod służy jako klasyczny przykład 'hello world':
Console.WriteLine("Hello World")
Uruchamianie pliku jest tak proste, jak otwarcie wiersza poleceń i wykonanie:
dotnet run FileDemo.cs
Wyjście natychmiast wyświetla Hello World, pokazując, że nawet wykonywanie w czasie rzeczywistym pojedynczego pliku jest w pełni wspierane. Tim zauważa, że to podejście jest idealne do testowania nowego kodu, małych skryptów lub sytuacji, w których pełny projekt jest niepotrzebny.
Obsługa wejścia i argumentów wiersza poleceń
Tim następnie demonstruje możliwość akceptacji argumentów wiersza poleceń w kodzie skryptowym. Modyfikując przykład hello world, można przekazać wartość bezpośrednio do pliku skryptowego:
Console.WriteLine($"Hello {args[0]}")
Kiedy uruchomisz dotnet run demo.cs Tim, wyjście staje się Hello Tim. Tim zwraca uwagę, że tablica args działa dokładnie tak samo jak w tradycyjnej aplikacji konsolowej, pokazując, że skrypty oparte na plikach są pełnymi aplikacjami C# z wszystkimi możliwościami języka.
Uproszczona składnia i domyślne using
Tim wyjaśnia, że .NET 10 wspiera domyślne dyrektywy using, co oznacza, że można uzyskać dostęp do przestrzeni nazw System bez wyraźnego pisania using System;. To redukuje nadmiarową składnię i pozwala na natychmiastowe wykonanie pierwszego obiektu lub metody w skrypcie.
To uproszczenie dotyczy rozszerzeń plików csx i środowisk interaktywnych w Visual Studio Code, gdzie deweloperzy mogą testować kod skryptowy linia po linii, korzystając z okien REPL lub okna interaktywnego, podobnie jak w skryptowaniu Python.
Interaktywne wejście użytkownika
Następnie Tim pokazuje, jak sprawić, by skrypty były interaktywne, odczytując dane wejściowe od użytkownika:
Console.Write("Jak masz na imię? ")
string name = Console.ReadLine();
Console.WriteLine($"Hello {name}")
Tutaj pierwszy obiekt interakcji to ciąg name, który można natychmiast uzyskać i wyświetlić. Tim zauważa, że mogą pojawić się ostrzeżenia o wartości null, ale można nimi właściwie zarządzać. Ta umiejętność odczytywania wejścia i wyświetlania wyjścia sprawia, że pliki skryptowe są wszechstronne i praktyczne do zadań wykraczających poza proste kody pokazowe.
Używanie pakietów NuGet w skryptach
Aby rozszerzyć możliwości wykonywania pliku skryptowego, Tim wprowadza pakiety NuGet. Na przykład, używając Spectre.Console, można sformatować wyjście kolorystycznie:
#r "nuget: Spectre.Console, 0.54.0"
using Spectre.Console;
AnsiConsole.MarkupLine("[red]Hello Tim[/]")
Tim wyjaśnia, że dodanie odwołania poprzez pakiety NuGet w kodzie skryptowym pozwala deweloperom korzystać z zewnętrznych zestawów bez pełnego projektu. Pokazuje on uruchamianie skryptu i widzenie konsoli wyświetlającej imię użytkownika na czerwono, pokazując, jak skrypty oparte na plikach mogą być równie potężne jak pełne projekty.
Publikowanie skryptów jako plików wykonywalnych
Tim również omawia tworzenie plików wykonywalnych z plików cs. Poprzez uruchomienie:
dotnet publish Filedemo.cs
można wygenerować DLL lub EXE dla Windows, Linux lub Mac, czyniąc plik skryptowy przenośnym. Podkreśla on, że te pliki wykonywalne są Native AOT, zapewniając maksymalną wydajność wykonania. W razie potrzeby właściwość AOT można wyłączyć, używając dyrektywy właściwości na górze pliku.
To demonstruje możliwość skryptowania .NET 10 do produkcji plików gotowych do produkcji, jednocześnie zachowując prostą składnię.
Konwertowanie skryptów na pełne projekty
Dla bardziej skomplikowanych aplikacji wymagających wielu klas, metod lub obiektów, Tim pokazuje, jak skonwertować plik skryptowy na pełny projekt:
dotnet project convert FileDemo.cs
Ta komenda tworzy nowy folder zawierający plik projektu CS, zachowując odwołania do pakietów NuGet, ustawienia wartości null oraz domyślne using. Poniższy kod z oryginalnego skryptu jest zachowany, co ułatwia integrację z solucją Visual Studio lub uruchamianie jako samodzielny projekt.
Kluczowe zalety skryptowania opartego na plikach
Tim podkreśla kilka zalet skryptowania C# i wykonywania plików:
-
Szybkość – Uruchamiaj nowy kod natychmiast z plików skryptowych.
-
Przenośność – Publikuj skrypty jako pliki wykonywalne dla Windows, Linux lub macOS.
-
Moc – Skrypty mogą używać pakietów NuGet, uzyskiwać dostęp do danych, i obsługiwać wejścia użytkownika.
-
Elastyczność – Promuj pliki cs do pełnych projektów z minimalnym wysiłkiem.
- Zmniejszone koszty ogólne – Brak potrzeby deklaracji solucji, projektu czy klasy dla prostych zadań.
Tim zauważa, że choć skrypty oparte na plikach nie nadają się do każdego scenariusza, są idealne do testowania, dem, i szybkich zadań oparte na konsoli.
Wnioski
Wideo Tima Coreya ilustruje, że skryptowanie C# w .NET 10 to potężne i elastyczne narzędzie dla deweloperów. Pliki skryptowe pozwalają na natychmiastowe wykonanie nowego kodu, obsługę wejścia użytkownika, interakcję z obiektami i korzystanie z pakietów NuGet. Skrypty można uruchamiać z wiersza poleceń, wykonywać w Visual Studio Code lub publikować jako DLL czy EXE do użytku międzyplatformowego.
Możliwość konwersji kodu skryptowego na pełny projekt oferuje to, co najlepsze z obu światów: prostota pliku skryptowego z rozszerzalnością tradycyjnego projektu Visual Studio. Tim zachęca deweloperów do swobodnego pisania, testowania i modyfikowania kodu skryptowego, czyniąc skryptowanie C# cennym narzędziem do szybkiego rozwoju i eksperymentów.
Jak podsumowuje Tim, ta metoda jest idealna do małych projektów, aplikacji konsolowych i zadań przetwarzania danych, zapewniając nowoczesny, efektywny przepływ pracy, który uzupełnia tradycyjny rozwój C#.
