Este proyecto se desarrollará en C# Netframework. Para la comunicación en red se utilizará Windows Communication Foundation (WCF) y para la capa de presentación se utilizará Windows Presentation Foundation (WPF).
El presente documento sirve como guía para los códigos fuentes del videojuego a realizar para la asignatura de Tecnologías para la construcción de software de la Facultad de Estadística e Informática. Tiene como propósito que la comunicación del equipo por medio del código sea efectiva. Busca unificar el código a escribir, así como dar una guía de la forma en que serán representados los distintos componentes del código.
Todo el código fuente será escrito en el idioma inglés, incluyendo el nombre de métodos, atributos, propiedades. Se usan nombres descriptivos y tienen relación con la función que desempeñan (preferencia a nombres largos y descriptivos que cortos y poco entendibles).
public bool ValidateEmail(string EmailToValidate);
public bool validateE(string e);
- Se usa lowerCammelCase
- Se usan frases nominales o palabras completas para describir explícitamente los datos que almacenarán
- Acrónimos son usados como palabras para el UpperCamelCase (ej: direccionUrl no direccionURL)
- Todas las variables son inicializadas en sus puntos de declaración
- Se hace una declaración de variable por línea
string name = "";
string username = "";
string Name;
string u;
string Name, u;
Si las propiedades tienen modificadores de acceso públicos, serán escritos en notación UpperCammelCase.
public string FirstName{ get; set; }
public string getFisrtName()
{
return this.firstName;
}
- Todos los metodos se escriben en UpperCammelCase
- Se sigue el esquema de nombrado: tipoDeDatoDeRetorno NombreDelMetodo(Parametros);
public async SendMessage(string User, string Message)
{
await Clients.All.SendAsync("ReceiveMessage", User, Message);
}
public async sendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
acción clic Es el nombre del controlador seguido de _Click
private void BtnSignUp_Click(object sender, RoutedEventArgs e)
{
}
private void clickBtnSignUp(object sender, RoutedEventArgs e)
{
}
labels Para el nombrado de los componentes de interfaz gráfica se utiliza como prefijo la(s) inicial(es) del componente en mayúscula (en caso de ser tener un nombre de dos o más palabras) y las consonantes de la palabra (si es un nombre de solo una palabra) seguido del nombre de la variable con la inicial mayúscula (estilo upper camel case)
<Label x:Name="LblUno"/>
<Label x:Name="TlUno"/>
buttons
<button x:Name="BtnUno/>
<button x:Name="botonUno"/>
<button x:Name="bUno"/>
TextBox
<TextBox x:Name="TbUno"/>
<TextBox x:Name="textBoxUno"/>
passwordBox
<PasswordBox x:Name="PbUno"/>
<PasswordBox x:Name="passwordtextBoxUno"/>
- Se usa la notación UPPER_SNAKE_CASE (todas las leras mayúsculas, cada palabra se separa de la siguiente por medio de un guión bajo)
const string PLAYER_USERNAME = "Saraiche";
const string playerUsername = "Saraiche";
- Se usa la notación UpperCammelCase
public class Security
{
}
public class security {
}
- Se usa la notación lowerCammelCase
ServiceHost host = new ServiceHost(typeof(Services.DataService))
Images images = new Images { Id = 1 };
ServiceHost Host = new ServiceHost(typeof(Services.DataService))
Images Images = new Images { Id = 1 };
Las interfaces tienen el prefijo "I"
public interface IUserManagment
{
}
public interface userManagment {
}
Los data transfer objects comienzan con el prefijo DTO en mayúsculas, seguido al objeto que corresponde en notación UpperCammelCase.
public class DTOPlayer
{
}
public class dtoPlayer
{
}
- Todo el código desarrollado tendrá identación de un tab.
public class Main{
public static void main(String[] args){
Console.Writeline(“Hola Mundo”);
}
}
public class Main{
public static void main(String[] args){
Console.WriteLine(“Hola Mundo”);
}
}
Cuando abrimos llaves en un metodo las llaves irán seguidos de un salto de linea en el metodo
public CustomerDto ToDto()
{
return new CustomerDto()
{
Address = Address,
Email = Email,
FirstName = FirstName,
LastName = LastName,
Phone = Phone,
Id = Id ?? throw new Exception("el id no puede ser null")
};
}
public CustomerDto ToDto() {
return new CustomerDto() {
Address = Address,
Email = Email,
FirstName = FirstName,
LastName = LastName,
Phone = Phone,
Id = Id ?? throw new Exception("el id no puede ser null")
};
}
Tiene que existir un espacio entre cada igual o entre variables o números y símbolos aritméticos o lógicos.
flag = true;
double counter = 0;
counter = counter + 1;
flag=true;
counter=counter+1;
Se utilizan '///' para comentarios y documentación. Si son dos o más líneas, de igual manera comienza con '///'
/// this line explains something
///these lines explains
///something more
//this not explain something
El xmnls debera de hacer referencia a la palabra p de propiertes
xmlns:p="clr-namespace:unoProyect.Properties"
xmlns:internacionalizacion="clr-namespace:unoProyect.Properties"
<Label x:Name = "lblName" Content = "{x:Static p:Resources.Name}"/>
<Label x:Name = "lblName" Content = "Nombre"/>
Los metodos deben de ser tipo publico y no internal
public static string chat {
get {
return ResourceManager.GetString("chat", resourceCulture);
}
}
internal static string chat {
get {
return ResourceManager.GetString("chat", resourceCulture);
}
}