c# – Instituto FOC | Informática ONLINE | FP Informática ONLINE

Programación con BD

[youtube https://youtu.be/Xp7j2uxQnqk&w=560&h=315]

Al finalizar esta sesión serás capaz de:

  • Conocer las Bases de Datos Relacionales
  • Conocer los métodos de conexión a Bases de Datos
  • Conocer los métodos de consulta a Bases de Datos

Contenidos de la sesión:

Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico

  • Introducción a las Bases de datos relacionales.
  • Comprensión de los métodos de conexión a Bases de Datos.
  • Conceptos de los métodos de consulta de las bases de datos.

Revisa todos los seminarios pendientes y si lo deseas registrate en el que sea de tu interés haciendo click aquí.

Desarrollo de aplicaciones web y de escritorio

[youtube https://www.youtube.com/watch?v=9pTKxEPuIeI&w=560&h=315]

Al finalizar esta sesión serás capaz de:

  • Crear aplicaciones de escritorio
  • Conocer la programación orientada a eventos
  • Crear aplicaciones web
  • Conocer ASP .NET
  • Conocer IIS

Contenidos de la sesión:

Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico

  • Conceptos de las aplicaciones de Windows Forms.
  • Conceptos de las aplicaciones basadas en consola.
  • Conceptos del desarrollo de páginas web.
  • Conceptos del desarrollo de aplicaciones ASP .NET.
  • Conceptos del hospedaje de sitios web en IIS

Revisa todos los seminarios pendientes y si lo deseas registrate en el que sea de tu interés haciendo click aquí.

Comprensión general del desarrollo de software

[youtube https://www.youtube.com/watch?v=pC84pLN25io&w=560&h=315]

Al finalizar esta sesión serás capaz de:

  • Conocer el ciclo de vida de una aplicación
  • Conocer los métodos de prueba de una aplicación
  • Depurar aplicaciones
  • Conocer diversos tipos de algoritmos

Contenidos de la sesión:

Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico

  • Comprensión de la administración del ciclo de vida de las aplicaciones.
  • Conocer los tipos de pruebas de una aplicación.
  • Conocer los estructuras de datos de C#.
  • Ejemplos de algoritmos con estructuras de programación.

Revisa todos los seminarios pendientes y si lo deseas registrate en el que sea de tu interés haciendo click aquí.

Aspectos fundamentales del desarrollo software. Introducción a la programación Orientada a Objetos con C#

[youtube https://www.youtube.com/watch?v=taI4rr3eFA0&w=560&h=315]

Al finalizar esta sesión serás capaz de:

  • Conocer el concepto de clase
  • Comprender el concepto y métodos de creación y uso de objetos
  • Comprender el funcionamiento de la herencia

Contenidos de la sesión:

Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico.

  • Comprensión de los objetos.
  • Conceptos de los valores y las referencias.
  • Comprensión de la encapsulación.
  • Comprensión de la herencia

Revisa todos los seminarios pendientes y si lo deseas registrate en el que sea de tu interés haciendo click aquí.

Aspectos fundamentales del desarrollo software. Introducción a la programación C#

[youtube https://www.youtube.com/watch?v=QBJDZmyKFzU&w=560&h=315]

Al finalizar esta sesión serás capaz de:

  • Crear un proyecto en C#
  • Conocer las estructuras básicas de programación
  • Conocer los tipos de datos

Contenidos de la sesión:

Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico.

  • Comprensión de la programación informática.
  • Comprensión de las estructuras de decisión.
  • Comprensión de las estructuras de repetición.
  • Comprensión del control de excepciones.

 

Revisa todos los seminarios pendientes y si lo deseas registrate en el que sea de tu interés haciendo click aquí.

Curso De Aspectos Fundamentales Del Desarrollo De Software. MTA 98-361

Iníciate en la programación en C# a través de Visual Studio .NET,  inscribiéndote en nuestro curso de «Aspectos Fundamentales del Desarrollo Software».

Para este curso vamos a seguir los contenidos del MTA 98-361 de Microsoft.

¿Quién puede inscribirse?

Todos aquellos que estén interesados. No es necesario que seas alumno de Instituto FOC.

¿Debo tener conocimientos previos? No.

¿Tiene algún coste? No.

¿Podré ver las grabaciones de las sesiones en caso de no poder asistir en directo?

Sí, pero ten en cuenta que si asistes en directo podrás realizar tus consultas al profesor.

En las grabaciones, debido a la Ley de protección de datos, cortamos la parte de interacción de los alumnos.

¿Qué voy a aprender?

  • Manejo de la plataforma .NET.
  • Estructuras básicas de programación con el lenguaje C#.
  • Creación de aplicaciones de consola, de escritorio y aplicaciones web.
  • Depuración de Apps.
  • Acceso a bases de datos desde C#.

¿Cuántas sesiones son? ¿Cómo me registro?

Son cinco sesiones de una hora de duración cada una de ellas. Todas comienzan a las 19.00h y terminan a las 20.00h.

01/07/2020         Introducción a la programación C#.

08/07/2020         Introducción a la programación orientada a objetos.

15/07/2020         Comprensión general del desarrollo de software 

22/07/2020         Aplicaciones de escritorio y aplicaciones web.

29/07/2020         Manejo de bases de datos desde C#.

 

Puedes registrarte sólo en una sesión, en varias o en todas. Si sólo vas a registrarte en algunas puedes hacerlo pinchando en la que desees y registrándote. Si quieres registrarte en todas las sesiones, debes registrarte en cualquiera de ellas y marcar la casilla donde indicas que quieres registrarte en todas las sesiones (puedes verla en la siguiente imagen).

Captura

Una vez impartidas las sesiones, podrás visualizar las grabaciones de las mismas. Te iremos avisando de la publicación de las grabaciones.

Efectos visuales para tu App Web mediante JQuery

JQuery es una biblioteca de funciones y utilidades escritas en JavaScript, que permite simplificar la manera de interactuar con los documentos HTML, manipulando el objeto DOM, manejando eventos, permitiendo desarrollar animaciones, etc. (Ver más).

En este webinar aprenderás de un modo práctico a usar la biblioteca de funciones JQuery y conocerás el funcionamiento de Jquery para dotar de impresionantes efectos visuales a tus aplicaciones web.

Fecha y hora de grabación:

  • ? 09 de Junio de 2016
  • ⏰ 21:00 a 21:45 h

Objetivos:

  • Entender qué es JQuery y cómo funciona.
  • Aplicar de un modo práctico JQuery a nuestra aplicaciones web.

jqueryUI-FOC-pagina

Contenidos:

Los contenidos que se verán a lo largo de la sesión son:

  • 1.Entender que es JQuery y cómo funciona.
  • 2. Modificación del estilo de nuestra web.
  • 3. Mostrar y ocultar elementos.
  • 4. Inclusión de diferentes efectos.
  • 5. Gestión de eventos para capturar la interacción del usuario con nuestra aplicación web.

¿Cual es el lenguaje de programación mas popular?

El pasado mes de septiembre desde la página de TIOBE nos mostraron un informe con los lenguajes de programación mas populares.

El resultado que obtuvieron fue el siguiente:

toplanguageprogramming

Podemos observar que el lenguaje mas popular sigue siendo el lenguaje de programación C. Un lenguaje de programación estructurado y no orientado a objetos.

Una de los lenguajes que ha cogido mas protagonismo es el Objective-C. Este lenguaje de programación es el utilizado para el desarrollo de aplicaciones para Mac, Ipad e Iphone. Las altas ventas de IPhone e IPad han echo que este lenguaje halla ganado mas popularidad.

En el articulo completo nos sacan mas estadisticas sobre la evolución de la popularidad de algunos lenguajes y otros informes que nos indican la evolución y uso de los distintos tipos de lenguajes.

El mal uso de los métodos estáticos

Una de las decisiones mas importantes a la hora de realizar un desarrollo es cuando decidir si un método es estático o no (en java o en C#).

Este concepto puede ser confuso para los desarrolladores.

Por convención para establecer nuestro punto de partida en nuestros programas el método main se declara como estático. Tiene lógica por que este es el punto donde nosotros vamos a indicar la secuencia de pasos que tiene que ejecutarse para solucionar nuestro problema.

También usamos los método estáticos para realizar conversión de valores, crear nuevos objetos, …

Uno de los principales errores que se comete a la hora de crear métodos estáticos es cuando se desconoce los fundamentos de POO y abusamos creando todos los métodos como estáticos.

Otro de los principales errores que se cometen en la declaración de elementos estáticos, es introducir métodos en nuestras clases como estáticos cuando en realidad no los son. Como por ejemplo para una validación de un campo interno de nuestra clase.

Por lo tanto a la hora de declarar un método estático debemos seguir las siguientes recomendaciones:

  1. Si utilizamos en nuestras clases patrones del tipo Singleton o Factory para su construcción.
  2. Cuando declaramos métodos de conversión de valores.
  3. Cuando el método que estamos declarando devuelve un valor a través de los argumentos indicados.

Estas son algunas recomendaciones para utilizar mejor los métodos estáticos. Aprovecho para que a través de vuestros comentarios indiquéis alguna otra sugerencia.

 

 

 

¿Que es JSON?

JSON (JavaScript Object Notation)es un formato ligero de intercambio de datos muy presente en javascript aunque podemos ver que este tipo de formatos se puede extender a lenguajes como C, C++, C#, Java, Perl yPython.

Su principal características es las simplicidad que tenemos para leer y escribir información por parte de los des arrolladores y por parte de nuestras máquinas.

JSON esta formado por:

  • Una vector/colección formado por pares de nombre/valor. En algunos lenguajes este tipo de vector/colección se le conoce como array asociativo, diccionario o tabla hash.
  • Una lista ordenada de valores.

Por ejemplo vamos a diseñar un sistema en javascript para automatizar los mensajes de error de un formulario a través de JSON. Para ello vamos a crear las siguiente variable JSON:

var infPersonal={"edad" : "35",    "ciudad" : "Madrid, ES",    "genero" : "hombre"}

En el caso de que que queramos acceder a esa información solo tendriamos que hacer lo de la siguiente forma:

alert(infPresonal.edad);

Si os fijáis el acceso exactamente igual que cuando accedemos a un atributo publico en C# o Java.

Como en otros lenguajes realmente infPersonal es un array donde dentro podemos incluir cualquier otro tipo de objeto. Este tipo de formato nos va ayudar mucho para definir, sobre todo en javascript, constantes o elementos que vamos a utilizar para hacer nuestras páginas web dinámicas como representación de gráficas.

 

 

¿Que es y para que nos sirven los TDD?

Un TDD (Test Driven Development) es una técnica de desarrollo software en la que primero pensamos en las pruebas que vamos a realizar y luego aplicar técnicas de refactorizamos para tener un código limpio.

Para elaborar estas pruebas lo que realizas primero son las pruebas unitarias que vamos a realizar y a continuación, en base a estas pruebas, realizamos la implementación de nuestro código. Después aplicamos la refactorización a nuestro código para tener una implementación lo mas limpia posible.

Vamos a realizar un ejemplo concreto para ver como aplicamos esta técnica

Supongamos que tenemos una aplicación donde estamos implementando la gestión de nuestro carrito de la compra. En nuestro carrito de la compra vamos a poder insertar cualquier articulo, y por cada articulo que nosotros añadamos se deberá actualizar el importe total. Tendremos en cuenta que si introducimos un elemento que ya se encuentra en  nuestro carrito lo que realizaremos es un incremento de las unidades.

Partimos de las siguientes clases:

La clase Item que nos va a servir para almacenar los distintos elementos del carrito

class Item
    {

        private String _nombre;

        private Decimal _pUnidad;

        private int _ctdad;

        public String Nombre
        {
            get { return _nombre; }
            set { _nombre = value; }
        }

        public Decimal PrecioUnidad
        {
            get { return _pUnidad; }
            set { _pUnidad = value; }
        }

        public int Ctdad
        {
            get { return _ctdad; }
            set { _ctdad = value; }
        }

        public Item()
        {
            Nombre = «»;
            Ctdad = 0;
            PrecioUnidad = 0;
        }

        public Item(String _n, int ctdad, Decimal precio)
        {
            Nombre = _n;
            Ctdad = ctdad;
            PrecioUnidad = precio;
        }

    }

Y la clase Carrito para gestionar los elementos que vamos añadiendo al carrito:

 class Carrito
    {

        private List<Item> carrito;
        private Decimal _precTotal;        

        public Carrito(){
            carrito = new List<Item>();
            _precTotal = 0;            
        }
        
    }

 

Si seguimos las normas del TDD primero vamos a diseñar las pruebas unitarias para los distintos requisitos que vamos a cumplir:

1.- Comprobar que el importe total es de 0 cuando no tenemos ningún elemento en la cesta.

La prueba unitaria que nosotros tendremos que realizar es la siguiente:

[TestMethod]
 public void CestaCompraVacia()
 {
 // Comprobamos
 Carrito c = new Carrito();
 Assert.AreEqual(0, c.ItemsCarrito); // Comprobamos que hay cero elementos
 Assert.AreEqual(true, c.carritoVacio); // Comprobamos que el precio es 0
 }

Ahora en nuestro código dentro de nuestra clase que gestiona el carrito completaremos su código con los siguientes propiedades:

public bool carritoVacio
 {
 get { return carrito.Count == 0; }
 }

public int ItemsCarrito
{
get { return carrito.Count; }
}

2.- Comprobamos que cuando insertamos un elemento se actualiza el precio total y el número de artículos

En este caso la prueba unitaria a realizar seria la siguiente:

public void Añadir1ItemCesta()
 {
 // Comprobamos
 Carrito c = new Carrito();
 c.AddItem(new Item("CD's Virgenes",1,5));
 Assert.AreEqual(5, c.PrecTotal);
 Assert.AreEqual(1, c.ItemsCarrito);
 }

Como el método de ItemsCarrito ya lo tenemos implementando como resultado de la prueba anterior lo único que tenemos que realizar es la propiedad para obtener el precio total

public Decimal PrecTotal
 {
 get { return _precTotal; }
 set { _precTotal = value; }
 }

y el método para añadir elementos al carrito:

public void AddItem(Item it)
{
_precTotal += it.PrecioUnidad * it.Ctdad;
carrito.Add(it);         
}

 

3.- Comprobamos que cuando insertamos varios elementos se actualiza el precio total y el número de artículos teniendo en cuenta que podemos incluir elementos repetidos.

        [TestMethod]
        public void AñadirVariosItemCesta()
        {
            // Comprobamos 
            Carrito c = new Carrito();
            c.AddItem(new Item("CD's Virgenes", 1, 5));
            c.AddItem(new Item("CD's Virgenes", 1, 5));
            c.AddItem(new Item("CD's Virgenes", 1, 5));
            c.AddItem(new Item("DVD's Virgenes", 1, 10));
            Assert.AreEqual(25, c.PrecTotal);
            Assert.AreEqual(2, c.ItemsCarrito);
        }

Si observamos, aparentemente podemos ejecutar la prueba para ya que tenemos todos los métodos y propiedades a utilizar correctamente. Al ejecutar la prueba veremos que esta prueba no la supera ya que cada item que hemos añadido los considera como un objeto nuevo. Por lo que tendremos que modificar el método AddItem para que compruebe si el item existe y en caso de que existe modificar la cantidad almacenada.

Para ello vamos a incorporar un método de busqueda de productos y modifcaremos el método AddItem de la siguiente forma:

private Item estaItem(String nombre)
        {
            
            foreach (Item it in carrito){
                if (it.Nombre == nombre)
                    return it;
            }
            return null;
        }

        public void AddItem(Item it)
        {
            Item encontrado = estaItem(it.Nombre);
            if (encontrado!=null)
            {
                encontrado.Ctdad += it.Ctdad;
            }
            else
            {                
                carrito.Add(it);
            }
            _precTotal += it.PrecioUnidad * it.Ctdad;
        }

Podemos observar que con esta técnica de desarrollo tenemos un control mas seguro sobre el cumplimiento de los requisitos que si primero desarrollamos y luego realizamos las pruebas.

 

¿Qué lenguaje de programación (Java, C# y PHP) es mejor para aprender a programar?

Desde hace tiempo llevo escuchando la discusión sobre que lenguaje es mejor para aprender a programar. Las opciones que mas escogidas son Java, C# y PHP.

Algunos de los argumentos que nos puede convencer para elegir java son los siguientes:

  1. Java es fácil de aprender
  2. Java es un lenguaje orientado a la programación orientada a objetos
  3. Java tiene un API muy potente que nos proporciona , entre otras, el pode realizar operaciones de Entrada y Salida (I/O), de networking, manejo para parsear documentos XML  y  interacción con las base de datos.
  4. Herramientas de desarrollo muy potentes y gratuitas como Eclipse y NetBeans
  5. Una amplia librerías de código Open Source como pueden ser Hibernate, Spring, ….
  6. Java tiene comunidad detrás amplia que nos proporciona soporte para cualquier problema que tengamos
  7. Java es Gratis.

Lo argumentos que nos pueden decantarnos por c# son los siguientes:

  1. La utilización de Delegados (Delegates) y Eventos (Events). Su manejo es algo mas sencillo de utilizar que el uso de los listener en java para la gestión de los eventos.
  2. No dispone de una descripción de las excepciones anidadas. En java cada vez que se produce una excepción se nos informa de todo el detalle que se ha visto involucrado en la propagación de la excepción. En C# esto no es así, simplemente se nos indica la excepción que se produce y la causa. Este nos facilita a la hora de depurar errores.
  3. El uso de propiedades nos hace el identificar mejor que son los atributos internos de una clase de los elementos, a nivel público, con los que se interactua con la clase.
  4. Es mas flexible a la hora de organizar el código. En C# no tenemos que seguir la jerarquía de paquetes a la hora de crear nuestras clase ni tener que definir un archivo por clase o interfaz. C# en este aspecto nos da total libertada para que organicemos nuestro código acorde con nuestro desarrollo.
  5. C# es un lenguaje orientado a la programación orientada a objetos

Y por último veamos las razones por las que elegir o en defensa para aprender a programar en PHP:

  1. Podemos trabajar conjuntamente con HTML para el diseño de nuestras aplicaciones.
  2. Es muy intuitivo de aprender.
  3. Desde la versión PHP 5 ya es considerado como un lenguaje orientado a la programación orientada a objetos.
  4. Disponemos de Frameworks para la elaboración de aplicaciones webs bastantes potentes
  5. La gran mayoría de aplicaciones web se basan en PHP (WordPress, Joomla, Drupal, Magento, …)

Para aprender a programar sin duda debemos escoger Java por la rectitud a la hora de aplicar las normas de la programación orientada a objetos.

Ahora para el desarrollo de una aplicación nos deberemos ajustar siempre a los requisitos que nos imponga el cliente.

 

Lenguaje de programación más popular en Marzo 2013

Según el último informe Tiobe, el lenguaje más popular en Marzo de 2013 sería Java con un 18% seguido de C con un 17%. C# queda en el quinto puesto con casi un 7% . Este índice Tiobe, es muy criticado por su importante componente histórico, es decir tiene en cuenta todos los recursos existentes en Internet sobre un lenguaje.

También existen índices, como el PYPL, que usan el número de búsquedas realizadas en un momento dado (utilizando Google Trends) sobre los distintos lenguajes. Según este índice Java sería el lenguaje más usado con un 27% seguido de PHP con un 14%.  C# ocuparía el tercer lugar con un 10% empatado con Python.

Estos resultados contrastan con una reciente encuesta de codeeval (una importante comunidad de desarrolladores)  que revela que para este año 2013 el lenguaje más demandado será Python, con casi un 30% seguido de Java por un 25%

Lenguajes más populares

Algo que sí podemos ver en las tres encuestas es que Java es un lenguaje cada vez más popular, con un ascenso cada vez mas claro de Python. No en vano son los dos lenguajes más utilizados por Google.