This document provides a template for documenting a software development project. It outlines sections to include such as authentication methods, documentation location, naming conventions, coding guidelines, database details, deployment process, testing procedures, and revision history. The template aims to standardize project documentation to make projects easier to maintain and develop. Specific project requirements are also defined for different project types including MVC, Web API, and WCF.
3. .
3
Contents
1 Common to any types of projects.........................................................................................................................4
2 Authentication and Authorization types used in project......................................................................................4
3 Documentation home for the project...................................................................................................................4
4 Create a home for project in TFS ..........................................................................................................................4
5 Naming conventions for the projects ...................................................................................................................4
6 TFS work items creation........................................................................................................................................4
7 Coding guidelines to follow...................................................................................................................................5
8 List the variable that are used in code and placed in web.config.........................................................................5
9 Need error log of the project................................................................................................................................5
10 Any configuration done or needed to run the project .........................................................................................5
11 Database table and it’s use...................................................................................................................................5
12 Workflow diagram how project works .................................................................................................................5
13 Deployment to staging..........................................................................................................................................6
14 Deployment changes to be done on staging server .............................................................................................6
15 Software development tools to be used and not used.........................................................................................6
16 For specific type project requirements.................................................................................................................6
16.1 Using MVC?..................................................................................................................................................6
16.2 Creating WEB API? .......................................................................................................................................6
16.3 Creating WCF?..............................................................................................................................................7
16.4 Creating core project?..................................................................................................................................7
17 Unit tests created while developing this project..................................................................................................7
18 Integration tests created while developing this project.......................................................................................7
19 Test data used while developing this project .......................................................................................................7
20 Dependency on any other company projects.......................................................................................................7
21 Checking in the code in TFS ..................................................................................................................................8
22 Update the WEB API Gateway document/Project................................................................................................8
23 Index .....................................................................................................................................................................9
24 Record of Revisions.............................................................................................................................................10
4. .
4
1 Common to any types of projects
Any software developers developing the projects for Your Company must follow these guidelines to make sure it is
easy for organization to maintain the developed projects in TFS and in Database.
In order to make developer life easier during and after project, use this document as a template and replace your
content. This is your project document at the end.
2 Authentication and Authorization types used in project
List whether it is forms authentication or NTLM. If WEB API how the authentication checking is done.
3 Documentation home for the project
The home for every Non-Dnn projects developed by Your Company developers is here. Please create a new folder
with your project name in this folder.
Any related documents to your projects should be here at once stop.
4 Create a home for project in TFS
Will be discussed with manager before starting the work to minimize redoing your work and frustration.
5 Naming conventions for the projects
The name of your project should be as follows.
Project name, database tables names and table location of database will be discussed with manager before
starting the work to minimize redoing your work and frustration.
6 TFS work items creation
Only one requirement will be created per project to make sure it is easy to track. All the related sub task will be
created under the single project requirements. Work items will be created before starting to work on it to make
sure we knew in which sequence work items were created and coded to understand the flow.
5. .
5
7 Coding guidelines to follow
Every developer developing the Your Company projects should follow these development guide to make sure code
is written in a specific manner.
No variable must be hard coded in the projects. At least it must come from web.config.
Every project must implement error log.
Best practices for WEB API projects
Best practices for .NET Framework projects
8 List the variable that are used in code and placed in
web.config
Implementation details need to be explained for every variable placed in web.config so next developer can
understand.
9 Need error log of the project
In non-Dnn project, we need to track the error at least in the root folder of the web site with file name called
projectname.log and project should be writing to this in case any error happens.
If required management will ask developer to enter database table to be pulled later on a screen for easier life.
10 Any configuration done or needed to run the project
For ex. In case of Zoho, we need a lot of configuration to be done before we can start coding then, we need to
write in this section that what is done and how it is done. This will become your document at the end of that
project.
11 Database table and it’s use
What does the data model look like and where it is being stored? List all the table names, database name and
server of the database on local, staging and production system.
12 Workflow diagram how project works
What does the target deployment environment look like?
6. .
6
13 Deployment to Staging/Production
Information on where it is deployed to be tested. Write a staging URL where it is hosted and can be tested or
consumed by another team.
14 Deployment changes to be done on staging server
List all that is required to get your cod working on staging server
15 Software development tools to be used and not used
When designing non-Dnn projects at Your Company we can use the following tools only unless except by
permission from manager or upper management.
Microsoft Visual studio 2017 or Visual studio 2019
Microsoft SQL server
No asp standard controls can be used. Only DevExpress user controls can be used.
No earlier than .NET 4.6 framework can be used for non- Dnn projects.
Microsoft Entity Framework 6.2 and above only. If not using the EF, used Dapper that make the life easier for
other programmers as well.
16 For specific type project requirements
16.1 Using MVC?
1. If using MVC in project, make sure to use AspNet.Mvc 5.2.7 or later only
16.2 Creating WEB API?
Make sure we follow the following guidelines.
1. If creating WEB API type project, WEB API 2 and above
only.(https://forums.asp.net/t/2102345.aspx?How+to+know+the+web+api+project+version+)
2. If creating WEB API, you can user .NET Framework or .NET core as well. If you are creating the WEB
API in core, please create a sample and publish it to staging server before you go on a long trip. Then
only start coding your needed code.
3. If creating web API project, need to implement Swashbuckle 5.6 and above to use swagger for making
WEB API testable. The swagger gives consumer of the WEB API enough information to start coding
based on request body, response boy and response class that WEB API returns.
7. .
7
4. If you are publishing WEB API or WCF to staging server, never publish directly to staging server
directory as a target directory while publishing. Always publish in local folder and then copy needed
file to staging server.
5. Before publishing always take a backup of bin folder and web.config folder if there is any in your
projects.
6. Create a postman collection for your WEB API for automation testing. You will run this automation
test against the production WEB API url after every time change is done to web api or related
database tables to make sure no other existing functionality is breaking in production.
16.3 Creating WCF?
1. Need to write a wrapper around existing WCF, use only Visual studio 2017 which support WCF client
for .net framework. If you user Visual studio 2019, it doesn’t not support WCF client. Please check
with Microsoft before writing in Visual studio 2019.This is core client for WCF
https://github.com/dotnet/wcf
16.4 Creating core project?
To be stable please use core tool version < 3.
17 Unit tests created while developing this project
Unit tests are nothing but the testing for the written code to make sure written code is following the SOLID
principles of architecture, developers need to write unit tests. See here for more info.
https://www.guru99.com/unit-testing-guide.html
18 Integration tests created while developing this project
If your project is communicating with other projects in organization , we need Integration testing see here for
more info https://www.guru99.com/integration-testing.html#3.
19 Test data used while developing this project
Any type of data used for testing to minimize the work of next developer who take son this project.
20 Dependency on any other company projects
If it is using WCF services or web api, let us say mention here.
8. .
8
21 Checking in the code in TFS
Every time code is checked in the TFS, every developer must select the work item from TFS to be selected before
checking in the code, so everyone know why check in was done.
If you are checking in, take a backup of your present working folder, before you check in make sure to get the
latest. Merge you changes to latest and then try checking into. If conflict happens watch the conflict closely and
resolve each to make sure you don’t lose your changes and someone else most recent changes
22 Update the WEB API Gateway document/Project
Once in production update how this API will be consumed by inside or outside world , it’s method and it’s response
object that it returns.(This document will have URL, required json object for input data for each post methods and
custom response for each get method.