sábado, 9 de junio de 2018

ACCESO A BASES DE DATOS

Creación de la Base de Datos de ejemplo en MySQL.

Creación de la Cadena de Conexión:
C Sharp al Igual que otros lenguajes de programación, debe usar un método que permita conectar nuestros formularios o datos a un servidor que contendrá nuestra base de datos.
Ejemplo de código de conexión en MySQL (enlace externo).

Otro ejemplo de como se escribe el codigo de conexion.





viernes, 8 de junio de 2018

Instrucciones de Control, Métodos, Clases y Objetos, Matrices y Cadenas de Caracteres.



Instrucciones de control.

Instrucciones de Control en Pseudocódigo.
  • La instrucción if-else es básicamente igual que en C, C++ y Java.
  • La diferencia de la instrucción switch con la versión de C, C++ y Java es que todo cuerpo perteneciente a un case debe de toparse con un break o un goto antes de toparse con otro case, a menos que dicho cuerpo esté vacío.
  • La instrucción for es básicamente igual que en C, C++ y Java.
  • La instrucción while es básicamente igual que en C, C++ y Java.
  • La instrucción do-while es básicamente igual que en C, C++ y Java.
  • La instrucción foreach realiza un ciclo a través de los elementos de una colección (grupo de objetos). El formato de esta instrucción es: foreach(tipo variable in coleccion) instruccion;. En este ciclo se recorre la colección y la variable recibe un respectivo elemento de dicha colección en cada iteración.
  • Al igual que en C y C++, la instrucción break permite forzar la salida de un ciclo omitiendo el código restante en el cuerpo del ciclo.
  • Al igual que en C y C++, la instrucción continue permite forzar la repetición temprana de un ciclo omitiendo el código restante en el cuerpo del ciclo.
  • La instrucción return es básicamente igual que en C, C++. Se utiliza para devolver un valor y salir de un método.
  • La instrucción goto se sigue utilizando en C♯ a pesar de toda la polémica que esto conlleva.

Métodos

  • Todo método debe de ser parte de una clase, no existen métodos globales.
  • De forma predeterminada, los parámetros se pasan por valor (se copia dicho valor).
  • El modificador ref fuerza a pasar los parámetros por referencia en vez de pasarlos por valor.
  • El modificador out es similar al modificador ref con una excepción: sólo se puede utilizar para pasar un valor fuera de un método. El método debe de asignar un valor al parámetro antes de que el método finalice.
  • Cuando ref y out modifican un parámetro de referencia, la propia referencia se pasa por referencia.
  • El modificador params sirve para definir un número variable de argumentos los cuales se implementan como una matriz. Ejemplo: public int maxVal(params int[] nums){...}, esta función se podría llamar así: maxVal(23,3,a,-12);.
  • Un método debe tener como máximo un único parámetro params y éste debe de ser el último.
  • Un método puede devolver cualquier tipo de datos, incluyendo tipos de clase.
  • Ya que en C# las matrices se implementan como objetos, un método también puede devolver una matriz (algo que se diferencia de C++ en que las matrices no son válidas como tipos de valores devueltos).
  • C♯ implementa sobrecarga de métodos, dos o más métodos pueden tener el mismo nombre siempre y cuando se diferencien por sus parámetros.
  • El método Main es un método especial al cual se refiere el punto de partida del programa. Tiene la siguiente sintaxis: public static int Main(string[] args){...}.

Clases y objetos

Varios puntos a tener en cuenta en C♯ con respecto a clases y objetos son los siguientes:
  • Una variable de objeto de cierta clase no almacena los valores del objeto sino su referencia (al igual que Java).
  • El operador de asignación no copia los valores de un objeto, sino su referencia a él (al igual que Java).
  • Un constructor tiene el mismo nombre que su clase y es sintácticamente similar a un método.
  • Un constructor no devuelve ningún valor.
  • Al igual que los métodos, los constructores también pueden ser sobrecargados.
  • Si no se especifica un constructor en una clase, se usa uno por defecto que consiste en asignar a todas las variables el valor de 0, null o false según corresponda.
  • Para crear un nuevo objeto se utiliza la siguiente sintaxis: variable = new nombre_clase();.
  • Un destructor se declara como un constructor, aunque va precedido por un signo de tilde ~.
  • Se emplea una desasignación de memoria de objetos no referenciados (recolección de basura), y cuando esto ocurre se ejecuta el destructor de dicha clase.
  • El destructor de una clase no se llama cuando un objeto sale del ámbito.
  • Todos los destructores se llamarán antes de que finalice un programa.
  • La palabra clave this es un apuntador al mismo objeto en el cual se usa.
  • La palabra clave static hace que un miembro pertenezca a una clase en vez de pertener a objetos de dicha clase. Se puede tener acceso a dicho miembro antes de que se cree cualquier objeto de su clase y sin referencias a un objeto.
  • Un método static no tiene una referencia this.
  • Un método static puede llamar sólo a otros métodos static.
  • Un método static sólo debe tener acceso directamente a datos static.
  • Un constructor static se usa para inicializar atributos que se aplican a una clase en lugar de aplicarse a una instancia.
  • C♯ permite la sobrecarga de operadores con la palabra clave operator

Matrices

En C♯ las matrices se implementan como objetos.
Para crear una matriz se utiliza el siguiente formato: tipo[] nombre_matriz = new tipo[tamaño];
Se puede crear una matriz inicializada así: tipo[] nombre_matriz = { val1 , val2 , val3 , ... , valN };
Los índices de las matrices comienzan en 0.
Para crear una matriz bidimensional se utiliza el siguiente formato: tipo[,] nombre_matriz = new tipo[filas,columnas]
Para referirse a un elemento de una matriz bidimensional no se usa la forma matriz[fila][columna] (la cual usa C++), si no matriz[fila,columna].
Ya que C♯ implementa matrices como objetos, cada matriz tiene asociada una propiedad Length que contiene el número de elementos que puede alojar cada matriz.

Cadenas de caracteres.

  • El tipo de dato cadena se llama string.
  • Realmente la palabra clave string es un alias de la clase System.String de la plataforma .NET.
  • En C♯ las cadenas son objetos y no una matriz de caracteres, aun así, se puede obtener un carácter arbitrario de una cadena por medio de su índice (mas no modificarlo).
  • La forma más común de construir una cadena es por medio de una literal o constante: string str = "Una cadena";
  • El operador == determina si dos referencias hacen referencia al mismo objeto, pero al usar dicho operador con dos operandos tipo string se prueba la igualdad del contenido de las cadenas y no su referencia. Sin embargo, con el resto de los operadores relacionales, como < o >= se comparan las referencias.
  • Se pueden concatenar (unir) dos cadenas mediante el operador +.
  • Las cadenas son inmutables, una vez creadas no se pueden modificar, solo se pueden copiar total o parcialmente.
  • Las cadenas se pueden usar en las instrucciones switch.

lunes, 4 de junio de 2018

Tipos de datos.

C# contiene veinte categorías generales de tipos de datos integrados: tipos de valor y tipos de referencia. El término tipo de valor indica que esos tipos contienen directamente sus valores. Tipos para definir números enteros:
Tipo de datos de enteros
TipoEquivalente BCLTamañoRangoSignificado
byteSystem.Byte8-bit (1-byte)0 a 255Entero sin signo
sbyteSystem.SByte8-bit (1-byte)-128 a 127Entero con signo
shortSystem.Int1616-bit (2-byte)-32.768 a 32.767Entero corto con signo
ushortSystem.UInt1616-bit (2-byte)0 a 65.535Entero corto sin signo
intSystem.Int3232-bit (4-byte)-2.147.483.648 a 2.147.483.647Entero medio con signo
uintSystem.UInt3232-bit (4-byte)0 a 4.294.967.295Entero medio sin signo
longSystem.Int6464-bit (8-byte)-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807Entero largo con signo
ulongSystem.UInt6464-bit (8-byte)0 a 18.446.744.073.709.551.615Entero largo sin signo
Los tipos de coma flotante pueden representar números con componentes fraccionales. Existen dos clases de tipos de coma flotante: float y double. El tipo double es el más utilizado porque muchas funciones matemáticas de la biblioteca de clases de C# usan valores double. Quizá, el tipo de coma flotante más interesante de C# es decimal, dirigido al uso de cálculos monetarios. La aritmética de coma flotante normal está sujeta a una variedad de errores de redondeo cuando se aplica a valores decimales. El tipo decimal elimina estos errores y puede representar hasta 28 lugares decimales.
Tipo de datos de coma flotante
TipoEquivalente BCLTamañoRangoSignificado
floatSystem.Single32-bit (4-byte)±1.401298E−45 a ±3.402823E+38Coma flotante corto
doubleSystem.Double64-bit (8-byte)±4.94065645841246E−324 a
±1.79769313486232E+308
Coma flotante largo
decimalSystem.Decimal128-bit (16-byte)−7.9228162514264337593543950335 a
+7.9228162514264337593543950335
Coma flotante monetario
Los caracteres en C# no tienen un tamaño de 8 bits como en muchos otros lenguajes de programación, sino que usan un tamaño de 16 bits. Este tipo de dato se llama char y utiliza la codificación Unicode. No existen conversiones automáticas de tipo entero a char.
Tipo de datos de caracteres
TipoEquivalente BCLTamañoRangoSignificado
charSystem.Char16-bit (2-byte)'\u0000' a '\uFFFF'Carácter unicode
Para los tipos de datos lógicos no existen conversiones automáticas de tipo entero a bool.
Tipo de datos lógicos
TipoEquivalente BCLTamañoRangoSignificado
boolSystem.Boolean8-bit (1-byte)true o falseVerdadero o falso

¿Porque C #?.

Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma.NET el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes (entre ellos Delphi).

La creación del nombre del lenguaje, C♯, proviene de dibujar dos signos positivos encima de los dos signos positivos de "C++", queriendo dar una imagen de salto evolutivo del mismo modo que ocurrió con el paso de C a C++.

C♯, como parte de la plataforma.NET, está normalizado por ECMAdesde diciembre de 2001 (C# Language Specification "Especificación del lenguaje C♯"). El 7 de noviembre de 2005 salió la versión 2.0 del lenguaje que incluía mejoras tales como tipos genéricos, métodos anónimos, iteradores, tipos parciales y tipos anulables. El 19 de noviembre de 2007 salió la versión 3.0 de C# destacando entre las mejoras los tipos implícitos, tipos anónimos y LINQ (Language Integrated Query -consulta integrada en el lenguaje).

Aunque C♯ forma parte de la plataforma.NET, ésta es una interfaz de programación de aplicaciones (API); mientras que C♯ es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco de DotGNU - Mono que genera programas para distintas plataformas como Win32, UNIX y Linux.


miércoles, 2 de mayo de 2018

Concepto de C#

Qué es C#:

C# es el nuevo lenguaje de propósito general orientado a objetos creado por Microsoft para su nueva plataforma .NET.
Microsoft.NET es el conjunto de nuevas tecnologías en las que Microsoft ha estado trabajando estos últimos años con el objetivo de mejorar tanto su sistema operativo como su modelo de componentes (COM) para obtener una plataforma con la que sea sencillo el desarrollo de software en forma de servicios web.
Los servicios web son un novedoso tipo de componentes software que se caracterizan a la hora de trabajar por su total independencia respecto a su ubicación física real, la plataforma sobre la que corre, el lenguaje de programación con el que hayan sido desarrollados o el modelo de componentes utilizado para ello.
El acceso a estos servicios se realiza en base a estándares de Internet, como son diferentes mecanismos del protocolo HTTP (GET y PUT) o el novedoso protocolo RPC conocido como SOAP (Simple Access Object Protocol), que no es más que una combinación de estándares como HTTP y XML para realizar llamadas a los miembros de estos servicios web. La idea detrás de SOAP consiste sencillamente en utilizar HTTP como medio de transporte para el envío de los mensajes de solicitud de ejecución de los miembros de servicios web remotos (lo que permite atravesar barreras tales como firewalls) y utilizar XML como lenguaje con el que escribir los cuerpos de estos mensajes.

Pero la plataforma .NET no son sólo los servicios web, sino que también ofrece numerosos servicios a las aplicaciones que para ella se escriban, como son un recolección de basura, independencia de la plataforma, total integración entre lenguajes (por ejemplo, es posible escribir una clase en C# que derive de otra escrita en Visual Basic.NET que a su vez derive de otra escrita en Cobol)
Como se deduce del párrafo anterior, es posible programar la plataforma .NET en prácticamente cualquier lenguaje, pero Microsoft ha decidido sacar uno nuevo porque ha visto conveniente poder disponer de un lenguaje diseñado desde 0 con vistas a ser utilizado en .NET, un lenguaje que no cuente con elementos heredados de versiones anteriores e innecesarios en esta plataforma y que por tanto sea lo más sencillo posible para programarla.


Características 


Facilidad de uso: el ambiente de trabajo es muy cómodo ya que tiene un ambiente amigable y clásico de las aplicaciones de Windows. En cuanto a la forma de programar, será fácil de usar para quien esta familiarizado con C++, ya que su estructuración básica es muy similar, sin embargo C# ahorra muchos pasos “tediosos” de otros lenguajes como la creación de funciones complejas desde cero y declaración de variables globales. 

Programación orientada a objetos: esta forma de programación ahorra mucho código, lo cual indica que partes de código son reutilizables para no volverlas a escribir, con lo cual se afirma que C# presenta las características necesarias para considerarlo como un lenguaje orientado a objetos, tales son: encapsulación, herencia y polimorfismo; además una de las mejoras que presenta este lenguaje con respecto a este tipo de programación es que para evitar confusiones no existen variables o funciones globales, sino que se definen dentro de los tipos de datos. En cuanto a la herencia, esta solo puede ser herencia simple, con lo cual se evitan confusiones que si fuera herencia múltiple. 


Administración de memoria: C# tiene la característica de inicializar los datos o variables declaradas en el programa, además de que también de forma automática libera la memoria cuando el mismo programa lo cree conveniente. Es decir tiene constructores y destructores, y estos actúan automáticamente a menos que se manipulen desde el código. 


Seguridad en el manejo de datos: C# tiene la característica de estar comprobando que efectivamente los tipos de datos que se estén manejando correspondan a los validados para las funciones que han sido creadas; así también vigila que no se produzcan errores en operaciones matemáticas, además de que también impide el uso de variables que no han sido inicializadas. Todo esto permite que no se produzcan errores en el momento de la ejecución. 


Sistema de tipos unificado: todos los tipos de datos que se definan siempre se derivarán, incluso de forma implícita, de una clase base común llamada System.Object, por lo que dispondrán de todos los miembros definidos en ésta clase. 


La ventaja de que todos los tipos se deriven de una clase común es que facilita el diseño de colecciones genéricas que puedan almacenar objetos de cualquier tipo. 


Uso de operadores: este lenguaje permite de forma automática la manera en que pueden trabajar los operadores, ya sea de tipo lógico, aritmético, etc. Es decir dependiendo del contexto de donde se encuentre el operador, el programa detecta que tipo de uso debe tener el operador. 


Compatible: C# no sólo mantiene una sintaxis muy similar a C, C++ o Java que permite incluir directamente en código escrito en C# fragmentos de código escrito en estos lenguajes, sino que el runtime de lenguaje común también ofrece la posibilidad de acceder a código nativo escrito como funciones sueltas no orientadas a objetos tales como las DLLs de la API Win32.


Resultado de imagen para lenguaje de programacion c# caracteristicas