|
|
Opublikowano 2019-9-28 16:38:47
|
|
|
|

Kilka dni temu Microsoft wydał .NET Core 3.0, a jednym z największych ulepszeń jest wsparcie dla aplikacji desktopowych Windows (tylko Windows). Korzystając z komponentu .NET Core 3.0 SDK Windows Desktop, możesz przenieść aplikacje Windows Forms oraz Windows Presentation Foundation (WPF). Dla jasności, komponenty desktopowe Windows są obsługiwane i dołączone tylko w Windows.
Adres do pobrania SDK:Logowanie do linku jest widoczne.
Linki wprowadzające funkcje .NET Core:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
Cechy obejmują następujące cechy:
- Używaj C# do tworzenia bogatych, interaktywnych aplikacji webowych dla klientów.
- Wykorzystaj gRPC do tworzenia wysokowydajnych usług backendowych.
- SignalR obsługuje teraz automatyczne ponowne połączenie oraz przepływy klient-serwer.
- Korzystaj z dokumentacji OpenAPI do generowania silnie napisanego kodu klienta dla Web API.
- Routing punktów końcowych jest zintegrowany w ramach frameworka.
- Kestrel ma domyślnie włączone HTTP/2.
- Zintegrowane webowe API oraz wsparcie dla uwierzytelniania aplikacji jednostronnych.
- Obsługiwane są certyfikaty i uwierzytelnianie Kerberos.
- Integruj nowy serializer System.Text.Json.
- Nowy uniwersalny hosting konfiguruje wspólne zarządzane usługi, takie jak wstrzykiwanie zależności, konfiguracja i logowanie.
- Nowy szablon Worker Service do budowania usług długoterminowych.
- Nowe EventCountery są tworzone dla żądań na sekundę, całkowitych, bieżących i nieudanych żądań.
- Błędy uruchamiania hostowane w IIS są teraz zgłaszane do dziennika zdarzeń Windows.
- Poproś o integrację pipeline System.IO.Pipelines.
- Poprawa wydajności w całym stosie technologicznym.
Stwórzmy nowy projekt konsolowy .NET Core 3.0 z wersją VS 2019, jak pokazano na poniższym rysunku:
Korzystając z pakietu Newtonsoft.Json, napisz kilka linii kodu, w następujący sposób:
Klikamy prawym przyciskiem na VS Regenerate, otwieramy katalog kosza projektu i okazuje się, że zostanie wygenerowanych kilka plików, w tym :demo1.exe i Newtonsoft.Json.dll plików.
Publikuj plik wykonywalny z pojedynczego pliku
Metoda 1:
Wykonaj następujące polecenie w katalogu projektu:
Otwieramy folder C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 i okazuje się, że wygenerowanych jest wiele plików dll oraz folder publikujący.
Przejdź do folderu publikuj,Rozmiar demo1.exe wyświetlania wynosi 66M, co jest takim samym rozmiarem jak wszystkie pliki poza folderem, jak pokazano na poniższym rysunku:
Wygenerowany pojedynczy plik wykonywalny faktycznie zawiera środowisko wymagane do wykonania programu i nie wymaga instalacji SDK przez docelowy komputer, a wadą jest to, że rozmiar pliku stanie się bardzo duży.
Metoda 2:
Kliknij prawym przyciskiem zamiast edytować plik projektu i dodać konfigurację węzła PublishSingleFile, kod wygląda następująco:
Następnie kliknij prawym przyciskiem i "Publikuj".
Połączenia montażowe
SDK .NET core 3.0 zawiera narzędzie, które może zmniejszyć rozmiar aplikacji poprzez analizę IL i przycinanie nieużywanych asembli.
Aplikacje samodzielne zawierają wszystko, czego potrzebujesz do uruchamiania kodu bez konieczności instalowania .NET na głównym komputerze. Jednak często aplikacja potrzebuje tylko ułamka frameworka do działania, a inne nieużywane biblioteki można usunąć.
.NET Core teraz zawiera ustawienie, które skanuje IL Twojej aplikacji za pomocą narzędzia IL linker. To narzędzie wykryje, jaki kod jest potrzebny, a następnie wycina nieużywane biblioteki. To narzędzie może znacząco zmniejszyć rozmiar wdrożenia niektórych aplikacji.
Aby włączyć to narzędzie, skorzystaj z <PublishTrimmed> ustawień w swoim projekcie i opublikuj samodzielną aplikację:
.NET Core CLI
Właśnie wygenerowaliśmy plik 66M, a po dodaniu konfiguracji,Stał się 35M, zmniejszając obłożenie do 30M.。
Pamiętaj, aby rozważyć aplikacje lub frameworki wykorzystujące refleksje lub powiązane funkcje dynamiczne (w tym ASP.NET Core i WPF).Zazwyczaj uszkadzane podczas cięcia。 To uszkodzenie występuje, ponieważ linker nie jest świadomy tego dynamicznego zachowania i nie potrafi określić, które typy ramek są potrzebne do odbicia。 Narzędzie linker IL można skonfigurować tak, aby wykryć tę sytuację.
Najważniejsze, aby nałożyć go po cięciuPrzeprowadz testy。
(Koniec)
|
Poprzedni:Rozwiązaj problem Ajax, który nie może przypisywać wartości zmiennym zewnętrznymNastępny:Język C jest tak potężny, w jakim języku jest napisany?
|