Small Basic a été créé pour autoriser l’ajout de compléments au travers de librairies externes écrites dans n’importe quel langage .NET. Mais si vous souhaitez étendre le logiciel Small Basic, pour ajouter de nouveaux Objets, vous allez pouvoir le faire très facilement, mais il y a quelques règles à respecter avant :
- Vous devez créer un type static
- Ce type devra avoir l’attribut SmallBasicTypeAttribute
- Toutes les propriétés doivent être de type Microsoft.SmallBasic.Library.Primitive
- Tous les paramètres d’entrée ou de retour des méthodes doivent également de type Microsoft.SmallBasic.Library.Primitive
- Tous les événement doivent être de type Microsoft.SmallBasic.Library.SmallBasicCallback
Vous devrez activer la documentation XML si vous souhaitez avoir les informations sur votre méthode dans Small Basic. Pour cela, allez dans les propriétés de votre projet de bibliothèque de classe et dans l’onglet Générer, activez le Fichier de documentation XML comme sur l’image ci-dessous :

Une fois que vous aurez codé votre extension, vous allez récupérer le fichier .dll généré ainsi que le .xml (qui correspond à la documentation de votre objet), et les copier dans le dossier “lib” du répertoire d’installation de Small Basic, qui doit ressembler à : “C:\Program Files\Microsoft\Small Basic”. Donc placez les deux fichiers dans le dossier : “C:\Program Files\Microsoft\Small Basic\lib”.
Ensuite, vous devez ajouter à votre projet, la référence vers le fichier SmallBasicLibrary.dll situé dans le répertoire d’installation de Small Basic.
Passons aux choses sérieuses : le code ! Nous allons écrire deux méthodes qui vont nous permettre de convertir des degrés Celsius en degrés Fahrenheit :
using Microsoft.SmallBasic.Library;
namespace MonExtension
{
/// <summary>
/// L'objet Conversion contient des méthodes pour convertir des objets
/// </summary>
[SmallBasicType]
public static class Convertir
{
/// <summary>
/// Convertir des degrés Celsius en degrés Fahrenheit
/// </summary>
/// <param name="celsius">Les degrés Celsius à convertir</param>
/// <returns>Valeur en degré Fahrenheit</returns>
public static Primitive CelsiusEnFahrenheit(Primitive celsius)
{
return celsius.Multiply(1.8).Add(32);
}
/// <summary>
/// Convertir des degrés Fahrenheit en degrés Celsius
/// </summary>
/// <param name="fahrenheit">Les degrés Fahrenheit à convertir</param>
/// <returns>Valeur en degré Celsius</returns>
public static Primitive FahrenheitEnCelsius(Primitive fahrenheit)
{
return fahrenheit.Subtract(32).Multiply(5 / 9);
}
}
}
Et donc une fois que l’on a généré notre .dll et notre .xml et que l’on a placé le tout dans le dossier “lib” de Small Basic, on peut utiliser un nouvel objet “Convertir” et utiliser les méthodes CelsiusEnFahrenheit et FahrenheitEnCelsius de cette façon :

N’oubliez pas de redémarrer Small Basic une fois que vous aurez coller votre extension.