
Overview
Microsoft SmallBasic is a free simplified programming language for children and adults to get started learning to program. See the SmallBasic website for more details.
Preview SmallBasic API
Also check out the Forum, Blog and Wiki articles.
Included below are links to download some demonstration extensions as well as a more complex extension. The extensions are written in C# and use the .Net 3.5 framework.
Extensions can be written in any .Net language, and provide a way for SmallBasic programmers to develop their own skills and progress from SmallBasic to larger programming languages, as well as generating useful features.
To write your own extension you will need Visual Studio Express which can be downloaded and installed for free.
More information on writing your own extension can be found here and in downloads below.
Click the appropriate icon next to an extension from those listed in the Extension Downloads section below to download a zip file containing the required files.
Zip files can be un-zipped using various compression software, including WinZip or 7Zip.
As with all SmallBasic extensions, copy the extension dll and xml (inside the dll zip) to a lib sub-folder of the SmallBasic installation folder, usually in one of the following locations:
C:\Program Files\Microsoft\Small Basic\lib
C:\Program Files (x86)\Microsoft\Small Basic\lib
You may require to create the lib folder if it doesn't exist.
Copy all other files (documentation and samples) elsewhere.
All extensions have to be rebuilt for each SmallBasic version and only the current versions are maintained on this site.
Click the DLL
, Source
(VS 2010),
(VS 2012), or Additional Resource Please direct any questions, suggestions or problems to the SmallBasic forum here.
LitDev Extensions
|
LitDev Version 1.0.0.61 |
|
This extension contains all of the useful bits in the demonstration extensions and many additions as well as lots of other methods, ranging from simple utilities to physics simulation and 3D. | |
|
LitDev3D UNMAINTAINED AND MAY BE DEPRECIATED |
|
A 3D extension using the irrlicht engine (64 bit only). The associated media files (irrlicht samples) may be useful getting started. Another actively maintained 3D method (LD3DView) is included in the LitDev extension and works on all PC architectures. |
|
There is no need to download the smaller demonstration extensions below (since they are all contained in the LitDev extension) unless you are interested in how they are made, in which case you can download their source code.
Preview LitDev Extension API
Preview LitDev3D Extension API
LitDev Extension Details
The LitDev extension is actively developed and is updated periodically on this site only.
All the methods in this combined extension start with LD to isolate them from other similarly named methods.
A fairly detailed getting started guide is included for the LDPhysics method as well as plenty of samples for it and the other methods in the dll zip.
A more detailed change log and current version check can be viewed by running the LDUtilities.Version() method.
The LitDev extension is actively developed and is updated periodically on this site only.
All the methods in this combined extension start with LD to isolate them from other similarly named methods.
A fairly detailed getting started guide is included for the LDPhysics method as well as plenty of samples for it and the other methods in the dll zip.
A more detailed change log and current version check can be viewed by running the LDUtilities.Version() method.
| LD3DView | A 3D modelling set of methods for the GraphicsWindow. |
| LDArray | A faster array method for large 1D arrays with 1000+ elements using integer indexing. |
| LDCall | Call a subroutine as a function with arguments and optional return value. |
| LDControls | Additional controls for the GraphicsWindow, including TreeView, RichTextBox, WebBrowser, ListBox, ComboBox and CheckBox. Right-click context control menus for any shape or control. |
| LDCursors | Set cursors in the GraphicsWindow. |
| LDDateTime | Utilities to manipulate and calculate date and time differences, i.e. manipulate past and future dates. |
| LDDebug | A debugging tool and auto instrumentation to create breakpoints. |
| LDDialogs MODIFIED | Additional dialog utilities, including a blocking popup waiting dialog, tooltips, calendar, font, colours and GraphicsWindow right-click context menu. |
| LDEmail | Send email using an smtp server. |
| LDFile | File utilities like read and write CSV (comma separated value) files, read files to an array, file length, music file play time and print a file. |
| LDGraph | Graph plotting methods including export to Excel and CSV. |
| LDImage | Extends ImageList to include image processing. |
| LDMatrix | Matrix algebra, for example to solve linear systems of equations. |
| LDMusic | Extends Sounds.PlayMusic to include additional instruments and notes can also be played synchronously (chords). |
| LDNetwork | Web methods, including a method to store and retrieve game high scores. |
| LDPhysics MODIFIED | A larger set of methods to simulate Dynamic Collision Physics using the Box2D engine. This is the same physics engine used for Angry Birds. |
| LDScrollBars | GraphicsWindow ScrollBars, careful use allows a scrolling type game. |
| LDSort | Array sorting by index and value, with number and string sorting supported. |
| LDStatistics | Statistics on a 1D array of numbers and random sample generation with normal, binomial, uniform and triangular distributions. |
| LDUtilities | Export of GraphicsWindow to image files or print, and other utilities like pause and resume GraphicsWindow updates, GraphicsWindow icon, minimise/maximise the GraphicsWindow, file Zip archiving and list of available fonts or colours. |
| LDWebCam | A webcam object for the GraphicsWindow, with some simple effects. |
| LDWindows | Create additional GraphicsWindows. |
|
LDColours LDCommPort LDEvents LDFocus LDProcess LDShapes LDSpeech LDMath (formerly LDTrig) |
Maintained and in some cases significantly extended versions of the demonstration extensions are also included. |
|
|
|
|
|
|
|
|
|
Demonstration Extensions
The following smaller extensions are provided for demonstration purposes for you to start building your own. They are no longer actively developed, but still show how various operations can be performed and interact with SmallBasicLibrary.dll.
Download the souce and unzip to a folder somewhere, open the solution (*.sln) in Visual Studio and build the solution. Copy the resulting dll and xml files to the SmallBasic lib folder to then become available for SmallBasic.
You may need to update the reference to where SmallBasicLibrary.dll is installed on your PC inside the References section of Solution Explorer in Visual Studio.
If you have any questions, then check out the 'Guide to writing extensions' below or ask on the SmallBasic forum.
The following smaller extensions are provided for demonstration purposes for you to start building your own. They are no longer actively developed, but still show how various operations can be performed and interact with SmallBasicLibrary.dll.
Download the souce and unzip to a folder somewhere, open the solution (*.sln) in Visual Studio and build the solution. Copy the resulting dll and xml files to the SmallBasic lib folder to then become available for SmallBasic.
You may need to update the reference to where SmallBasicLibrary.dll is installed on your PC inside the References section of Solution Explorer in Visual Studio.
If you have any questions, then check out the 'Guide to writing extensions' below or ask on the SmallBasic forum.
| Colours | Get SmallBasic colours by name. | |
| Music | Get a music file play time. | |
| SerialPort | Access the serial port (code by Nino Carrillo. Original at http://code.msdn.microsoft.com/sbserial). | |
| Spawn | Access system process information and start external processes. | |
| Speech | Use a speech synthesizer to speak text. | |
| TextBoxFocus | Set and get the focus for Controls and Textboxes. | |
| Events | Sample creating event extension (display change). | |
| ShapesExtension | A method to move a line shape and manipulate Shapes such as dashed pens, Z-index layering and some basic collision detection. | |
| TrigD | Trig functions using degrees. |
Some other useful downloads.
Samples
Some SmallBasic samples that don't use extensions, but demonstrate a range of features.
SmallBasic API
A printable and editable copy of the SmallBasic API (commands and their syntax) created from SmallBasicLibrary.xml.
Previous versions
A previous msi installer may be required to correctly uninstall SmallBasic before installing the current version.
Hello World test
A very simple compiled Small Basic program that can be used to test .Net if an installation of Small Basic fails.
Guide to writing extensions
Guides to setting up and compiling an extension using VS 2010 Express in C# and VB. This is very similar to using VS 2012 Express, where the guides are also applicable.
XML converter
Utility program to convert SmallBasic and extension xml files to rtf and html documents. This tool was used to create the rtf files provided with extensions on this site as well as the SmallBasic API above and html API previews. Tool also contains some other utilities I use. It requires .Net 4.5 which installer will detect and install if you want this tool.
SmallBasic extension compiler
Compile an extension in SmallBasic (simple example included). Code by Fremy Company, recompiled with permission for current version. See here and here for more details.