I have a program which can run vb.net code using CodeDom compiler. Basically it helps me to add programming functionality to my application. This is not too tough and such a sample can be found in codeproject website :
[login to view URL]
What I have done is :
I have 2 modules :
Module 1: Initializes and runs the script engine by sending code user may have typed.
Module 2: The script engine has access to this module, so here I can declare the sub/functions which the user can call in his code.
Good news: It's running fine.
Bad news: The module style is a problem if I want multiple code to run simultaneously. This is what we need to solve.
I want to create multiple instances of the engine & code so that each can run independently and don't modify each other's values.
Example:
Public Module RunCode
Friend Age as integer = 20
Sub Run()
' executing user code
' init script
[login to view URL]("[login to view URL]")
[login to view URL]("[login to view URL]")
[login to view URL]("[login to view URL]")
results = [login to view URL](parameter, usercode)
End Sub
End Module
Public Module Module1 ' user has access to functions/subs here
Sub IncreaseAge(ByVal A as Integer)
Age = Age + A ' var age declared in modulerun code is modified here
End Sub
End Module
' Code user will write
Call IncreaseAge(5) ' increments age by 5 years
What needs to be done ?
What I want is to convert the module to classes so that I can create objects of the classes and run the program. This way the variables (age in the above example) is not tampered with. Each object will have can keep its own value. Otherwise right now if I run multiple instances of such a program each one will modify the age variable can this can lead to unexpected results.
Plus I do not want user to write code as [login to view URL](5). The user will write normal vb code (without objects etc) but I have to have have instance of class so that variables in objects are independent and multiple execution of usercode can take place without any execution modifying common variables.
Interested freelancers should know vb.net well and I will be happy to answer any questions you may have.
I have 9+ years experience on IT, I was done report designer which creates run time design and any database connectivity, done ERP project for non financial company.