DevelopmentEnvironment

From aHuman Wiki
Revision as of 01:26, 16 June 2015 by Admin (Talk | contribs) (Automated page entry using MWPush.pl)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Development Environment

@@Home -> DevelopmentEnvironment

deathrow.jpg


Overview

Project framework is based on Visual Studio 2010 Express Edition - free IDE. Subversion is used as a version control system.

How To Setup Development Environment

Finish Joining the Project quest before trying below

Project Structure Guidelines

  • Projects are not directly dependent on each other; if dependencies exist, related interfaces and binaries are copied into target project codebase
  • Virtual folders should correspond to directories, except for below cases
* if folder contains files of different types - e.g. headers and C++, then we can create virtual folders to separate these types - e.g. "include" directory
* if folder has too many files to manage - we can split files by folders (but better to split files by subdirectories as well)
  • Any project contains typical directories on top level:
* src - all sources, including C/C++ headers and body files
* bin - output files should be redirected to this location
* build - intermediate files, byproducts of build
* etc - configuration files if any
* lib - used libraries
  • any project is included in one or more workspaces
* project corresponds to the build target
* workspace corresponds to the deployment target and has name:
"workspace.<deployment target name>"

Upgrading the Development Environment

General IDE requirements:

  • Language is not P-code like Java - these programs work in sandbox and use quite heavy runtime
  • IDE is free
  • Evidence of successful discussion at forum

Usign External Libraries

  • for each research area support several libraries implementing related features
  • each external library should have been committed as is, with all sources
  • customized library should have been specifically marked in the codebase
  • any external library should have wrapper code, functioning as a facade (limiting library scope to only used one and conforming interfaces to aHuman codestyle and design giudelines)

Decommissioned child pages