|
|
Geplaatst op 28-9-2019 16:38:47
|
|
|
|

Een paar dagen geleden bracht Microsoft .NET Core 3.0 uit, en een van de grootste verbeteringen is ondersteuning voor Windows-desktopapplicaties (alleen Windows). Door gebruik te maken van de .NET Core 3.0 SDK Windows Desktop Component kun je Windows Forms en Windows Presentation Foundation (WPF) applicaties porten. Om duidelijk te zijn: Windows-desktopcomponenten worden alleen ondersteund en inbegrepen op Windows.
SDK downloadadres:De hyperlink-login is zichtbaar.
Links om .NET Core-functies te introduceren:
De hyperlink-login is zichtbaar.
De hyperlink-login is zichtbaar.
Kenmerken zijn onder andere:
- Gebruik C# om rijke, interactieve client-webapps te bouwen.
- Gebruik gRPC om high-performance backend-diensten te creëren.
- SignalR ondersteunt nu automatische herverbinding en client-naar-server stromen.
- Gebruik OpenAPI-documentatie om sterk getypeerde clientcode voor web-API's te genereren.
- Endpoint-routering is geïntegreerd via het framework.
- Kestrel heeft standaard HTTP/2 ingeschakeld.
- Geïntegreerde web-API en ondersteuning voor single-page app-authenticatie.
- Certificaten en Kerberos-authenticatie worden ondersteund.
- Integreer de nieuwe System.Text.Json serialiseerder.
- De nieuwe universele hosting zet gemeenschappelijke beheerde diensten op, zoals afhankelijkheidsinjectie, configuratie en logging.
- Een nieuw Worker Service-sjabloon voor het bouwen van langetermijnservices.
- Nieuwe EventCounters worden aangemaakt voor verzoeken per seconde, totaal, actuele en mislukte verzoeken.
- Opstartfouten die in IIS worden gehost, worden nu gerapporteerd aan het Windows Event Log.
- Vraag om pipeline-integratie System.IO.Pipelines.
- Prestatieverbeteringen over de hele technologiestack.
Laten we een nieuw .NET Core 3.0 consoleproject maken met VS 2019, zoals weergegeven in de onderstaande figuur:
Met verwijzing naar het Newtonsoft.Json-pakket, schrijf een paar regels code, als volgt:
We klikken met de rechtermuisknop op VS Regenerate, openen vervolgens de bin-map van het project, en zien dat er meerdere bestanden worden gegenereerd, waaronder :demo1.exe en Newtonsoft.Json.dll bestanden.
Publiceer een uitvoerbaar bestand met één bestand
Methode 1:
Voer het volgende commando uit in de projectmap:
We openen de map C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, en we zien dat er veel dll-bestanden worden gegenereerd en dat er een publiceermap is.
Ga naar de publiceermap,De grootte van de weergave demo1.exe is 66M, wat dezelfde grootte is als alle bestanden buiten de map, zoals getoond in de onderstaande figuur:
Het gegenereerde enkele uitvoerbare bestand bevat daadwerkelijk de omgeving die nodig is voor de uitvoering van het programma, en vereist niet dat de doelcomputer de SDK installeert, en het nadeel is dat de bestandsgrootte erg groot wordt.
Methode 2:
Rechtsklik versus het projectbestand bewerken en de PublishSingleFile nodeconfiguratie toevoegen, de code is als volgt:
Klik dan met de rechtermuisknop en klik op de knop "Publiceren".
Assembly-links
De .NET core 3.0 SDK wordt geleverd met een tool die de grootte van je app kan verkleinen door IL te analyseren en ongebruikte assemblies te clippen.
Zelfstandige apps bevatten alles wat je nodig hebt om code uit te voeren zonder .NET op je hoofdcomputer te hoeven installeren. Vaak heeft de app echter slechts een fractie van het framework nodig om te draaien, en kunnen andere ongebruikte bibliotheken worden verwijderd.
.NET Core bevat nu een instelling die de IL van je app scant met de IL-linkertool. Deze tool detecteert welke code nodig is en knipt vervolgens ongebruikte bibliotheken af. Deze tool kan de implementatiegrootte van sommige applicaties aanzienlijk verkleinen.
Om deze tool in te schakelen, gebruik je de <PublishTrimmed> instellingen in je project en publiceer je een zelfstandige app:
.NET Core CLI
We hebben net een bestand van 66M gegenereerd, en na het toevoegen van de configuratie,Het werd 35M, waardoor de bezetting tot 30 miljoen werd verminderd。
Zorg ervoor dat je applicaties of frameworks overweegt die reflecties of gerelateerde dynamische functies gebruiken (waaronder ASP.NET Core en WPF)Meestal beschadigd tijdens het snijden。 Deze corruptie ontstaat omdat de linker zich niet bewust is van dit dynamische gedrag en niet kan bepalen welke frametypes nodig zijn voor reflectie。 De IL-linkertool kan worden ingesteld om deze situatie te detecteren.
Het belangrijkste is dat je het na het snijden aanbrengtVoer tests uit。
(Einde)
|
Vorig:Los op dat ajax geen waarden kan toewijzen aan externe variabelenVolgend:De C-taal is zo krachtig, in welke taal is het geschreven?
|