Dalla versione 2021.00 QualiWare supporta il linguaggio C# nei seguenti tipi di script:
- Eventi nei form realizzati con il Form Designer
- Task
- Script e condizioni nel Workflow Designer
- Script collegati agli oggetti nei plug-in delle schede standard
Il sistema è in grado di riconoscere automaticamente il linguaggio utilizzato, e di evidenziarne la sintassi di conseguenza.
E’ necessario tenere presente che:
- In un form tutti gli eventi devono essere scritti nello stesso linguaggio. In altre parole, non è possibile, nello stesso form, avere alcuni eventi scritti in VB.NET e altri in C#. Per verificare questo, si può effettuare un’esportazione del form in XML o eseguire il report della configurazione, e verificare che tutti gli eventi comincino con i caratteri “//C#”, o che nessun evento abbia quel prefisso.
E’ invece possibile utilizzare codice scritto in linguaggi diversi all’interno dello stesso workflow o dello stesso plug-in. - Gli eventi di una sola riga devono finire con “;” altrimenti non viene riconosciuto come C#.
Differenze fra VB.NET e C#
VB .NET e C# presentano alcune differenze importanti che è necessario tenere presente nella scrittura del codice. Qui di seguito riportiamo quelle che possono creare qualche difficoltà durante lo sviluppo.
- C# è case sensitive. E’ quindi indispensabile scrivere i nomi dei tipi o delle funzioni esattamente come sono riportati nella documentazione o nei suggerimenti che appaiono durante la scrittura del programma.
- Gli elementi dei DBArray, degli AssocArray (compreso “Fields”) e delle collection vanno indicizzati usando le parentesi quadre anzichè le tonde, altrimenti viene restituito un errore.
Esempi:This.Style["TOP"]="10px"; a[1]=2; b["A1"]=3
- Nei metodi “Execute” degli oggetti “Procedura” non è possibile passare delle costanti nei vari parametri, ma è necessario utilizzare sempre delle variabili. Inoltre queste devono essere precedute dalla parola chiave “ref”.
Esempio:object a="A"; object b="B"; object c="C"; object d="D"; form.findcontrol("ProcedureCode1").Execute(ref a, ref b, ref c, ref d);
- C# è un linguaggio fortemente tipizzato. I valori restituiti dai campi non vengono convertiti implicitamente nei tipi relativi, ma per poterli utilizzare bisogna convertirli specificando il tipo davanti.
Esempio:return (bool) FORMFIELDS["FLAG1"].Value;
Convertitore VB.NET <-> C#
Il gestore eventi del Form Designer mette a disposizione un’interessante funzionalità che consente di convertire un evento da VB.NET a C# e viceversa. Essa utilizza la funzionalità on-line messa a disposizione da Telerik e disponibile a questa pagina.