Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best Practice in Delphi Rapid Application Development in term of Reusability [closed]

Tags:

delphi

How to improve our productivity when starting new project using Delphi?

For me, I create a template project including splash screen, primary data module with default component and all data-aware subroutines (open, close, query, default when failed to open DB, etc), and save the template in my repository. (I use all my own frames and unit in the project, so everything always be created automatically when I choose : New Project and choosing my template.)

Questions:

  1. Is there any other way to improve reusability using Delphi?
  2. What free open source framework (like Jedi) / IDE PLugins (like GExpert) you think is best to use using Delphi?

Pardon me if this question has been asked before.

like image 996
WishKnew Avatar asked Jul 07 '09 08:07

WishKnew


2 Answers

For Q1: Use mature libraries which do for you the grunt work: DevExpress -or- TMS for UI (JEDI's JVCL also is very good), FastReport for reporting. Choose also a good connectivity framework (it depends on your db back-end) in order to have many day-to-day tasks solved OOTB. Also, if you're familiar with OPF have a look at InstantObjects. I heard that's very nice.

For Q2: See the IDE enchancements from cnpack.org

Also it will help to slowly build your own specialized framework/set of tools. Not something very big but as a quick way to get some things done in your way. Always try to design for reuse, even if it takes a little bit longer in the beginning.

like image 118
John Thomas Avatar answered Nov 19 '22 08:11

John Thomas


For larger applications, the key to productivity is to work at a higher abstraction level than data module and database.

The database has a small set of types. In your domain you are likely to have default mappings from domain types to database types. You'll also have validators and formatters for them. You'll have default reports, filters and search (windows, panels, sql queries) for your domain entities. You'll have role-based access control to them.

Take a look at domain-driven development.

like image 7
Stephan Eggermont Avatar answered Nov 19 '22 08:11

Stephan Eggermont