miércoles, 30 de julio de 2014

Hablemos de programación C#

C# es un lenguaje de programación que se ha diseñado para compilar diversas aplicaciones que se ejecutan en .NET Framework. C# es simple, eficaz, con seguridad de tipos y orientado a objetos. Las numerosas innovaciones de C# permiten desarrollar aplicaciones rápidamente y mantener la expresividad y elegancia de los lenguajes de estilo de C.

Visual C# es una implementación del lenguaje de C# de Microsoft. Visual Studio ofrece compatibilidad con Visual C# con un completo editor de código, un compilador, plantillas de proyecto, diseñadores, asistentes para código, un depurador eficaz y de fácil uso y otras herramientas. La biblioteca de clases de .NET Framework ofrece acceso a numerosos servicios de sistema operativo y a otras clases útiles y adecuadamente diseñadas que aceleran el ciclo de desarrollo de manera significativa.


En este curso cada nivel posee una cantidad x de ejercicios. Cada Post del ejercicio esta dividido en teoría ejemplo y ejercicio. El  objetivo es conseguir desarrollar el ejercicio que se encuentra al final si posees alguna duda puedes ponerla en el post para que lo antes posible sea respondida,
puedes también enviarme  tu ejercicio ya resuelto al correo de la pagina


Nivel 1 Apliacaciones ( modo Consola)


Objetivo de este nivel (Conocer las bases de la programación  y  la introducción al lenguaje C# )

  1. Introduccion al visual studio (2012/2010/2008)
  2. Introduccion a la programacion
  3. Programacion Orientada a Objeto
  4. Creacion de objetos
  5. Primeros pasos con la C# (Modo Consola)
  6. Manejo de datos basicos
  7. Estructuras de control p1 (Iterativas for,for each ,while , do while)
  8. estructuras de control pt 2 ( Selectivas if ( else ,ifelse) , swich (case, default)) 
  9. Manejo de una arreglo Pt 1 (Introducir , Mostrar y modificar datos)
  10. Metodos dentro del program (Modo Consola)
  11. Creación de una clase
  12. Propiedades publicas
  13. uso de Try-Catch 

Nivel 2 Aplicaciones (Windows Forms)


Objetivo de este nivel (Profundizar de manera practica en los conocimiento adquiridos por la POO y plantearlos en C# ; Manejo de objetos y controles del formulario así como diversos elementos de los proyectos)

  1. Manejo de formularios (Aplicacion windows form)
  2. Eventos de los controles
  3. Manejo de clases pt1 (Metodos dentro de un form)
  4. Propiedades de los controles
  5. Data Grid View y Combo Box
  6. Manejo de clases pt2 (Metodos dentro de una clase)
  7. ejercicio 8 SaveFileDialog  & OpenFileDialog
  8. Creacion y Manejo de dll
  9. Control MenuStrip


Nivel 3 Aplicación Y manejo de datos ( SQL y MS. access )


  1. Clase Stream Reader 
  2. Clase StreamWriter 
  3. Manejo de XML (basico)
  4. manejo de archivos
  5. Conexion a base de datos access
  6. Recuperar datos de tabla (select )
  7. Insertar datos en tabla (insert table)
  8. Borrado de dato de la tabla
  9. Actualizar datos( update table) 

Nivel 4  Aplicacion C# y conexiones


FTP
Conectar 
  1. Ver Archivos 
  2. Descargar Archivo 
  3. Subir Archivo 
MAIL
  1. Validacion de credenciales
  2. Envio de correo electronico
  3. Revisión de bandeja de entrada
Uso de un Web Service
  1. Uso general de un Web Service

Nivel 5  Aplicacion C#  Avanzado

  1. Manejo de hilos 
  2. Dibujado de formas 
  3. uso de puertos 
  4. uso de webs_driver
  5. Uso de comando a la consola DOS

Nivel 6  Aplicacion C#  En  introduccion ASP.NET

En construccion;

Vease tambien 

Creacion de ftp en windows y linux, 
Creacion de un web service
{SQL BASICO}






>>>>>Descargar Todo el contenido<<<<<


lunes, 28 de julio de 2014

Programacion C# uso de Try-Catch

Muchas veces al intentar probar un codigo nos da error pero es el sistema operativo quien nos arroja el error de nuestro programa o en otras ocaciones el mismo solamente se queda conjelado y nor responde.

Estos casos son llamado Errores en el programa por que no se manejo una excepcion. Un adecuado manejo de Excepciones son necesarias para que la vida de un programa no sea ni corta ni llena de  parches o bufos por parte del usuario aunque muchas veces son estos, los usuarios lo que crean estos errores o excepciones dentro de nuestro programa. Para empezar explicare que es una Excepcion

Segun la MSND en .net significa lo siguiente y cito textual:

Representa los errores que se producen durante la ejecución de una aplicación.

No es mas que una clase que contiene todo los tipos de errores que el programa puede arrojar ( ojo solo los de la plataforma .net y microsoft , de otras librerías no ) tambien posee propiedades publicas que nos devuleven valores importante como
  1. ruta del error
  2.  la fuente del error
  3. Mensaje de la Excepcion


La forma de construir una Excepción dentro de C# es la sig:



El objeto a es una excepción que ahora tiene como mensaje ="Mensaje"
Este mensaje es el que se le muestra usualmente al usuario si la excepción viene creada directamente del Try-catch entoces esta sera predefinida por la clase 

Try-Catch

La intruccion try  seguida de un catch nos permite poner a prueba una intruccion de lenguaje y en caso de error el CATCH manejara la excepcion y podremos hacer un caso de contingencia es parecido en metodologia al if pero en este caso estamos  directamente sobre el tiempo de ejecución de una instruccion en el procesador o S.O  y en caso de error (else)  mostrar diferentes informacion y manejar la excepcion

Construcción básica

   

Entoces lo que esta dentro de las llaves del try sera puesto a prueba en caso de error pasara al bloque del catch que es donde se maneja la excepcio. Al declarar el catch podemos colocar x tipo de excepcion asi como tambien podemos declarar x cantidad de catch pues teóricamente en un buen manejo de las excepciones cada tipo de ellas debe ser manejadas de forma individual.Que quiero decir con todo esto, que  podemos tener un try por ejemplo y 3 o 5 catch pero ojo con excepciones diferentes por ejempo asi



Al declarar el catch y su excepción entre parentesis lo siguiente que escribamos despues del tipo de excepcion sera como se llamara la excepcion dentro del bloque catch y solamente dentro de el.


Que es Throw : En este ejemplo vemos la instruccion throw que nos permite "lanzar" la excepcion al nivel que superior o de donde el método o clase fue llamado. funciona de la sigueinte manera

Supongamos que tenemos un metodo "a"  que llama a otro "b". ambos tienen un try/catch  pero el ultimo tiene throw y la excepcion. Cuado a llama a b y en b ocurre una excepcion en vez de b manejar directamente la excepcion, tenemos un throw y envía el error al método a. Entonces en a si tenemos el manejo del error donde mostramos al usuario. pero para esto el llamado del metodo b debe estar contenido dentro del bloque del TRY. Se puede generar una excepción y darle un throw seguido, y en el metodo que llama "a" detectara una excepción 


Propiedades de las Excepción ( en general)


las excepciones como dije antes poseen propiedades publica muy utiles. estas las poseen casi todas, veamos como se usan y que informacion nos da

Excepcion.Message (Mensaje del error)

Devuelve un mensaje que describe la excepción actual. sea de la clase original o la que le dio el programador



Excepcion.Source (Fuente del error):

Nos devuelve o asigna el programa de la solución o el objeto dentro del programa que dio el error 


Excepcion.StackTrace (Ruta del error)

Obtiene una representación de cadena de los marcos inmediatos en la pila de llamadas. En resumen una ruta o traza de todo los metodos que fueron llamado antes de producirse el error para formar una cadena de busqueda




Ejercicio:

dentro del metodo principal (main) cree un bloque try-catch que llamame por un swich a otros metodo (como en la calculadora)

Cada metodo debe contener el instanciamiento de una excepcion vista aqui y el throw de la misma

dentro del bloque de catch en el principal debe mostrarse por consola lo siguiente elementos de la excepcion 
  1. ruta del error
  2.  la fuente del error
  3. Mensaje del error




miércoles, 16 de julio de 2014

Programacion C# Metodos dentro del program (Modo Consola)

Hola hoy manejaremos el tema de métodos dentro de c#

empezaremos abriendo un proyecto en modo consola c#

Ahora veamos el ejemplo que hoy vamos a manejar


Explicacion:

Este programa tiene el objetivo de tener en este caso dos metodos tipados Enteros los cuales  ejecutan una funcion arismetica y retorna un valor. pero para poder entender mas a profundidad lo que significa un metodo pasemo a explicarlos



segun la MSDN un metodo " Un método es un bloque de código que contiene una serie de instrucciones. Los programas hacen que las instrucciones se ejecuten mediante una llamada al método y la especificación de los argumentos de método necesarios. " Este bloque de codigo tiene dos tipos basicamente

 ser un metodo tipado como el que hoy veremos tendra un tipo de dato asignado en su segundo miembro y debera retornar a juro un valor del mismo tipo que es el metodo


De ser un metodo generico o llamados SubFunciones no tiene ni tipo ni debe por que retornar valores.

Los metodos tipados tiene 4 miembros en su construcción

modificador de acceso, tipo de dato, nombre del metodo y dentro de parentesis (valores de sobre carga o parametros)


modificador de acceso: nos permiten modificar el nivel de ocultación del método, clase o objeto en este caso para un método, aunque funciona básicamente igual con los otros ejemplos. Su funcion es hacer visible o no visible algo en una clase y asi cuando estamos programando saber que objetos o metodos son pertenecientes a esa clase  que debe o no usarse en otras clases

visto desde otro punto de vista imagine que su informacion personal como nombre apellido y numero de dni son publicos pues cuando te lo pide una persona se los das eso seria valores publico. pero en cambio el telefono la direccion y cuanto ganas mesual es algo personal asi que no lo das como informacion pues son valores que te pertenecen aunque el nombre tambien lo que varian entoces es el nivel de acceso a el.


okey veamos los tipos de modificadores basicos:



private: significa que solo sera visto y usados  en la clase nada mas pero no en instancias de la clase

Public :Significa que podra ser usado tanto dentro de la clase que pertenese como fuera de ella por una instancia de la misma

Static: son metodos similar a los publico diferencia mas notables es que se ejecutan inmediatamente al instanciar una clase sirve para cargar datos a propiedades de la clase por ejemplo.


Sabiendo esto el miembro modificador de acceso es el primero que se declara en la construcción de un método 



Miembro tipo de dato

Este miembro no tiene gran problema este miembro define el tipo de dato que retorna el método Vease. Programacion c# 1 ejercicio 1 creacion de variables Es el segundo miembro que se declara en la construccion


cuando el metodo es declarado con un tipio de dato este debe devolver a quien lo llamo el mismo tipo de dato que es. para eso usamos la palabra "Return" que hace a su vez de fin de metodo y devuelve un objeto


Nombre del Metodo

el tercer miembro es el nombre del metodo, este miembro es libre al programado pero no puede llevar espacios para eso se recomiendo usar _ por ejmplo. con este nombre se llamara desde cualquier punto en la clase o objeto que lo instancie



pero antes de seguir debemos decir como llamar al metodo para esto tenemos que introducir el concepto de instanciar. Si analisamos el codigo nuestro programa funciona como una clase pero el metodo static main arranca primero pues es el metodo principal. ahora para que desde ese metodo static puedas usar y ver los otros metodos de la misma clase u otras clases, debemos instanciar nuestra propia clase y entoces llamar los metodos. Al instanciar la clase se le asigna a un objeto todo los metodos,objetos y propiedades de la misma Veamos un ejemplo:



Como ven nuestra clase se llama program  y se le asigna todos los metodos y propiedades .
este proceso se llama instanciar una clase . 

ahora para llamarla solamente tenmos que llamar la clase instanciada ( funciones) y luego llamar el metodo que queremos usar.


Cuarto miembro Parametros o sobre cargas de los metodos


Bien el cuarto metodo estan entre parentesis esto pueden estar vacíos y significa que el método no necesita ningún objeto para ser llamado ahora si contiene objetos o variables entoces significa que el  metodo al ser llamado se le deben pasar sobrecargas o parametros para iniciar de no indicarselos el metodo da error en tiempo de compilacion.




Existen tres tipos de sobrecargas:

  • Objeto : Son cualquier tipo de datos o incluso una clase tipiada por el programador esta sobrecara es la mas comun de todas
  • ByRef: Esta sobre carga es igual que la anterior osea  objetos pero a diferencia cuando se pasa esta sobrecarga la variable que pasa  es afectada tanto en el metodo como en el metodo donde fue invocado.Es decir mientras que en el caso anterior si al metodo se le pasa una sobrecarga esta permanece con la ultimo dato asignado, mientras que con ByRef  el dato es modificado en el metodo y regresa modificado al metodo donde pertenece
  • Optional: Este tipo de sobrecarga esta declarado pero no es necesario que pase al metodo como sobre carga pues en el metodo esta definido con un valor  por defecto

todas estas sobrecargas van dentro de parentesis.

Contruscion de un metodo

Como dije entoces la contruccion de un metodo tipado tiene 4 miembros (modificador de acceso,Tipo de dato, nombre y sobrecargas)

  • ejemplo 


private String Mi_nombre ()
{
return "nova";
}

Este metodo es privado de tipo string  llama "Mi_nombre" y no recibe sobrecargas 

  • ejemplo 2


public int mi_edad(int Nacimiento)
{
int edad =2014;
edad=a-nacimiento;
return edad;
}

este ejemplo significa que el metodo es publico tiene libre acceso , es de tipo de dato entero , su nombre es mi_edad y recibe un parametro  tipo int que sin el cual no arranca.



Ejercicio: 
tome el ejemplo de que esta en la primera imagen hágalo  y cree los otros métodos faltaste como dividir y multiplicar.





lunes, 14 de julio de 2014

Programacion C# Manejo de clases pt2 (Metodos dentro de una clase)

 Hola


hoy precentaremos como trabajar los metodos tipados y  metodos ( no tipados ) dentro de una clase, para esta clase sera menester entender la clase anterior Clase anterior (manejo de funciones y sub funciones )


les precento como seria una clase con  sub metodo y metodos





Con esta clase destacamos dos elementos relevantes  un metodos que llama a un sub metodo y el uso una variable de tipo  privado para la clase


explicare primero esta variable



este objeto al igual que otros objetos puede ser visto en toda la clase (dentro de metodos tipados , metodos y eventos ) pero por ser private solo dentro de ella pero no fuera de ella. es decir no puede ser visto en instacias, por otra parte, el nombre de la clase en este caso es "Class1" para llamar a esta clase en el momento de instanciarla debe ser usado este nombre {[("Clase1")]}.

seria algo asi  class1 [nombre de la instancia] = new Class1();


veamos una de las funciones



      Este metodo  tapado tipo  string  es decir retorna un valor  tipo string Unicamente sea un objeto string o un elemento entre comillas  como un "hola ", Recibe ademas dos parametros un string mi_nombre y otro dividir que es un int. los metodos tipados ( string, int, decimal etc...)que retornan valores son llamado muchas veces Funciones 
y los metodos que no retornan valor ( void ) son llamados sub funciones o void

tenemos una estructura de control for para poder agregar un sibolo "|" entre cada letra de nombre 


al final de este tenemos un bloque  if  que determina si el resultado de dividir el entero es par o no de ser verdadero entonces el flujo del programa cambia y modificara la respuesta usando el método mod_mi_nombre





    este metodo recibe una sobrecarga llamada mi nombre esta lo que hace es modificar el objeto privado creada en la clase asignándole el valor de mayúsculas a todas las letras de la variable {ToUpper()}


aqui un ejemplo de lo que seria instanciar esta clase y usar uno de sus metodo publico




Tipos de sobre cargas 

Existen 3 tipos de sobre cargas que pueden tener un metodo, el metodo puede tener tantas sobrecargas como el programador quiera y a su vez de diferentes tipos y tipos de datos 


Sobrecarga de referencias : esta sobrecarga es un objeto que le pasamos al metodo al llamarlos. cuando el metodo se ejecuta el mismo hace uso de este objeto pero al finalizar el metodo no es destruido el objeto si no que simplemete fue usado y no destruido por lo tanto el objeto se conserva

sobrecarga de simple: esta sobre carga es la mas comun el objeto  es usado y destruido al finalizar el metodo

sobrecarga opcional : Esta sobrecarga es una mezcla  entre las sobrecargas de referencia y la sobrecarga simple, esta sobrecarga puede ser  o no especificada al llamar el metodo pues la misma tiene un valor predeterminado en su momento de creación, por lo tanto se dice que el metodo puede usarla o no sin embargo al finalizar el método el objeto opcional es destruido

Ejercicio:

  1. Cree una clase con su apellido
  2. cree un metodo tipo string que modifique su nombre asignándole al final su segundo nombre (concatenar)
  3. cree un metodo tipo int que retorne su edad y otro que retorne su cedula
  4. por ultimo cree un metodo tipado que retorne el valor de un objeto privado de la clase modificado por un  metodo ( o void )  privado  previamente 










lunes, 7 de julio de 2014

Programacion C# Manejo de clases pt1 (Metodos dentro de un form)

introduccion

Hola en este posts explicaremos el manejo de funciones y Metodos y metodos tipados las cuales nos solucionan problemas y nos ayudan hacer nuestro código mucho mas modular. antes de todo vamos hablar de los niveles de acceso de los elementos, en general hay 3

private = solo pueden ser accedids desde su clase y es heredable
public = puede ser accedidos desde cualquier clases que la instancie
static = se inician imediatamente al instaciar la clase y son heredables


Metodos  {sub funciones o  void}



son Bloques de código que contiene una serie de instrucciones  que se ejecutan al  ser accedidos desde cualquier punto desde el código fuente, dependiendo de su estado de ocultacion o encapsulamiento podremos usarlos solo en la clase donde pertenece o fuera

poseen 3 miembros en el momento de creacion

[nivel de seguridad Private, public, static] void [nombre de la Metodo]( aqui se define si recibe sobrecargas)
{

algoritmo

}
Nota: al final de la declaracion de los metodos no se colocan   ;   

si son creadas por ejemplo en un form estas puedes modificar un objeto que pertenezca a la clase por ejemplo la propiedad text de un boton o un objeto string definido por el programador

ejemplo






este metodo al ser invocado mostrara una ventana que dira hola mundo, este metodo  puede ser llamada desde cualquier parte de la clase a la cual pertenece pero no desde otra que la instancie mas si puede ser heredada. Si el Metodo fuese publico  podría ser llamada desde otra clase que la instancie.



un ejemplo de una clase que recibe parametros o sobrecargas  puede ser esta, en este caso el primer bloque es un evento (button1_click) que recibe dos sobrecargas y el segundo bloque es un metodos o void (hola) que recibe una sola sobrecarga tipo string






.





Como ven este metodo es llamada desde un evento clic ( al igual que la otro ) pero en este caso el metodo  recibe una sobre carga tipo string llamada mensaje, sin esa sobre carga o parámetro  el metodo  no seria llamada y daría error de compilación.


Método Tipados o Funciones 


los metodos tipados trabajan igual que lametodos solo que como requisito en tiempo de programacion estos deben devolver un tipo de dato identico al que ellos son es decir que si el metodos tipados es tipo int este debe devolver solamente un dato tipo int

Al igual pueden o no resiver sobrecargas o referencias para ser llamados y se contruyen de esta forma

[nivel de seguridad private,public,static] [tipo de dato de la funcion String, int, Datatable] [nombre de la Funcion ] (sobrecargas)
{

algoritmo

Return Tipo de dato identico a la funcion

}

ejemplo













Como ven esta función recibe un parámetro o sobre carga llamado mensaje que sera colocado en el message box  ademas es un metodos tipados tipo string

Tipos de sobre cargas 

Existen 3 tipos de sobre cargas que pueden tener un metodo, el metodo puede tener tantas sobrecargas como el programador quiera y a su vez de diferentes tipos y tipos de datos 


Sobrecarga de referencias : esta sobrecarga es un objeto que le pasamos al metodo al llamarlos. cuando el metodo se ejecuta el mismo hace uso de este objeto pero al finalizar el metodo no es destruido el objeto si no que simplemete fue usado y no destruido por lo tanto el objeto se conserva

sobrecarga de simple: esta sobre carga es la mas comun el objeto  es usado y destruido al finalizar el metodo

sobrecarga opcional : Esta sobrecarga es una mezcla  entre las sobrecargas de referencia y la sobrecarga simple, esta sobrecarga puede ser  o no especificada al llamar el metodo pues la misma tiene un valor predeterminado en su momento de creación, por lo tanto se dice que el metodo puede usarla o no sin embargo al finalizar el método el objeto opcional es destruido

Ejercicio:


Realice un formulario que llame a una metodo tipado que retorne algun dato  y una metodo que modifique la propiedad Text de un textbox







Programación C# Manejo de una arreglo Pt 1 (Introducir , Mostrar y modificar datos)

Hola Hoy trabajaremos con los arreglos simples es decir unidimensionales .



*Creando y Asignando Valores Al vector

la idea des este ejercicio es declarar un vector pero el tamaño del mismo sera introducido por el usuario del programa.Para ello abriemos un proyecto tipo consola y empezaremos por declarar una variable de tipo entero llamada tamaño igualada a cero



despues de ello haremos que se imprima por pantalla solicitando al usuario que nos indique el tamaño que decea en el vector.



Lo que se captura por teclado desde la consola debe ser transformado a tipo entero para poder ser asignado a la variable tamaño en caso de error el programa se detendra pero eso lo trabajaremos en otro post ( try & catch ).creamos el vector con el tamaño del vector que capturamos del usuario



creamos una estructura de control for para trabajar el arreglo



para asignar el valor a sub indice del arreglo "vector" lo hacemos colocando el numero del sub indice dentro del corchetes  (En este caso una variable numerica entera "i") este numero de indice debe ser menor al tamaño total del vector pues si el tamaño es 10 para el lenguaje de maquina empieza desde 0. ademas de eso el tipo de dato debe coincidir con el tipo de datos del vector


*-Mostrar El vector

para desplegar el valor del indice  usamos otra vez una estructura for para trabajarlo y haciendo un simple WrileLine y el sub indice del vector resolvemos el problema =)


*-Modificar el Vector

para modificar un vector es relativamente facil vea el ejemplo





lo primero que hacemos es declara un variable entera que sera el sub indice que queremos modificar
solicitamos al usuario que nos indique el sub indice a modificar y luego de ello el valor que remplazara.
Como pueden ver el arreglo vector es modificado en el sub indice que el usuario desidió  asignandole el nuevo valor

despues de ello el arreglo es de nuevo mostrado por pantalla



El codigo fuente completo es




Ejercicio !!


Como ejercicio intenta hacer este mismo programa pero cambiando el tipo de valor alfanumérico así como asignándole el valor del tamaño del arreglo por código ya definido =)...Hazlo y me cuentas como te fue Saludos!!!!








NestJs Error on SecretKey for JWToken

  Imagine this you are coding happy, configuring your module has   auth.module.ts   using on your register the classic call to get env value...