Multiple Target Platforms - ntierontime/Log4Net GitHub Wiki

The generated nTier On Time solution supports 4 platforms:

  • .Net platform on computers
  • Silverlight
  • Windows App Store
  • Windows Phones

nTier On Time are using Project Linker to share code files among projects and Pre-Processor to tell compiler to either compile or not compile a code snippet in code file to:

  • Project Linker is used if a project is going to compile in other target platform.
    • The primary target platform is always .Net framework on Windows
      • e.g. primary project name is A.B.csproj
    • The linked to target platform project name will be A.B.targetframework.csproj
      • e.g. linked to project name is A.B.silverlight.csproj for Silverlight platform
      • The linked to project has exactly same project structure.
    • Each C# source code file is put into primary platform, then linked to other platform projects
  • Pre-Processor directives, such as #ifdef, are typically used to make source programs easy to change and easy to compile in different execution environments.
    • 1 or several constants is/are defined in project files for linked to platform projects.
      • Silverlight projects will be “SILVERLIGHT”
      • Windows Phone projects will be “SILVERLIGHT;WINDOWSPHONE”
    • #if directive, with the #elif, #else, and #endif are used to identify whether code snippets will be compiled in a particular target platform