70-483: programming in C#

En el sitio de Microsoft Learning viene definida la certificación para el examen 70-483 Programming in C#. Como estamos con ganas de sacar esa certificación, andamos haciendo y juntando entradas que cubran los diferentes temas que vienen expuestos en el libro de Microsoft. Sobre todo, porque no hay aun libro de Microsoft Press que sirva de guía.

Así, a continuación presento los temas tal y como vienen en el sitio de Microsoft Learning, así como las entradas que he hecho y que aplican directamente. Nota: las descripciones son las que pone Microsoft en su propia página. Los porcentajes indican la importancia o número de preguntas que hay por bloque. Consulta dicha página para mayor información.

Gestionar el flujo de un programa (25%)

 

Implementar multiárea y procesamiento asíncrono.

Este objetivo incluye pero no se limita a: usar la Librería de Tareas Paralelas (ParallelFor, Plinq, Tasks), crear continuación de tareas, crear hilos usando ThreadPool, desbloquear la interfaz gráfica, usar las palabras reservadas async y await, manejar datos al utilizar colecciones concurrentes.

 

Gestionar multihilo

Este objetivo incluye pero no se limita a: sincronizar recursos, implementar bloqueos, cancelar tareas de larga duración, implementar métodos seguros en hilos para gestionar condiciones de carreras.

 

Implementar el flujo de un programa

Este objetivo incluye pero no se limita a: iterar a través de colecciones y arreglos, programar decisiones al utilizar sentencias switch, si/entonces, y operadores; evaluar expresiones.

 

 

Crear e implementar eventos y retro-llamadas

Este objetivo incluye pero no se limita a: crear manejadores de eventos, suscribirse a y des-suscribirse de eventos, usar tipos de delegados predefinidos para crear eventos, crear delegados propios, usar expresiones lambda, usar métodos anónimos.

 

 

Implementar manejo de excepciones

Este objetivo incluye pero no se limita a: manejar tipos de excepciones (excepciones de SQL, de red, de comunicaciones, de tiempo de espera), atrapar excepciones tipadas vs. excepciones base, implementar bloques try-catch-finally, lanzar excepciones, determinar cuándo re-lanzar vs. lanzar, crear excepciones personalizadas.

 

 

Crear y utilizar tipos de datos (24%)

 

Crear tipos

Este objetivo incluye pero no se limita a: crear tipos valor (estructuras, enumeraciones), tipos referencia, tipos genéricos, constructores, variables estáticas, métodos, clases, métodos de extensión, parámetros opcionales y nombrados, propiedades indizadas, crear métodos sobrecargados y sobrescritos.

 

Consumir tipos

Este objetivo incluye pero no se limita a: empacar y desempacar al convertir entre tipos valores, conversión de tipos de datos, manejar tipos dinámicos, asegurar interoperabilidad con código no administrado (por ejemplo, uso de la palabra clave dynamic).

 

Forzar encapsulación

Este objetivo incluye pero no se limita a: forzar la encapsulación utilizando propiedades, utilizando accesos (públicos, privados, protegidos), y utilizando implementaciones de interfaces explícitas.

 

 

Crear e implementar jerarquías de clases

Este objetivo incluye pero no se limita a: diseñar e implementar una interfaz, heredar de una clase base, crear e implementar clases basadas en las interfaces IComparable, IEnumerable, IDisposable, e IUnknown.

 

 

Buscar, ejecutar y crear tipos en tiempo de ejecución usando Reflexión

Este objetivo incluye pero no se limita a: crear y aplicar atributos, leer atributos, generar código en tiempo de ejecución mediante el uso de CodeDom y expresiones lambda, utilizar tipos del espacio de nombres System.Reflection (Assembly, PropertyInfo, MethodInfo, Type).

 

 

Gestionar el ciclo de vida de un objeto

Este objetivo incluye pero no se limita a: gestionar recursos no administrados, implementar IDisposable, incluir interacción con la finalización, gestionar IDisposable mediante la sentencia "using", gestionar finalización y recolección de basura.

 

 

 

Manipular cadenas de texto

Este objetivo incluye pero no se limita a: manipular cadenas de texto utilizando las clases StringBuilder, StringWriter y StreamReader, buscar cadenas de texto, enumerar los métodos de las cadenas, formateo de cadenas de texto.

 

 

Depurar aplicaciones e implementar seguridad (25%)

 

Validar la entrada en una aplicación

Este objetivo incluye pero no se limita a: validar datos JSON, tipos de colecciones de datos, gestionar integridad de datos, evaluar una expresión regular para validar el formato de entrada de datos, utilizar funciones predefinidas para validar tipo de dato y contenido fuera de alcance (escribir expresiones regulares).

 

 

Realizar cifrado simétrico y asimétrico

Este objetivo incluye pero no se limita a: escoger un algoritmo de cifrado apropiado, gestionar y crear certificados, implementar gestión de llaves, implementar el espacio de nombres System.Security, batir y revolver datos, cifrar flujos de datos.

 

 

Gestionar ensamblados

Este objetivo incluye pero no se limita a: versionar ensamblados, firmar ensamblados usando nombres fuertes, implementar alojamiento compartido, colocar un ensamblado en el Global assembly Cache, crear un ensamblado WinMD.

 

 

Depurar una aplicación

Este objetivo incluye pero no se limita a: crear y gestionar directivas de compilación, escoger un tipo de construcción apropiado, gestionar bases de datos de archivos y símbolos de programación.

 

 

Implementar diagnóstico en una aplicación

Este objetivo incluye pero no se limita a: implementar bitácora y rastreo, perfilar aplicaciones, crear y monitorear contadores de rendimiento, escribir a la bitácora de eventos.

 

 

Implementar acceso a datos (26%)

 

Realizar operaciones de entrada y salida

Este objetivo incluye pero no se limita a: leer y escribir archivos y flujos, leer y escribir desde la red utilizando clases del espacio de nombres System.Net, implementar operaciones de entrada y salida asíncronas.

 

 

Consumir datos

Este objetivo incluye pero no se limita a: recuperar información desde una base de datos, actualizar datos en una base de datos, consumir datos en JSON y XML, recuperar datos utilizando servicios web.

 

Consultar y manipular datos y objetos usando LINQ

Este objetivo incluye pero no se limita a: consultar datos utilizando operadores (proyección, conjunción, agrupación, tomar, saltar y agregación), crear consultas LINQ mediante métodos, consultar datos utilizando comprensión de consultas, seleccionar datos utilizando tipos anónimos, forzar la ejecución de una consulta; leer, filtrar, crear y modificar estructuras de datos utilizando LINQ to XML.

 

 

Serializar y des-serializar datos

Este objetivo incluye pero no se limita a: serializar y des-serializar datos utilizando serialización binaria, usar serialización personalizada, serialización XML, serialización JSON, y serialización por contrato de datos.

 

Almacenar datos y recobrarlos desde colecciones

Este objetivo incluye pero no se limita a: almacenar y recuperar datos utilizando diccionarios, arrays, listas, conjuntos y filas; escoger un tipo de colección adecuado, inicializar una colección, añadir y quitar elementos de una colección, uso de colecciones tipadas vs colecciones no tipadas; implementar colecciones personalizadas, implementar interfaces de colecciones.

 

  1. fpfaffendorf
    May 16, 2013 a las 5:50 pm

    Muy buen artículo, muchas gracias. Estoy preparando la certificación 70483 y me vino muy bien. Aquellos que me quieran seguir en mi blow y twitter voy poniendo tips para la certificación @fpfaffendorf. Suerte !

  1. noviembre 27, 2012 a las 7:16 pm

Deja un comentario