Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Script con .NET nella mia Applicazione
lunedì 25 giugno 2007 - 12.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
rainbow
Profilo
| Newbie
3
messaggi | Data Invio:
lun 25 giu 2007 - 12:21
Salve,
ho una domanda, vorrei sviluppare un'applicazione fornendo ai miei clienti la
possibilità di programmare l'applicazione stessa (Office & VBA, ecc...) fornendo
un linguaggio script non inventato ma possibilmente standard.
Mi chiedevo se è possibile realizzare questo ad esempio fornendo un linguaggio C#
utilizzando CODEDOM, ossia posso far interagire con il codice che dichiara il mio utente
con l'insieme di oggetti che gli metto a disposizione per interagire con la mia applicazione.
Un pò quello che fa il VBA con i vari applicativi di office o CAD ecc..
Ad esempio, ho il colore dello sfondo della mia applicazione fornito come oggetto e lui dal codice
script inserito nell'applicazione buò fare cose del tipo
Applicazione.BackgroundColor=Color.Red;
Applicazione.BackgroundColor=Color.Blue;
inserendo ovviamente anche codice strutturato if for ecc...
Saluti
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
lun 25 giu 2007 - 18:55
Premettendo che la cosa è molto rischiosa (in modo direttamente proporzonale alle autorizzazioni di base della tua applicazione) puoi utilizzare CodeDomProvider e derivati per compilare ed eseguire del codice al volo. Il problema è che è troppo flessibile e permette di fare praticamente qualsiasi cosa.
L'unica cosa che che puoi fare per limitare le possibilità dello script è limitare le autorizzazioni del codice risultante attraverso la CAS.
rainbow
Profilo
| Newbie
3
messaggi | Data Invio:
mar 26 giu 2007 - 11:47
Compilando del codice al volo pensi potrei limitare l'accesso a solo
una struttura dati che voglio io?
O meglio io ciò che voglio proteggere è solo la mia applicazione fornendo accesso
ad un solo insieme di oggetti.
Cosa intendi per pericolosità?
Poi mi chiedo una cosa come fanno queste applicazioni(word,autocad,ecc..) ad usare VBA? Si riscrivono un interprete per conto loro oppure esiste qualcosa in giro?
Ti ringrazio delle preziose notizie
munissor
Profilo
| Senior Member
270
messaggi | Data Invio:
mar 26 giu 2007 - 18:23
Limitare il codice si può fare.. Per esempio un modo semplice potrebbe essere di creare una classe "modello" come string ...
using System;
public class X
{
private _oggetto = ...;
public MioOggetto Oggetto
{
get{return _oggetto;}
}
public RunScript()
{
{0}
}
}
poi fai in modo che il codice che scrive l'utente finisca in {0} (tramite string.Format..) e compili il tutto. In questo modo l'utente dovrebbe solo scrivere
MioOggetto.Metodo1();
MioOggetto.Xyz = 5;
.. ecc..
così vincoli l'utente a usare solo oggetti nel namespace System oppure i metodi di MioOggetto.. Se usi altro dovresti ottenere errori di compilazione.
Che io sappia VBA è (o era) un prodotto che veniva concesso in licenza.. non si può utilizzarlo liberamente.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !