Reputation: 325
For our new development, we would like to have an framework that would support end-user customization and programming. Something similar a modern ERP systems have (e.g. Navision, Baan/LN, SAP). So an enduser with a development license could add new fields to a table, create new tables, inherit forms and modify default functionality, add new forms, etc. Development IDE should be implementend inside App (no other IDE). Output application should be Win/Web (I prefer both). For me, best option would be something on .NET(C#) Is there any framework available on the market that would have required functionality built in? Rgds, Frenk
Upvotes: 0
Views: 155
Reputation: 2665
You can create your framework using .NET and expose you interface as a public .NET classes. You can use .NET XML documentation to create documentation for your API and then use Sandcastle to generate on-line help for your API.
Then you would need to define some interfaces that third-parties would need to implement to be able to load their customization within your product. Again, you can implement them as public .NET interfaces and document using .NET XML documentation.
Then you would need to define a way those extension will be registered within your application and loaded by your application. You can use MEF for this.
To enable table creation by third-parties, you would need to define some kind of configuration file that they can provide with their extensions. Then you would run those configuration files when extension is installed.
The best practice here is to use your own API and extensibility framework to build your own application. That way you will discover all limitations of your framework while building your own application. It will force you to create really usable API. It is called dogfooding.
Edit: Third-parties will be able to use a free Express version of Visual Studio to build extension for your application. Visual Studio is way better "scripting" environment than any VB-like solution you can think of.
Upvotes: 1