Introducción
El presente manual describe la forma correcta de configurar
Objetivo
Guiar al usuario a utilizar la mediante una descripción detallada e ilustrada de las opciones y su funcionamiento.
Es de mucha importancia que consulte este manual antes y/o durante la operación del sistema, ya que lo guiará paso a paso en el manejo de las funciones. Con el fin de facilitar la comprensión del manual, se incluyen gráficos explicativos.
Programación
1.-Para definir variables, métodos y objetos utilizar el estilo de escritura CamelCase (String helloWorld, private string helloWorld()).
2.-Para estructurar bloques de código se recomienda utilizar la instrucción #Region “NameRegion” … #EndRegion.
3.-El código debe estar documentado con las instrucciones de doc-comments tags (Summary, Param, Returns, etc)
4.-Cuando se utilicen objetos estos deben ser liberados con la instrucción Dispose(), esto para cuidar la memoria consumida por los procesos.
5.-En la instrucción try{} catch(Exception ex) {} se recomienda utilizar finally{} para liberar los objetos utilizados dentro del bloque de TRY.
6.-Para la búsqueda de un registro dentro de un DataSet, DataTable, etc es recomendable utilizar una expresión lambda o query expression antes que una instrucción For el cual recorrerá todas las filas y columnas.
7.-Nunca se debe crear variables static porque en ambientes productivos con multisesión pude causar problemas con la integridad de los datos.
8.-Se recomienda utilizar el elemento <asp:HiddenField/> antes que una variable de sesión.
9.-Utilizar Objetos definidos porque los objetos anónimos una vez encapsulados no se pueden modificar sus propiedades.
10.-Identificar si es recomendable utilizar un Arreglo o una Lista (Array [], List<>) tomando en cuenta que para el arreglo ya se tiene definido una longitud y para las listas puede seguir creciendo.
11.-Utilizar expresiones Lambda y/o LinQ para recorrer los objetos y encontrar valores más precisos a comparación de los ciclos clásicos (While, For, Do While, ForEach).
12.-Cuando se utilice manejo de directorios, ficheros o urls se recomienda utilizar URL relativas para evitar errores productivos en las instalaciones de componentes.
13.Utilizar los métodos ya predefinidos de la Clase String: String.Concat, String.Format, String.Empty, String.Equals, String.IsNullOrEmpty, String.Startswith, String.EndsWith, etc.
14.Colocar únicamente una sola instrucción de return por método, esto ayudará a ser depurado con más facilidad.
15. Nunca omitir los modificadores de acceso. Declare explícitamente todos los métodos con su apropiado modificador de acceso en lugar de dejarlo con el de por defecto (Private, Public, Protected, Internal)
16. Evitar anidar bloques try {} catch (Exception ex) {} en otro bloque catch.
17.Cuando se realicen comparaciones de texto, convertir el valor a minúsculas o mayúsculas (ToLowerCase (), ToUpperCase().
18.Tomar precauciones cuando se utilice el manejo y validaciones con fechas por que la cultura de los equipos donde se instalará el programa corre el riesgo que se encuentren diferencias.
19. Utilizar la librería de System.IO para el manego de ficheros y documentos: Path.GetPath(), Path.HasExtension(), Path.GetDirectoryName(), Path.GetFileName, Path.Combine()
20. Nunca olvides los siguientes símbolos: { } ; ( )
Base de datos
1.-Utilizar siempre un EXISTS (SELECT …) antes que un SELECT COUNT (*) FROM … en las validaciones porque la instrucción COUNT se continúa ejecutando y EXISTS al encontrar el primer registro interrumpe la operación.
2.-No generar tablas temporales porque estas se crean en tempdb, al utilizarlas generan varios bloqueos sobre la base de datos, si se utilizan deben ser borradas (Drop table #table_tmp), se puede tratar de utilizar consultas y con última opción crear variables de tipo tablas.
Declare @NombreVariableTipoTabla Table
(
Campo1 Int
)
3.-Utilizar la instrucción IN cuando tenemos más de un valor para comparar, no es recomendable la instrucción OR.
4.-Siempre especificar los nombres de las columnas en los SELECT NOMBRE, APATERNO… para realizar búsqueda con mayor velocidad.
5.-Realizar los ordenamientos por los campos índices (Primary Key, Foreign Key) ORDER BY Llave.