Buscar este blog

Mostrando las entradas con la etiqueta Visual Studio. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Visual Studio. Mostrar todas las entradas

lunes, 16 de junio de 2014

Separar la capa de dominio de un EDMX

Introducción

Entity Framework (EF) es un asignador objeto-relacional que permite a los desarrolladores de .NET trabajar con datos relacionales usando objetos específicos del dominio. Elimina la necesidad de la mayor parte del código de acceso a datos que los desarrolladores suelen tener que escribir.
Para empezar debemos definir si vamos a crear una nueva base de datos o si vamos a usar una existente, y definir si queremos usar solo código o utilizar un diseñador.
Lo anterior nos proporciona tres puntos de partida posibles:
  • Code First: Definir el modelo en el código y después generar una base de datos, o sino, crear un código basado en el modelo que se asigna a una base de datos existente
  • Model First: Para definir el modelo con cuadros y líneas y después generar una base de datos
  • Database First: Para crear un modelo de cuadros y líneas que se asigna a una base de datos existente
Tanto Model First como Database First usan Entity Framework Designer. El modelo se almacena en un archivo EDMX (extensión .edmx) y se puede ver y editar en Entity Framework Designer. Las clases con las que interactúa en la aplicación se generan automáticamente a partir del archivo EDMX en base a Plantillas T4 vinculadas al archivo EDMX
El problema radica en el fuerte acoplamiento de las clases generadas del modelo y Entity Framework, haciendo imposible tener una capa exclusiva para el dominio, y otra para la persistencia.
En este artículo demostraremos que si es posible hacerlo, simplemente trasladando la Plantilla T4 de las clases al proyecto adecuado
Para tal fin empezaremos con el el enfoque Model First, ya que la idea es tener un archivo EDMX, y se aplicaría también para Database First

Definiendo Proyectos

Empezaremos creando la estructura de proyectos:
  • Dominio: Ejemplo.Dominio
  • Acceso a Datos: Ejemplo.Dal
  • Presentación: Ejemplo.WinForms

Definiendo el Modelo

En el proyecto "Ejemplo.Dal", crearemos el modelo
Definimos un modelo muy básico, basado en los códigos de ubicación geográfica del Perú

Generando Base de Datos

En este punto ya es posible generar nuestra base de datos, así que vamos a hacerlo de una buena vez.
Hacemos click en nueva conexión, para generar nuestra nueva base de datos, si la conexión ya existiese, pues la eligen, y se sobreescribirá con los cambios al modelo, Ojo!! que si sobreescriben el modelo, también pierden los datos de las tablas modificadas.
Configuramos la conexion como se muestra en la siguiente imagen:
Nos aparecerá un mensaje de que la base de datos no existe y si deseamos crearla, le decimos que si, y listo.

Ahora le damos en siguiente, y si te pregunta, que Entity Framework quieres usar, escoge la que se adecue a tus necesidades, para mi caso escogeré la versión 6
Ya tenemos el Script de actualización/creación de la base de datos
Le damos en finalizar, y nos abrirá una ventana de consulta SQL, la misma que debemos ejecutarla, presionando el botón que resalto a continuación:


Separando Clases POCO del EDMX

Bien, ahora ya podemos hacer uso de nuestra base de datos, operaciones CRUD, Extensión de clases a través de las clases parciales, pero el problema radica, como se menciono anteriormente, en que los archivos de las clases están "Confinados" a estar junto al archivo EDMX, como lo vemos? pues mostrando todos los archivos:
Como se aprecia, de Modelo.edmx, cuelgan varias plantillas T4, una de ellas es Modelo.tt, de Modelo.tt cuelgan todas nuestras clases!! Esto hace que estas clases estén condenadas, según este esquema, a quedarse pegadas al edmx, y para poder usarlas necesariamente tendríamos que cargar con la mochila de Entity Framework, pero ahora viene el punto interesante de este artículo.
Vamos a copiar Modelo.tt al proyecto Ejemplo.Dominio, para eso agregamos una nueva plantilla a nuestra capa de dominio, y la llamamos Modelo.tt
Y reemplazamos su contenido por el del Modelo.tt que esta en la capa Dal.
Las plantillas T4 se ejecutan automáticamente al guardarlas, así es que cuando guarden esta nueva plantilla, tendrán un bonito mensaje de error como este:
Que paso?, pues simplemente, el contenido de la plantilla T4 sigue suponiendo que su EDMX se llama Modelo.EDMX y esta en la misma carpeta, pues entonces vamos a redireccionarlo.
Pensando un poquito, de acuerdo a la estructura de los proyectos, si tenia "Modelo.edmx" y necesito que suba una carpeta y luego vaya a "Ejemplo.dal", la ruta seria "..\Ejemplo.Dal\Modelo.edmx".
Y si guardamos ahora la plantilla, ya no debería salir ningún error, prueba de esto es que si mostramos todos los archivos en nuestra capa de dominio, veremos todas las clases de nuestro modelo
El trabajo estaría casi listo, pero como sabemos, la capa de persistencia debe tener la referencia a la capa de dominio, entonces se la agregamos

Ahora debemos de eliminar Modelo.tt de la capa de persistencia, simplemente click derecho y eliminar.
En este momento debería aparecer una serie de errores como estos:

Esto ocurre simplemente porque en la plantilla que genera el archivo Modelo.Context.vb falta agregar el import respectivo a la capa de dominio, entonces pasemos a "reparar" Modelo.Context.tt

Como ven, simplemente le agregue el import a Ejemplo.Dominio, y si guardan la plantilla dejaran de recibir esos errores
Ahora, la capa de Presentación debe tener referencia a la de dominio, entonces agregamos la de dominio a la de presentación

Claro esta, que entre la capa de dominio y la de presentación pueden y deben haber mas capas; del mismo modo, entre la capa de dominio y la de persistencia de datos, pueden y deben haber mas capas; por ejemplo si te decantas por DDD
Con lo visto hasta aquí, la capa de dominio ha quedado libre de cualquier referencia a entity framework, y esta apta para ser ampliada mediante clases parciales y usada en cualquier capa de toda la arquitectura escogida.
Espero les sea de ayuda en algún proyecto, y para la próxima entrega, implementaremos una capa de servicios para consumir datos desde la capa de persistencia.






Visual Basic .NET: Conectarse a una tabla o base de datos VFP (DBF)

Muchas veces se ha presentado la necesidad de conectarse a fuentes de datos como las de VFP, en esta oportunidad lo haremos usando Visual Basic .NET.
Para tal fin nos hicimos con una copia del archivo de centros poblados del Perú, son alrededor de 18700 registros.
Bueno, empecemos creando un nuevo proyecto de consola y lo llamaremos ConectarseDBF

Ahora, por comodidad, agregamos una carpeta "Datos" al proyecto y copiamos el archivo de centros poblados "CCPP.dbf" a dicha carpeta, estableciendo en las propiedades "Copiar si es posterior"
Y ponemos el siguiente código:
Imports System.IO
Imports System.Data.Common

Module Module1

    Sub Main()
        Dim sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
            Path.Combine(My.Application.Info.DirectoryPath, "Datos") &
            ";Extended Properties=dBASE IV;"

        Using dbConn As New System.Data.OleDb.OleDbConnection(sConn)
            dbConn.Open()
            Dim comando = dbConn.CreateCommand
            comando.CommandText = "Select * from ccpp"
            Dim da As New OleDb.OleDbDataAdapter(comando)
            Dim dt As New DataTable
            da.Fill(dt)
            Mostrar(dt.Rows)
            dbConn.Close()
        End Using
    End Sub

    Private Sub Mostrar(filas As DataRowCollection)
        Console.WriteLine(Format("Hay {0} Registros", filas.Count))
        Console.WriteLine("Mostrando los 10 primeros")
        For i = 0 To 9
            For Each columna In filas(i).ItemArray
                Console.Write(columna & vbTab)
            Next
        Next
        Console.ReadKey()
    End Sub

End Module
Ejecutamos y nos sale:

jueves, 21 de marzo de 2013

Desarrollo en Microsoft Visual Studio / Módulo 33 - Windows Services

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 33 - Windows Services

Documentos

Preguntas

  1. De las siguientes afirmaciones sobre servicios windows, cuáles son verdaderas?
    1. Los servicios Windows no tienen interface gráfica.
    2. Tiene el mismo comportamiento de un servicio web.
    3. Los Servicios de Windows son aplicaciones que funcionan con la interacción del usuario.
    4. Los servicios windows pueden iniciarse automáticamente cuando se inicia el equipo.
  2. El método OnShutDown, se ejecuta cuando el sistema se está cerrando y especifica lo que tiene que suceder inmediatamente antes de que se cierre el sistema.
    1. Verdadero
    2. FALSO
  3. Cuáles son los posibles valores de la propiedad StartType?
    1. Enabled, Disabled, Automatic
    2. Automatic, Disabled, Manual
    3. Disabled, Manual, Automatic
    4. Enabled, Disabled, Manual
  4. En que edición de Visual Studio 2010 no esta disponible la plantilla de Servicios Windows y la funcionalidad asociada?
    1. Ultime
    2. Professional
    3. Standard
  5. Cuál es el comando que se utiliza para la desinstalación de un servicio Windows?
    1. installutil / s yourproject.exe
    2. installutil / u yourproject.exe
    3. installutil / i yourproject.exe
    4. installutil yourproject.exe
  6. Propiedad que obtiene o establece el código de salida para el servicio?
    1. CanStop
    2.  AutoLog
    3.  ExitCode
  7. La clase ServiceController permite conectarse a un servicio en ejecución o detenido, manipularlo u obtener información al respecto
    1. Verdadero
    2. FALSO

Desarrollo en Microsoft Visual Studio / Módulo 32 - Hilos (parte 2)

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 32 - Hilos (parte 2)

Documentos

Preguntas

  1. Un ThreadId del sistema operativo no tiene relación fija con un Thread administrado
    1. TRUE
    2. FALSE
    3. NO APLICA
  2. De los temporizadores existentes en el .Net Framework este es el más ligero
    1. System.Windows.Forms.Timer
    2. System.Timers.Timer
    3. System.Timers.ReverseClock 
    4. System.Threading.FastClock 
    5. System.Threading.Timer 
  3. La instrucción de la API de Windows ExitThread equivale a este método del .Net Framework
    1. Thread.ForceExit
    2. Ningún equivalente
    3. Thread.Abort 
    4. Thread.Suspend 
    5. Thread.Close 
  4. Son delegados usados para la inicialización de threads
    1. ThreadStart
    2. UnParameterizedThreadStart
    3. StartThreadObject 
    4. StartParametrizedThreadObject 
    5. ParameterizedThreadStart
  5. ________ es un primitiva de sincronización definida por el usuario que permite que varios subprocesos (denominados participantes) trabajar simultáneamente en un algoritmo en fases
    1. Barrier
    2. SpinLock
    3. SpinWait
    4. InterLocked 
    5. SemaphoreSlim 
  6. El modelo asincrónico basado en eventos es un conjunto de
    1. APIS
    2. Interfaces
    3. Buenas Prácticas
    4. a y c
    5. b y c
  7. Solo se debe utilizar _____________ si medienta el perfilado de código se ha determinado que el uso de __________ esta causando problemas de velocidad
    1. SpinLock, SpinWait
    2. SpinLock, Monitor
    3. Monitor, SpinLock
    4. SpinLock, Mutex 
    5. Mutex, SpinLock
  8. "La clase _______________ habilita a varios subprocesos para leer un recurso de forma simultánea, aunque para escribir en el recurso, el subproceso debe esperar a un bloqueo exclusivo."
    1. Interlocked
    2. Mutex 
    3. Monitor
    4. ReaderWriterLockSlim
    5. ReaderAndWriterLockSlim
  9. El multithreading resuelve problemas de rendimiento y de capacidad de respuesta, pero al hacerlo también crea nuevos problemas, como _______________ y ______________
    1. Consumo de memoria
    2. Interbloqueos
    3. Recalentamiento de la CPU
    4. Condiciones de carrera 
    5. Costo de hardware
  10. Existen en el Framework
    1. ReaderWriterLockSlim
    2. ReaderWriterLock
    3. ReaderWriterSlimLock 
    4. ReaderSlimWriterLock
    5. ReaderAnyWriterOnlyLock 
  11. Un interbloqueo tiene lugar cuando
    1. el número de CPUs (o cores) es excedido por el número de threads en ejecución
    2. cuando un recurso queda bloqueado por un thread que ya no existe pues la aplicación se ha cerrado abruptamente 
    3. dos threads intentan bloquear un recurso que ya ha bloqueado uno de estos threads
    4. dos threads han bloqueado un recursos que ya ha sido bloqueado por uno de estos threads 
    5. dos recursos son accedidos por el mismo thread en el mismo instante 

Desarrollo en Microsoft Visual Studio / Módulo 31 - Hilos (parte 1)

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 31 - Hilos (parte 1)

Documentos

Preguntas

  1. Los threads creados por medio del Threadpool
    1. Son creados como threads en segundo plano
    2. Son creados como threads en primer plano
    3. La propiedad IsBackground debe ser establecida por el desarrollador 
    4. La propiedad IsBackground es eliminado de los threads 
    5. En el contexto del ThreadPool la propiedad IsBackground es irrelevante 
  2. En un BackgroundWorker Si la operación en segundo plano requiere parametros se debe hacer uso de
    1. Run
    2. RunWorkerAsync(object)
    3. DoWork
    4. RunWorkerAsync
    5. Run(object) 
  3. Para crear un thread por medio del ThreadPool se debe usar el método
    1. AddUserWorkItem
    2. PopUserWorkItem 
    3. QueueUserWorkItem
    4. QueueUserThread 
    5. EnQueueUserThread
  4. Un proceso es
    1. Una tarea del sistema operativo
    2. Un conjunto de instrucciones agrupadas con un(os) objetivo(s)  especifico(s). 
    3. Un Programa
    4. Un conjunto de instrucciones
    5. Los procesos no existen, existen los hilos
  5. Cada hilo tiene su propio ________, así que cada vez que que se suspende un hilo para permitir la ejecución de otro, su________ es guardado y restablecido nuevamente solo cuando es su turno de ejecución
    1. contexto
    2. programa
    3. proceso 
    4. usuario 
    5. servicio
  6. El .Net Framework utiliza threads en modo
    1. kernel
    2. usuario 
    3. no usa threads 
    4. híbrido 
    5. crea un nuevo tipo de thread 
  7. Se puede hacer multitarea en un solo procesador?
    1. Verdadero
    2. Falso
  8. Desde la clase BackgroundWorker se pueden manipular elementos de la UI desde los controladores de eventos
    1. DoWork
    2. ProgressChanged
    3. OnUIPipeChannelUpdated
    4. RunWorkerCompleted
    5. Disposed
  9. Un hilo (thread) es:
    1. Una funcionalidad que permite ejecuciones en paralelo
    2. La unidad de procesamiento más pequeña que puede ser agendada por un sistema operativo 
    3. Es un programa embebido dentro de un programa principal 
    4. Una función especial para hacer cosas en paralelo 
    5. Es un sinónimo de proceso
  10. Hay tres maneras en que un proceso puede suspender su ejecución
    1. Auto suspensión del proceso o finalización del proceso
    2. Fallo de corriente
    3. Interrupción por el reloj del procesador (Quantum de tiempo)
    4. Error del sistema
    5. Interrupción por dispositivos de E/S
  11. Qué sucede si estamos utilizando varios threads en una aplicación que se ejecuta en una  maquina con una sola CPU?
    1. Los thread se ejecutan en paralelo
    2. Los thread se ejecutan dando la ilusión de paralelismo gracias a la alternancia de periodos de ejecución
    3. Un thread se ejecuta solo cuando el otro ha finalizado
    4. No puden existir threads en ese escenario
    5. Se simula automaticamente otro core por cada thread
  12. Qué sucede si estamos utilizando varios threads en una aplicación que se ejecuta en una  maquina con múltiples CPU?
    1. Se pueden ejecutar en paralelo máximo el mismo número de threads que de CPUS o cores disponibles
    2. Los thread se ejecutan dando la ilusión de paralelismo gracias a la alternancia de periodos de ejecución
    3. Un thread se ejecuta solo cuando el otro ha finalizado 
    4. No puden existir threads en ese escenario 
    5. Si no hay CPUS disponibles los thread compartiran tiempo de CPU en un mismo core
  13. La clase ___________ permite ejecutar una operación en un subproceso dedicado e independiente
    1. RunWorkerAsync
    2. ThreadPool
    3. Thread
    4. BackgroundWorker
    5. AsyncCallback

Desarrollo en Microsoft Visual Studio / Módulo 30 - Serialización

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 30 - Serialización

Documentos

Preguntas

  1. Cual de las siguientes no es una clase o espacio de nombre para la serialización
    1. SerializableAttribute
    2. NonSerializedAttribute
    3. Serializable.InteropServices
  2. la clase SerializableAttribute
    1. Indica que una clase puede serializarse.
    2. Se puede utilizar para impedir que se serialicen determinados campos de un objeto
    3. Indica que una clase debe recibir una notificación cuando ha finalizado la deserialización de todo el gráfico de objetos
    4. Describe el origen y destino de una secuencia de serialización determinada y proporciona un contexto definido por el llamador adicional
  3. la clase SerializationInfo
    1. Almacena todos los datos necesarios para serializar o deserializar un objeto. No se puede heredar esta clase.
    2. Administra en tiempo de ejecución los procesos de serialización
    3. Realiza el seguimiento de los objetos a medida que se deserializan
    4. Proporciona funcionalidad básica para los formateadores de serialización de Common Language Runtime
  4. Para serializar un objeto en formato XML se debe importa la clase:
    1. System.Serializers
    2. System.Xml.Serialization
    3. System.Xml.Serializers
    4. System.Serialization
  5. La interfaz Iserializable
    1. Establece una propiedad Normalized para ser utilizada por la infraestructura de .NET Framework
    2. Contiene campos que se pueden utilizar para pasar los delegados de eventos a un método Deserialize seguro para la ejecución de subprocesos de XmlSerializer
    3. Permite que un objeto controle su propia serialización y deserialización
    4. Indica a XmlSerializer que el miembro debe tratarse como texto XML cuando se serializa o se deserializa la clase contenedora
  6. La interfaz IXmlSerializable
    1. Establece una propiedad Normalized para ser utilizada por la infraestructura de .NET Framework
    2. Contiene campos que se pueden utilizar para pasar los delegados de eventos a un método Deserialize seguro para la ejecución de subprocesos de XmlSerializer
    3. Proporciona formato personalizado para la serialización y deserialización XML
    4. Indica a XmlSerializer que el miembro debe tratarse como texto XML cuando se serializa o se deserializa la clase contenedora
  7. Para serializar y deserializar elementos o atributos que no se encuentren en el esquema original se debe:
    1. Utilizar los atributos XmlAnyElementAttribute y XmlAnyAttributeAttribute
    2. Implementar la interfaz IXmlSerializable para controlar el resultado XML
    3. utilizar System.ComponentModel.DefaultValueAttribute para especificar el valor predeterminado
    4. Agregar espacios de nombres XML a un documento XML,

Desarrollo en Microsoft Visual Studio / Módulo 29 - Globalización


Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 29 - Globalización

Documentos

Preguntas

  1. System.Resources hace referencia a:
    1. Las herramientas de implementación de Visual Studio que permiten distribuir varias versiones de la aplicación para distintas configuraciones regionales.
    2. Las clases que definen información relativa a la referencia cultural, incluido el idioma, el país o región, los calendarios utilizados, los modelos de formato para las fechas, la moneda y los números y el criterio de ordenación de las cadenas.
    3. Las clases e interfaces que permiten a los programadores crear, almacenar y administrar diversos recursos específicos de la referencia cultural que se utilizan en una aplicación.
    4. Las clases, interfaces y tipos de valor que agilizan y optimizan el proceso de desarrollo y ofrecen acceso a las funciones del sistema.
  2. Es recomendable como práctica de globalización para aplicaciones de ASP.NET:
    1. Establezca explícitamente las propiedades CurrentUICulture y CurrentCulture en su aplicación.
    2. Basarse en valores predeterminados y evitar explícitamente las propiedades CurrentUICulture y CurrentCulture en su aplicación.
    3. Teniendo en cuenta que las aplicaciones de ASP.NET son administradas y, por lo tanto, no deben utilizar las mismas clases que otras aplicaciones administradas para recuperar, mostrar y tratar información basada en la referencia cultural.
    4. Tenga en cuenta que el valor de uiCulture debe específicarlo en la apicación ya que no dependen del idioma aceptado por el explorador.
  3. System.Globalization hace referencia a:
    1. Las clases e interfaces que permiten a los programadores crear, almacenar y administrar diversos recursos específicos de la referencia cultural que se utilizan en una aplicación.
    2. Las clases que definen información relativa a la referencia cultural, incluido el idioma, el país o región, los calendarios utilizados, los modelos de formato para las fechas, la moneda y los números y el criterio de ordenación de las cadenas.
    3. Las clases, interfaces y tipos de valor que agilizan y optimizan el proceso de desarrollo y ofrecen acceso a las funciones del sistema.
    4. Las herramientas de implementación de Visual Studio que permiten distribuir varias versiones de la aplicación para distintas configuraciones regionales.
  4. Cúal de las siguientes no es una clase de System.Globalization?
    1. Calendar
    2. CultureNotFoundException
    3. GregorianCalendar
    4. CultureTypes
    5. TextInfo
  5. Visual Studio incluye compatibilidad con características bidireccionales, esto significa que:
    1. Permite establecer un canal de dos vías para reconocer la referencia cultural.
    2. Admiten idiomas que se escriben de derecha a izquierda.
    3. Regula la información cultural para que sea accesible por el usuario final dependiendo del explorador.
    4. Permite modificación del registro de datos para que cualquier usuario pueda corregir un error de referencia idiomática.
    5. Ninguna de las respuestas es correcta.
  6. Es una práctica recomendada de localización.
    1. Trasladar todos los recursos localizables a archivos DLL independientes que sean sólo de recursos.
    2. No incluya en el código no modificable las cadenas o recursos de la interfaz de usuario.
    3. Evite utilizar en la aplicación imágenes e iconos que contengan texto.
    4. Utilice la clase System.Resources.ResourceManager para recuperar recursos en función de la referencia cultural.
    5. Todas las respuestas son correctas.
  7. En el marco de desarrollo .NET a qué se le llama globalización?
    1. Al diseño de una aplicación a la que puedan tener acceso todos los usuarios independientemente de su condición física.
    2. Al proceso mediante el cual se diseñan y desarrollan productos de software que pueden funcionar para varias referencias culturales.
    3. A cualquier aplicación ASP.NET implementada en internet.
    4. A las aplicaciones que se conectan a traves de servicios.
    5. Todas las respuestas son correctas.

Desarrollo en Microsoft Visual Studio / Módulo 28 - Reflection

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 28 - Reflection

Documentos

Preguntas

  1. En la serialización, el permiso ______________ con el marcador SecurityPermissionAttribute.SerializationFormatter proporciona la capacidad de obtener y establecer miembros de tipos serializables, sin tener en cuenta la accesibilidad
    1. SecuritySerialized
    2. SerializedPermission
    3. SerializedDemand
    4. SecurityPermission
  2. Las aplicaciones denominadas exploradores de tipos son:
    1. Cargar tipos para ser reutilizados
    2. Seleccionar y ver información de tipos
    3. Ver tipos de datos del framework
    4. a y c
  3. Que es metadata?
    1. Datos muy grandes
    2. Información meta
    3. A y B
    4. Descripción de datos
  4. Es posible determinar si un tipo es génerico o no?
    1. SI
    2. NO
  5. Para determinar si un tipo es genérico o no se utiliza?
    1. IsGeneric
    2. IsGenericType
    3. GetGeneric
    4. No es posible.
  6. Las clases del espacio de nombres System.Reflection.Emit proporcionan una forma especializada de reflexión que permite:
    1. Ejecutar métodos en tiempo de ejecución
    2. Ejecutar tipos en tiempo de ejecución
    3. Compilar tipos en tiempo de ejecución
    4. Cargar clases en tiempo de ejecución
  7. Que tareas permite realizar la reflexión (seleccione las que apliquen):
    1. Enumerar tipos y miembros y examinar sus metadatos.
    2. Enumerar los procesos del sistema
    3. Enumerar y examinar ensamblados y módulos.
    4. Todas

Desarrollo en Microsoft Visual Studio / Módulo 27 - Profundización depuración de aplicaciones

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 27 - Profundización depuración de aplicaciones

Documentos

Preguntas

  1. Una aplicación en modo mixto es cualquier aplicación que
    1. Sea hecha con java y uno de los lenguajes .Net excluyendo C++
    2. Combine código nativo (C++) y código administrado (como Visual Basic, Visual C# )
    3. Sea C++ administrado que se ejecute en Common Language Runtime
    4. Sea hecha con más de un lenguaje de programación
    5. Sea hecha con java y uno de los lenguajes .Net incluyendo C++
  2. Los archivos de volcado no pueden ser generados para los siguientes lenguajes en las versiones Express
    1. C#
    2. F#
    3. C++
    4. ASP.NET
    5. Visual Basic
  3. Son metodos de creacion de un archivo de volcado de memoria
    1. Mientras depura un proceso en Visual Studio 2010, puede utilizar la opción Guardar volcado como del menú Depurar para guardar un archivo de volcado de memoria. Para obtener más información
    2. Si la depuración Just-In-Time está habilitada, puede asociar el depurador a un proceso bloqueado que se ejecuta fuera del depurador, interrumpir el proceso y, a continuación, guardar un archivo de volcado de memoria
    3. Puede guardar un archivo de volcado de memoria creado mediante la utilidad UserDump, que forma parte del paquete Herramientas de soporte de OEM
    4. Por medio de la instrucción Windbg /PID [pid] /bulk:[complete | | mini] /path:[file Path}
    5. Puede guardar un archivo de volcado de memoria creado mediante la utilidad Autodump+, que forma parte del paquete de Herramientas de depuración de Microsoft para Windows
  4. La depuración colaborativa se logra haciendo uso de
    1. Intellitrace
    2. Exportación e importación de datos de depuración
    3. IntelliDebug
    4. Papel
    5. Depuración remota
  5. Cuando se produce un bloqueo, puede guardar un archivo de volcado de memoria para depurarlo más adelante
    1. En el equipo de compilación
    2. En otro equipo que contenga los archivos de origen y los símbolos de depuración
    3. En el equipo donde se produjo el volcado
    4. a y b
    5. Ninguna de las anteriores
  6. Un archivo PDB sirve para
    1. Generar alli la información de depuración de manera incremental
    2. No sirve para nada
    3. Solo le sirve al entorno de desarrollo de Visual Studio
    4. Abrir la DB desde SQL Server y ver detalles del código fuente de un programa
    5. Solo se usa como compatibilidad con depuradores de C++
  7. Mover el código del predicado de una consulta LINQ a un método aparte puede facilitar las tareas de depuración de código LINQ?
    1. Verdadero
    2. FALSO
  8. El riesgo al depurar apliacaciones es latente para
    1. El equipo depurado
    2. El equipo del depurador
    3. En el servidor de dominio
    4. En a y b
    5. En ninguno
  9. Se puede hacer depuración remota en las siguientes versiones de Visual Studio
    1. Professional
    2. Express
    3. Ultimate
    4. Premium
    5. Enterprise
  10. En las aplicaciones en modo mixto, la evaluación de propiedades por parte del depurador es una operación
    1. delicada
    2. mixta
    3. costosa
    4. transparente
    5. nueva

miércoles, 20 de marzo de 2013

Desarrollo en Microsoft Visual Studio / Módulo 26 - Firmado de ensamblados

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 26 - Firmado de ensamblados

Documentos

Preguntas

  1. La firma de código garantiza que:
    1. El usuario puede saber de donde proviene el código ejecutable
    2. El código ejecutable no puede ser ejecutado sino por un usuario capaz de decifrar la firma digital
    3. EL usuario posee una firma sobre un contrato de software
    4. El código tiene embebido un mapa de bits que representa la rubrica del emisor
    5. El código ejecutable no ha sido alterado luego de su publicación
  2. La firma de codigo es usada para
    1. Determinar si un un troyano u otro tipo de programas maliciosos no esta haciendo uso del nombre o imagen de un programa conocido
    2. Determinar si un programa ha sido modificado o alterado por ejemplo por un virus
    3. Determinar si el software es malicioso
    4. Saltarse las validaciones de UAC
    5. Eliminar la necesidad de un usuario administrador para ejecutar un programa
  3. _________ es una tecnología desarrollada por Microsoft para permititr a los computadores verificar el origen de los programas, documentos y otros archivos de computador
    1. Digital Certificates
    2. AuthentiSign
    3. Code Signing
    4. Authenticode
    5. Autenticode
  4. El software sin firmar es peligroso?
    1. Verdadero
    2. Falso
  5. Si se firma un ejecutable y no se incluye la URL del servidor de timestamp puede pasar que:
    1. Nada, el parámetro es opcional tan solo para enriquecer la metadata
    2. Si el certificado no ha expirado no pasa nada
    3. Si el certificado ya expiro saldrá una advertencia indicando que el ejecutable firmado ya no es confiable
    4. El cliente sera notificado del certificado vencido por falta de pago haciendo pasar una vergüenza al emisor
    5. EL timestamp es utilizado como parte del hash del proceso de cifrado, asi que sino se incluye la validación siempre dara certificado inválido
  6. Athenticode fue reemplazado por Strong Name Assemblies en .Net Framework
    1. Verdadero
    2. Falso
  7. La firma de codigo NO es usada para
    1. Determinar si un un troyano u otro tipo de programas maliciosos no esta haciendo uso del nombre o imagen de un programa conocido
    2. Determinar si un programa ha sido modificado o alterado por ejemplo por un virus
    3. Determinar si el software es malicioso
    4. Saltarse las validaciones de UAC
    5. Eliminar la necesidad de un usuario administrador para ejecutar un programa

Desarrollo en Microsoft Visual Studio / Módulo 25 - Strong Name assemblies

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 25 - Strong Name assemblies

Documentos

Preguntas

  1. Los nombres seguros (Strong Names) cumplen los siguientes requisitos:
    1. Garantizan la exclusividad del nombre al basarse en pares de claves únicas.
    2. Garantizan la integración con otras referencias de ensamblado.
    3. Protegen la procedencia de la versión de un ensamblado.
    4. Proporcionan una comprobación de regulación de información.
    5. Proporcionan una estructuración adecuada al código de una aplicación.
  2. Cuál de las siguientes es una manera de firmar el ensamblado que proporciona el Kit de desarrollo de software de Windows (SDK)
    1. Usando atributos de ensamblado para insertar la información de nombre seguro en el código
    2. Con la herramienta LinkerId.exe
    3. Utilizar las opciones del compilador como keydelaysign en C#, Visual Basic o J#.
    4. Ninguna opción es correcta.
    5. Todas las opciones son correctas.
  3. Los ensamblados con el mismo nombre seguro (Strong Name):
    1. Solo necesitan compartir la firma digital.
    2. Pueden compartir la clave pública.
    3. Tienen que ser idénticos.
    4. Deben tener la misma firma digital, pero una diferente clave pública.
  4. Acerca del caché de ensamblados global no es correcto decir que
    1. Cada equipo donde se instala Common Language Runtime tiene una memoria caché de código denominada caché global de ensamblados
    2. La caché global de ensamblados almacena los ensamblados designados específicamente para ser compartidos por varias aplicaciones del equipo.
    3. Es necesario instalar los ensamblados en la caché global de ensamblados para que obtenga acceso a ellos el código de interoperabilidad COM o el código no administrado.
    4. Los ensamblados implementados en la caché global de ensamblados deben tener nombres seguros.
  5. Cuales son las maneras de implementar un ensamblado en la caché global de ensamblados (Seleccione todas las respuestas correctas)
    1. No hay forma de realizar esta operación.
    2. Usando un instalador diseñado para funcionar con la caché global de ensamblados.
    3. Usando la herramienta de terceros Al.exe
    4. Utilizando la herramienta de desarrollador Caché global de ensamblados (Gacutil.exe)
    5. Solo puede hacerse desde la versión 4.0 del FrameWork.
  6. Con la clase AssemblyKeyNameAttribute
    1. se retrasa la firma de un ensamblado en el momento de la compilación.
    2. Se epecifica el nombre de un archivo que contiene el par de claves utilizado para generar un nombre seguro.
    3. Se especifica el nombre de un contenedor de claves dentro del CSP que contiene el par de claves utilizado para generar un nombre seguro.
    4. Se genera un archivo con un manifiesto de ensamblado a partir de uno o más archivos que son módulos o archivos de recursos
  7. Cual de las siguientes es una practica recomendable en el manejo de directorio systemroot y la Access Control List:
    1. Evitar que los usuarios tengan acceso, y todo manejarlo programáticamente.
    2. Permitir privilegios de modificación y actualización a todos los usuarios.
    3. Que sólo puedan eliminar archivos de la caché global de ensamblados los usuarios que tengan privilegios de administrador.
    4. Que solo tengan acceso los usuarios asociados a un directorio activo.
    5. Ninguna opción es correcta.

Desarrollo en Microsoft Visual Studio / Módulo 24 - Archivos de manifiesto

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 24 - Archivos de manifiesto

Documentos

Preguntas

  1. El manifiesto de un ensamblado privado se debe incluir en ?
    1. Un archivo EXE
    2. Un archivo XML
    3. Un archivo DLL
  2. El manifiesto de un ensamblado simultaneo se instala en la carpeta?
    1. WinSxS\Manifests
    2. WinPxP\Manifests
    3. Win\Manifests
  3. La herramienta mt.exe que genera los archivos de manifiesto se encuentra disponible en ?
    1. .Net Framework 4.0
    2. Windows SDK
    3. Silverlight SDK
    4. Windows Phone SDK
  4. Uno de los procesos que utiliza Visual studio 2010 para incrustar un manifiesto es ?
    1. Una vez finaliza el manifiesto intermedio, se ejecuta la herramienta del Manifiesto para combinar un manifiesto final y guardarlo como archivo externo.
    2. El manifiesto se incrusta dentro del archivo ejecutable final como recurso.
    3. Si el archivo binario contiene un manifiesto incrustado, Visual Studio llamará al vinculador una vez más para incrustar el archivo de manifiesto externo dentro del archivo binario como recurso.
  5. El sistema operativo primero busca los ensamblados compartidos en una carpeta de la estructura de directorios de la aplicación?
    1. Verdadero
    2. Falso
  6. Cuál es la línea de comando correcta para incrustar un archivo de manifiesto?
    1. "mt.exe –manifest MyApp.exe.manifest -validate_manifest:MyApp.exe;1
      mt.exe –manifest MyLibrary.dll.manifest -validate_manifest:MyLibrary.dll;2"
    2. "mt.exe –manifest MyApp.exe.manifest -outputresource:MyApp.exe;1
      mt.exe –manifest MyLibrary.dll.manifest -outputresource:MyLibrary.dll;2"
    3. "mt.exe –manifest MyApp.exe.manifest -managedassemblyname:MyApp.exe;1
      mt.exe –manifest MyLibrary.dll.manifest -managedassemblyname:MyLibrary.dll;2"
    4. "mt.exe –manifest MyApp.exe.manifest -updateresource:MyApp.exe;1
      mt.exe –manifest MyLibrary.dll.manifest -updateresource:MyLibrary.dll;2"
  7. Cuáles de los siguientes comandos utiliza la herramienta mt.exe para la generación de archivos de manifiesto?
    1. manifest
    2. in
    3. out
    4. updateresource
    5. insertresource

Desarrollo en Microsoft Visual Studio / Módulo 23 - Lightswitch

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Módulo 23 - Lightswitch

Documentos

Preguntas

  1. Cuantas reglas de validación se pueden aplicar a un campo?
    1. 1
    2. 2
    3. Todas las que sean necesarias
    4. 0
  2. Es posible crear validaciones personalizadas para los campos de una tabla?
    1. Si, por medio de la opción custom validation
    2. No, la única validación existente es permitir o no datos numérico
    3. Si, pero el tipo de dato debe ser string
    4. Ninguna
  3. La interfaz de usuario de LightSwitch se basa en?
    1. Controles de usuario
    2. Vistas
    3. Screens o pantallas
    4. Páginas aspx
  4. Un campo computado es:
    1. Un campo de un tipo de dato especial
    2. Un campo que puede tomar su valor sumando los valores de otros datos de la tabla
    3. Un campo autonumérico
    4. Un campo que no permite valores null
  5. LightSwitch tiene algún tipo de campo especial para direcciones de correo?
    1. No, debe usar un string
    2. No, debe usar un string
    3. No, debe crear una expresión regular para hacer la validación
    4. Si, es EmailAddress
  6. LightSwitch esta diseñado para trabajar con bases de datos no relacionales:
    1. Si
    2. No
  7. Que permite hacer la opción customize screen?
    1. Personalizar la pantalla en tiempo de ejecución
    2. Agregas datos a una entidad
    3. Personalizar el color de fondo de la pantalla
    4. Ninguna

martes, 19 de marzo de 2013

Desarrollo en Microsoft Visual Studio / Modulo 22 - XNA Framework

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Modulo 22 - XNA Framework

Documentos

Preguntas

  1. Tajeta gráfica que soporte Shader model 1.1 y Direct X 9.0c 
    1. Tajeta gráfica que soporte Shader model 1.1 y Direct X 9.0c 
    2. Tajeta gráfica con un controlador WDDM 1.1 auxiliar y Direct X 9.0c 
    3. Tajeta gráfica con un controlador WDDM 1.1 auxiliar y Direct X 11 
    4. Tajeta gráfica con un controlador WDDM 1.1 auxiliar y Direct X 10 
    5. Tajeta gráfica que soporte Shader model 1.1 y Direct X 11 
  2. Son métodos para estructurar un juego multiplataforma 
    1. Archivo de proyecto independiente sin solucion 
    2. Archivo de solucion para cada plataforma 
    3. Archivo de proyecto multiplataforma en una sola solucion 
    4. Archivo único de solición con varios proyectos 
    5. No importa, simplemente al compilar se especifica el target u todo funciona igual. 
  3. Las herramientas de de desarrollo en XNA para Windows Phone 7 no estan soportadas en estas plataformas 
    1. Windows thin PC 
    2. Windows Vista 
    3. Windows 7 
    4. Windows Vista SP1 
    5. Windows XP 
  4. El Content Pipeline es 
    1. El content pipeline es una utilidad que permite a los desarrolladores y diseñadores incorporar contenidos multimedia en los proyectos creados con XNA framework 
    2. Es un conjunto de tuberias (pipes) de memoria diseñadas para para pasar elementos multimedia por referencia 
    3. El content pipeline es una API que permite a los desarrolladores y diseñadores incorporar contenidos multimedia en los proyectos creados con XNA framework 
    4. Es un conjunto de tuberias (pipes) de memoria diseñadas para para pasar elementos multimedia por valor 
    5. El content pipeline es una API que permite a los desarrolladores y diseñadores incorporar contenidos multimedia en los proyectos creados por fuera de XNA framework 
  5. Se recomienda utilizar proyectos de contenido para cada plataforma dado las diferencias en los tamaños de los medios. Esta afirmación es 
    1. Verdadera 
    2. Falsa 
    3. Irrelevante 
    4. No tiene sentido 
    5. Valida para versiones anteriores de DirectX 
  6. Las herramientas de de desarrollo en XNA estan soportadas en estas plataformas 
    1. Windows thin PC 
    2. Windows Vista 
    3. Windows 7 
    4. Windows Vista SP1 
    5. Windows XP 
  7. Las plataformas soportadas por XNA game studio 4.0 son 
    1. Windows Phone XBOX 360 
    2. Windows 
    3. Windows Mobile 
    4. Zune 
  8. XNA:_________ 
    1. es un conjunto de librerias de XBOX 360 
    2. Se trata de un API de programación que simplifica y hace más intuitivo el uso de las librerías nativas DirectX y, en consecuencia, simplifica de manera notable la programación de videojuegos 
    3. traduce Xbox Natural Application 
    4. Se trata de una variante de DirectX que simplifica y hace más intuitivo el uso de las librerías nativas GDI+ y, en consecuencia, simplifica de manera notable la programación de videojuegos 
    5. Es multiplataforma, funciona en Linux, iOS , xbox y windows 
  9. Para poder ejecutar juegos de XNA Framework para PC y XBOX 360 se requiere 
    1. Tajeta gráfica que soporte Shader model 2.1 y Direct X 11 
    2. Tajeta gráfica que soporte Shader model 1.1 y Direct X 10 
    3. Tajeta gráfica que soporte Shader model 1.0 y Direct X 9 
    4. Tajeta gráfica que soporte Shader model 1.1 y Direct X 9.0 
    5. Tajeta gráfica que soporte Shader model 1.1 y Direct X 9.0c 
  10. Las herramientas de de desarrollo en XNA para Windows Phone 7 no estan soportadas en estas plataformas 
    1. Windows thin PC 
    2. Windows Vista 
    3. Windows 7 
    4. Windows Vista SP1 
    5. Windows XP 
  11. XNA soporta los siguientes lenguajes 
    1. Español 
    2. Inglés 
    3. C# 
    4. C++ 
    5. VB

Desarrollo en Microsoft Visual Studio / Modulo 21 - SilverLight

Microsoft Virtual Academy

Desarrollo en Microsoft Visual Studio

Modulo 21 - SilverLight

Documentos

Preguntas

  1. De las siguientes declaraciones cual no corresponde a Silverlight

    • Es una descarga pequeña que se instala en pocos segundos.
    • Transmite los contenidos de audio y vídeo por secuencias. Se requiere de un plug-in extra para ajustar el contenido de vídeo a todo tipo de calidades, desde dispositivos móviles hasta exploradores de escritorio y modos de vídeo HDTV de 720p.
    • Incluye gráficos atractivos que los usuarios pueden manipular (arrastrar, girar y acercar o alejar) directamente en el explorador.
    • La aplicación se puede ejecutar en el explorador web o se puede configurar de modo que los usuarios puedan ejecutarla fuera del explorador.
    • Lee datos y actualiza la pantalla, pero no interrumpe al usuario al actualizar la página completa. 
  2. Es un lenguaje de marcado declarativo que puede usar para definir los elementos de la interfaz de usuario de la aplicación basada en Silverlight

    • HTML
    • XHTML
    • XML
    • XAML
    • XNA
  3. Dentro de la descripción de las características de .NET Framework para Silverlight no es correcto decir que:

    • Admite las características de LINQ y de LINQ to XML a través de la característica DATA.
    • Proporciona acceso seguro del cliente de Silverlight al sistema de archivos del equipo local.
    • Trabaja sin subprocesos de segundo plano ya que no posee características de Programación Asincrónica.
    • Proporciona soporte técnico para la serialización de los tipos CLR a JSON y XML.
  4. Las aplicaciones silverlight se pueden integrar

    • Solamente a páginas .aspx
    • Solamente a páginas HTML que tengan habilitadas algunas características especiales.
    • A cualquier tipo de página siempre y cuando tenga integrados los tags de XAML en su diseño.
    • Son el contenido cargado por el complemento Silverlight en una página HTML como un objeto
  5. Silverlight garantiza que las aplicaciones se pueden ejecutar en todos los exploradores modernos

    • Siempre y cuando se realicen los ajustes de código necesario dependiendo del explorador.
    • No es necesario crear código específico del explorador.
    • Se debe habilitar el método WebClient en el código de la página XAML.
    • No es necesario crear código específico del explorador si primero se habilitan las carácteristicas de compatibilidad en el explorador en donde se desea revisar.
  6. Sobre la API administrada de Silverlight se puede decir

    • Permite empaquetar ensamblados administrados y archivos de recursos en los archivos empaquetados .xasp y .xaml de la aplicación.
    • Permite empaquetar ensamblados administrados y archivos de recursos en los archivos empaquetado .xap de la aplicación.
    • Carga una página XAML única, en lugar de un paquete de aplicación. Este XAML puede incluir referencias URI a recursos del servidor, como imágenes y vídeos.
    • Este complemento Silverlight no es responsable de cargar un paquete de aplicación y extraer su contenido.
  7. Permiten hospedar contenido u otros controles y pueden diseñarse de modo que muestren

    • Los cambios de estado del usuario
    • Los controles de JQery
    • Los controles deASP.Net
    • Los controles de HTML
    • Los controles de Silverlight
    • Todos los anteriores
  8. Cuáles son los modelos de programación que adminte Silverlight? (Seleccione las que considere correctas)

    • La API de JavaScript para Silverlight
    • la API desconectada para Silverlight
    • la API  de JQuery para Silverlight
    • la API administrada para Silverlight
    • la API de desarrollo para Silverlight
  9. Sobre la API de JavaScript

    • Permite empaquetar ensamblados administrados y archivos de recursos en los archivos empaquetado .xap de la aplicación.
    • Cuando el complemento Silverlight carga los archivos XAML, crea un árbol de objetos que el código subyacente puede manipular
    • Carga una página XAML única, en lugar de un paquete de aplicación. Este XAML puede incluir referencias URI a recursos del servidor, como imágenes y vídeos.
    • Proporciona un modelo de aplicaciones capaz de admitir aplicaciones complejas con navegación interna.
  10. Para crear las interfaces de usuario en Silverligh se debe utilizar:

    • XAML
    • HTML
    • XML y JQuery
    • XAML dentro de una página HTML
    • Las primeras dos opciones son correctas.
  11. Incluye un subconjunto de la tecnología Windows Presentation Foundation (WPF), que extiende en gran medida los elementos en el explorador para crear la interfaz de usuario

    • ADO.Net
    • LinQ
    • JQuery
    • Silverlight
    • Windows Presentation Foundation
    • Framework 4.0