Documentation for Developers: Difference between revisions

From OpenPetra Wiki
Jump to navigation Jump to search
 
(66 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== How to get started ==
== Projects ==
* [[Setup of Development environment]]
Please read about what needs to be done, and how to take charge of a project here:<br/>
[[Summary of Projects]]
 
 
==Development==
=== Development Environment ===
* [[Quick Setup of Development environment]]


== Software Architecture and Principles ==
=== Programming ===
====General====
* [[Coding Standard and Guidelines]]
* [[Coding Standard and Guidelines]]
* [[Error and Exception Handling Policy]]
* [[Explanation of Directory Structure and Rules]]
==== Development ====
* [[Useful hints regarding coding in CSharp/.net]]
* [[Development with Code Generation]]
* [[Development with Code Generation]]
* [[Overview openPETRA architecture]] (taken from the old Petra wiki. should be merged into the other articles)
* [[Build system with our own NAnt tools and tasks]]
* [[Preventing/getting around circular dependency problems]]
 
==== Database-related====
* Architecture Information
** [[Overview openPETRA architecture#Database_System|Database System]] / [[Database access architecture]]
** Two diagrams at the right ------------------------------>
[[File:OpenPETRA_Data_RDBMS_Abstraction_only_Diagram.png|200px|thumb|right|openPETRA Database Abstraction Layer Diagram]]
[[File:Petra_NET_Data_Access_Layer.png|200px|thumb|right|Data Access Layer]]
* [[Using OpenPetra's DataAccess Objects]]
* [[DB Access Exception Handling]]
* [[Automatic DB Transaction Handling]]
* [[Co-ordinated DB Access (Thread-safe DB Access)]]
* [[Working with multiple DB Connections]]
* [[Stopping of Running DB Queries]]
* [['Preparing' SQL Statements And Specifying SQL Statement Time-outs]]
* [[Specifying 'standard' / 'default' / 'base' data for DB Tables]]
* [[DataSets: Ensuring you deliver 'unchanged' data to the Client]]
* PostgreSQL-specifics
** [[PostgreSQL: Sequences Not Tied to DB Transactions]]
 
====Other Topics====
* [[User Defaults]]
* [[System Settings (Maintain Table Screen)]]
* [[Working with OpenPetra Security]]
* [[Retrieving the 'SiteKey' of an OpenPetra installation]]
 
=== Development Cycle ===
* [[Build System for OpenPetra]]
* [[Releases and Patching]]
* [[Building and maintaining customized versions of OpenPetra]]
* [[Migrating data from legacy systems]]
* [[Working with NUnit tests]]
 
=== Getting Started ===
* [[HowTo develop a new screen]]
* [[HowTo develop a new report]]
* [[Report Designer]]
 
=== Tools Used ===
This is a list of software that we use; some of it you will already have installed when you did your [[Setup of Development environment]].
* [[Software tools for Developers]]
* [[Memory profiling]]
 
=== Tips and Tricks ===
* [[Specifying custom settings in Config Files for Development]]
* [[Developing the Javascript Client]]
* [[Homepage]]
 
== OpenPetra Software Architecture ==
* [[Overview openPETRA architecture]]
** Taken from the old Petra wiki. Should be merged with the other articles!
* [[n-tier architecture]]
* [[n-tier architecture]]
* [[Database access architecture]]
* [[Database access architecture]]
* [[GUI development]]
 
=== Client Side ===
* [[Printing]]
* [[Printing]]
* [[Releases and Patching]]
* Specific Screens
* [[HowTo develop a new screen]]
** [[Exchange Rates (Design and Test)]]
* [[Report Designer]]
* [[HowTo develop a new report]]
* [[Useful hints regarding coding in CSharp/.net]]
* [[Building and maintaining customized versions of OpenPetra]]


== References and Code and DB documentation ==
== Bug Tracking ==
* For the current database structure, check http://openpetraorg.sourceforge.net/dbdoc (see also [[SQL Diagram creation]])
See [[Contributing_Source_Code_to_OpenPetra.org#Tracking_of_Bugs_and_Things_to_do|Tracking of Bugs]]
** There is a [http://openpetraorg.sourceforge.net/dbdoc/img/img_AccountsPayable.html?a_ap_document diagram for the Accounts Payable sub system]
** We need volunteers do design more diagrams! Please also have a look at the old 2.1 diagrams ([http://openpetraorg.sourceforge.net/Petra21DBDiagrams.zip download 9 png files in a zip file]).


* [[Base and Demo databases]]


== Specifications&Requirements ==
== Database Structure Documentation ==
Please have a look at the specifications and add your own requirements in the appropriate sections (eg. Wishlist):<br/>
We have DB model documentation online available in two formats, both of which are auto-generated with each release:
[[Specifications and Requirements]]
* [http://openpetraorg.sourceforge.net/dbdoc/index.html Our own format] (see also [[SQL Diagram creation]])
** There is a [http://openpetraorg.sourceforge.net/dbdoc/img/img_AccountsPayable.html?a_ap_document diagram for the Accounts Payable sub system]
*** We need volunteers do design more diagrams! Please also have a look at the old 2.1 diagrams ([http://openpetraorg.sourceforge.net/Petra21DBDiagrams.zip download 9 png files in a zip file]).
* [http://openpetraorg.sourceforge.net/schemaSpy/index.html SchemaSpy format]
** features quite nice automatically drawn relationship diagrams once you select a certain DB table. That can also be shown for the whole DB if you simply go to the ‘Relationships’ Tab on the index page (though that diagram is HUGE as the OpenPetra DB currently holds >300 DB Tables!).


== Projects ==
Please read about what needs to be done, and how to take charge of a project here:<br/>
[[Summary of Projects]]


== Used Tools ==
* [[Base and Demo databases]]
This is a list of software that we use; some of it you will already have installed when you did your [[Setup of Development environment]].
* [[Specifying 'standard' / 'default' / 'base' data for DB Tables]]
* [[Software tools for Developers]]
* [[Memory profiling]]


== Tips and Tricks ==
== Project Infrastructure ==
* [[Quicker development/debugging/testing turnaround with customised PetraClient startup]]
* Have a look at [[wordpress]]. The OpenPetra Website is running on Wordpress.
* Continuous integration with [[Continuous Integration with LightBuildServer|LightBuildServer]]
* [[Branches and Releases of OpenPetra]]

Latest revision as of 21:04, 11 Mayıs 2022

Projects

Please read about what needs to be done, and how to take charge of a project here:
Summary of Projects


Development

Development Environment

Programming

General

Development

Database-related

openPETRA Database Abstraction Layer Diagram
Data Access Layer

Other Topics

Development Cycle

Getting Started

Tools Used

This is a list of software that we use; some of it you will already have installed when you did your Setup of Development environment.

Tips and Tricks

OpenPetra Software Architecture

Client Side

Bug Tracking

See Tracking of Bugs


Database Structure Documentation

We have DB model documentation online available in two formats, both of which are auto-generated with each release:


Project Infrastructure