Вы находитесь на странице: 1из 9

FORMATO Código: GPY.04.FO.

003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

Estándar de Desarrollo de
Software .NET - Centria

Definición del estándar de desarrollo de software para Centria,


que se aplican a las soluciones .NET.

Agosto 2016

Estándar De ProgramaciónPágina 1 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

Contenido

1. Información General.................................................................................................................................... 3
1.1. Objeto del documento.............................................................................................................................. 3
1.2. Generalidades: ......................................................................................................................................... 3
1.3. Pautas generales ...................................................................................................................................... 3
2. Estándares de nombres ............................................................................................................................... 3
3. Sangría y comentarios ................................................................................................................................. 5
4. Programación .............................................................................................................................................. 5
5. Control de Excepciones ............................................................................................................................... 6
6. Arquitectura ................................................................................................................................................ 6
6.1. Capa de Acceso a Datos: ........................................................................................................................... 6
6.2. Capa de Lógica de Negocio: ...................................................................................................................... 6
6.3. Capa de Presentación ............................................................................................................................... 7
7. Seguridad .................................................................................................................................................... 7
8. Integración con otros programas ................................................................................................................. 7
9. Conclusiones Generales ............................................................................................................................... 8

Estándar De ProgramaciónPágina 2 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

1. Información General

1.1. Objeto del documento

El presente documento tiene como propósito indicar el estándar que todo desarrollo de software en .Net
debe cumplir para las aplicaciones de Centria. De esta manera, se garantiza que todas las aplicaciones .NET
sean consistentes, uniformes y de fácil entendimiento para revisiones y futuros mantenimientos.

1.2. Generalidades:

El lenguaje usado para los desarrollos en .Net es el C#, con framework 3.5 en adelante. Como base de datos
se trabaja con Sql Server 2008 en adelante.
El navegador por defecto usado en Centria es el IE versión 10 en adelante, aunque varios usuarios cuentan
también con Chrome, razón por la cual todo desarrollo web debe considerar estos 2 escenarios.

1.3. Pautas generales

 Se debe hacer uso de interfaces (plantillas para los objetos que se usarán en la solución). Estas pueden
estar definidas en un solo archivo.
 Usar un único archivo para la definición de estructuras, enumeración y/o constantes.
 Nunca escribir código en duro. Toda solución debe ser configurable obteniendo los valores desde
archivos de configuración o tablas parámetro en la base de datos.

2. Estándares de nombres

Notación Pascal: el primer carácter de todas las palabras se escribe en mayúscula y el resto en minúscula.
Ejemplo: ColorDeTitulo.

Notación Camell: el primer carácter de todas las palabras, excepto la primera palabra se escribe en mayúscula
y el resto en minúscula. Ejemplo: colorDeTitulo.

 Para el nombre de clases y métodos se usará notación Pascal.

public class CuentaBancaria


{

private void GenerarFactura()


{

 Para las variables se usará notación Camell.

int totalVenta = 0;

Estándar De ProgramaciónPágina 3 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

 Para los parámetros de los métodos se usará el prefijo “p” con notación Camell.

private void GenerarPDF(string pCodigo)


{

 Para las interfaces se usará el prefijo “i” con notación Pascal.

public interface ICliente


{

 No usar la notación Húngara (prefijos con el tipo de dato de las variables).


 No se utilizará el carácter “ñ” ni el “Ñ” para la nombrar los elementos.
 No incluir el nombre de la clase en el nombre de un atributo Ejemplo: Customer.Name no
Customer.CustomerName
 Los nombres de las clases no deben comenzar con valores numéricos.
 Los nombres de las clases no deben ser totalmente en Mayúsculas.
 No usar las palabras reservadas del lenguaje como nombres de objetos. Ejemplo: enum, else, this, static,
etc.
 No usar nombres de variables de un solo caracter a excepción de aquellas usadas en ciclos de repetición.
 Sólo las variables globales deben comenzar con guión (_).
 Los nombres de los nombres de espacio deben ser iguales al nombre del proyecto al que pertenecen.
 Los nombres de las clases, métodos y funciones deben seguir el sgte. modelo:
<acción/verbo en español><nombre entidad o descripcion>

ListarCliente()
AgregaCliente()

 Se usarán los sgtes. prefijos para los controles:

Control Prefijo
Label lbl
Textbox txt
GridView grv
Button btn
Imagebutton Imb
Hyperlink Hpl
DropDownList Ddl
ListBox Lst
Checkbox chk
CheckboxList cbl
Image Img
Panel Pan
Radiobutton rdb

Estándar De ProgramaciónPágina 4 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

3. Sangría y comentarios

 Se debe usar TAB para las sangrías con indización de tamaño 4.


 Los comentarios deben estar al mismo nivel del código.

// Obteniendo lista de opciones de funcionalidad


List<BEGeneral> func = new BLGeneral().ListarOpcionesFuncionalidad(hfCodSociedad.Value);

 Las llaves ({}) deben estar al mismo nivel del código fuera de las llaves.

if ( ... )
{
//código
//...
}

 Siempre utilizar las llaves ({}) en una sentencia condicional, aunque esta sea de una sola línea.
 Declarar cada variable en una nueva línea, no en la misma sentencia.
 Usar #region para agrupar porciones de código.
 Los comentarios no deben ser extensos: un comentario largo hace que se pierda el seguimiento del código.
 Escribir comentarios significativos sobre el propósito del código de una clase, método o bloque de código.
 Por cada método o clase definida pero aún no implementada se debe comentar con el texto // No
implementado

public List<ProveedorBE> ListarProveedor(string pTipo, string pBusqueda)


{
// No implementado
}

4. Programación

 Usar los tipos de datos especificados por c#, en lugar de los tipos de datos definidos en el espacio System.

int periodo, en lugar de Int32


string apellido, en lugar de String

 Usar String.IsNullOrEmpty para evaluar si una variable del tipo cadena es nula o vacía.

if (String.IsNullOrEmpty(apellido))

 Sólo cuando el evento de un control es invocado desde otro método o acción de otro objeto. Entonces se
debe crear un nuevo método que será usado por ambos controles u objetos.

 Usar la clase StringBuilder para concatenar cadenas y los métodos Append() y AppendFormat() para un uso
más eficiente de la memoria.

Estándar De ProgramaciónPágina 5 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

5. Control de Excepciones

 Todo error de la solución debe ser controlado por medio de las sentencias:

try
{
//...
}
catch (Exception ex)
{
//...
}
finally
{
//...
}

 Nunca se debe dejar un bloque try/catch vacío.


 Evitar anidar bloques try/catch con otro bloque de este tipo.
 Sólo usar el bloque finally para liberar recursos utilizados en el bloque try/catch.

6. Arquitectura

Usar una arquitectura multicapa. Las capas mínimas que debería tener toda solución son:

 Capa de Acceso a Datos.


 Capa de Lógica de Negocio.
 Capa de Presentación.

6.1. Capa de Acceso a Datos:

 No usar ORM.
 Toda interacción a la base de datos será por medio de procedimientos almacenados.
 No usar DataSets, en su lugar usar listas genéricas que hagan referencia a clases del tipo Entidades.
 Usar el espacio de acceso a datos System.Data.Common
 Usar la clase DbProviderFactories, DbConnection y DbCommand.
 Los procedimientos almacenados no deben recibir parámetros del tipo XML.
 El manejo de transacciones se realiza por medio del lenguaje .NET, los procedimientos almacenados no
deben incluir dichas sentencias.

6.2. Capa de Lógica de Negocio:

 Las clases de esta capa deben heredar de sus correspondientes Interfaces.

Estándar De ProgramaciónPágina 6 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

6.3. Capa de Presentación

 MVC de preferencia SPA y con razor como motor de programación en la vista; o webform pero evitando el
mayor uso posible de Postback y usando viewstate en lugar se sesiones.
 Se debe usar HTML5, bootstrap, jquery, css.
 No se usan alert() de javascript para mostrar mensajes.
 Todo aspecto de diseño (color, tipo y tamaño de letra, etc) se debe realizar en los archivos css de la solución.
 Se debe incluir el siguiente tag en las MasterPage como consideración de los navegadores IE 10 en adelante:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

 Los nombres de las clases entidades del negocio deben ser en singular y terminar con el prefijo BE.
 Las clases de entidades pueden ir en un solo archivo llamado Entities.
 Los nombres de las clases lógica del negocio deben ser en singular y terminar con el prefijo BL.
 Las clases de lógica del negocio van en archivos individuales por clase y el nombre de la clase coincide con
el archivo.
 Los nombres de las clases de acceso a datos deben ser en singular y terminar con el prefijo DL.
 Las clases de acceso a datos van en archivos individuales por clase y el nombre de la clase coincide con el
archivo.

7. Seguridad

 La configuración de correo electrónico se debe realizar en el archivo web.config.


 Toda aplicación que sea del tipo pública, deberá aplicar SSL (https).
 Toda aplicación debe tener integración con el AD.
 Toda aplicación debe generar un archivo log del tipo texto plano, considerando los sgtes. atributos: fecha y
hora, página, mensaje detallado, usuario.
 Todo envío de datos de una página a otra debe usar el método POST. Si es necesario usar el método GET,
este debe ir encriptado si contiene información del usuario.
 Todo acceso al sistema es por la página principal. El sistema debe redirigir a dicha pantalla si se intenta
acceder desde cualquier página de la solución.
 Al término de la sesión, el sistema debe redirigir a la página de inicio.

8. Integración con otros programas

 SAP:
- Se realiza por medio de RFC, toda configuración de nombres y parámetros se realiza por tablas de la base
de datos.
- Se usan las librerías sapnco.dll y sapnco_utils.dll

 SharePoint:
- Se realiza usando la librería: Microsoft.SharePoint.dll

Estándar De ProgramaciónPágina 7 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

 PDF:
- Se realiza usando la librería: itextsharp.dll

9. Conclusiones Generales

El estándar de programación que se aplica a todo desarrollo de software es importante dado que define la
forma de cómo crear las aplicaciones .NET para el negocio, a fin contar con un producto independiente del
proveedor para revisiones, mantenimientos y mejoras. Por otro lado, permite aplicar buenas prácticas y
controles de seguridad en los desarrollos.

Estándar De ProgramaciónPágina 8 de 9
FORMATO Código: GPY.04.FO.003
Versión: Clasificación:
ESTANDAR DE DESARROLLO DE SOFTWARE .NET
1 -
Macroproceso: Fecha de Vigencia:
Proceso: 15/08/2016

Elaborado por: Aprobador por: Aprobado por:


Julio Salvatierra (Centria) Luis Benites (Centria)
Analista Senior de Soluciones TI Jefe de Proyectos

Firma Firma Firma

Estándar De ProgramaciónPágina 9 de 9

Вам также может понравиться