Limnor Studio (Beta) Samples

- What is Limnor Studio? - User's Guide - User Forum
- Installation and Getting Started     - References - "How to" flash
- Upgrading - Tutorial videos - How to ...
- Programming Samples - Shared Projects   
- Visual Programming Language

Tutorial Viewer

Tutorial Viewer is used to view the tutorials and descriptions for samples application. For each sample application two zip files are provided. One zip file contains the project files that can be loaded by Limnor Studio for editing and compiling. The other zip file contains the slides showing the creation of the sample application. The slides must be viewed by this Tutorial Viewer program. This program is shipped with Limnor Studio.
Tutorial Viewer is itself a sample application created in Limnor Studio.

Tutorial Maker

Tutorial Maker is used to create slides by capturing screenshots and adding drawings and text descriptions to screenshots. This program is shipped with Limnor Studio.
Tutorial Maker is itself a sample application created in Limnor Studio.
You may use this program to create slides to exchange ideas with other people more clearly (a picture is better than a thousand words). It uses less disk space than videos.

Programming Skills Samples

The Limnor Studio installation distributes some tutorials for basic concepts and operations. You may download additional samples listed below for the topics interest you.
Each sample consists of project files and slides. You load Project files into Limnor Studio by open the *.LimnorMain_sln file using the Limnor Studio, and exmine how the sample is made. You use TutorialViewer program to open the slides to see step by step description of the making of the sample.


Panning Image   Slides:PanImageSlides.zip Project:PanImageSample.zip
This sample application shows panning image by action.

Use Condition Action   Slides:condition.zip Project:prj_condition.zip
A Condition action forms a "IF ... ELSE ..." execution logic represented graphically. The condition can be a property of a math expression. This sample application shows the use of a Condition action.


RS232 Receive Data   Slides:RS232Slides.zip Project:RS232Sample.zip
This sample application shows using serial port to receive and show data.


Swap images   Slides:swapimageSlides.zip Project:swapimageSample.zip
This sample application creats a method to swap images between two Picture Boxes. The method uses a local variable to help move the data.


Go through files   Slides:GoThroughFilesSlides.zip Project:GoThroughFilesSample.zip
This sample application goes through all files under a specified folder and all levels of its sub folders. It shows the use of multiple threads to avoid blocking of User Interface while a long running process is going on. It shows the use of recursion to process all level of sub-folders. It shows the use of arrays and process of array items.


Use OpenFileDialog   Slides:slides_UseOpenFileDialog.zip Project:UseOpenFileDialog.zip
This sample shows the use of OpenFileDialog and moving and renaming files.
A similar sample is using ColorDialog.


Use Progress Bar    Project:progressbarSample.zip
This sample shows the use of Progress Bar.


Drag Drop programming   Description:SimpleDragDrop.pdf Project:SimpleDragDrop.zip
This sample shows the basic programming steps for drag/drop.

Cloud Computing Samples

Cloud computing may be done visually and codelessly, allowing everyone to do cloud computing.


Create a simple web service   Slides:createWebService1Slides.zip Project:createWebService.zip
This sample shows the creation of a simple web service. It creates one web method which returns the time the web method is executed.


Use web service   Slides:UseWebService1Slides.zip Project:UseWebService1.zip
This sample shows using a web service in a program. It shows calling method in web service and getting data the web service returns. It shows calling web service synchronously and asynchronously.


Create a web service to search database   Slides:CreateWebServiceSearchDatabaseSlides.zip Project:CreateWebServiceSearchDatabase.zip
This sample shows the creation of a web service to search database. It provides a web method to search a value (given by remote client computers) in database and pass the search results as a table of data to the remote client computer. A desktop database can be used in such a client/server manner.


Use web service to search database   Slides:UseWebServiceSearchDatabaseSlides.zip Project:UseWebServiceSearchDatabase.zip
This sample shows that a client computer uses a web service to search database in a remote web server. It shows the using of database serach results in a table of data and display the data in a grid on the screen. Linked by internet, it allows searching a database in one computer from another computer in another city or another country. It shows calling web service synchronously and asynchronously.

Math Expression Control Samples

Math expressions can be used at runtime to do calculations. Math Expression Editor can be launched at runtime to modify math expressions. Values may be assigned to variables. Properties can be linked to variables. All such modifications can be done interactively at runtime.
Use math expression control   Slides:slide_useMathControl.zip Project:prj_useMathControl.zip
This sample shows basic usages of the math expression control.

Database Application Samples


Use data bindings at design time and runtime   Slides:slide_changeDataBindingsAtRuntime.zip Project:changeDataBindingsAtRuntime.zip
This sample shows setting data bindings at design time and changing data bindings at runtime.
Database for this sample:database_school.zip


Use field-editors in EasyGrid for data entry   Slides:slide_DataInputUsingGrid.zip Project:DataInputUsingGrid.zip
Data grid is an efficient tool for data entry because it shows many records of data on the screen. EasyGrid is a data grid. It allows using drop-down list boxes and dialogue boxes as field-editors for easier data input, for example, date/time selection by a calendar dialogue, values selection by database lookup, values selection by enumeration, etc. This sample shows how to use field-editors.
The sample database, school1.mdb, is included in prj_DataInputUsingGrid.zip.


Use ComboBox for lookup in data entry   Slides:slide_DataEntryWithLookup.zip Project:DataEntryWithLookup.zip
This sample uses a form to do data entry for a database. It shows using a DateTimePicker for inputing date and time. It shows using a ComboBox for looking up data from database.
The sample database, school1.mdb, is included in prj_DataInputUsingGrid.zip.


Use Parameters in Database Query   Slides:slide_UseParametersInQuery.zip Project:UseParametersInQuery.zip
Parameters may be used in database queries. The values of parameters are set at runtime so that the results of queries can be controlled at runtime by the users.
This sample shows using a parameter in a database query. It uses two text boxes to allow the user to enter search values. The values the user entered are passed to the query parameter. The results of the query are displayed in an EasyGrid. EasyGrid shows different records for different parameter values.
The sample database, school1.mdb, is included in prj_DataInputUsingGrid.zip.


Use Data-binding in master-detail relationship   Slides:slides_masterDetailDataSet.zip Project:masterDetailDataSet.zip
One-to-many (also called master-detail) relationship is a fundamental concept in relational databases. One “Order” may have many “Order Items”. One “Customer” may have many “Orders”. One teacher may be teaching many students. Such one-to-many relationship is widely used in creating database schemas.
This sample uses an Order-Order Item relationship to show a data entry user interface for managing master-detail data automatically. It uses data-binding to bind controls (text boxes, for example) for entering Order data. It uses a grid to enter Order Item data. The relationships between the Order records and Order Item records are automatically maintained by the system.

Database for this sample: SampleDatabase_Orders.zip


Use grids for master-detail relationship   Slides:slides_masterDetailDataGrid.zip Project:masterDetailDataGrid.zip
This sample uses one EasyGrid to show and update master records, and uses one EasyGridDetail to show and update detail records. The user may enter new Order records or modify existing Order records. For each Order record, the user may enter new Order Item records or modify existing Order Item records. The relationships between the Order records and Order Item records are automatically maintained by the system. You get all these features without creating one single action.
Database for this sample:SampleDatabase_Orders.zip


Use EasyUpdator to insert new records   Slides:slides_FtpAndDatabaseUpdator.zip Project:FtpAndDatabaseUpdator.zip
This sample shows how to use EasyUpdator component to insert new records into a database table.
The sample shows how to use FtpClient component to upload all files from a local folder to an FTP server.
This sample logs file uploading activities and failed FTP activities into a database table using an EasyUpdator component.


Use Parameterized Query and Check Record Existence   Description in PDF: Use Parameterized Query and Check Record Existence.pdf Project:CheckRecord.zip
Such a scenario is stated in the forum “Existence in Database”:
1. Let the user enter a record ID
2. If the ID does not match a record in the database then show a message box
3. If the ID matches a record in the database then close a form
This sample project shows how to do it.


Data entry form using EasyDataSet   Description in PDF: DataEntryWithEasyDataSet.pdf Project:DataEntryWithEasyDataSet.zip
This sample designs two data entry forms. One form is used for adding new records into a database. One form is used for modifying existing records in the database. EasyDataSet and data-binding are used for database operations.


Import text file into database   Description in PDF: ImportTextFileToDb.pdf Project:ImportTextFileToDb.zip
This sample project imports contents of a text file into a database. The text file contains lines of text. It shows reading text file line by line using a "Repeat action". It shows parsing each line of text into an array. It shows using array elements. It shows inserting new record using array elements.

Application Configuration Samples


Use application configurations   Slides:slides_appConfig.zip Project:AppConfigSample.zip
This sample shows persisting data while an application is closed, using an ApplicationConfiguration object. An application defines the data it wants to persist. The data defined becomes properties of an ApplicationConfiguration object. “Set Property” actions can be created to transfer data between the ApplicationConfiguration object and the application. At runtime, the user may create and use different set of configurations. A set of configurations can be associated with the currently logged in user. The user may create named set of configurations, each set of named configurations is given a unique name by the user. A named set of configurations can also be password-protected. Text values in a password-protected set of configurations can be encrypted to prevent them from unauthorized access. At runtime the user may switch between different set of configurations.

Create Windows Services


Use Windows service to monitor and move files   Slides:slides_FileMoveService.zip Project:FileMoveService.zip
This sample shows the creation of a Windows service. The service monitors a folder and watch for file creations in the folder. When a file is created in the folder the service moves the file to another folder.


Use Timer in Windows service   Slides:slides_UseTimerInService.zip Project:WindowsServiceApp1.zip
This sample shows using Timer in a Windows service. Note that the Timer class must be from System.Timers namespace, not from System.Windows.Forms. In this sample, in every 5 seconds, the service writes (appends) the current time to a text file.

Internet Applications


Send email with embedded images   Slides:slides_SendMailEmbedImage.zip Project:SendMailEmbedImage.zip
This sample shows sending an email with an embedded image.


Upload files using FTP   Slides:slides_FtpAndDatabaseUpdator.zip Project:FtpAndDatabaseUpdator.zip
The sample shows how to use FtpClient component to upload all files from a local folder to an FTP server.
This sample shows how to use EasyUpdator component to insert new records into a database table.
This sample logs file uploading activities and failed FTP activities into a database table using an EasyUpdator component.

Use third party libraries


Use Object Database - db4o   doc:useDb4o.pdf Project:use_db4o.zip
This sample shows writing an object to a db4o database and reading object from db4o, using db4o API. It shows the use of 3rd party software libraries.

Use Microsoft Office Interfaces


Modify Word Document   doc:UseWord.pdf Project:ModifyWord.zip
All Microsoft Office applications can be manipulated programmatically using .Net Framework interfaces provided by Microsoft. This sample demonstrates merging data into a Word document and save the document to a new file.
The sample is a Windows Form application. The data to be merged into the Word document are entered into text boxes. A button is used to initiate the data merging action.


Getting started with Limnor Studio

Please send your feedback and sample requests to feedback@limnor.com. Thanks!