myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Basistechnologien und allgemeine .NET-Klassen » [gelöst] Infos über .NET 5: Änderungen bei der Interoperabilität (Bericht auf heise.de)
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

[gelöst] Infos über .NET 5: Änderungen bei der Interoperabilität (Bericht auf heise.de)

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
pollito pollito ist männlich
myCSharp.de-Mitglied

avatar-3521.gif


Dabei seit: 26.02.2010
Beiträge: 181
Entwicklungsumgebung: VS2019, Team Developer 6.2


pollito ist offline

[gelöst] Infos über .NET 5: Änderungen bei der Interoperabilität (Bericht auf heise.de)

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

unter  heise.de las ich u. a. folgende Passage:

Zitat:
Eine fundamentale Neuerung in .NET 5.0 ist die Möglichkeit, dass Entwickler nun .NET-Code direkt aus anderen Programmiersprachen auf nativem C/C++-Weg aufrufen können, was die meisten Programmiersprachen beherrschen. Somit sind .NET- 5.0-Module nun fast in beliebige Sprachen einbindbar.

Ich habe gestern vergeblich versucht, mehr Infos darüber zu bekommen. Vielleicht habe ich die falschen Suchbegriffe verwendet. Daher meine kurze Frage: Weiß jemand, wo ich Infos darüber bekomme?

Vielen dank und ein schönes Wochenende!

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von pollito am 14.11.2020 10:48.

14.11.2020 10:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
dannoe
myCSharp.de-Mitglied

Dabei seit: 24.11.2015
Beiträge: 125
Entwicklungsumgebung: VS2005-VS2017


dannoe ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

14.11.2020 10:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
gfoidl gfoidl ist männlich
myCSharp.de-Team

avatar-2894.jpg


Dabei seit: 07.06.2009
Beiträge: 6.681
Entwicklungsumgebung: VS 2019
Herkunft: Waidring


gfoidl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo pollito,

Zitat:
falschen Suchbegriffe

mit ".net 5 native exports" wirst du fündig.

Ganz trivial ist die Sache aber nicht, da die CLR selbst gehostet werden muss, anders kann JIT-kompilierter IL-Code auch nicht ausgeführt werden.
Die Pakete, die du finden wirst, machen das nicht anders, nur teilweise eben für dich.

Ich finde die zitierte Aussage vom Artikel ein wenig irreführend bzw. verspricht sie mehr als es ist.

Der "klassische Weg" mit nativen Anwendungen zu kommunizieren bleibt dass .NET eine native Bibliothek aufruft und der native Teil per Callback wieder in .NET zurückrufen kann.
Der Callback war bisher ein Delegate, das wird sich aber mit "function pointers" (von C# 9) ändern.

mfG Gü
14.11.2020 10:41 Beiträge des Benutzers | zu Buddylist hinzufügen
pollito pollito ist männlich
myCSharp.de-Mitglied

avatar-3521.gif


Dabei seit: 26.02.2010
Beiträge: 181
Entwicklungsumgebung: VS2019, Team Developer 6.2

Themenstarter Thema begonnen von pollito

pollito ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Danke! Das hilft mir weiter.

LG
14.11.2020 10:48 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
gfoidl gfoidl ist männlich
myCSharp.de-Team

avatar-2894.jpg


Dabei seit: 07.06.2009
Beiträge: 6.681
Entwicklungsumgebung: VS 2019
Herkunft: Waidring


gfoidl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo dannoe,

danke für den Link zum Artikel. Aber dieser ist wirklich schlecht recherchiert und suggiert dass es genügt UnmanagedCallersOnlyAttribute auf eine statische Methode zu setzen und gut ist es. Das ist bei Weitem nicht so (und der Autor sollte sich besser mit anderen Themen beschäftigen).

UnmanagedCallersOnlyAttribute teilt dem JIT mit, dass die so markierte Methode ausschließlich von nicht-verwaltetem Code (~ nativen Code) aufgerufen wird. Somit wird als "function pointer" (erwähnt auch in voriger Antwort) eine leichtgewichtigere Version erstellt, als wenn die Methode auch von managed Code aufgerufen werden würde.

Der wesentliche Hinweis zu  Write a custom .NET Core host to control the .NET runtime from your native code fehlt im Artikel, denn somit sind die "native exports" möglich (aber auch schon vor .NET 5, ich glaube fast ab .NET Fx 1.0, also seit Beginn an nur wurde es "vereinfacht" und performanter gemacht).

mfG Gü
14.11.2020 10:53 Beiträge des Benutzers | zu Buddylist hinzufügen
gfoidl gfoidl ist männlich
myCSharp.de-Team

avatar-2894.jpg


Dabei seit: 07.06.2009
Beiträge: 6.681
Entwicklungsumgebung: VS 2019
Herkunft: Waidring


gfoidl ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo nochmal,

das muss ich noch ergänzen.

Aaron Robinson, der Autor dieses Features in .NET, hat  https://github.com/AaronRobinsonMSFT/DNNE erstellt und baut auf dem Vorgenannten auf. Hier ist es möglich per UnmanagedCallersOnlyAttribute den nativen Export zu erzeugen, aber nicht in .NET 5 selbst.

mfG Gü
14.11.2020 10:58 Beiträge des Benutzers | zu Buddylist hinzufügen
HansFred
myCSharp.de-Mitglied

Dabei seit: 19.10.2020
Beiträge: 48


HansFred ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

bei heise kann man sehr schnell die qualität vom artikel anhand des autors erkennen und hier hätte ich nicht weiter gelesen
14.11.2020 12:24 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 2 Monate.
Der letzte Beitrag ist älter als 2 Monate.
Antwort erstellen


© Copyright 2003-2021 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 17.01.2021 23:03