TEMA 10: Lo que NO hay que hacer

Anuncio
Gestión de una aplicación completa con .NET
Servicio de Informática
TEMA 10: Lo que NO hay que hacer
Introducción.....................................................................................................................................1
Mezclar módulos.............................................................................................................................1
No crear una estructura de clases...................................................................................................3
Insertar la logica en los aspx...........................................................................................................3
Gestionar los eventos en Page_Load..............................................................................................3
Utilizar Response.Write...................................................................................................................4
Generar HTML................................................................................................................................4
Crear campos públicos y no utilizar propiedades en las Clases......................................................4
Utilizar subrayado en los nombres de las variables.........................................................................5
Especificar el tipo de dato en el nombre de la variable...................................................................5
Poner más de una clase en el mismo fichero..................................................................................6
Introducción
Al crear aplicaciones con otro tipo de entornos y lenguajes de programación vamos adquiriendo
esquemas y usos de programación que no son correctos dentro la plataforma orientada a objeto
de .net.
Es tan importante conocer aquello que hay que evitar como las buenas prácticas
A continuación se muestra una serie de cosas que hay que evitar a toda costa.
Mezclar módulos
La programación en .Net se caracteriza por separar las tecnologías. Por un lado el aspecto, por
otro el código, por otro los recursos dependientes de la cultura y así con todos los elementos de
nuestro sitio web.
Es una muy mala práctica que nos lleva a crear software de muy mala calidad el mezclar los
módulos que deben ir separados. Por ejemplo insertar dentro de un aspx: presentación, código
de servidor, código de cliente y estilos. Cuando habría que tener 4 ficheros diferentes: .aspx,
.cs, .js, .css.
Por ejemplo el siguiente aspx (Default.aspx) está fatal:
<%@ Page Language="C#" AutoEventWireup="true"
%>
<html>
<head runat="server">
<title>Pagina mal</title>
<script type="text/javascript">
function hola() {
alert("Hola");
}
</script>
Tema 1 / Página 1
Gestión de una aplicación completa con .NET
Servicio de Informática
<style type="text/css">
.bonito{
text-decoration:none;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<% string saludo;
saludo = "Hola";
// bla bla bla
%>
</div>
</form>
</body>
</html>
En su lugar habría que hacer:
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true"
Inherits="_Default" %>
CodeFile="Default.aspx.cs"
<html>
<head runat="server">
<title>Pagina mal</title>
<link href="misEstilos.css" rel="stylesheet" type="text/css" />
<script src="codigoCliente.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Default.aspx.cs
using System;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string saludo;
saludo = "Hola";
// bla bla bla
}
}
Tema 1 / Página 2
Gestión de una aplicación completa con .NET
Servicio de Informática
codigoCliente.js
function hola() {
}
alert("Hola");
misEstilos.css
.bonito{
text-decoration:none;
}
No crear una estructura de clases
.Net es un sistema de programación orientado a objetos por lo tanto la calidad de las aplicaciones
dependerán de un buen diseño orientado a objetos que deriva en un buen diagrama de clases.
Nunca hay que utilizar programación secuencial sin jerarquía de clases. Para eso mejor no utilizar
.net.
Insertar la logica en los aspx
Los aspx sólo se tienen que encargar de gestionar los eventos de los controles de la página.
Toda la lógica de la aplicación estará en las clases, contenidas en la carpeta App_Code
Además a la hora de generar las pruebas unitarias estas sólo se pueden realizar en las clases,
Visual Studio no permite pruebas unitarias en los aspx
Gestionar los eventos en Page_Load
Cada evento lo tiene que gestionar el gestor de eventos correspondiente. No comprobar el estado
de los eventos en el Page_Load
Por ejemplo en este Page_Load gestionamos el evento de que el usuario pulse un botón
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form["BotonPulsa"] != null)
{
HazCosicasDelBoton();
}
}
Tema 1 / Página 3
Gestión de una aplicación completa con .NET
Servicio de Informática
La forma correcta sería:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void BotonPulsa_Click(object sender, EventArgs e)
{
HazCosicasDelBoton();
}
y en el aspx asociar el evento con el botón
<asp:Button ID="BotonPulsa" runat="server" onclick="BotonPulsa_Click"
Text="Pulsa ya" />
Utilizar Response.Write
Nunca hay que utilizar Response.Write para generar contenido en la página.
Generar HTML
Hay que evitar generar etiquetas html escribiéndolas directamente en la página desde
programación.
etiquetaTitulo.Text += "<div><p><b>Que bonito!</b></p></div>";
cualquierControl.Text = "<table><tr><td>Muy maal</td></tr></table>";
Response.Write("<div> Contenido div </div>");
Crear campos públicos y no utilizar propiedades en las Clases
Los campos de la clase tienen que ser privados y su nombre tiene que estar precedido por _.
Para acceder a los valores usaremos las propiedades
Mal:
public class ClaseMal
{
public int numero;
public string nombre;
}
Tema 1 / Página 4
Gestión de una aplicación completa con .NET
Servicio de Informática
Bien:
public class ClaseMal
{
private int _numero;
private string _nombre;
public int Numero
{
get { return _numero; }
set { _numero = value; }
}
}
public string Nombre
{
get { return _nombre; }
set { _nombre = value; }
}
Utilizar subrayado en los nombres de las variables
Nunca utilizar subrayado en los nombres de variables. Seguir la guía de estilo en cuanto a
formato de nombres de variables.
Mal
string variable_mal_declarada;
Bien
string variableBienDeclarada;
Especificar el tipo de dato en el nombre de la variable
Nunca especificar el tipo de una variable en su nombre. Es innecesario en un lenguaje
fuertemente tipado como .Net
Mal
int iCodigo;
string sNombre;
Bien
int codigo;
string nombre;
Tema 1 / Página 5
Gestión de una aplicación completa con .NET
Servicio de Informática
Poner más de una clase en el mismo fichero
Cada clase tiene que almacenarse en un fichero con su mismo nombre.
No utilizar un mismo fichero para insertar más de una clase. ¡¡ que los ficheros son gratis !!
Tema 1 / Página 6
Descargar