Userskripte zur laufzeit compilieren und ausführen



  • Entweder falsches Forumm oder wenn .NET würde sich z.B. die DLR anbieten.
    Simon



  • Aus meiner sicht bin ich schon im richtigen Forum, das ich das mit C# erstellen will. Das mit der DLR klingt interessant, nur leider steht mir auf den Rechnern auf denen die Programme laufen sollen, kein FrameWork 3.5 zur Verfügung. Geht das trotzdem und wenn ja kennt da jemand ein Tutorial?

    danke für eure Hilfe



  • Ohne .NET Framework kein C#.



  • generell waere eine idee nach "plugin" zu suchen - was du suchst ist doch eine art plug-in system oder ?
    hab ich selber auch noch nicht gemacht , kenns nur aus der theorie
    die idee ist das du ein interface "veroeffentlichst" - also die spezifikation
    in der applikation wird dann das interface anonym geladen und dessen funktionen aufgerufen - die funktionen sind dann aus der dll und die app braucht (kann auch) nichts davon wissen



  • naja mir steht nur das FrameWork bis 2.0 zur verfügung ... mehr will unsere IT-Abteilung nicht installieren ... und somit bin ich da ein wenig gebunden.

    die Variante von "Mr Evil" hab ich nicht so 100% verstanden wie willst du aus dem C code des users ein Plugin bzw DLL machen?



  • Net_Hans schrieb:

    Gibt es eine Möglichkeit, eine C-Datei zur Laufzeit zu compilieren und auszuführen. Ohne das "Mülldateien" über bleiben? ... Sprich, es soll nur die C Datei über bleiben.

    Klar, einfach nach dem kompilieren die Mülldateien löschen.. Oder 'nen Ordner im Temp-Verzeichnis erstellen, die C-Datei reinkopieren und dort kompilieren, die erstellte Exe ausführen und anschließend den ganzen Ordner wieder löschen.



  • ok danke @Badestrand, das war auch meine erst Idee, ich dachte das es eventuell etwas eleganter ablaufen könnte ... aber dann werde ich es doch so machen.



  • Prüfe mal ob es auch erlaubt wäre C# Quellcode als Ersatz für die C Sache zu verwenden. Würde Dir das Leben einfacher machen.



  • Ja die Sprache dahinter den Skripten ist relativ egal, am besten wäre natürlich, wenn der volle funktionsumfang zugänglich wäre.



  • Net_Hans schrieb:

    naja mir steht nur das FrameWork bis 2.0 zur verfügung ... mehr will unsere IT-Abteilung nicht installieren ... und somit bin ich da ein wenig gebunden.

    btw - ist da nichts zu machen ? mir wuerde als entwickler im traum nicht einfallen mich von nem it'ler derartig kastrieren zu lassen - so kann man nicht arbeiten
    hast du kein entwickler pc ? bei uns koennen nur die "nicht-entwickler" nichts installieren auf deren pc

    wie soll man denn so richtig arbeiten wenn es "die it" nicht erlaubt - tze



  • Mal ein paar Stichworte und Links:

    Google: CSharpCodeProvider
    Google: C# code zur laufzeit kompilieren

    http://www.codeproject.com/KB/codegen/Run-Time_Code_Generation1.aspx

    Der Hintergedanke dabei: Du hast ohnehin das .Net Framework X.Y installiert was alles für die Erstellung mit bringt und einen definierten Zustand hat.

    Der C Compiler (C++) benötigt ja auf dem Zielsystem eine Einrichtung, Header etc. (Eventuelle Konflikte wenn bereits ein Compiler vorhanden ist.)

    Ein Blick könnte sich lohnen.



  • Mr Evil schrieb:

    btw - ist da nichts zu machen ? mir wuerde als entwickler im traum nicht einfallen mich von nem it'ler derartig kastrieren zu lassen - so kann man nicht arbeiten
    hast du kein entwickler pc ? bei uns koennen nur die "nicht-entwickler" nichts installieren auf deren pc

    wie soll man denn so richtig arbeiten wenn es "die it" nicht erlaubt - tze

    Ich bin ebenfalls an das .Net 2.0 Framework gebunden. Man kann auch damit vernünftig arbeiten. Es geht ja nicht nur um den Entwicklungsrechner - es geht ja auch um die Systeme, die später die geschriebene Software verwenden. Das Ausliefern von .Net 2.0 (~30MB) ist im einfacher als die Auslieferung von .Net 3.5 (~350MB). Der Job als Entwickler hängt primär davon ab, wie der Absatz der geschriebenen Software ist. Deine Aussage finde ich persönlich daher ein wenig an der Realität vorbei.



  • **Danke Knuddlbaer,

    dieser Ansatz mit dem CodeProvider klingt richtig interessant. Diesen Ansatz werde ich mal versuchen Danke ...**

    @Mr Evil

    Mr Evil schrieb:

    btw - ist da nichts zu machen ? mir wuerde als entwickler im traum nicht einfallen mich von nem it'ler derartig kastrieren zu lassen - so kann man nicht arbeiten
    hast du kein entwickler pc ? bei uns koennen nur die "nicht-entwickler" nichts installieren auf deren pc

    wie soll man denn so richtig arbeiten wenn es "die it" nicht erlaubt - tze

    Also ich muss mich der Meinung von Knuddlbaer anschließen. Es gibt nun mal Unternehmen, wo eine Große IT-Abteilung dahintersteht und die den Ton in sachen Software angibt ... tja und wenn die entscheidet FrameWork 3.5 is nicht ... dann ist das nicht. Da kann ich mich auf den Kopf stellen



  • ich arbeite auch in einer groesseren firma (>400 leute)
    wir entwickeln auch applikationen mit c#
    und man geht davon aus das - wenn die benutzer die applikation haben wollen - sie auch das neueste framework verwenden - ist dann mit windows 7 eh wieder n standard
    (seit wann liefert man das framework mit aus ? third party software hat auf dem eigenen gm nix zu suchen sofern es nicht eingekauft wurde - bei directx hatts man nur aus gefaelligkeit gemacht , aber eigentlich auch nicht richtig)

    ich seh das wie mit direct x - nur weil mache dx10 nicht haben wegen was auch immer - ist das kein grund das game nicht zu entwickeln oder auf ein veraltetes system zu bauen

    und was eine software braucht und unterstuetzt - seit wann wird das von der it bestimmt ? ist ja laecherlich
    das macht der solution architekt, und auch der techinal project leader hat da mit zu reden (wozu hat man sonst das software architect office) - aber doch nicht die it also bitte

    die it supported die software und maintaint die hardware - mehr haben die nicht zu tun - ist ja auch genug

    //dazuedit

    ich sollte noch erwaehnen das es nicht so ist das die it keine rechte haette - die it verifiziert auch sachen um den jeweiligen leuten mitteilen zu koennen ob man etwas produktiv einsetzen kann oder nicht
    bei uns wird seit einer weite das vista sp2 verifiziert - aber die endgueltige entscheideung trifft keineswegs die it - die liefern nur die test ergebnisse



  • Willkommen in der Welt der Realität 🤡 Der Kunde kann eine IT haben die bestimmt wo es lang geht. In der Industrie liefest man zudem eine komplette Lösung. Der Kunde Beauftrag eine Lösung und will auch alles dafür erhalten damit es läuft.

    In der Industrie findest Du auch noch Windows 98 Rechner auf denen die "Lösung" laufen muss - da ist kein Geld für immer das neueste.



  • unsere kunden sind die endkunden wie du und ich privat
    und das weltweit - aber du sagst es selber
    "der kunde kann eine it haben"
    das bedeutet aber nicht das die eigene it irgendwas zu sagen haette #gg
    und genau um darum gings ja - die eigene it
    wenn ein kunde da ist der maximal .net 2.0 moechte (oder kann) ist das natuerlich was anderes



  • Ok, da mag der Unterschied sein. Privatkunde und Industrie =o)



  • und das wie gesagt aendert nichts daran das die eigene it einen nichts zu verbieten hat
    was mich auf meine urspruengliche aussage zurueck bringt "mir wuerde als entwickler im traum nicht einfallen mich von nem it'ler derartig kastrieren zu lassen"
    so wie sich sein post liegt hatts seine it pauschal "verboten" und da wirds dann laecherlich
    (es steht nirgends das er wegen ein kunden nicht kann sondern nur das es die it nicht erlaubt [darueber kann ich immernoch lachen "die it nicht erlaubt" #ggg)



  • Es gibt unternehmen in dem die IT sagt was gemacht werden darf und was nicht. Je größer das Unternehmen (Konzern) um so heftiger die Regelungen. Wer sich nicht an die Vorschriften hält darf sich dann auf dauer einfach einen neuen Job suchen.

    Nicht selten geht es auch einfach wie in einem Kindergarten zu. Wer mit dem "höheren" Rang sagt wird so gemacht und fertig.

    Die Softwareentwicklung kann durchaus nur ein unterstellter Teil sein - vor allem wenn sie nicht zum Hauptgeschäft gehört. (Das ist dann nicht lächerlich sondern traurig. Man bekommt dann aber kein Gehalt - man nennt es einfach Schmerzensgeld und schon geht es wieder =o))



  • gerade in groesseren betrieben gibt ganz andere zustaendige abteilungen die das sagen haben
    die it ist es eher in den kleineren betrieben
    (klar sollte man es sich mit der it nicht verscherzen - aber zu sagen haben die auch nichts)

    ich hab auch noch nie ein it'ler beim sao meeting sitzen sehen, oder beim tpl meeting, oder release manager meeting
    die haben schliesslich zu arbeiten waerend die die sich auskennen die entscheidungen treffen ... (welcher it mensch kennt in grossen betrieben schon die software architektur und komponenten)

    (ich bin aber auch nur ein einfacher entwickler - in den meetings geh ich meistens als vertretung meines team leaders oder department managers #nerv)

    [irgendwie sind wir vom thema ab gekommen #gg]


Anmelden zum Antworten