Guias De Programacion
C_ALDAMA26 de Agosto de 2013
1.901 Palabras (8 Páginas)395 Visitas
Guías de Programación
Versión <1.0>
Historial de Revisión
Fecha Versión Descripción Autor
<18/Mar/04> <1.0> Guías de Programación
Tabla de Contenido
1. Introducción 3
1.1 Propósito 3
1.2 Alcance 3
1.3 Definiciones, acrónimos y abreviaciones 3
1.4 Referencias 3
1.5 Descripción 3
2. Organización y estilo del código 3
3. Comentarios 6
4. Nombramiento 7
5. Declaración 10
6. Expresiones y declaraciones 11
Expresiones 11
7. Manejo de memoria 12
8. Manejo de errores y excepciones 12
9. Reportar excepciones tan pronto como sea posible. 13
10. Portabilidad 13
11. Reutilización 13
12. Errores de Compilación 13
13. Resumen de guías 13
Guías de Programación
1. Introducción
Este documento describe una colección de guías, estándares y convenciones para escribir código en ASP.Net utilizando CSharp de una manera sólida.
1.1 Propósito
Definir las guías de programación a utilizar en el proyecto Némesis.
1.2 Alcance
Proyecto asociado: Némesis.
1.3 Definiciones, acrónimos y abreviaciones
1.4 Referencias
1.5 Descripción
2. Organización y estilo del código
Estilo del código
Número de caracteres máximo por línea: 100.
Indentar las sentencias que se encuentran dentro de otras (utilizando el tabulador) y las llaves ({ }) se alinean verticalmente.
Ejemplo.
private void cmdGuardarArchivo_Click(object sender, System.EventArgs e)
{
string strNombreArchivo="C:\\Archivos Temporales\\" + txtNombreArchivo.Text.Trim() + ".txt";
StreamWriter swArchivo = new StreamWriter(strNombreArchivo,false,System.Text.Encoding.Default);
swArchivo.Write(txtContenidoEscribir.Text.Trim());
swArchivo.Close();
if (valida)
{
if (valida2)
{
switch (strTemp)
{
case “P”:
Deshabilitar();
break;
case “Q”:
Deshabilitar();
break;
default:
break;
}
return 0;
}
}
}
Cuando se va ha utilizar más de una línea para la declaración ó asignación de alguna variable, objeto, componente, etc.. A partir de la segunda línea se indenta donde comenzó la declaración ó asignación en la primer línea. Los comentarios llevan la misma indentación que la línea que le sucede.
Ejemplo:
string strCn="";
strCn = " data source = " + strServidor + "; initial catalog = " +
strBaseDeDatos + "; uid = " + strUsuario + "; pwd = " +
strContrasena;
//Creando una conexión
SqlConnection sqlcn1 = new SqlConnection (“data source = PC-AFLORES\\NETSDK” +
“; initial catalog = dbDesarrollo” +
“, user id = sa; password = temp “);
Estructuración del código:
Declaración de los métodos y la implementación de los mismos, en clases diferentes.
Ejemplo:
Definición de los métodos en la clase CDefinicion
using System;
using System.Data.SqlClient;
namespace Alumnos
{
/// <summary>
///
/// </summary>
public class CDefinicion
{
public interface ICDefinicion
{
bool RegistroRepetido(string strQuery);
int TotalRegistros(string strQuery);
SqlConnection CrearConexion();
}
}
}
Implementación del método CrearConexion en la clase conexión
using System;
using System.Data.SqlClient;
namespace Alumnos
{
/// <summary>
///
/// </summary>
public class CConexion : Alumnos.CDefinicion
{
private SqlConnection sqlcnTemp;
private string strServidor;
private string strBaseDeDatos;
private string strUsuario;
private string strContrasena;
public CConexion()
{
//
// TODO: Add constructor logic here
//
}
public SqlConnection CrearConexion()
{
string strCn="data source=" + strServidor + ";initial catalog= " +
strBaseDeDatos + "; uid=" + strUsuario + ";pwd=" + strContrasena;
sqlcnTemp=new SqlConnection(strCn);
return sqlcnTemp;
}
public string Servidor
{
set
{
strServidor=value;
}
get
{
return strServidor;
}
}
public string BaseDeDatos
{
set
{
strBaseDeDatos=value;
}
get
{
return strBaseDeDatos;
}
}
public string Usuario
{
set
{
strUsuario=value;
}
get
{
return strUsuario;
}
}
public string Contrasena
{
set
{
strContrasena=value;
}
get
{
return strContrasena;
}
}
}
}
Implementación del método TotalRegistros en la clase CImplementacion
using System;
using System.Data.SqlClient;
namespace Alumnos
{
/// <summary>
///
/// </summary>
public class CImplementacion : Alumnos.CDefinicion
{
public int TotalRegistros(string strQuery)
{
int intTotalRegistros=0;
CConexion objCConexion = new CConexion();
objCConexion.Servidor="PC-AFLORES\\NETSDK";
objCConexion.BaseDeDatos="dbDesarrollo";
objCConexion.Usuario="sa";
objCConexion.Contrasena="temp";
SqlConnection sqlcnAlumnos=objCConexion.CrearConexion();
SqlCommand sqlcomAlumnos = new SqlCommand(strQuery,sqlcnAlumnos);
sqlcomAlumnos.Connection.Open();
intTotalRegistros=Convert.ToInt32(sqlcomAlumnos.ExecuteScalar());
sqlcomAlumnos.Connection.Close();
return intTotalRegistros;
}
}
}
3. Comentarios
Comentar una línea utilizar //
Ejemplo: // Comentando una línea
Comentar más de una línea /* */
Ejemplo: /* Comentando una línea,
Dos líneas ó mejor aún
Un párrafo. */
Nota: Todas las líneas comentadas tienen la misma indentación y aparecen cómo un párrafo dejando un espacio entre los indicadores de comentario (/* */), tomando en cuenta el tamaño de la línea más larga.
Para comentar una ó más líneas en HTML utilizar <!-- -->
Ejemplo: <!-- Utilizando un comentario en HTML -->
Utilizar doble línea de espacio entre cada método, evento ó función.
Ejemplo.
private void Metodo1()
{
//Sentencias
}
bool void funcion1(string nombre)
{
//Sentencias
return false;
}
Utilizar una línea de comentario en blanco para separar dos párrafos de comentarios.
Ejemplo.
//Primer bloque de comentarios
//
//Segundo bloque de comentarios
Evitar redundancia.
Documentar el propósito de cada clase, método, función, componente y librería, al menos de que el nombre de alguno de ellos mencione el propósito. Las condiciones para cuando se presenta una excepción, condiciones, precondiciones y restricciones para los elementos mencionados anteriormente.
4. Nombramiento
Para los objetos booleanos, funciones y parámetros utilizar la sentencia en su forma positiva.
Ejemplo: public bool ExisteRegistro (string Criterio)
Clases
Utilizar sustantivos ú oraciones nominales para los nombres de la clase.
Ejemplo:
public class CCuentaBanco
{
//Sentencias
}
public class CuentaAhorros : CCuentaBanco
{
//Sentencias
}
public class CuentaCheques : CCuentaBanco
{
//Sentencias
}
Funciones
Utilizar frases ó verbos de acción para las funciones que no regresan valor ó funciones que regresan valor por apuntador ó por referencia.
Ejemplo:
public void RealizarConexion(string Conexion)
{
//Sentencias
}
public void UtilizarConexion( ref SqlConnection NuevaConexion, string Conexion)
{
//Sentencias
}
Utilizar sustantivos para funciones que regresan algún valor.
Ejemplo:
public string NombreCompleto ()
{
//Sentencias
}
Excepciones
Utilizar significados negativos en los nombres de las excepciones.
Ejemplo: Sobreflujo, ValorInicialIncorrecto, FallaEnLaConexion
Varios
Utilizar la letra ‘E’ cuando se utilizan literales de punto flotante y cuando se utilizan
...