C# kao skriptni jezik?

poruka: 6
|
čitano: 3.588
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
C# kao skriptni jezik?
woodgamesfx kaže...
naxeem kaže...
woodgamesfx kaže...

projekti na kojema trenutno radim koriste skriptne jezike JS i C#

JavaScript je skriptni jezik, ali C# nije skriptni jezik. Ni blizu. Jesi li siguran da koristiš C#? - C# je jako sličan Javi - punokrvni objektni jezik na temeljima C++ sintakse, koji se JIT/FTC kompajlira u nativni kod iz svog asemblerolikog jezika po imenu CIL, a izvodi pod CLR-om.

Da siguran sam da koristim sintaksu C# za skriptiranje :)

Kako? Napisao si svoj lokalni parser za C#? - Mislim, da se nebi krivo razumjeli, C# je moguće (preko providera) kompajlirati u letu, ali C# nije skriptni jezik i to je vrlo ružan hack.
Daleko je bolje koristiti pravi skriptni jezik (iz više razloga).

Možeš li opisati pobliže u kakvom projektu siluješ C# da glumi skriptni jezik? - Možda je čak i nešto vrlo zgodno.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
RE: C# kao skriptni jezik?

Skriptiranje u C# jeziku :  http://unity3d.com/support/documentation/ScriptReference/index.Writing_Scripts_in_Csharp.html 

a o projektu na kojem radim moći ču ti reć tek idući tjedan, jer tada ga šaljem na review :)

http://graffiti-jam.blogspot.com/
16 godina
offline
C# kao skriptni jezik?

Nisam siguran koja je korist ovog? Zasto nisi (ako ti vec treba skriptno) napisao u necem drugom, kompajlirao u bibilioteku i iz nje vukao potrebne... funkcije... ?

I'm going woo woo
 
0 0 hvala 0
14 godina
neaktivan
offline
RE: C# kao skriptni jezik?

Koliko znam Unity koristi MonoDevelop za C# i Boo sintaksu i sve je ljepo integrirano, tako da sve akcije , logiku itd... rješavaš kroz implementaciju skripti, ja osobno više preferiram JS, ali neke stvari opet rješavam korz C# u samom projektu.

Kod korisnika se to popularno zove skriptiranje. Inaće koga više zanima ovo neka provjeri MonoTouch od novella.

http://graffiti-jam.blogspot.com/
16 godina
neaktivan
offline
RE: C# kao skriptni jezik?
woodgamesfx kaže...

Skriptiranje u C# jeziku :  http://unity3d.com/support/documentation/ScriptReference/index.Writing_Scripts_in_Csharp.html 

a o projektu na kojem radim moći ču ti reć tek idući tjedan, jer tada ga šaljem na review :)

Aha. Znači Unity koristi C# kao skriptni jezik. Iako kompilirane skripte daju prednost, mislim da je LUA u mnogim situacijama bolja.

 

Pretpostavljam da Unity to radi ovako?

 (koristio sam .cs nastavak, ali to nije nužno. kod može biti u čemu hoćeš. Inače, ovu metodu se koristi i za neke oblike plugina za aplikacije.)

 

// How to use C# as a scripting language

using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;

namespace CsharpAsScript
{
    class Program
    {
       static void Main(string[] args)
       {
          CSharpCodeProvider scriptCompiler = new CSharpCodeProvider();
          System.CodeDom.Compiler.CompilerParameters featureParams = new CompilerParameters {GenerateExecutable = false,GenerateInMemory = true};
          featureParams.ReferencedAssemblies.Add("System.dll"); //Include to use Directory class and Console output
          Console.WriteLine("Compiling script...");
          CompilerResults results = scriptCompiler.CompileAssemblyFromFile(featureParams, new string[] {"CDir.cs"});
          Console.WriteLine("Running script...");
          if (results.Errors.Count == 0) {
             try{
                var CDir = results.CompiledAssembly.CreateInstance("CDir");
                CDir.GetType().GetMethod("Dir").Invoke(CDir, null);
             } catch (Exception scriptException) {Console.WriteLine(scriptException.Message);}
          }
          else {Console.WriteLine("Error during compilation");}
          Console.ReadLine();
       }
    }
}

A u CDir.cs je:

using System;
using System.IO;

class CDir
{
    public void Dir()
    {
       Console.WriteLine("You have the following logical drives:");
       foreach (var logicalDrive in Directory.GetLogicalDrives()) {
          Console.WriteLine(logicalDrive);
       }
    }
}

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
Poruka je uređivana zadnji put sri 15.9.2010 9:50 (naxeem).
14 godina
neaktivan
offline
RE: C# kao skriptni jezik?
naxeem kaže...
woodgamesfx kaže...

Skriptiranje u C# jeziku :  http://unity3d.com/support/documentation/ScriptReference/index.Writing_Scripts_in_Csharp.html 

a o projektu na kojem radim moći ču ti reć tek idući tjedan, jer tada ga šaljem na review :)

Aha. Znači Unity koristi C# kao skriptni jezik. Iako kompilirane skripte daju prednost, mislim da je LUA u mnogim situacijama bolja.

 

Pretpostavljam da Unity to radi ovako?

 (koristio sam .cs nastavak, ali to nije nužno. kod može biti u čemu hoćeš. Inače, ovu metodu se koristi i za neke oblike plugina za aplikacije.)

 

// How to use C# as a scripting language

using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;

namespace CsharpAsScript
{
    class Program
    {
       static void Main(string[] args)
       {
          CSharpCodeProvider scriptCompiler = new CSharpCodeProvider();
          System.CodeDom.Compiler.CompilerParameters featureParams = new CompilerParameters {GenerateExecutable = false,GenerateInMemory = true};
          featureParams.ReferencedAssemblies.Add("System.dll"); //Include to use Directory class and Console output
          Console.WriteLine("Compiling script...");
          CompilerResults results = scriptCompiler.CompileAssemblyFromFile(featureParams, new string[] {"CDir.cs"});
          Console.WriteLine("Running script...");
          if (results.Errors.Count == 0) {
             try{
                var CDir = results.CompiledAssembly.CreateInstance("CDir");
                CDir.GetType().GetMethod("Dir").Invoke(CDir, null);
             } catch (Exception scriptException) {Console.WriteLine(scriptException.Message);}
          }
          else {Console.WriteLine("Error during compilation");}
          Console.ReadLine();
       }
    }
}

A u CDir.cs je:

using System;
using System.IO;

class CDir
{
    public void Dir()
    {
       Console.WriteLine("You have the following logical drives:");
       foreach (var logicalDrive in Directory.GetLogicalDrives()) {
          Console.WriteLine(logicalDrive);
       }
    }
}

 

Da kažem meni je zgodnije preko JS. Ima solidno riješen kod editor Unitron i to je to. 

Da recimo StoneTrip koristi LUA jezik , po nekima najbolji izbor je LUA, ali sad zašto su ljudi iz Unity tima odlužili se na ovo rješenje zbilja ne znam i neču nagađat, sve u svem meni je bitno da radi dobro i stabilno, a ostalo me i onako ne zanima. 

 

 

 

 

 

http://graffiti-jam.blogspot.com/
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice