?
Solved

c# Allow users to add Additional logic to application (called Logic)  without access to Source

Posted on 2014-03-16
3
Medium Priority
?
265 Views
Last Modified: 2014-03-19
I have developed a c# application which allows users to define their own transactions by grouping SQL database records under a common transaction name. Effectively the application which runs the transactions is "dumb" with all of the logic residing in the database transaction records. By breaking any transaction down to its smallest elements and applying a sequence number and branching logic, they can define the processing flow required to run any transaction. Some of the database transactions are Input rules whilst other are Output rules, Logic/Decision rules, Constant rules, Update rules etc...

To enhance functionality each database transaction is capable of running pre-defined Commands either before , during or after the transaction record is processed. An example of this might be a Logic transactions which reads shop orders from an order master table via an SQL statement.  (select order_number from ShopOrder_Master)]. By having pre-defined Commands CLR_LIST1ADD_LIST1 specified, the array LIST1 can be cleared down and subsequently populated with the output of the SQL statement. Another Command DRPDWN_LIST1 could copy the list of shop orders to a drop down list in preparation for an Input statement.

I would like to be able to ship this software with an option for users to be able to develop their own Commands and utilize these within their own transactions.  Obviously the software shipped would just be the executable without source. I'm thinking along the lines of defining a class called "UserCommands", with source, where the users could define commands which would be called from the main application. However this would be a separate executable and I assume that it would not has access to the object instances of the main application.

Any insights into how I might be able to integrate user defined commands (ie commands yet to be defined) into the main application would be most welcome.

regards
Pat
0
Comment
Question by:pclarke7
3 Comments
 
LVL 23

Expert Comment

by:Michael Fowler
ID: 39933351
Why not have a database table to hold these commands with a column for command id and another to the command itself. This could created in local database file
http://msdn.microsoft.com/en-us/library/ms233763.aspx

Michael
0
 
LVL 75

Accepted Solution

by:
käµfm³d   👽 earned 1500 total points
ID: 39933549
Why not create a plugin architecture? This is a common way to allow end-users to extend the functionality of an application without actually modifying the application itself.

Additional tutorials:

http://www.codeproject.com/Articles/4691/Plugin-Architecture-using-C
http://www.codeproject.com/Tips/546639/How-to-create-an-easy-plugin-system-in-Csharp
0
 
LVL 1

Author Closing Comment

by:pclarke7
ID: 39939312
thanks and regards
Pat
0

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
This article shows how to deploy dynamic backgrounds to computers depending on the aspect ratio of display
Free Data Recovery software is an advanced solution from Kernel Tools to recover data and files such as documents, emails, database, media and pictures, etc. It supports recovery from physical & logical drive after a hard disk crash, accidental/inte…
Watch the video to learn how one can deal with PST file corruption issue with an outstanding Kernel for Outlook PST Repair Tool easily. Using this tool, non-technical users can swiftly perform the repair process to restore their essential data witho…

569 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question