The Standards
Table of content
Overview General C# Shared libraries MVC Entity Framework JavaScript CSS/HTML SASS Rea...
Overview
Standards provide a guiding light that we follow while writing code. Standards are born litera...
General
The following list of items indicate coding standards independent of the technology used. Commen...
C#
Table of content
General Statements, expressions and operators Separation of concerns Types Classes and Stru...
General
Developers guide to debugging (click on the image below) When dealing with objects, always ...
Statements, expressions and operators
References Statements Expressions and operators Additional Ensure the proper use of ...
Separation of concerns
The main concept here is Single Responsibility - "a class/method must have only one reason to cha...
Types
References Build in reference types Nullable reference types SignifyTypeExtensions TODO Wh...
Classes and Structs
Interfaces
References Explicit Interface Implementation How to explicitly implement interface members H...
Comments
References Commenting Conventions
Arrays
References Arrays as Objects Single Dimensional Arrays Jagged Arrays Using foreach with Arr...
Generics
References Generic Type Parameters Constraints on Type Parameters Generic Classes Gen...
Strings
References Working with Strings Formatting Standard Numeric Format Strings Custom Numeric...
Namespaces
Usage Make use of using directives to enable improved readability and limit coding effort. // N...
Exception handling
References Creating and Throwing Exceptions Catch Ensure the error is logged in a catch.Act...
Shared libraries
SignifyTypeExtensions
This library is used to to type casting for primitive types and has built-in error checking whi...
SignifyControlLibrary
This library extends certain controls inheriting from System.Web.UI.WebControls that are used r...
SignifyHR.Helpers
Groups commonly used helpers used across all modules in Signify Helpers available: ApiUti...
Third-Party Integrations
SigniFlowUtilities AdobeUtilities QuestionMark Rustici ZoomConnect Sharepoint
MVC
Table of contents
1. General 2. Naming Conventions 3. Models / Domain Models 4. View Models 5. View 6. Control...
General
For a general guide on ASP.NET MVC, click on the following image Each functional domain being ...
Naming Conventions
The following naming convention must be followed when creating any of the MVC pattern sections. A...
Model/ Domain Model
Go To Naming Conventions For information regarding models, click the images below Contain p...
ViewModel
Go To Naming Conventions For information regarding view models, click the images below The ...
View
Go To Naming Conventions For information regarding razor views, click the images below Respon...
Controller
Go To Naming Conventions For information regarding Controllers, click the images below E...
Routing
Go To Naming Conventions For a guide regarding routing, click on the image below Area specifi...
Attributes
Go To Naming Conventions The ASP.NET MVC framework supports four different types of filters exec...
Extensions and Tools
Logging Using NLog public class HomeViewModel : PortalMasterModel { private static readon...
API Conventions
Propagate errors. If an error occurred, return a 500. The status code should tell you what happen...
Entity Framework
Table of contents
General Naming conventions Domain conventions LINQ EF Core
General
All methods accept and use ISessionHandler using SignifyHR.Core; using System; using Syste...
Naming conventions
Methods for EF are written in Pascal Case Examples of naming conventions that need to be followe...
Domain convention
Methods Method Parameters Linq / Entity Operation Return Type State Dal Sync Mode ...
LINQ
IQueryable This is used when you want to add and/or filter results from the database, without th...
EF Core
https://docs.microsoft.com/en-us/ef/
JavaScript
Table of contents
General Naming conventions Bundling Minification jQuery TypeScript Iterators (Loops) Pro...
General
Try to follow the AirBnB styling guide as far as possible. Sometimes you might have to deviate fr...
Naming conventions
Use camelCase when naming objects, functions, and instances. // bad const OBJEcttsssss = {}...
Bundling
Always use bundling to some degree in production. Commonly used vendor scripts should always be b...
Minification
Always minify in production. TODO : Example and how is minification done Use minified versio...
jQuery
Prefix jQuery object variables with a $. // bad const sidebar = $('.sidebar'); // good ...
TypeScript
Iterators (Loops)
Don’t use iterators. Prefer JavaScript’s higher-order functions instead of loops like for-in or...
Properties
Use dot notation when accessing properties. const luke = { jedi: true, age: 28, }; ...
Variables
Do not use const or let when targeting Internet Explorer without a transpiler. Always use cons...
CSS/HTML
Table of contents
General Naming conventions Properties Can I Use Bundling SASS
General
Try to follow the AirBnB CSS/SASS guideline as far as possible. Please have a look at the rest ...
Naming conventions
BEM, or “Block-Element-Modifier”, is a naming convention for classes in HTML and CSS. We will b...
Can I Use
To make sure the supported browsers can render the CSS properties that you want to use, refer to ...
Bundling
Always use bundling to some degree in production. Commonly used CSS files (for an Area or Module)...
SASS
Sass is a stylesheet language that’s compiled to CSS. It allows you to use variables, nested rule...
React
Web API (REST)
Table of contents
1. General 2. Naming Conventions 3. Methods 4. Versioning 5. Object Usage
General
This is an extension on C# standards. XML Documentation Commenting Code Documenting Ensure all...
Naming conventions
URI's API URI's are based around resources. Actions are indicated with the use of HTTP Methods. ...
Methods
Related Documentation Define operations in terms of HTTP methods Conform to HTTP semantics ...
Versioning
URI versioning is utilised. Refer to below links for more information: Versioning a RESTful web ...
Object Usage
Data Transfer Object - DTO Data Transfer Object is the object returned by an API call.A DTO is u...
SQL
Table of contents
General Naming conventions Cursors Common table expressions (CTE's) Temporary tables Tabl...
General
No more than 200 lines (formatted) allowed in any stored procedure, user-defined function or vi...
Naming conventions
General Decide per module if abbreviation (e.g. prs for Personnel module) or full name (e.g. l...
Cursors
Use cursors only when absolutely necessary. If the function performed by the cursor could have...
Common table expressions (CTE's)
CTE table names are declared with the prefix cte Used to simplify complex joins and subqueries...
Temporary tables
Temp tables are used for the large temporary storage of data. Only use local temp tables. Us...
Table variables
Use table variables over temp tables for a small quantity of data (thousands of bytes) https...
Tables and indexes
Always use a column list in INSERT statements of SQL queries. This will avoid a problem when ta...
User defined functions
Do not call functions repeatedly in stored procedures, triggers, functions and batches, instead...
Stored procedures
EXCEPT or NOT EXIST clause can be used in place of LEFT JOIN or NOT IN for better performance (...
Triggers
Limit the use of triggers only for auditing, custom tasks, and validations that cannot be perfo...
Existence checks
Make use of the existence checking defined here Always check for existence when adding new ob...
Views
Incorporate your frequently required, complicated joins and calculations into a view so that yo...
Supported Browsers
Version 9 Supported Browsers