Está en la página 1de 43

03 DESARROLLO

MOVILES 2
DE APLICACIONES

www.senati.edu.pe
DESARROLLO DE
APLICACIONES MOVILES 2
Desarrollar estrategias comunes en el desarrollo
para moviles Instructor:
www.senati.edu.pe
JORGE LUQUE CHAMBI
DESARROLLO DE APLICACIONES MOVILES 2

Desarrollar estrategias comunes en el desarrollo


para moviles
1. Programación de C#

www.senati.edu.pe
Desarrollar estrategias comunes en el
desarrollo para moviles
Programación en C# www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
• C # es un lenguaje orientado a objetos elegante y seguro que permite a los
desarrolladores crear una variedad de aplicaciones seguras y robustas que se
ejecutan en .NET Framework.
• Puede usar C # para crear aplicaciones cliente de Windows, servicios web XML,
componentes distribuidos, aplicaciones cliente-servidor, aplicaciones de bases de
datos y mucho, mucho más. Visual C # proporciona un editor de código
avanzado, diseñadores de interfaz de usuario convenientes, depurador integrado
y muchas otras herramientas para facilitar el desarrollo de aplicaciones basadas
en el lenguaje C # y .NET Framework.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Lenguaje C #
• La sintaxis de C # es altamente expresiva, pero también es simple y fácil de aprender. La
sintaxis entre llaves de C # será reconocible instantáneamente para cualquier persona
familiarizada con C, C ++ o Java.
• Los desarrolladores que conocen cualquiera de estos lenguajes pueden comenzar a
trabajar productivamente en C # en poco tiempo. La sintaxis de C # simplifica muchas de
las complejidades de C ++ y proporciona características potentes como tipos anulables,
enumeraciones, delegados, expresiones lambda y acceso directo a la memoria. C # admite
métodos y tipos genéricos, que proporcionan mayor seguridad y rendimiento de tipo, e
iteradores, que permiten a los implementadores de las clases de colección definir
comportamientos de iteración personalizados que son fáciles de usar por el código del
cliente.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Lenguaje C #
• Las expresiones de Language-Integrated Query (LINQ) hacen que la consulta fuertemente
tipada sea una construcción de lenguaje de primera clase.
• Como lenguaje orientado a objetos, C # admite los conceptos de encapsulación, herencia y
polimorfismo. Todas las variables y métodos, incluido el Main método, el punto de entrada
de la aplicación, se encapsulan dentro de las definiciones de clase. Una clase puede
heredar directamente de una clase principal, pero puede implementar cualquier cantidad de
interfaces.
• Los métodos que anulan los métodos virtuales en una clase principal requieren la override
palabra clave como una forma de evitar la redefinición accidental. En C #, una estructura es
como una clase ligera; Es un tipo de pila asignada que puede implementar interfaces pero
no admite la herencia.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Lenguaje C #
• Además de estos principios básicos orientados a objetos, C # facilita el desarrollo de
componentes de software a través de varias construcciones de lenguaje innovadoras, que
incluyen lo siguiente:
• Firmas de métodos encapsulados llamados delegados , que permiten notificaciones de eventos de
tipo seguro.
• Propiedades, que sirven como accesorios para variables de miembros privados.
• Atributos, que proporcionan metadatos declarativos sobre tipos en tiempo de ejecución.
• Comentarios de documentación XML en línea.
• Language-Integrated Query (LINQ), que proporciona capacidades de consulta integradas en una
variedad de fuentes de datos.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Arquitectura de la plataforma .NET Framework
• Los programas de C # se ejecutan en .NET Framework, un componente integral de
Windows que incluye un sistema de ejecución virtual llamado Common Language Runtime
(CLR) y un conjunto unificado de bibliotecas de clases. El CLR es la implementación
comercial por parte de Microsoft de la infraestructura de lenguaje común (CLI), un estándar
internacional que es la base para crear entornos de ejecución y desarrollo en los que los
idiomas y las bibliotecas trabajan juntos sin problemas.
• El código fuente escrito en C # se compila en un lenguaje intermedio (IL) que se ajusta a la
especificación CLI. El código IL y los recursos, como los mapas de bits y las cadenas, se
almacenan en el disco en un archivo ejecutable llamado ensamblado, generalmente con
una extensión de .exe o .dll. Un ensamblado contiene un manifiesto que proporciona
información sobre los tipos, la versión, la cultura y los requisitos de seguridad del
ensamblaje.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Arquitectura de la plataforma .NET Framework
• Cuando se ejecuta el programa C #, el ensamblado se carga en el CLR, lo que puede
tomar varias acciones en función de la información en el manifiesto. Luego, si se cumplen
los requisitos de seguridad, el CLR realiza una compilación Just-In-Time (JIT) para convertir
el código IL en instrucciones de máquina nativas.
• El CLR también proporciona otros servicios relacionados con la recolección automática de
basura, el manejo de excepciones y la administración de recursos. El código que ejecuta el
CLR a veces se denomina "código administrado", en contraste con el "código no
administrado", que se compila en un lenguaje de máquina nativo que se dirige a un sistema
específico.
• El siguiente diagrama ilustra las relaciones de tiempo de compilación y tiempo de ejecución
de los archivos de código fuente de C #, las bibliotecas de clase de .NET Framework, los
ensamblados y el CLR.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Arquitectura de la plataforma .NET Framework
• La interoperabilidad del lenguaje es una característica clave de .NET Framework. Debido a
que el código IL producido por el compilador de C # se ajusta a la Especificación de tipo
común (CTS), el código IL generado a partir de C # puede interactuar con el código
generado a partir de las versiones .NET de Visual Basic, Visual C ++ o cualquiera de más
de 20 Lenguajes compatibles con CTS.
• Un único ensamblado puede contener múltiples módulos escritos en diferentes lenguajes
.NET, y los tipos pueden referenciarse entre sí como si estuvieran escritos en el mismo
idioma.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Arquitectura de la plataforma .NET Framework
• Además de los servicios de tiempo de ejecución, .NET Framework también incluye una
extensa biblioteca de más de 4000 clases organizadas en espacios de nombres que
proporcionan una amplia variedad de funcionalidades útiles para todo, desde la entrada y
salida de archivos hasta la manipulación de cadenas y el análisis XML, hasta controles de
formularios Windows Forms.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Espacios de nombres
• Los espacios de nombres se usan mucho en la programación de C # de dos maneras.
Primero, .NET usa espacios de nombres para organizar sus muchas clases, de la siguiente
manera:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Espacios de nombres
• El sistema es un espacio de nombres y la consola es una clase en ese espacio de
nombres. La using palabra clave se puede utilizar para que no se requiera el nombre
completo, como en el siguiente ejemplo:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Espacios de nombres
• En segundo lugar, declarar sus propios espacios de nombres puede ayudarlo a controlar el
alcance de los nombres de clase y método en proyectos de programación más grandes.
• Use la palabra clave de espacio de nombres para declarar un espacio de nombres, como
en el siguiente ejemplo:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Espacios de nombres
Resumen de espacios de nombres
• Los espacios de nombres tienen las siguientes propiedades:
• Organizan grandes proyectos de código.
• Se delimitan mediante el uso del .operador.
• La using directiva elimina el requisito de especificar el nombre del espacio de nombres
para cada clase.
• El global espacio de nombres es el espacio de nombres "raíz": global::System siempre
se referirá al espacio de nombres del sistema .NET .

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos, variables y valores
• C # es un lenguaje fuertemente tipado. Cada variable y constante tiene un tipo, al
igual que cada expresión que se evalúa como un valor. Cada firma de método
especifica un tipo para cada parámetro de entrada y para el valor de retorno.
• La biblioteca de clases de .NET Framework define un conjunto de tipos
numéricos integrados, así como tipos más complejos que representan una amplia
variedad de construcciones lógicas, como el sistema de archivos, conexiones de
red, colecciones y matrices de objetos y fechas.
• Un programa típico de C # utiliza tipos de la biblioteca de clases, así como tipos
definidos por el usuario que modelan los conceptos que son específicos del
dominio del problema del programa.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos, variables y valores
La información almacenada en un tipo puede incluir lo siguiente:
• El espacio de almacenamiento que requiere una variable del tipo.
• Los valores máximos y mínimos que puede representar.
• Los miembros (métodos, campos, eventos, etc.) que contiene.
• El tipo base del que hereda.
• La ubicación donde se asignará la memoria para las variables en tiempo de
ejecución.
• Los tipos de operaciones permitidas.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos, variables y valores
• El compilador utiliza información de tipo para asegurarse de que todas las
operaciones que se realizan en su código sean de tipo seguro . Por ejemplo, si
declara una variable de tipo int , el compilador le permite usar la variable en
operaciones de suma y resta.
• Si intenta realizar esas mismas operaciones en una variable de tipo bool , el
compilador genera un error, como se muestra en el siguiente ejemplo:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Especificar tipos en declaraciones variables
• Cuando declara una variable o constante en un programa, debe especificar su
tipo o utilizar la palabra clave var para permitir que el compilador deduzca el tipo.
• El siguiente ejemplo muestra algunas declaraciones de variables que utilizan
tipos numéricos integrados y tipos complejos definidos por el usuario:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Especificar tipos en declaraciones variables
• Los tipos de parámetros de método y valores de retorno se especifican en la
firma del método. La siguiente firma muestra un método que requiere un int como
argumento de entrada y devuelve una cadena:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Especificar tipos en declaraciones variables
• Después de declarar una variable, no se puede volver a declarar con un nuevo
tipo y no se le puede asignar un valor que no sea compatible con su tipo
declarado.
• Por ejemplo, no puede declarar un int y luego asignarle un valor booleano de
true. Sin embargo, los valores se pueden convertir a otros tipos, por ejemplo,
cuando se asignan a nuevas variables o se pasan como argumentos de método.
• El compilador realiza automáticamente una conversión de tipo que no causa
pérdida de datos. Una conversión que podría causar la pérdida de datos requiere
un elenco en el código fuente.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos incorporados
• C # proporciona un conjunto estándar de tipos numéricos integrados para
representar enteros, valores de coma flotante, expresiones booleanas, caracteres
de texto, valores decimales y otros tipos de datos.
• También hay cadenas integradas y tipos de objetos . Estos están disponibles
para su uso en cualquier programa de C #.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos personalizados
• Utiliza las construcciones struct , class , interface y enum para crear tus propios
tipos personalizados. La biblioteca de clases de .NET Framework en sí es una
colección de tipos personalizados proporcionados por Microsoft que puede usar
en sus propias aplicaciones.
• De forma predeterminada, los tipos más utilizados en la biblioteca de clases
están disponibles en cualquier programa de C #. Otros solo están disponibles
cuando agrega explícitamente una referencia de proyecto al ensamblaje en el
que están definidos.
• Una vez que el compilador tiene una referencia al ensamblado, puede declarar
variables (y constantes) de los tipos declarados en ese ensamblado en el código
fuente.
www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos genéricos
• Se puede declarar un tipo con uno o más parámetros de tipo que sirven como
marcador de posición para el tipo real (el tipo concreto ) que proporcionará el
código del cliente cuando cree una instancia del tipo.
• Tales tipos se llaman tipos genéricos . Por ejemplo, el .NET Framework tipo List
<T> tiene un parámetro de tipo que, por convención, se le da el nombre de T .
• Cuando crea una instancia del tipo, especifica el tipo de los objetos que
contendrá la lista, por ejemplo, cadena:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos genéricos
• El uso del parámetro tipo permite reutilizar la misma clase para contener
cualquier tipo de elemento, sin tener que convertir cada elemento en objeto.
• Las clases de colecciones genéricas se denominan colecciones fuertemente
tipadas porque el compilador conoce el tipo específico de los elementos de la
colección y puede generar un error en tiempo de compilación si, por ejemplo,
intenta agregar un entero al stringsobjeto en el ejemplo anterior.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Tipos implícitos, tipos anónimos y tipos de tuplas
• Como se indicó anteriormente, puede escribir implícitamente una variable local
(pero no miembros de la clase) utilizando la palabra clave var . La variable aún
recibe un tipo en tiempo de compilación, pero el compilador proporciona el tipo.
• En algunos casos, es inconveniente crear un tipo con nombre para conjuntos
simples de valores relacionados que no tiene la intención de almacenar o pasar
fuera de los límites del método. Puede crear tipos anónimos para este propósito.
• Es común querer devolver más de un valor de un método. Puede crear tipos de
tuplas que devuelven múltiples valores en una sola llamada a método.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
El sistema de tipo común
• Es importante comprender dos puntos fundamentales sobre el sistema de tipos
en .NET Framework:
• Apoya el principio de herencia. Los tipos pueden derivar de otros tipos, llamados tipos
base . El tipo derivado hereda (con algunas restricciones) los métodos, propiedades y
otros miembros del tipo base. El tipo base puede derivar a su vez de otro tipo, en cuyo
caso el tipo derivado hereda los miembros de ambos tipos base en su jerarquía de
herencia. Todos los tipos, incluidos los tipos numéricos integrados, como Int32 (palabra
clave C #:) int, derivan en última instancia de un único tipo base, que es Object (palabra
clave C #:) object. Esta jerarquía de tipos unificada se denomina Sistema de tipos
común (CTS). Para obtener más información sobre la herencia en C #, consulte
Herencia .

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
El sistema de tipo común
• Es importante comprender dos puntos fundamentales sobre el sistema de tipos
en .NET Framework:
• Cada tipo en el CTS se define como un tipo de valor o un tipo de referencia . Esto
incluye todos los tipos personalizados en la biblioteca de clases .NET y también sus
propios tipos definidos por el usuario. Los tipos que define utilizando la palabra clave
struct o enum son tipos de valor. Para obtener más información sobre los tipos de valor,
vea Tipos de valor . Los tipos que define utilizando la palabra clave class son tipos de
referencia. Para obtener más información sobre los tipos de referencia, vea Clases . Los
tipos de referencia y los tipos de valor tienen diferentes reglas de tiempo de compilación
y diferentes comportamientos de tiempo de ejecución.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Tipos de referencia
• Un tipo que se define como una clase es un tipo de referencia . En el tiempo de
ejecución, cuando declara una variable de un tipo de referencia, la variable
contiene el valor nulo hasta que cree explícitamente una instancia de la clase
utilizando el nuevo operador, o le asigne un objeto de un tipo compatible que
puede haberse creado en otro lugar , como se muestra en el siguiente ejemplo:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Tipos de referencia
• Cuando se crea el objeto, se asigna suficiente memoria en el montón
administrado para ese objeto específico, y la variable contiene solo una
referencia a la ubicación de dicho objeto.
• Los tipos en el montón administrado requieren una sobrecarga tanto cuando se
asignan como cuando son reclamados por la funcionalidad de administración de
memoria automática del CLR, que se conoce como recolección de basura .
• Sin embargo, la recolección de basura también está altamente optimizada y en la
mayoría de los escenarios, no crea un problema de rendimiento.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Declarando clases
• Las clases se declaran utilizando la palabra clave class seguida de un
identificador único, como se muestra en el siguiente ejemplo:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Declarando clases
• La class palabra clave está precedida por el nivel de acceso. Como se usa public
en este caso, cualquiera puede crear instancias de esta clase. El nombre de la
clase sigue a la class palabra clave. El nombre de la clase debe ser un nombre
de identificador de C # válido .
• El resto de la definición es el cuerpo de la clase, donde se definen el
comportamiento y los datos. Los campos, propiedades, métodos y eventos en
una clase se denominan colectivamente miembros de la clase .

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Creando objetos
• Aunque a veces se usan indistintamente, una clase y un objeto son cosas
diferentes. Una clase define un tipo de objeto, pero no es un objeto en sí mismo.
Un objeto es una entidad concreta basada en una clase, y a veces se le conoce
como una instancia de una clase.
• Los objetos se pueden crear utilizando la nueva palabra clave seguida del
nombre de la clase en la que se basará el objeto, de esta manera:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Creando objetos
• Cuando se crea una instancia de una clase, una referencia al objeto se devuelve
al programador.
• En el ejemplo anterior, object1 es una referencia a un objeto en el que se basa
Customer. Esta referencia se refiere al nuevo objeto pero no contiene los datos
del objeto en sí. De hecho, puede crear una referencia de objeto sin crear un
objeto en absoluto:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Creando objetos
• No recomendamos crear referencias de objetos como este que no hagan
referencia a un objeto porque intentar acceder a un objeto a través de dicha
referencia fallará en el tiempo de ejecución.
• Sin embargo, se puede hacer una referencia para hacer referencia a un objeto,
ya sea creando un nuevo objeto o asignándolo a un objeto existente, como este:

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Herencia de clase
• Las clases son totalmente compatibles con la herencia , una característica
fundamental de la programación orientada a objetos. Cuando crea una clase,
puede heredar de cualquier otra interfaz o clase que no esté definida como
sellada , y otras clases pueden heredar de su clase y anular los métodos
virtuales de la clase.

www.senati.edu.pe
DESARROLLO DE APLICACIONES MOVILES 2

Programación de C#
Clases
Herencia de clase
• La herencia se logra mediante el uso de una derivación , lo que significa que una
clase se declara mediante el uso de una clase base de la que hereda datos y
comportamiento.
• Una clase base se especifica agregando dos puntos y el nombre de la clase base
después del nombre de la clase derivada, así:

www.senati.edu.pe
www.senati.edu.pe

También podría gustarte