Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

.NET Script Interpreter

Current version : 1.0 (sept 17th 2016)

Download Link :

Run dnsi AppStore
.Net Online Compiler

Some apps dnsi-compatible :

What is DNSI ?

DNSI is a application that can compile files from various locations (local, network, internet) both in CSharp and VB.NET to library (dll), console application, windows application or into memory, and execute it.

Why use DNSI ?

  1. There is no need Visual Studio to make .NET softwares.

  2. There is no need to (re)compile your software and no need to make update patch.

  3. If you put your source code on the web, there is no need for user to download any exe but DNSI (currently ~450Ko).

  4. Final user is always up to date with your software.

  5. Integrate Console App and Windows Forms App interaction with your website(s).

Cool, but, have you an example?

Imagine context as the following :

File 1 : (located at c:\HomeDev\Project1\Program.cs)

namespace HomeDev.Project1
  public class Program
    public void Main(string[] args)
    var dNow = Backups.Dev.Functions.GiveMeDateBaby().ToString();
    com.nowhere.files.myFile1.Alert( com.nowhere.files.myFile1.upMyCase("it's ") + dNow );

File 2 : (located at

namespace com.nowhere.files
  public static class myFile1
    public void Alert(string msg)
    public string upMyCase(string myString)
      return myString.ToUpper();
    public void StartTest(string[] args)
      MessageBox.Show("Hello world !");

File 3 : (located at \Backups\Dev\Functions.vb)

Namespace Backups.Dev

  Public Module Functions
    Public Function GiveMeDateBaby() as DateTime
      Return DateTime.Now
    End Function
  End Module
End Namespace

Then, to exec c:\HomeDev\Project1\Program.cs, just type this command line :

dnsi.exe "[-debug [true | false]] -x "c:\HomeDev\Project1\Program.cs"

Then showing a message box with "IT'S 2011-08-23 22:05:07" ! ;)

Another example ?

A Windows Forms Web Application !

Put into a web page a link like.. Run my WinForms Web Application

File 1 : (located at

'------------------ ' ' ' ' ' ' ' ' ' ' ' '------------------

Namespace TestDNSI Public Class Program Public Shared Sub Main(arg as String) MsgBox("date=[" & TestDNSI.ExtendA.GiveMeDate() & "],arg=[" & arg & "]") End Sub
    Public Shared Sub Main(args() as string)
        for i = 0 to args.Length - 1
            msgbox("date=[" & TestDNSI.ExtendA.GiveMeDate() & "],arg(" & i.tostring() & ")=[" & args(i) & "]")
        next i
    End Sub
End Class
End Namespace

File 2 : (located at

<?php // My Extend A ?>
Namespace TestDNSI
  Public Class ExtendA
    Public Shared Function GiveMeDate() as Date
      Return DateTime.Now
    End Function
  End Class
End Namespace

Omagod, more examples plz!

Yeah! a Windows Forms Web Application with callback !!

Put into a web page a link like.. Run my WinForms Web Application with callback

File 1 : (located at

'------------------ ' ' ' '------------------

Namespace TestDNSI Public Class Program inherits Form

    private m_url as string = ""
    private textbox1 as textbox

    Public Sub New()
        clientsize = new size(400, 70)
        text = "DNSI WinForms Web Application with callback"

        dim btmOk as new button()
        btmOk.text = "Ok"
        btmOk.location = new point(
            clientsize.width - btmok.width - 10,
            clientsize.height - btmok.height - 10
        btmok.anchor = ctype((AnchorStyles.Right or AnchorStyles.Bottom), AnchorStyles)
        addhandler btmOk.Click, addressof Valid

        dim label1 as new label() with {.text = "Nom :",.location=new point(10,10),.autosize=true}

        textbox1 = new textbox() with {
            .name = "textbox1",
            .location = new point(label1.width + 20, 10),
            .size = new size(clientsize.width - (label1.width + 20 + 10), .size.height),
            .anchor = ctype((AnchorStyles.left or or AnchorStyles.right), anchorstyles)
    End Sub

    Private sub Valid()
        if not string.isnullorempty(textbox1.text) then
            process.start(m_url & textbox1.text, string.empty)
            msgbox("Veuillez indiquer votre nom svp !", MsgBoxStyle.Exclamation)
        end if
    end sub

End Class
End Namespace

More example at


.NET Script Interpreter






No releases published


No packages published