tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
7833
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PHLIPPVS PHLIPPVS ist offline Rookie
    Registriert seit
    Jan 2004
    Ort
    A-8430 Leibnitz
    Beiträge
    5
    Hallo an alle,

    mein Problem besteht, wie das Thema schon verrät, darin, ein in C# geschriebens Programm unter WinXP bzw. idealerweise sogar unter Linux/Mac zum Laufen zu bekommen, auch ohne Microsoft .NET Framework.

    Vielen herzlichen Dank im Vorraus für eure Antworten,

    MfG Philipp
     

  2. #2
    tass tass ist offline Mitglied Bronze
    Registriert seit
    May 2004
    Beiträge
    41
    Hallo,

    ich erzähls mal so wie ichs kenn.
    Beim kompilieren von C# wird kein Binärcode erzeugt sondern Vorcode erstellt.
    Zur Laufzeit wird erst der Binärcode erstellt, das macht die .Net Runtime.

    1.Gibt es eine entsprechende Runtime unter Linux würde es dort auch laufen.

    2.Wenn der Kompiler Binärcode erzeugen würde, würde das Programm auch ohne Runtime laufen, aber nur auf der Plattform auf der es kompiliert wurde
    (in diesem fall wohl Windows).

    hoffe das alles stimmt was ich da schreib

    by Tass
     

  3. #3
    Avatar von Alexander Schuc
    Alexander Schuc Alexander Schuc ist offline admin | crazy-weasel
    tutorials.de Administrator
    Registriert seit
    Aug 2001
    Ort
    Österreich, Stmk, Graz
    Beiträge
    2.783
    Hallo.

    C# ist als eine Sprache gedacht, welche in der .net Umgebung abläuft, und die Vorteile davon nutzt. (In Bezug auf Security etc. ..)
    Deswegen wirst wohl nicht ohne .net Framework auskommen.

    MfG,
    Alex
     
    With the first link the chain is forged. The first speech censored, the first thought forbidden, the first freedom denied, chains us all irrevocably.
    Aaron Satie

    Legends... are the spice of the universe, Mr. Data, because they have a way of sometimes coming true.
    Captain Jean-Luc Picard, Stardate ~41294.5

    Tutorials.de chattet. Hier gibts auch .net Support ^^
    Klickt auf chattet und nutzt den Webchat, oder verbindet euch zu irc.tutorials.de - Channel #Tutorials.de

    (moo)blog furred.net // SiteInfo für WP7 // Pastebin für WP7 // BlogEngine.net Extensions

  4. #4
    Avatar von Sunray
    Sunray Sunray ist offline Mitglied Gold
    Registriert seit
    Sep 2003
    Ort
    Schweiz
    Beiträge
    190
    Stimmt. Es wird MSIL (Microsoft intermediate language) Code erzeugt, der erst kurz vorm Ausführen in Maschienencode umgewandelt wird.

    Es gibt eine Möglichkeit ein Maschienencode-Abbild deines Programmes anzufertigen. Musst mal in der SDK-Dokumentation suchen.
    Du darfst dann aber nicht vergessen die Laufzeit DLLs mitzuliefern (System.dll, System.Xml.dll usw...).

    Allerding wird es nicht ohne Framework funktionieren, da der Arbeitsspeicher von selbem verwaltet wird (Heap). Glaube ich jedenfalls zu wissen.

    Die 20 Mb grosse dotnetredist.exe zuvor installieren zu lassen ist doch auch kein so grosses Problem...
    Bei Java funktioniert das ja auch.
     
    Zu jedem Problem gibt es mindestens eine Lösung.
    Zu jeder Lösung gibt es mindestens eine bessere Lösung

  5. #5
    wertzui wertzui ist offline Mitglied Bronze
    Registriert seit
    Apr 2004
    Beiträge
    49
    Soweit ich weiß, haben sich ein par Leute drangesetzt, eine art .net Framework für Linux zu coden und, es gibt auch schon eine erste Version.
    Musst am besten mal bei Google suchen.
     

  6. #6
    tass tass ist offline Mitglied Bronze
    Registriert seit
    May 2004
    Beiträge
    41
    Hi,
    für C# unter Linux hilft der Link hier vielleicht.

    http://www.go-mono.com

    by tass
     

  7. #7
    PHLIPPVS PHLIPPVS ist offline Rookie
    Registriert seit
    Jan 2004
    Ort
    A-8430 Leibnitz
    Beiträge
    5
    DANKE an alle!
     

  8. #8
    Avatar von René Paschold
    René Paschold René Paschold ist offline Mitglied Brokat
    Registriert seit
    Jan 2002
    Ort
    Straubenhardt
    Beiträge
    451
    .NET Programme ohne Framework GEHT NICHT !

    Egal was du machst, du wirst für .NET Programme immer mindestens das Restri Paket brauchen (ca. 21 MB).

    Kurzer Hintergrund zu .NET!

    Die Runtime, CommonLanguageRuntime (CLR) führt eigentlich keinen C# oder VB.NET Code aus. Wenn man mit den entsprechenden Compilern kompiliert, dann wird MSIL (MicrosoftIntermediatLanguage) Code erzeugt. Dieser Code wird zur Laufzeit in Native Code kompiliert und dann erst vom Prozessor ausgeführt. Deswegen auch der etwas verzögerte Startvorgang!

    Im Prinzip ist C# oder VB.NET nur die Kelle eines Maurers, du könntest auch IL Code selber schreiben.

    Warum gibt es IL? Nun, das ist relativ einfach zu beantworten sieht man sich die Architektur des Frameworks mal genauer an. Die FCL (FrameworkClassLibrary) besteht aus ca. 5000 Klassen. Mircosoft hat natürlich nicht das Rad neu erfunden und ein System geschaffen, das zu 60% API Funktionen kapselt und auführt. Der Grund hierfür ist, das alle Programmiersprachen, die einen .NET Compiler bietet auf die gleiche Art und Weise diese Klassen verwenden können. Entstanden ist ein einheitliches Objekt und Programmiermodell welches für jeden Sprache und auf jeder Plattform gleich funktioniert.

    Das funktioniert deshalb, da in der CLS (CommonLanguageSpecification) und dem CTS (CommonTypeSystem) alle Grundlagen verankert sind an die sich ein Compiler halten muss, um typesicheren IL Code zu erzeugen.

    Das ist der grob erklärte Hintergrund warum also die Runtime immer benötigt wird. Es gibt zwar ein Tool welches sich ngen.exe nennt mit dem man den IL Code vorkompilieren kann, aber trotzdem wird dieser Code später von der CLR übermacht und ausgeführt (deshalb spricht man von .NET Code auch Managed Code). Der Vorteil dieses Tools besteht lediglich darin, die Startzeit zu normalisieren.

    Das war mal gaaaanz grob eine Einführung in .NET

    Grüße
     
    René Paschold
    .NET Trainer / Consultant / Developer
    WebLog http://www.rene-paschold.de/

    "The World Is Not Enough!"

  9. #9
    Darkas Darkas ist offline Mitglied Gold
    Registriert seit
    Feb 2007
    Beiträge
    218
    Das interessiert mich jetzt. Dieses ngen.exe kann die Laufzeit eines Programms verbessern? Ist doch eigentlich super!
     

  10. #10
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.898
    Blog-Einträge
    34
    NGEN verbessert nicht die Laufzeit des Programms sondern, wie von René geschrieben, das Laden bzw. Starten.
    Beim Aufruf einer .NET-Assembly wird diese durch ngen in Maschinen-Code kompiliert, so dass sie vom Prozessor ausgeführt werden kann.
    Durch das händische Ausführen von ngen wird nur das Laden der Assemblies beschleunigt, da dies von der Runtime nicht mehr gemacht werden muss.
    Dies kann jedoch erst nach der Distribution durchgeführt werden, da das Resultat von System zu System verschieden ist (bzw. Prozessor).

    Selbiges gilt übrigens auch für xgen, welcher die Serialisierungs-Assemblies erstellt.
    Dies kann auch von Hand gemacht werden, so dass die SerialsierungsAssemblies nicht zur Laufzeit erzeut werden müssen. Dies macht jedoch nur Sinn, wenn in der entsprechenden Assembly auch Serialisierung genutzt wird
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. durch main methode als jar lauffähig machen
    Von Tobi55 im Forum Java Grundlagen
    Antworten: 2
    Letzter Beitrag: 25.08.08, 19:09
  2. Visual Basic 2005 Projekt mit Framework 1.1 lauffähig machen
    Von romin im Forum .NET Application und Service Design
    Antworten: 0
    Letzter Beitrag: 28.08.07, 13:50
  3. Design im IE lauffähig machen
    Von chris91 im Forum CSS
    Antworten: 6
    Letzter Beitrag: 08.08.07, 23:38
  4. *.exe Anwendung entwickeln & auf PC ausführen ohne .NET Framework
    Von MrBluna im Forum .NET Application und Service Design
    Antworten: 11
    Letzter Beitrag: 19.10.05, 10:09
  5. Antworten: 4
    Letzter Beitrag: 15.05.04, 19:09