Struct vs Class, cuando usar una clase o una estructura

Destacado


El problema se presenta cuando tienes que decidir sin usas una clase o una estructura, para ello se listan una serie de puntos referentes a las diferencias entre estas dos.

Las estructuras son:

  1. Tipos de valor.
  2. PRO. Pueden contener datos y funciones.
  3. PRO. Almacenan sus datos directamente en la estructura.
  4. PRO. No requieren una localidad en memoria.
  5. PRO. Son útiles para estructuras de datos pequeñas.
  6. CON. Afectan el desempeño.
  7. El constructor de la estructura simplemente devuelve el valor de la estructura.
  8. CON. Las variables, cada una tiene su copia del dato y no es posible realizar operaciones que afecten a otra.
  9. CON. No soporta herencia definida por el usuario, tienen herencia implícita desde el tipo Object.

Las clases:

  1. Contienen tipos y métodos.
  2. Son tipo de referencia.
  3. Requieren la asignación en forma dinámica de una dirección en memoria.
  4. No se ven afectadas por el tamaño de datos a manejar.
  5. Múltiples variables tienen referencia al mismo objeto.
  6. Es posible realizar operaciones d variables que afecten a otro objeto.
  7. Soportan herencia definida por el usuario.

Código de Ejemplo:
Program.cs

using System;
namespace ConsoleAppStructvsClass

{
 class Program
 {
public struct pointStruct
 {
 public int x;
 public int y;

public pointStruct(int _x, int _y)
 {
 this.x = _x;
 this.y = _y;
 }
 }

static void Main(string[] args)
 {
 // Crear una instancia de la estructura pointStruct
 pointStruct ptStruct = new pointStruct();
 ptStruct.x = 10;
 ptStruct.y = 10;
 Console.WriteLine("Los valores Iniciales de la Estructura son : " + ptStruct.x + " , " + ptStruct.y);
 modificarPuntoEstructura(ptStruct);
 Console.WriteLine("Valores del punto Estructura después del cambio : " + ptStruct.x + " , " + ptStruct.y);
 Console.WriteLine();

//Crear una instacia de la clase pointClass
 pointClass ptClass = new pointClass(10, 10);
 Console.WriteLine("Los valores Iniciales de la Clase son : " + ptClass.x + " , " + ptClass.y);
 modificarPuntoClase(ptClass);
 Console.WriteLine("Valores de la clase después del cambio : " + ptClass.x + " , " + ptClass.y);
 Console.WriteLine();
}

private static void modificarPuntoClase(pointClass newptClass)
 {
 newptClass.x = 20;
 newptClass.y = 20;
 Console.WriteLine("Aquí esta dentro del método modificarPuntoClase ");
 Console.WriteLine("Los valores modificados de la newptStruct : " + newptClass.x + " , " + newptClass.y);
 }
static void modificarPuntoEstructura(pointStruct newptStruct)
 {
 newptStruct.x = 20;
 newptStruct.y = 20;
 Console.WriteLine("Aquí esta dentro del método modificarPuntoEstructura ");
 Console.WriteLine("Los valores modificados de la newptStruct : " + newptStruct.x + " , " + newptStruct.y);
 }
 }
}

pointClass.cs

namespace ConsoleAppStructvsClass
{
 class pointClass
  {
    public int x;
    public int y;

    public pointClass(int _x, int _y) {
      this.x = _x;
      this.y = _y;
     }
  }
}

Descarga Código.

Conclusión.

Las estructuras son tipos por valor y las clases son tipos de referencia, lo que quiere decir que en el momento que trabajamos con una estructura cuando asignamos un valor  a una propiedad de la estructura la modificamos en su valor actual, cuando se trata de una clase como esta se aloja en una referencia en memoria, al modificar una propiedad de la clase se esta modificando en la referencia de la clase y todos los lugares donde esta es invocada.

Testing on social


Hay disponible una versión actualizada de este tutorial aquí con la versión más reciente de Visual Studio. Usa el nuevo tutorial MVC de ASP.NET Core, lo que proporciona muchos mejoras a lo largo de este tutorial.

En este tutorial se muestra ASP.NET Core MVC con controladores y vistas. Las páginas de Razor son una nueva alternativa en ASP.NET Core 2.0, un modelo de programación basado en páginas que facilita la compilación de interfaces de usuario web y hace que sean más productivas. Se recomienda probar el tutorial de las páginas de Razor antes que la versión MVC. El tutorial de las páginas de Razor:

  • Es más fácil de seguir.
  • Abarca más características.
  • Es el método preferido para el desarrollo de nuevas aplicaciones.

Este tutorial le enseñará los aspectos básicos de la creación de una aplicación web de ASP.NET MVC 5 con 2017 de Visual Studio.Origen final para el tutorial se encuentra en GitHub

Este tutorial se escribió por Scott Guthrie (twitter @scottgu ), Scott Hanselman (twitter: @shanselman ) , y Rick Anderson (@RickAndMSFT )

Necesita una cuenta de Azure para implementar esta aplicación en Azure:

  • También puede abrir una cuenta de Azure de forma gratuita -obtendrá créditos puede usar para probar los servicios de Azure de pagados e incluso después de que se utilizan hasta puede mantener la cuenta y libre de usar los servicios de Azure.
  • También puede activar las ventajas de suscriptor MSDN -su suscripción a MSDN ofrece créditos cada mes que puede usar para los servicios de Azure de pagados.

Inversa


Este si es un buen ejemplo de f-1(x).

la.inversa.jpg

Controlador en MVC


El controlador se encarga de resolver estos tres principales puntos:
1.- lógica del negocio
2.- responder a eventos generados por el usuario
3.- gestionar peticiones al modelo

Vista en MVC


La vista es la representación gráfica de la aplicación.
Es donde el usuario tiene interacción con la aplicación. Por lo tanto es donde se define el código en html en el caso de una aplicación web.

Modelo dentro del MVC


El modelo dentro de MVC representa la información con la se habrá de trabajar para el desarrollo de un sistema. El modelo es la entidad del negocio que se representa, también es donde se definen las restricciones que apliquen a esta parte del negocio.
Dicho de otra forma, en el modelo se definen las propiedades y restricciones que apliquen.

MVC, Model View Controller


Modelo, Vista, Controlador, es un marco de Trabajo para el desarrollo de aplicaciones de forma mas robusta, con los beneficios de poder tener una aplicación mejor diseñada, posibilidad de extensibilidad más segura, con una mayor facilidad de mantenimiento, basándose en la separación por responsabilidad de los requerimientos.

Cuenta de forma principal con:

Modelo o Model: es la capa donde se definen las entidades del negocio.

Vista o View: se encarga de presentar al usuario final la aplicación.

Controlador o Controller: se encarga de manejar las solicitudes del usuario, realizar las operaciones necesarias para la solicitud y la definición de las reglas de negocio de la aplicación.

Referencias:

Wikipedia.

ASP.NET MVC.

Desarrollo Web MVC.

MSDN MVC.

Spring Java MVC.

Cake PHP MVC.

My Father…


@The_Gospels:
I’m a failure. He’s my forgiver
I’m a sinner. He’s my savior.
I’m broken. He’s my healer.
I’m His child. He’s my God or better yet, it’s my father.

Always there’s a difference a talking r


Always there’s a difference a talking raccoon… si no donde esta la diversidad ja ja ja ja http://ow.ly/i/4JQIN

se volaron la barda con esta publicación


se volaron la barda con esta publicación ja ja ja ja http://aristeguinoticias.com/2602/mexico/broma-de-mal-gusto-presunta-marcha-para-liberar-al-chapo-alcalde/