1. Libros
  2. Aprender la programación orientada a objetos con el lenguaje C#

Aprender la programación orientada a objetos con el lenguaje C#

  • Acceso ilimitado 24/7
  • Todos los libros online de ENI
  • Más de 5 novedades todos los meses
  • Novedades disponibles el mismo día de su publicación
  • Acceso 100% online
  • Disponible
  • Expedido en 24 horas
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año
  • Acceso gratuito a todos nuestros libros online durante 1 hora por toda compra
  • Consulta inmediata
  • Versión HTML online
  • Acceso ilimitado 24/7

Presentación

Este libro está dirigido a estudiantes y desarrolladores con cierta experiencia en la programación estructurada, y que deseen dar el salto a la programación orientada a objetos (POO) con el lenguaje C#, para desarrollar aplicaciones .NET.

Después de una introducción a la historia de la POO y del lenguaje C#, el autor explica por qué este tipo de programación se ha convertido en algo inevitable en el desarrollo en entornos basados en eventos gráficos. Se presentan al lector los conceptos de objeto, clase, y referencia. Más adelante se profundiza en los conceptos principales de la POO, como la encapsulación, la herencia, el polimorfismo y la abstracción.  También se muestran las diferentes etapas de un desarrollo basado en objetos, utilizando el principio de modelización UML.

A continuación, el autor presenta el framework .NET, su interés, su riqueza y su entorno de desarrollo con Microsoft Visual Studio 2015 Community. El lector descubrirá cómo C# reproduce los conceptos principales de la POO con explicaciones sencillas, ejemplos concretos y ejercicios corregidos que se pueden descargar en el sitio web  www.edicioneseni.com. También se presentan los tipos básicos del desarrollo .NET y su uso, las novedades de C# 6 y cómo explotar Visual Studio 2015 para simplificar la escritura y puesta a punto de programas. Los programas de prueba son de tipo consola o gráficos, basados en el uso de Windows Forms para ilustrar las comunicaciones entre objetos. Cuando es adecuado, se utilizan líneas de código paralelas con lenguajes de programación orientada a objetos como C++ y Java. Se aborda la comunicación entre mundos gestionados y no gestionados, así como el diseño de las pruebas de regresión en forma de objetos. Por último, el libro termina con el aspecto de programación multithread, que permite la ejecución simultánea de varios flujos de instrucciones y la programación asíncrona.

Al terminar el libro, el lector dispondrá de unas bases sólidas para el aprendizaje de las potentes librerías.NET y para realizar programas modulares, fiables y extensibles.


Los capítulos del libro:
Prólogo – Introducción a la POO – El diseño orientado a objetos – Introducción al framework .NET y a VS – Los tipos de C# – Creación de clases – Herencia y polimorfismo – Comunicación entre objetos – El multithreading – P-Invoke – Las pruebas

Índice

  • Introducción a la POO
    • 1. Historia de la POO
    • 2. Historia de C#
  • El diseño orientado a objetos
    • 1. Enfoque procedural y descomposición funcional
    • 2. La transición hacia el enfoque orientado a objetos
    • 3. Las características de la POO
      • 3.1 El objeto, la clase y la referencia
        • 3.1.1 El objeto
        • 3.1.2 La clase
        • 3.1.3 La referencia
      • 3.2 La encapsulación
      • 3.3 La herencia
      • 3.4 El polimorfismo
      • 3.5 La abstracción
    • 4. El desarrollo orientado a objetos
      • 4.1 Especificaciones del software
      • 4.2 Modelización y representación UML
        • 4.2.1 Diagramas de casos de uso
        • 4.2.2 Diagramas de clases
        • 4.2.3 Enumeraciones
        • 4.2.4 Diagramas de secuencias
      • 4.3 Redacción del código y pruebas unitarias
  • Introducción al framework .NET y a VS
    • 1. Introducción
    • 2. Entorno de ejecución
    • 3. La elección de los lenguajes
    • 4. Utilizar varios lenguajes
    • 5. Una librería muy completa
    • 6. Instalaciones simplificadas
    • 7. Una herramienta de desarrollo completa
  • Los tipos de C#
    • 1. "En C#, todo está tipado"
    • 2. "Todo el mundo hereda de System.Object"
      • 2.1 Los tipos Valores
      • 2.2 Los tipos Referencia
      • 2.3 Boxing - Unboxing
      • 2.4 Utilización de los métodos de System.Object
        • 2.4.1 Equals
        • 2.4.2 GetHashCode
        • 2.4.3 ToString
        • 2.4.4 Finalize
        • 2.4.5 Object.GetType y los operadores typeof e is
        • 2.4.6 Object.ReferenceEquals
        • 2.4.7 Object.MemberwiseClone
      • 2.5 El tipo System.String y su alias string
    • 3. Ejercicio corregido
      • 3.1 Enunciado
      • 3.2 Corrección
  • Creación de clases
    • 1. Introducción
    • 2. Los espacios de nombres
    • 3. Declaración de una clase
      • 3.1 Accesibilidad de los miembros
      • 3.2 Atributos
        • 3.2.1 Atributos constantes
        • 3.2.2 Atributos en modo solo lectura
      • 3.3 Propiedades
      • 3.4 Constructor
        • 3.4.1 Etapas en la construcción de un objeto
        • 3.4.2 Sobrecarga de constructores
        • 3.4.3 Constructores con valores de argumentos por defecto
        • 3.4.4 Encadenamiento de constructores
        • 3.4.5 Los constructores de tipo static
        • 3.4.6 Los constructores de tipo private
        • 3.4.7 Los inicializadores de objetos
      • 3.5 Destructor
      • 3.6 Otro uso de using
      • 3.7 La palabra clave this
      • 3.8 Métodos
        • 3.8.1 Declaración
        • 3.8.2 Paso de argumentos por valor y por referencia
      • 3.9 Mecanismo de las excepciones
        • 3.9.1 Presentación
        • 3.9.2 Principio de funcionamiento de las excepciones
        • 3.9.3 Soporte a varias excepciones
        • 3.9.4 try ... catch ... finally y using
      • 3.10 Sobrecarga de los métodos
      • 3.11 Ejercicio
        • 3.11.1 Enunciado
        • 3.11.2 Consejos
        • 3.11.3 Corrección
    • 4. Las interfaces
      • 4.1 Introducción
      • 4.2 El contrato
      • 4.3 Declaración de una interfaz
      • 4.4 Implementación
      • 4.5 Visual Studio y las interfaces
      • 4.6 Representación UML de una interfaz
      • 4.7 Interfaces y polimorfismo
      • 4.8 Ejercicio
        • 4.8.1 Enunciado
        • 4.8.2 Consejos
        • 4.8.3 Corrección
      • 4.9 Las interfaces de .NET
    • 5. Asociación, composición y agregación
      • 5.1 Las tablas
      • 5.2 Las colecciones
        • 5.2.1 List<> y LinkedList<>
        • 5.2.2 Queue<T> y Stack<T>
        • 5.2.3 Dictionary<TKey, TValue>
        • 5.2.4 Los enumeradores
        • 5.2.5 La magia del yield
      • 5.3 Ejercicio
        • 5.3.1 Enunciado
        • 5.3.2 Corrección
    • 6. Las clases anidadas
    • 7. Las estructuras
      • 7.1 Declaración de una estructura
      • 7.2 Instanciación de una estructura
    • 8. Las clases parciales
    • 9. Los métodos parciales
    • 10. Los indexadores
    • 11. Sobrecarga de operadores
  • Herencia y polimorfismo
    • 1. Entender la herencia
    • 2. Codificación de la clase de base y su heredada
      • 2.1 Prohibir la herencia
      • 2.2 Definir miembros heredables
      • 2.3 Codificación de la herencia
      • 2.4 Explotación de una clase heredada
    • 3. Comunicación entre clase de base y clase heredada
      • 3.1 Los constructores
      • 3.2 Acceso a los miembros básicos desde la clase heredada
      • 3.3 Ocultación o substitución de miembros heredados
        • 3.3.1 Codificación de la ocultación
        • 3.3.2 Codificación de la sustitución
    • 4. Ejercicio
      • 4.1 Enunciado
      • 4.2 Corrección
    • 5. Las clases abstractas
    • 6. Los métodos de extensión
    • 7. El polimorfismo
      • 7.1 Entender el polimorfismo
      • 7.2 Explotación del polimorfismo
      • 7.3 Los operadores is y as
  • Comunicación entre objetos
    • 1. El evento: estar a la escucha
    • 2. El pattern Observador
    • 3. La solución C#: delegate y event
      • 3.1 Utilización del delegate en el design pattern Observador
      • 3.2 Utilización de un evento
      • 3.3 Cómo acompañar al evento de datos
      • 3.4 Recursos genéricos para simplificar todavía más
      • 3.5 Las expresiones lambda
      • 3.6 Ejemplo de uso de event
    • 4. Llamadas síncronas, llamadas asíncronas
      • 4.1 Enfoque 1
      • 4.2 Enfoque 2
      • 4.3 Enfoque 3
      • 4.4 Enfoque 3 con una expresión lambda
    • 5. Ejercicio
      • 5.1 Enunciado
      • 5.2 Consejos para la realización
      • 5.3 Corrección
  • El multithreading
    • 1. Introducción
    • 2. Entender el multithreading
    • 3. Multithreading y .NET
    • 4. Implementación en C#
      • 4.1 Uso de un BackgroundWorker
        • 4.1.1 Comunicación del thread principal con el thread secundario
        • 4.1.2 Abandono desde el thread principal
        • 4.1.3 Comunicación del thread secundario con el thread principal
        • 4.1.4 Comunicación al final de la operación del thread secundario
        • 4.1.5 Ejemplo de código
      • 4.2 Utilización del pool de threads creado por .NET
      • 4.3 Gestión «manual» con Thread/ParameterizedThreadStart
    • 5. Sincronización entre threads
      • 5.1 Necesidad de la sincronización
      • 5.2 La simulación de la sincronización
      • 5.3 La palabra clave lock
      • 5.4 La clase Monitor
      • 5.5 La clase Mutex
      • 5.6 La clase Semaphore
    • 6. Comunicación entre threads
      • 6.1 Join
      • 6.2 Las sincronización de eventos
      • 6.3 Comunicación entre threads secundarios e IHM
      • 6.4 Ejercicio
        • 6.4.1 Enunciado
        • 6.4.2 Corrección
    • 7. La programación asíncrona
      • 7.1 La palabra clave async
      • 7.2 Contenido de un método async
      • 7.3 Evidencias
      • 7.4 Resultados posibles de un método async
  • P-Invoke
    • 1. Introducción
      • 1.1 Recordatorio sobre las DLL no gestionadas
      • 1.2 P-Invoke y su Marshal
    • 2. El caso sencillo
      • 2.1 Declaración y llamada
      • 2.2 Ajuste de Visual Studio para la puesta a punto
    • 3. Llamada con argumentos y retorno de función
    • 4. Tratamiento con las cadenas de caracteres
      • 4.1 Codificación de los caracteres
      • 4.2 Codificación de las cadenas
      • 4.3 Transmisión de las cadenas
    • 5. Intercambio de tablas
      • 5.1 De C# a C/C++
      • 5.2 De C# a C/C++ y después vuelta a C#
    • 6. Compartición de estructuras
      • 6.1 Declaración de las estructuras
      • 6.2 Utilización de las estructuras
    • 7. Las directivas [In] y [Out]
    • 8. Realización de un "wrapper"
      • 8.1 Una región "NativeMethods"
      • 8.2 Almacenamiento de la información de la DLL nativa
      • 8.3 Instanciación de DLL nativa
      • 8.4 Métodos de uso de la DLL gestionada desde el wrapper
      • 8.5 Uso del wrapper
    • 9. Ejercicio
      • 9.1 Enunciado
      • 9.2 Corrección
  • Las pruebas
    • 1. Introducción
    • 2. Entorno de ejecución de las pruebas unitarias
    • 3. El proyecto de pruebas unitarias
    • 4. La clase de pruebas
    • 5. Contenido de un método de prueba
    • 6. Tratamientos de preparación y limpieza
    • 7. TestContext y fuente de datos
    • 8. Automatización de las pruebas en la compilación
    • 9. Automatización de las pruebas fuera de Visual Studio
    • 10. CodedUI
    • 11. Ejercicio
      • 11.1 Enunciado
      • 11.2 Corrección
    • índice

Autor

Luc GERVAISMás información

Desde hace veinticinco años, Luc Gervais ejerce la profesión de desarrollador de software. Provenía del mundo de la electrónica y empezó a programar en lenguaje ensamblador para pasar posteriormente a C, C++, C# y Java. Ha impartido muchas sesiones de formación sobre estos diferentes lenguajes de programación, tanto para un público formado por desarrolladores profesionales, como por estudiantes (Universidad de Rouen). Esta doble experiencia (técnica y pedagógica), le permite responder perfectamente a las expectativas de los lectores que deseen pasar a la Programación Orientada a Objetos (POO).

Características

  • Nivel Medio a Experto
  • Número de páginas 416 páginas
  • Publicación septiembre 2016
    • Encuadernación rústica - 17 x 21 cm
    • ISBN: 978-2-409-00370-7
    • EAN: 9782409003707
    • Ref. ENI: RIT2CAPOO
  • Nivel Medio a Experto
  • Publicación septiembre 2016
    • HTML
    • ISBN: 978-2-409-00371-4
    • EAN: 9782409003714
    • Ref. ENI: LNRIT2CAPOO

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (235 Ko)