Ruta de aprensizaje CSharp. Esta publicación es parte de la Ruta de aprendizaje Xamarin que puedes ver si no lo haz hecho. Es bueno recordar que esta guía es solo una introducción a C#, no puede tomarse como la guía final.
Para continuar con la ruta de aprendizaje Xamarin es necesario entender la base C#, es por eso que hemos incluido la Ruta de aprendizaje CSharp. Hay algunas cosas que debe saber antes para iniciar esta ruta de aprensizaje CSharp como guía. Realmente te recomiendo que revises este enlace.
Nota: Como dije en la publicación de introducción, lo que he hecho es tomar como base la hoja de ruta propuesta por Xamarin University para crear una nueva. Por lo tanto, si desea ver la base original, realmente le recomiendo que vaya allí antes de que la migren a Microsoft Learn.
Introducción a C
Esta pista proporciona una introducción al lenguaje de programación C#.
Introducción a C# [CSC101]
Un paso clave para convertirse en un desarrollador de C# es crear y ejecutar su primer programa. Incluso un programa simple requiere que su máquina de desarrollo esté configurada correctamente y que conozca la sintaxis de C#. En este módulo, instalará Visual Studio, creará una aplicación de consola, escribirá código para realizar un cálculo y mostrará el resultado al usuario.
- Conocer el papel de C# y Xamarin.
- Configura y ejecuta tu primer programa.
- Aprender los fundamentos de C#.
Enlaces útiles
- C# Tour
- Ocho razones C# es el mejor lenguaje para el desarrollo móvil
- ¿Es C# bueno para el desarrollo móvil?
- Obtener Visual Studio
- Inicio rápido: use Visual Studio para crear su primera aplicación de consola C#
Explorando por tu cuenta
Ramas condicionales y bucles [CSC102]
Los programas a menudo necesitan evaluar datos y tomar decisiones basadas en los valores que descubren. Este módulo cubre cómo leer la entrada, la rama o el bucle del usuario en función de los valores de entrada, y convertir los resultados en cadenas para su visualización.
- Implementar una rama condicional.
- Descubre y utiliza bucles en tu código.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Introducción a C# [CSC101].
Programación orientada a objetos [CSC103]
Hay muchas formas de organizar su código que llevan a los programas correctos. Uno de los desafíos de ser un desarrollador es evaluar estas diferentes opciones y elegir la que mejor se adapte a sus objetivos. Un enfoque popular se llama Programación Orientada a Objetos (OOP). Este módulo presenta los principios básicos de la programación orientada a objetos y le muestra cómo aplicarlos a su código C#.
- Determinar clases y relaciones en un programa.
- Crear una clase con campos para mantener el estado.
- Usar enumeraciones para definir valores constantes.
Enlaces útiles
<! - ### Explorando por tu cuenta ->
Prerrequisitos recomendados: ramas y bucles [CSC102]
Agregando Comportamiento en nuestras Aplicaciones [CSC104]
Una clase de C# es un contenedor que agrupa datos y sus operaciones asociadas. Los datos normalmente se almacenan en campos con una construcción llamada propiedad que controla el acceso. Las operaciones se denominan métodos y proporcionan la lógica para realizar trabajos relacionados con la clase. Este módulo le muestra cómo definir e invocar propiedades y métodos. Al final del módulo, podrá escribir una clase que modela los datos y el comportamiento de un objeto del mundo real.
- Crear una clase con métodos para proporcionar comportamiento.
- Utilizar propiedades para ocultar nuestros campos.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Programación orientada a objetos [CSC103]
Construyendo una aplicación de consola [CSC105]
El módulo anterior introdujo las características principales de la programación con C#. Este módulo reunirá estas piezas individuales guiándole a través de la creación de una aplicación a mayor escala. Construirá una aplicación de consola que lee la entrada del usuario, convierte la entrada de una cadena a un tipo numérico, realiza un cálculo que incluye bifurcaciones y bucles, y muestra los resultados al usuario.
- Definir un tipo personalizado usando una clase
- Crear propiedades para controlar el acceso a los datos.
- Repetir un bloque de código con un bucle.
- Crear métodos para agregar comportamiento a las clases.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: agregar comportamiento a nuestras aplicaciones [CSC104]
Parámetros y constructores del método [CSC106]
Una parte clave del trabajo con métodos es enviar argumentos y obtener resultados. Este módulo le muestra cómo usar parámetros opcionales para agregar flexibilidad a las entradas de método y cómo usar parámetros de salida para devolver múltiples valores. Otro tema importante para cualquier lenguaje de programación es la inicialización de campos de datos. Cada vez que cree un nuevo objeto, debe pensar qué valores debe asignar a los campos para asegurarse de que el objeto esté listo para su uso. Este módulo cubre cómo usar métodos especiales llamados constructores para realizar esta inicialización.
- Pasar información a métodos.
- Recibir información de los métodos.
- Inicializar objetos utilizando constructores.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Crear una aplicación de consola [CSC105]
Colecciones [CSC107]
Casi todos los programas tendrán una colección de datos. Por ejemplo, una aplicación de correo electrónico almacena una lista de sus contactos, un navegador web muestra los sitios web que ha visitado y un programa meteorológico muestra el pronóstico de sus ciudades favoritas. Para codificar esto, debe crear una colección almacenando sus valores dentro de una estructura de datos. Este módulo le muestra cómo utilizar tres de los tipos de colección más populares: matriz, Lista y Diccionario.
- Utilizar matrices para cargar conjuntos de datos estáticos.
- Utilizar listas y diccionarios para gestionar datos.
Enlaces útiles
Prerrequisitos recomendados: Parámetros y constructores del método [CSC106]
Depuración y excepciones [CSC108]
Incluso los programadores cuidadosos cometen errores. Pueden olvidarse de validar la entrada del usuario o dejar que un bucle continúe ejecutándose durante una iteración adicional después de que se haya detenido. Problemas como estos son tan comunes que encontrar y corregir errores se considera una habilidad de programación básica. Este módulo le muestra dos técnicas de depuración: usar un depurador para examinar el estado de su programa durante su ejecución y usar excepciones para escribir código que responda a problemas a medida que se ejecuta el programa.
- Utilice el depurador para examinar el código de ejecución
- Tirar y atrapar excepciones para responder a errores.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Colecciones [CSC107]
Herencia y polimorfismo [CSC109]
La programación informática implica crear un modelo de software de cosas que existen en el mundo real. Una relación importante del mundo real a menudo se describe como "is-a". Por ejemplo, un perro es un animal, un camión es un vehículo y un estudiante universitario es un estudiante. C# incluye una característica llamada herencia que le permite modelar la relación is-a en su código. Este módulo le muestra cómo usar la herencia para modelar los tipos en su mundo que están relacionados, aunque es-a. También presenta una idea relacionada llamada polimorfismo que ayuda a su código a manejar múltiples tipos de datos diferentes sin la necesidad de escribir un caso específico para cada uno.
- Usar la herencia para eliminar el código repetido.
- Usar métodos virtuales y polimorfismo para escribir código genérico.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: depuración y excepciones [CSC108]
Fundamentos de GC [CSC270]
La mayoría de los lenguajes de programación y tiempos de ejecución modernos incluyen la recolección de basura, ya que libera al desarrollador de parte de la carga de administrar la memoria. Desafortunadamente, no es completamente automático porque la forma en que escribe su código afecta el rendimiento del recolector de basura. Este módulo le muestra cómo ayudar al recolector de basura a hacer su trabajo de manera eficiente. Aplicará estrategias de codificación que pueden reducir la carga de trabajo del recolector de basura y utilizar las variables de entorno para ajustar el comportamiento del recolector de basura según la forma en que su aplicación usa la memoria.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Introducción a C# [CSC101]
Gestión de recursos sin memoria [CSC271]
Las aplicaciones a menudo necesitan trabajar con recursos como bases de datos locales, archivos y conexiones de red. El patrón de uso es similar en todos los casos: adquiera el recurso, utilícelo y luego libérelo cuando haya terminado. Liberar el recurso es complicado porque podría omitir accidentalmente el código de limpieza o podría no ser obvio cuando haya terminado si el mismo recurso se utiliza en muchas partes de su programa. Este módulo le muestra tres formas de hacer que la liberación de recursos sin memoria sea menos propensa a errores: IDisposable, Finalizers y SafeHandle.
Enlaces útiles
- ¿Qué es el "código administrado"?
- Interfaz IDisposable
- Limpieza de recursos no administrados
- Finalizadores
- Usando las manijas seguras
Explorando por tu cuenta
- Limpieza de recursos no administrados
- Gestión de memoria y recolección de basura en .NET
- Clase SafeHandle
Prerrequisitos recomendados: Fundamentos de GC [CSC270]
Usando Async y Esperar [CSC350]
Las aplicaciones a menudo necesitan realizar operaciones de larga duración, como descargar datos de la nube o acceder al sistema de archivos local. Las bibliotecas que realizan este trabajo por usted generalmente ofrecen API asíncronas que permiten que su aplicación responda a las sugerencias de los usuarios mientras estas operaciones se ejecutan en segundo plano. Este módulo le muestra cómo usar async y esperar palabras clave para escribir este tipo de código asíncrono. También verá los detalles de la implementación subyacente y analizará algunas de las mejores prácticas a seguir al utilizar esta función de C#.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Fundamentos de GC [CSC270]
Escribiendo aplicaciones móviles multiproceso [CSC351]
Si una aplicación parece estar bloqueada, el usuario puede asumir que se ha bloqueado y reiniciar o incluso desinstalar la aplicación. La técnica principal para mantener su aplicación receptiva es delegar el trabajo a subprocesos en segundo plano para que el subproceso de la interfaz de usuario esté disponible para monitorear las acciones de los usuarios. Este módulo le muestra cómo usar las Tareas para mover el trabajo vinculado a la CPU en subprocesos en segundo plano. Verá cómo crear y administrar tareas, cómo manejar las excepciones y cómo respaldar la cancelación.
Enlaces útiles
Explorando por tu cuenta
- Conceptos básicos de los hilos administrados
- Método de Device.BeginInvokeOnMainThread (Acción)
- Xamarin.Essentials: MainThread
Prerrequisitos recomendados: usar Async y esperar [CSC350]
Introducción a la seguridad y sincronización de subprocesos [CSC352]
El código multiproceso puede aumentar el paralelismo y, por lo tanto, ayudar a que su aplicación se ejecute más rápido. Sin embargo, varios subprocesos requieren que usted administre su acceso a cualquier información compartida. Agregar la cantidad correcta de sincronización es complicado porque muy poco resulta en datos corruptos mientras que disminuye demasiado el paralelismo y ralentiza la aplicación. Este módulo comienza con una discusión exhaustiva de lo que hace que el código sea inseguro para que pueda identificar las partes de su aplicación que requieren sincronización. Luego le muestra cómo usar la clase Monitor y la palabra clave de bloqueo C# para sincronizar el acceso a los datos compartidos.
Enlaces útiles
Explorando por tu cuenta
Prerrequisitos recomendados: Escribir aplicaciones móviles multiproceso [CSC351]
Más sobre la sincronización [CSC353]
La gestión de varios subprocesos requiere un trabajo cuidadoso en dos áreas: la sincronización del acceso a los datos compartidos y la coordinación de la actividad de los subprocesos que trabajan juntos en una tarea común. Este módulo le muestra dos técnicas de sincronización: ReaderWriterLockSlim para permitir múltiples lecturas simultáneas y SemaphoreSlim para permitir el acceso completo por un número específico de subprocesos. El módulo también cubre tres patrones de coordinación: basado en eventos con ManualResetEventSlim, cuenta regresiva con CountdownEvent y cita con la clase Barrera. Finalmente, el módulo examina las colecciones seguras para subprocesos en el espacio de nombres System.Collections.Concurrent.
Enlaces útiles
Explorando por tu cuenta
Nota: Este módulo es una continuación de CSC352.
Consideraciones
De interés…
Recursos:
- Blog (EN | ES)
- Ruta de aprendizaje Xamarin
- Repositorio de la Ruta de aprendizaje CSharp
- ¿Cual es la mejor oportunidad para aprender a desarrollar aplicaciones moviles?
- Herramienta perfecta en el mundo del desarrollo móvil
- ¿Xamarin, la mejor solución del desarrollo de aplicaciones móviles para ti? (Parte 1 | Parte 2)
- Cognitive Services y Xamarin.Forms: Creando aplicaciones inteligentes
- Biblioteca Universal Xamarin
- Fondos de pantalla de Xamarin
[bucket id=»11045″ title=»Gracias por leer»]