Contributors

We want to complete the runtime as fast as possible to enable new scenarios for your app, like running in PDAs, Smart Phones or other platforms like Windows Mobile, Linux or wherever the .NET functionality is available.

We are opening the VFP.Runtime to contributions of the community, so they can provide the Functions, Classes and Commands they need and more important yet, implement the functionality we think we need in VFP. The actual functionality implemented is available here .

Every contribution will have the name of the contributor in the Documentation of the function / command / class. And the Runtime will ship with source code.

Because the VFP.Runtime is being written in VFP language, our community already have the knowledge to start coding.

Guidelines for contributing

Here are some guidelines for contributing, these guidelines are conceived to harmonize with the work we are doing.

  • We like the hungarian notation where you name a variable according to the data type it handles. Example for a Data variable we would name it:
    • nData for numeric variable
    • cData for a string variable
    • dData for a date variable
    • tData for a time variable
    • iData if the data is Integer
    • lData for a logical (boolean) variable
    • eVariable if the variable holds different types.
  • For parameter declarations we choose this convention:
    • Use LPARAMETERS instead of PARAMETERS to be sure all the parameters are local and to avoid variable name clash.
    • Prefix every parameter name with the t character, i.e. tcParameterName for a parameter containing a character value.
    • Because the syntax PROCEDURE (aParam, bParam) is mapped to PARAMETERS, try to avoid this syntax. The compiler handles that syntax fine but we don't encourage you to use it.
  • For variable declaration:
    • Use LOCAL variables instead of PRIVATE for the same reason: to avoid name clash, when a called procedure inadvertently overwrites a variable declared higher in the call chain.
    • Of course declare as LOCAL any variable you are writing / reading to be sure it is the variable you think and not another in the hierarchy call chain.
  • For variable usage:
    • Be consistent in your use of the variables. VFP allows to write to the same variable different types of values, either a string or a numeric. The Compiler for .NET also lets you do that, but is not good programming practice.
    • Another reason for this is because if later we want to turn the code into strong typing it is easier if the usage is consistent with that optional feature.