mboost-dp1

Microsoft Corporation

Microsoft: C# skal oversættes til C++ for bedre .Net-integration på IoT

- Via Version2 - , indsendt af arne_v

Det skal være muligt at køre C#-applikationer på platforme, hvor .Net endnu ikke findes. Det mener Microsoft, der arbejder på at oversætte C# til C++.

Det meste af .Net er allerede gjort til open source og findes blandt andet til Linux. Men der findes stadig en masse Internet of Things-platforme (IoT), hvor .Net ikke er tilgængelig.

Det skal Microsofts CoreRT-projekt råde bod på. C++ findes på langt de fleste IoT-platforme og styresystemer, og det skal være muligt at ‘cross compile’ til både C# og C++, når udviklere arbejder.

Microsoft er dog med på, at der er et godt stykke vej endnu, før man uden problemer kan ‘transpile’ C# til C++. De to sprog har ikke samme syntax, datastruktur og logik. Denne barriere skal CoreRT på længere sigt kunne håndtere.





Gå til bund
Gravatar #1 - Chucara
19. okt. 2016 08:49
Det er dæleme et ambitiøst projekt, men jeg ønsker dem al held og lykke. Jo flere platforme .NET net kan komme ud på, jo bedre.
Gravatar #2 - TwistedSage
19. okt. 2016 09:12
Både Unity og Xamarin compiler allerede C# til C++ når man deployer til iOS og visse Android platforme (plus sikkert andre understøttede)
Gravatar #3 - Chucara
19. okt. 2016 09:15
#2: Ja, men her snakker vi om at oversætte et C# .NET program. Altså skal resultatet, så vidt jeg forstår, inkludere de dele af .NET, der er blevet brugt i det oprindelige program.

Jeg antager dog, at de mener .NET Core, og ikke .NET 4.6.
Gravatar #4 - Ni
19. okt. 2016 13:13
Jeg synes stadig det er spændende at se Microsofts transformering og hvad deres plan egentligt er.

Det lyder som en super nyhed, behovet for platformsuafhængigt software er eksploderet og .Net kunne være blevet en dinosaur, men der er stadig håb.

Ingen fornuftige mennesker vil satse på .net i dag, når der ikke rigtigt er udsigt til mere platformuafhængighed.

Jeg er med på, at det sikkert provokere en masse udviklere, men i det store billede ville .net nemt kunne blive en overladt til fortiden, hvis de ikke gjorde noget ala dette.
Gravatar #5 - Chucara
19. okt. 2016 13:30
#4: Æhh.. Dette er da det mindste, de har gjort.

De har lavet .NET Core, der kan afvikles på Windows, Linux, OSX og i Docker, og som har de fleste kritiske dele af frameworket minus WPF, WCF og lign. Dette er open source, ligesom mange andre .NET projekter:

https://github.com/Microsoft/dotnet/blob/master/do...

Ingen fornuftige mennesker ville afskrive C# - det 4. mest populære sprog på TIOBE's index. ;)
Gravatar #6 - arne_v
19. okt. 2016 17:45
TwistedSage (2) skrev:
Både Unity og Xamarin compiler allerede C# til C++ når man deployer til iOS og visse Android platforme (plus sikkert andre understøttede)


Hmmm.

https://developer.xamarin.com/guides/cross-platfor...


How Does Xamarin Work?

Xamarin offers two commercial products: Xamarin.iOS and Xamarin.Android. They’re both built on top of Mono, an open-source version of the .NET Framework based on the published .NET ECMA standards. Mono has been around almost as long as the .NET framework itself, and runs on nearly every imaginable platform including Linux, Unix, FreeBSD, and Mac OS X.

On iOS, Xamarin’s Ahead-of-Time ( AOT) Compiler compiles Xamarin.iOS applications directly to native ARM assembly code. On Android, Xamarin’s compiler compiles down to Intermediate Language ( IL), which is then Just-in-Time ( JIT) compiled to native assembly when the application launches.

In both cases, Xamarin applications utilize a runtime that automatically handles things such as memory allocation, garbage collection, underlying platform interop, etc.

Gravatar #7 - arne_v
19. okt. 2016 18:03
Ni (4) skrev:
Det lyder som en super nyhed, behovet for platformsuafhængigt software er eksploderet og .Net kunne være blevet en dinosaur, men der er stadig håb.

Ingen fornuftige mennesker vil satse på .net i dag, når der ikke rigtigt er udsigt til mere platformuafhængighed.

Jeg er med på, at det sikkert provokere en masse udviklere, men i det store billede ville .net nemt kunne blive en overladt til fortiden, hvis de ikke gjorde noget ala dette.


Chucara (5) skrev:
Ingen fornuftige mennesker ville afskrive C# - det 4. mest populære sprog på TIOBE's index. ;)


Ingen tvivl om at .NET og C# er en af de store platforme idag.

Set generelt er det vel en af de 4 store (de andre er så Java, PHP og C/C++).

Og der er flere områder hvor .NET er den klart dominerende platform:
- corporate intranets
- business desktop applications
- business server application for small and mid size companies

(undskyld for det engelske, men jeg tror at de danske udtryk ville have været forvirrende)

Og givet inertien i IT, så er det givet at .NET og C# også vil være en stor platform om 10-15 år. De eksisterende produkter og projekter har så lang en livstid at de fleste også vil eksistere om 10-15 år.

Men der er vel et indtryk at Microsoft ikke er helt sikker på retningen med hensyn til .NET.

Language & tools, .NET, web, open source, cross platform folkene kører derudaf.

Men det er ligesom at Windows, Office, Exchange/SQLServer, Azure folkene ikke helt har samme retning.

Situationen kan vel opsummeres med det retoriske spørgsmål: hvem pokker fik den latterlige ide at basere WinRT (ikke at forveksle med Windows RT) på COM?
Gravatar #8 - Claus Jørgensen
19. okt. 2016 19:13
arne_v (7) skrev:
Situationen kan vel opsummeres med det retoriske spørgsmål: hvem pokker fik den latterlige ide at basere WinRT (ikke at forveksle med Windows RT) på COM?
De fleste større Mac applikationer udviklet af Microsoft er også baseret på en portet version af COM. iOS og Android apps af Microsoft har også tit en større del af kodebasen baseret på et portet COM-style framework.

En eller anden i tidsperioden 2000-2010 har virkelig ment at COM var vejen til alting godt. Og det er noget absolut gyseligt kode at arbejde med.
Gravatar #9 - arne_v
19. okt. 2016 19:36
#8

Og den klassiske COM vittighed: hvordan kan man stole på noget der bygget op omkring IUnknown?

:-)
Gravatar #10 - arne_v
19. okt. 2016 19:41
#8

Mere seriøst.

Et af de store problemer med COM eller mere præcist ved brugen af COM er at det vel kun er de <1% af programmørerne som som har kodet op mod COM i C++ der forstår hvad der foregår, mens COM for de resterende >99% af programmørerne er mere "det her plejer at virke så forhåbentligt virker det også denne gang".
Gravatar #11 - gramps2
20. okt. 2016 07:09
Som jeg forstår det:

1. Udvikler skriver kildekode i C#/.NET.
2. Kildekoden transpiles til C++.
3. C++ compiles til IoT-platformen vha. almindelige C++-compilere

Kan det passe?
Gravatar #12 - Chucara
20. okt. 2016 10:04
#11: Pretty much, men husk at C# er et sprog og .NET et framework. Så den del af frameworket .NET, der bliver brugt, skal også med i den kode, der kompileres.
Gravatar #13 - gramps2
20. okt. 2016 10:29
#12
Det husker jeg skam. Det var derfor jeg skrev "C#/.NET" :-)
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login