16 nov 2011
3 dic 2010
Testing de IU Web basada en script
Usted puede hacer esto de varias maneras.
La más vieja técnica utiliza Javascript para manipular los controles de una aplicación web a
través del Internet Explorer Document Object Model (IE DOM). La mejor manera de demostrar este tipo de prueba es visualmente, así que el cuadro muestra una simple ejecucion de una prueba Iu Web basada en script.
El frame de la derecha recibe el Web AUT; su título exhibido es MiniCalc. En este ejemplo, la aplicacion es un programa de calculadora simple. El frame de la izquierda recibe las funciones Javascript que manipulan el AUT web, examina el estado resultante de la aplicacion, y registra los resultados de la prueba en un archivo externo. Este capítulo presenta las varias técnicas que usted necesita realizar para la automatización del Testing de la UI de la aplicación web.
La mayor parte de las secciones en este capítulo se refieren a la aplicación web mostrada en el frame derecho del cuadro . El aplicacion se llama WebApp.aspx. El código entero para la aplicacion es:
antes que el metodo de separar código y C# en dos archivos separados.
Si usted examina este código, verá que el UI contiene dos campos de texto donde el usuario incorpora dos números enteros, cuatro controles radio button que el usuario seleccione para indicar cuál de las cuatro operaciones aritméticas realizara (adición, substracción, multiplicación, división), un boton para acceder a la respuesta del calculo, y de un tercer campo del texto que exhibe un resultado con cuatro decimales.
17 sept 2010
Diseñando Reportes con Reporting Services 2005 - PARTE 1
La manera fácil de conseguir una descripción del estudio visual es utilizarlo para desarrollar un reporte simple. Los pasos siguientes son los pasos necesarios para iniciar estudio visual y crear un proyecto de reporte.
1. Clickear start, Clickear a todos los programas, Clickear al servidor 2005 de Microsoft SQL, y después Clickear SQL Server Business Intelligence Developer Studio.
2. Clickear el menú - archivo, Clickear nuevo, y después Clickear el proyecto. La caja de diálogo new proyecto se abre.
3. En sección tipos proyecto a la izquierda, Clickear proyecto la inteligencia empresarial.
4. En la sección de las plantillas a la derecha, click Report Server Project, según las indicaciones del cuadro 1.1
La sección de las plantillas debe contener un número de opciones. Usted puede ser que note que el nombre (nombre del proyecto) y el nombre de la solución que cambia con cada opción.
(Estos campos están situados en la parte inferior de la caja de diálogo.)
Usted debe también anotar la localización, como aquí es donde se almacenan los archivos del proyecto y de la solución. Para ahora, mecanografiar simplemente AdventureWorksReports en la caja de texto Nombre enlazando a la base de datos AdventureWorks. Su nueva caja de diálogo del proyecto debe parecer similar para figura 1.1.
5. Click OK para aceptar tus cambios y cerrar la ventana de dialogo Nuevo Proyecto.
A este punto, deberas tener un espueleto vacio de un proyecto listo para aceptar nuevos reportes
y fuentes de datos. El proyecto debera ser contenido en una solucion llamada AdventureWorksReports. Esto servira como base para avanzar. La pantalla sera igual a :
11 sept 2010
Repasando T-SQL
Subconsultas
Las subconsultas pueden ser distinguidas de dos formas. Una es por el numero esperado de valores (escalar o multivalores), y otra es por la dependencia en otra consulta. Ambas subconsultas escalar y multivalor pueden ser contenidas asi misma.
Una subconsulta autocontenida es una subconsulta que puede ser ejecutada independientemente
de otra consulta. Las subconsultas autocontenidas son muy convenientes para depurar a subconsultas correlacionadas.
Scalar subqueries can appear anywhere in the query where an expression resulting in a scalar value is expected, while multivalued subqueries can appear anywhere in the query where a collection of multiple values is expected.
A scalar subquery is valid when it returns a single value, and also when it returns no valuesin which case, the value of the subquery is NULL. However, if a scalar subquery returns more than one value, a run-time error will occur.
Por ejemplo, ejecuta la siguiente consulta 3 veces: una como se muestra, segundo con LIKE N'Kollar' en lugar de LIKE N'Davolio', y la terceracon LIKE N'D%:
SET NOCOUNT ON; USE Northwind;
SELECT OrderID FROM dbo.Orders WHERE EmployeeID =
(SELECT EmployeeID FROM dbo.Employees
-- also try with N'Kollar' and N'D%' in place of N'Davolio'
WHERE LastName LIKE N'Davolio');
Con N'Davolio', la subconsulta retorna un simple valor (1) y la otra consulta retorna todas las
ordenes con la EmployeeID 1.
With N'Kollar', the subquery returns no values, and is therefore NULL. The outer query obviously doesn't find any orders for which EmployeeID = NULL and therefore returns an empty set. Note that the query doesn't break (fail), as it's a valid query.
With N'D%', the subquery returns two values (1, 9), and because the outer query expects a scalar, it breaks at run time and generates the following error:
Msg 512, Level 16, State 1, Line 1 Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
3 jul 2010
¿Cuales son las caracteristicas de una buena Prueba Unitaria?
iremos tocando poco a poco hasta cubrir todas sus aristas.
¿Cuales son las caracteristicas de una buena Prueba Unitaria?
1- Debe ser automatizada y repetible.
2- Debe ser fácil ejecutar.
3- Una vez que ha escrito, debe permanecer para el uso futuro.
4- Cualquier persona debe poder ejecutarlo.
5- Debe ejecutarse con el click de un botón.
6- Debe ejecutarse rápidamente.
Mucha gente confunde el acto de probar su software con el concepto de una prueba unitaria
Ejemplo de una simple test unitario:
Es posible escribir una prueba unitaria automatizada sin usar un Framework de prueba (Nunit).
Asumimos que tenemos una clase SimpleParser (mostrada ).
Tiene un método llamado "ParseAndSum" de el cual admita una cadena
de 0 o más números separados por comas. Si no hay números, vuelve 0. Si hay un solo número,
retorna ese número como int. Si hay números múltiples, los agrega todos para arriba y
retorna la suma (aunque, ahora, el código puede manejar solamente 0 o 1 número).
public class SimpleParser
{
public int ParseAndSum(string numbers)
{
if(numbers.Length==0)
{
return 0;
}
if(!numbers.Contains(","))
{
return int.Parse(numbers);
}
else
{
throw new InvalidOperationException(
"I can only handle 0 or 1 numbers for now!");
}
}
}
Podemos crear un proyecto de aplicación simple de consola que tenga una referencia al assembly que contiene esta clase,y podemos escribir un método " SimpleParserTests" según se muestra.
El método de la prueba invoca la clase de la producción (la clase que se probará) y después controla el valor devuelto. Si no es la que se espera, se escribe a la consola.
También coge cualquier anomalía y la escribe a la consola.
class SimpleParserTests
{
public static void TestReturnsZeroWhenEmptyString()
{
try
{
SimpleParser p = new SimpleParser();
int result = p.ParseAndSum(string.Empty);
if(result!=0)
{
Console.WriteLine(
@"***SimpleParserTests.TestReturnsZeroWhenEmptyString:
-------
Parse and sum should have returned 0 on an empty string");
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
Después, podemos invocar los test que hemos escrito usando un método Main simple dentro de una aplicación de la consola. El método Main se utiliza aquí como ejecutor de la prueba simple,
que invoca las pruebas uno por uno, dejándolas poner a la consola.
Porque es una ejecutable, esto se puede ejecutar sin la intervención humana.
public static void Main(string[] args)
{
try
{
SimpleParserTests.TestReturnsZeroWhenEmptyString();
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
Es responsabilidad del método de prueba coger cualquier anomalía que ocurra y escribierla a la consola, de modo que ella no interfiera con ningun funcionamiento de métodos subsecuentes.
Podemos entonces agregar más llamadas al método en el método Main como agregamos cada vez más pruebas al proyecto. Cada prueba es responsable de escribir el problema (si hay un problema) en la pantalla de la consola.
23 ene 2010
Virtualizando las aplicaciones .NET, Java, etc
Tiene un comodo Wizard que guia la configuracion del nuevo executable portable, especificando files, framework's, ETC; ademas de especificar si se ejecutara desde un USB, host, etc.
descargalo aqui:
http://rapidshare.com/files/149488878/Xenocode_Virtual_Application_Studio_2008.6.1.261.rar
3 ene 2010
Como reproducir un archivo Wav con .Net 3.5
EL Problema
Se necesita reproducir un fichero de WAV.
Crear una nueva instancia de la clase System.Media.SoundPlayer, pasar la localización o stream del fichero WAV, e invocar al método Play.
Cómo Hacerlo
El namespace System.Media, fue introducido en el Framwork 2.0 de .NET, contiene una clase SoundPlayer.
SoundPlayer contiene constructores que le dejan especificar la localización de un fichero de WAV o su stream. Una vez que se ha creado una instancia, solo se necesita invocar al método Play para reproducir el archivo. El método Play crea un nuevo thread para reproducir el sonido y es de esta manera asíncrona (a menos que utilice un stream).
Para reproducir el sonido de manera síncrona, utilizar el método de PlaySync. Notar que SoundPlayer utiliza solamente el formato de WAV.
Antes de que se reproduzca un fichero, se carga en memoria. Usted puede cargar un archivo por adelantado invocando el método Load o LoadSync, dependiendo de si usted quisiera que la operación fuera asíncrona o síncrono.
El Codigo
Imports System
Imports System.Windows.Forms
Imports System.Media
Partial Public Class Ejemplo
Private Sub cmdOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOpen.Click
' Allow the user to choose a file.
Dim openDialog As New OpenFileDialog
openDialog.Filter = "WAV Files|*.wav|All Files|*.*"
If openDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim player As New SoundPlayer(openDialog.FileName)
Try
player.Play()
Catch ex As Exception
MessageBox.Show("An error occurred while playing media.")
Finally
player.Dispose()
End Try
End If
End Sub
End Class
30 dic 2009
Conversor online de VB a C#
Pues este aplicativo convierte rapidamente todo el codigo que se le solicite.
Disponible en el Toolbox del sitio developerFusion, pruebalo Aqui
Esta basado en el proyecto #develop editor, alternativa free open source al Visual Studio .NET de Microsoft; ademas de soportar sintaxis de para NET 3.5 y NET2.0 .
28 dic 2009
Arquitecturas empresariales de soluciones .NET
Que es una Arquitectura de Software?
La arquitectura es el esqueleto de un sistema, el conjunto de pilares que soportaran la construcción, para eso el arquitecto debe ser multifacético, conocer sobre requerimientos, diseño de sistemas, garantizar que la implementación satisfaga las expectativas y asegurarse globalmente que los usuarios obtengan lo que realmente necesitan, el cual no es necesariamente lo que inicialmente aceptaron y pagaron.
La arquitectura de software tiene precondiciones ( principios de diseño )
El rol de un arquitecto es primeramente responsable por el conocimiento de requerimiento, diseño del sistema, y comunicación del diseño al equipo de desarrollo.
La comunicación esta a menudo basada en bosquejos UML.El arquitecto aplica primero principios generales de ingeniería de software, después principios de diseño orientado a objetos, para romper el sistema dentro de pequeñas piezas en un intento de separar que es arquitectura y que no. Uno de los propósitos del diseño orientado a objetos es hacer tu código fácil de mantener y desarrollar- y también fácil de leer y entender.
El arquitecto conoce el mantenimiento, seguridad y las pruebas necesarias a ser incluidas al sistema desde el comienzo.
Conocerás la perfección del diseño, no cuando no tengas algo que agregar, sino cuando no tengas nada que quitar.
El propósito de
Dr Pamela Zave
¿Qué es una arquitectura de Software, en todo caso?
Herman Melville, el autor inolvidable de Moby Dick, alguna vez dijo que los hombres piensan que articulando palabras duras pueden entender cosas duras.
En software, la “dura” palabra Arquitectura fue introducida originalmente en este campo para simplificar la transmisión y la comprensión de una clave y ” dura” guía de consulta.
La guía de consulta era ésta: Más (mucho) cuidado sobre el diseño de sistemas informáticos que comprendías en el pasado; cuidado con esto al punto de dirigir el desarrollo de un sistema informático de forma similar a dirigir el desarrollo de un edificio.
Definición de sistema desde un punto de vista estándar
Un sistema informático se entiende universalmente como una colección de componentes compuestos e integrados para lograr un conjunto específico de funciones.
Un sistema vive en un entorno; y este entorno influye al diseño del sistema conduciendo a algunas decisiones de desarrollo y operacionales. Un sistema existe para solucionar un problema y para alcanzar su misión completamente respecto a lo concerniente de los "Stakeholders". Todo lo concerniente de los "Stakeholders" incluyen requisitos funcionales y no funcionales así como aspectos del sistema tales como seguridad, posibilidad de prueba, funcionamiento, confiabilidad, y extensibilidad.
Aunque prevea al sistema como una composición de componentes interconectados, una arquitectura también establece algunos puntos que son duros de modificarse más adelante.
De manera que, la expresión del desarrollo de software en términos de arquitectura concluye en la generacion de algunas decisiones importantes que afectan el ciclo vital del desarrollo y, en última instancia, a la calidad del sistema resultante.
El cuadro 1 ilustra los lazos entre el sistema, la configuración, y los "Stakeholders" según lo identificado por el estándar 1471 de ANSI/IEEE. El contenido del cuadro 1-1 es realmente una adaptación de una de las figuras en el documento.
27 dic 2009
Procesos del testing de un software
El proceso para testear bloques de la aplicación se muestran abajo. Los pasos listados deberan ser utilizados independientemente de la metodologia de testing.
Entrada de información (Input's)
La entrada de información siguiente se requiere para testear una aplicación:
- Especificaciones funcionales
- Requerimientos
- Objetivos de funcionamiento
- Escenarios de despliegue
Pasos
El cuadro muestra los pasos en el proceso de testing para una aplicación.
- Crear los planes de prueba.
- Revizar el diseño.
- Revisar la implementacion.
- Realizar la prueba de la caja negra.
- Realizar la prueba de la caja blanca.
Paso 1: Crear los planes de prueba
Los planes de prueba documentan los Casos de Prueba que usted utilizará para testear la aplicación. Los casos de prueba cubren todos los aspectos de la prueba, incluyendo la revisión de diseño, la revisión de código, el profiling, la prueba del despliegue, y la prueba de carga. Los planes de prueba ayudan a asegurarse de que usted pruebe todas las características y escenarios de uso de una aplicación.
La documentación del plan de prueba consiste en dos documentos:
El documento del plan de prueba detallado (DTP) .
El documento detallado del plan de prueba enumera los casos de prueba en una orden prioritaria (Alta, media, y baja). Las descripciones del caso de prueba en este documento resumen abreviadamente los escenarios de uso y las características que se testearan. Para cada caso de prueba, usted asigna un nivel de prioridad basado en la importancia del caso y su impacto total del caso en las metas a cumplir, planeadas estas por los objetivos y los requisitos deseados.
El documento de casos de prueba detallado (DTC).
El documento de casos de prueba detallados asocia al documento detallado del plan de prueba. Este documento describe los pasos que el usuario debe realizar para ejecutar cada caso de prueba que este listao en el documento DTP. También enumera los datos que se requiriran para la prueba y describe los resultados previstos de esta prueba.
Se actualizaran los documentos DTP y DTC a través del ciclo de vida del desarrollo. Por ejemplo, usted debera actualizar estos documentos si las especificaciones funcionales o los requisitos cambian, o si usted tiene una información (input) adicional. Usted también los actualizara si agrega más adelante en el ciclo del desarrollo casos de prueba o si modifica la prioridad de los casos de prueba existentes a razon de escenarios de usos o pruebas funcionales adicionales .
1 sept 2009
SISTEMA WEB CONSULTAS MOVIMIENTOS
Desarrollado con ASP NET 2.0 - SQL 2005 - JAVA SCRIPT
Funcionalidades:
Exportacion reporte a PDF.
Grabacion de foto personal.
Modificacion de contraseña.
Modificacion y recuperacion de Contraseña.
Envio de reporte PDF a cualquier email.
Busquedas de movimientos por rango de fechas.
Envio a email de la contraseña generada o modificada por el usuario, entre otros.
VIDEO DEMO - FUNCIONALIDADES
VIDEO DEMO - DESARROLLO
5 ago 2009
BREVE EXPLICACION - BUNDLES
VIDEO DEMO
2 ago 2009
Que es un sistema BUNDLES
Un Bundle es un paquete de productos. Es un producto adquirible que se compone de una colección de uno o más productos que existan en el sistema de catálogo y se vende por separado. En otras palabras, no es mas que una conjunción de productos.
A continuación tenemos un ejemplo de conjunciones:
Pongamos un ejemplo real :
Esta empresa vende productos o servicios de televisión, teléfono e internet. Esto lo puedes contratar tal cual o puedes comprar la ofetar del mes que suele ser Bundle1 = televisión + teléfono + internet, o Bundle2 = televisión + teléfono, o Bundle3 = teléfono + internet.
Soluciones para productos conjuntados
Existen dos maneras de definir conjunciones de productos. Una utilizando relaciones y la otra utilizando descuentos.
SOLUCION 1
Utilizando relaciones en tiempo de diseño
Utilizar la administración de Catalog e Inventario para crear una definición de producto llamada "Product_Bundle" y asociar a este las propiedades necesarias.
Paso siguiente crear un producto utilizando la definición de producto "Product_bundle" ej. "Paquete_Completo".
Asignarle un precio a la conjunción ej. "Paquete_Completo" cuesta 20€ Se pueden utilizar variantes por ejemplo para asignar diferentes valores por código postal.
Desde la página de productos establecer relaciones con los productos simples llamadas "Constitucion_Paquetes"
Utilizando relaciones en tiempo de ejecución
Desde codigo identificar la definición del producto bundle y mostrarlo de manera apropiada.
Cuando el producto es añadido en la cesta asegurarse que se añaden sublineas con cada uno de los items.Esto se pude realizar basandonos en reglas, e introducir dichas reglas dentro de la funcionalidad de la cesta de la compra. ¿Que pasa Cuándo el producto se envía a tu sistema backend y este entiende que es un producto conjuntado? Entonces no es necesario insertar las sublineas con todos los items. Sino será necesario enviar cada una de las lineas para que el sistema comprenda que es lo que se ha vendido.
Toda esta regla de negocio podria introducirse en un componente e integrar este en un pipeline. Este componente personalizado interactuaria con la cesta de la compra, checkeando todas las lineas de la cesta y mirando si el item es un producto del tipo bundle (ej. buscando el producto en el catálogo, y en la definición del producto si es del tipo "bundle"). Si este lo es, será necesario hacer otra consulta para obtener todas las relaciones con sus items (ej. recibir los productos relacones a traves de la relación llamada "Constitucion_Paquetes"
Para prevenir el borrado intensional o accidental de uno de los items pertenecientes al bundle, el código del sitio en la funcionalidad del carrito deberá contemplar que se generen tantas lineas como productos relacionados y que tras cada acción realizada en la cesta de la compra se ejecute el pipeline el cual realizará las comprobaciones necesarias e identificará si falta alguno de los items relacionados con el producto bundle.
Marketing Discounts: En un bundle, los códigos de productos individuales pierden identidad y los descuentos no se pueden aplicar de forma individual. Tendremos que asegurarnos que los descuentos se asignan a los productos del tipo bundle.
SOLUCION 2
Utilizando descuentos en tiempo de diseño
Crear un producto llamado "Paquete_Completo"
Asignarle al producto bundle un precio ej. "Paquete_Completo" 20€
Crear un descuento "Comprar_Paquete_Completo", este descuento es del tipo compra producto A y obten estos productos gratis, donde los productos gratis son todos los items que componen el producto del tipo bundle.
Utilizando descuentos en tiempo de ejecución
La característica de filtrado del componente de descuentos (solo CS2007) determinará los descuentos simples que se aplican a los productos en la página y exhibirá los nombres de los artículos ofertados. Sin embargo, los detalles de cada artículo ofertados no estarán disponibles. Será necesario implementar código para traer los detalles de los productos ofertados.
18 jul 2009
FUNCIONALIDADES VARIAS “CRM SYSTEM EASY”
A nivel global, la gestión de los clientes se efectúa desde el menú de contactos y el de cuentas. Ahora bien, el acceso a ambas funciones puede hacerse tanto desde el menú superior, como desde dentro de los contactos y/o cuentas.
Gestión de Contactos
La gestión de contactos permite crear nuevos contactos, editar contactos, eliminar contactos, buscar, enviar correos, realizar operaciones bulk mantenimientos, entre otros.
La información manejada consiste en datos como nombres, cuenta a la que pertenece, cargo ejercido, departamento en el que labora, teléfono, email, entre otros.
EDICION RAPIDA
La edición rápida esta dirigida solo a los campos como nombre, apellidos, cargo, teléfono y departamento de solo un registro.
VIDEO DEMO EDICION CRM
EDICION FULL
La edicion Full permite modificar la totalidad de los campos referentes al contacto seleccionado.
BUSQUEDA AVANZADA
La busqueda avanzada permite utilizar distintos parámetros tales como: Cargo, departamento, jefe, telefono de oficina, empresa, nombres y apellidos, entre otros.
Gestión de Cuentas (Empresas Clientes)
La gestión de cuentas (Empresas Clientes) permite crear, editar, eliminar, buscar, enviar promociones (e mailing), organizar, entre otras operaciones. La información manejada varía entre nombres, teléfono, ciudad, dirección, email, entre otros.
PROYECTO: DESARROLLO DEL CRM SYSTEM EASY
CRM SYSTEM EASY es un sistema modular desarrollado en ASP NET 2.0 y MSSQL 2005 que estará diseñado para integrar los diferentes aspectos del proceso de venta de la organización en diferentes módulos tales como Cuentas, Actividades, Oportunidades, y Alianzas. Una de las características esenciales es que su concepción está basada en ayudar a manejar las cuentas de los clientes llevándo todo el proceso a través de su ciclo de vida en la organización, iniciando por la generación y evaluación de los prospectos hasta el soporte del cliente resolviendo problemas que se puedan presentar en el día a día de la empresa.
JUSTIFICACION DEL PROYECTO
En los negocios en los que la gestión de clientes se basa en documentos independientes, del tipo, open office, word, emails enviados, ofertas presentadas, plantillas de ofertas ..etc, el hacer un seguimiento de los archivos generados por clientes, así como de los emails enviados, supone, en la mayor parte de los negocios la inversión de gran cantidad de tiempo.
PRINCIPALES FUNCIONES A CUBRIR POR EL PROYECTO
1. Administración de Contactos y Cuentas
2. Gestión de Fuerza de Ventas
3. Biblioteca de Documentos
4. Gestión de Incidencias (tanto con clientes, como internas en la empresa)
5. Calendario Corporativo
6. Servicio de Sindicación RSS.
1. Mi portal
2. Calendario
3. Actividades
• llamadas
• reuniones
• tareas
• notas y adjuntos
• archivo de correos
• Emails
4. Contactos
5. Cuentas
6. Oportunidades
7. Casos
8. Seguimiento de errores
9. Documentos
10. Correos
11. Campañas
12. Proyectos
13. Reportes
14. Pronósticos
¿UN SOFTWARE CRM PARA EL NEGOCIO?
Que es CRM
CRM es una ESTRATEGIA de negocio planificada para gestionar los clientes, con el fin de optimizar su LTV (Life Time Value), reducir los costes, garantizar y aumentar su FIDELIDAD, todo esto soportado por un SOFTWARE.
La fidelidad es el resultado de la suma de experiencias positivas que se van acumulando en un individuo que va confiando en nosotros. Todo esto combinado va generando una relación de fidelidad.
Objetivos de CRM
Ø Disponer y distribuir datos históricos de clientes.
Ø Aumentar eficacia de acciones comerciales
Ø Seguir y retroalimentar las acciones comerciales.
Ø Coordinar acciones en distintos niveles de la Cía.
Ø Maximización de la rentabilidad de la relación
Ø Analizar datos con herramientas específicas
Por qué se ha Hecho tan Popular el CRM:
1. Los ERP (Planificación de Recursos Empresariales) ya NO representan una fuente de VENTAJA competitiva.
2. El Ciclo de Vida se ha acelerado, dando lugar a una enorme abundancia de posibilidades de elección por parte de los clientes, y una cuota mucho más reducida.
3. Internet ha hecho mucho más sencillo para los clientes el decidir (con un clic) a quién van a comprar.
Las empresas buscan conseguir con el CRM:
• Una situación de ventaja competitiva para su Cía.
• Optimizar beneficios en las relaciones con los clientes.
• Asegurar la generación de ROI (retorno de inversion), aumentando el LTV (Life Time Value).
Ventaja de uso de un SOFTWARE CRM
· Reduce costes:
· Automatiza tareas comerciales
· Automatiza tareas de ventas
· Automatiza tareas de atención al cliente.
· Reduce la carga de reporting
· Optimización de la fuerza de ventas
· Fidelización de clientes
· Mayor control sobre el equipo comercial
· Rentabilización del esfuerzo comercial
· Descubrimiento de oportunidades
· venta cruzada
· venta repetida
· Incrementa las ventas:
· Evita la pérdida de oportunidades comerciales
· Permite una gestión centralizada de la relación con todos los clientes
· Proporciona una agenda comercial integrada con visión de cliente única
· Multiplica las oportunidades de venta
· Permite gestionar campañas de marketing de manera ágil
· Permite identificar necesidades no previstas de clientes
Funcionalidades Generales:
· Gestión de los datos de clientes
· Gestión del ciclo de ventas (sales funnel)
· Gestión de la agenda comercial
· Automatización de los procesos de la Fuerza de Ventas
· Automatización de los procesos de Marketing
· Automatización de los procesos de Atención al Cliente
· Gestión del equipo comercial
· Gestión de las campañas comerciales
· Gestión de incidencias de clientes
· Análisis de la función comercial
· Eficacia de la fuerza de ventas
· Sales Pipeline
· Análisis de clientes.
· Diseño de ofertas personalizadas
· Detección de necesidades no conocidas
DESPLEGANDO UN WEBSITE ASP.NET 2005
Copiar Manualmente los archivos desde la maquina de desarrollo a la maquina objetivo, usando XCOPY, FTP, Comandos Visual Studio’s Copy Web Site, o algún otro programa gestos de archivos.
Precompilar la aplicación y desplegar, usando cualquier herramienta de línea de comandos o comandos Visual Studio’s Publish Web Site. Puedes completamente controlar la precompilacion y despliegue de una aplicación Web usando el add-in Web Desployment Project para Visual Studio. Esto requiere que el add-in sea primero descargado e instalado.
Usar el Web Setup Project de Visual Studio’s o Setup Wizard Project para crear un archivo de instalación .msi que pueda ser ejecutada sobre la maquina objetivo.
Pero antes de estas opciones primero se debe examinar un paso importante que se necesita antes de comenzar el despliegue: cambiar a ‘off’ la depuración en el archivo web.config. Cuando desplegamos una aplicación, es común tener que usar el depurador cuando rastreas un error o una pieza de código no operacional. Para permitir la depuración sobre un site completo, ambos el desarrollador o Visual Studio deben tener permitido esto en el archivo Web.config. Desafortunadamente, esta agrega símbolos depurados al código compilado, el cual incrementa el tamaño del assembly resultante; estos símbolos depurados extra decrecen el performance del tiempo de ejecución. Así, para un site que esta siendo desplegado a un servidor de producción, deberás deshabilitar la depuración en el archivo Web.config:
COPIANDO ARCHIVOS MANUALMENTE DESDE UNA MAQUINA DE DESARROLLO A UNA DE DESPLIEGUE
Esta es ciertamente la forma más fácil de desplegar una aplicación Web. Esto requiere copiar todos los archivos del proyecto a algún lugar sobre el servidor Web destino, usando FTP, Windows Explorer, el comando DOS XCOPY, o algún otro programa gestor. La gran ventaja de esto método es que si un archivo cambia en el futuro, todo lo que necesitaras es subir el file modificado al servidor. El ASP. NET runtime y el CLR .NET maneja el resto (el parseo, compilación de assemblies, y la compilación JIT) automáticamente.
Puedes también copiar archivos desde la maquina de desarrollo al servidor Visual Studio usando comando Copy Web Site, el cual esta disponible en el explorador de solución y dentro de menú Website:
Cuando el Copy Web Site es invocado, Visual Studio despliega una interface (ver figura2) que es familiar a cualquiera que haya usado un programa FTP como el WS_FTP.
Sobre la izquierda de la interface esta una lista de los files para la aplicación Web sobre la maquina de desarrollo. Deberás conectarte a la maquina destino primero usando el botón Connect. Haciéndolo así desplegaras el dialogo familiar Open Web Site (ver figura 3), por el cual podrás conectarte a una directorio virtual IIS remoto o local o a un lugar FTP remoto.
Figura3: Open Web Site
Después que estés conectado al site, podrás subir files seleccionados desde la maquina local a la destino, descargar files seleccionados desde la de destino a la local, o sincronizar el site. La sincronización examina las fechas de archivos sobre ambos sites local y remoto; y asegura que todos los files sobre ambos sites estén actualizados de fecha. La sincronización puede ser también útil para ambientes multiprogramador donde
Los programadores mantienen copias del Web Site sobre sus computadores locales. Los desarrolladores individuales pueden copiar sus últimos cambios hacia un servidor remoto compartido y al mismo tiempo actualizar su computador local con los archivos modificados de otros desarrolladores. Sin embargo, puesto que allí no hay un mecanismo check-in/check-on mediante la sincronización (el cual previene que dos desarrolladores estén haciendo cambios al mismo file), esta no reemplaza a un sistema de control de versiones como el Microsoft SourceSafe.
PRECOMPILANDO UN WEB SITE
ASP.Net provee dos opciones para precompilar un site. El site puede ser precompilado sobre la maquina de despliegue dentro de assemblies (también llamado pre compilacion in-place), o esta puede ser precompilada sobre la maquina de desarrollo y después desplegada al servidor (también llamada pre compilacion por despliegue)
Precompilacion In-Place
Eficazmente ejecuta la misma compilación que ocurre cuando los usuarios requieren paginas del site. Eliminando así el performance penal para el primer requerimiento al site, así bien como verificar que el código del site sobre el servidor esta libre de errores en tiempo de compilación. La precompilacion In-Place requiere ejecutar el programa de línea de comando aspnet_compiler.exe sobre el servidor (el cual reside en
\[Windows folder]\Microsoft.NET\Framework\[version]). La sintaxis para la precompilacion in-place es como sigue:
aspnet_compiler -v virtualPath -OtherSwitches
La tabla 1 muestra algunas de los switches importantes de línea de comando para la herramienta aspnet_compiler
Tabla 1: Switches importantes aspnet_compiler.exe para la Precompilacion In-Place
Por ejemplo si tienes tu aplicación en un directorio virtual llamado Chapter sobre el servidor, usaras el siguiente comando para precompilar el site:
aspnet_compiler –v /Chapter
El aspnet_compiler crea assemblies para todos los executables producidos y los coloca en un folder especial bajo el folder \[Windows folder]\Microsoft.NET\Framework\
[version]\Temporary, como muestra la figura 5.
ASP:NET usa los assemblies en este folder para todas las solicitudes subsecuentes para esta aplicación. Nota que todos los formularios Web en el folder están ubicados en un único assembly, mientras cada control de usuario esta contenido en su propio assembly, y los recursos globales y locales están también compilados dentro de assemblies separados.
La pre compilación In-place requiere acceder a la ejecución de lineas de comando sobre el servidor de despliegue, el cual no siempre esta disponible al desarrollador.
19 may 2009
PRUEBATE PARA EL EXAMEN 70-536
Questions Exam 70-536 MCTS
Previo a un examen de certificación se necesita poner a prueba los conocimientos sobre Framework .NET 2.0 que sirve parcialmente para el Framework 3.5, razón por la cual presento estas preguntas DE PREPARACION con sus respectivas claves.
1-
You develop a service application named FileService. You deploy the service applicationto multiple servers on your network. You implement the following code segment. (Linenumbers are included for reference only.)01 public :02 void StartService(String^ serverName){0304 ServiceController^ crtl = gcnew05 ServiceController("FileService");06 if (crtl->Status == ServiceControllerStatus::Stopped){}07 }You need to develop a routine that will start FileService if it stops. The routine must startFileService on the server identified by the serverName input parameter.Which two lines of code should you add to the code segment? (Each correct answerpresents part of the solution. Choose two.)
A-Insert the following line of code between lines 03 and 04:crtl.ServiceName =serverName;
B-Insert the following line of code between lines 03 and 04:crtl.MachineName =serverName;
C-Insert the following line of code between lines 03 and 04:crtl.Site.Name =serverName;
D-Insert the following line of code between line 04 and 05:crtl.continue();
E-Insert the following line of code between line 04 and 05:crtl.Start();F- Insert the following line of code between line 04 and 05:crtl.ExecuteCommand(0);
Answer: BE
2-
You need to write a code segment that transfers the first 80 bytes from a stream variablenamed stream1 into a new byte array named byteArray. You also need to ensure that thecode segment assigns the number of bytes that are transferred to an integer variablenamed bytesTransferred. Which code segment should you use?
A-bytesTransferred = stream1.Read(bytesArray,0, 80);
B-for (int i = 0;i <80;i++) {stream1.WriteByte(byteArray[i]);bytesTransferred = i;if (!stream1.CanWrite) {break;}}
C-while (bytesTransferred < 80) {stream1.Seek(1, SeekOrigin.Current);byteArray[bytesTransferred++] =Convert.ToByte(stream1.ReadByte());}
D-stream1.Write(byteArray, 0, 80);bytesTransferred = byteArray.Length;
Answer: A
3-
You use Reflection to obtain information about a method named MyMethod.You need to ascertain whether MyMethod is accessible to a derived class. What shouldyou do?
A-Call the IsAssembly property of the MethodInfo class.B-Call the IsVirtual property of the MethodInfo class.C-Call the IsStatic property of the MethodInfo class.D-Call the IsFamily property of the MethodInfo class.
Answer: D
4-
You need to identify a type that meets the following criteria: ?Is always a number.?Is not greater than 65,535. Which type should you choose?
A-System.UInt16
B-int
C-System.String
D-System.IntPtr
Answer: A
5-
You are developing an application to assist the user in conducting electronic surveys. Thesurvey consists of 25 true-or-false questions. You need to perform the following tasks:Initialize each answer to true.Minimize the amount of memory used by each survey.Which storage option should you choose?
A.BitVector32 answer = new BitVector32(1);B.BitVector32 answer = new BitVector32(-1);
C-BitArray answer = new BitArray (1);D-BitArray answer = new BitArray (-1);
Answer: B
6-
You need to write a code segment that will create a common language runtime (CLR)unit of isolation within an application. Which code segment should you use?
A.AppDomainSetup^ mySetup =AppDomain::CurrentDomain::SetupInformation;mySetup->ShadowCopyFiles = "true";
B.System::Diagnostics::Process^ myProcess;myProcess = gcnew System::Diagnostics::process();
C- C.AppDomain^ domain;domain = AppDomain::CreateDomain("CertKillerDomain")
D.System::ComponentModel::Component^ myComponent;myComponent = gcnew System::ComponentModel::Component();
Answer: C
7-
You are creating a class to compare a specially-formatted string. The default collationcomparisons do not apply. You need to implement the IComparable
A-public class Person : IComparable
B-public class Person : IComparable
}}
C-public class Person : IComparable
D-public class Person : IComparable
Answer: A
8-
You need to write a multicast delegate that accepts a DateTime argument and returns aBoolean value. Which code segment should you use?
A-public delegate int PowerDeviceOn(bool, DateTime);
B- public delegate bool PowerDeviceOn(Object, EventArgs);
C- public delegate void PowerDeviceOn(DateTime);
D- public delegate bool PowerDeviceOn(DateTime);
Answer: A
9-
You are developing a class library that will open the network socket connections tocomputers on the network. You will deploy the class library to the global assembly cacheand grant it full trust. You write the following code to ensure usage of the socketconnections.SocketPermission permission =new SocketPermission(PermissionState.Unrestricted);permission.Assert();Some of the applications that use the class library might not have the necessarypermissions to open the network socket connections.You need to cancel the assertion.Which code segment should you use?
A- CodeAccessPermission.RevertAssert();
B- CodeAccessPermission.RevertDeny();
C-Permission.Deny();
D-Permission.PermitDeny();
Answer: A
10-
You are writing a method that returns an ArrayList named al. You need to ensure thatchanges to the ArrayList are performed in a thread-safe manner. Which code segmentshould you use?
A-ArrayList al = new ArrayList();lock (al.SyncRoot){return al;}
B- ArrayList al = new ArrayList();lock (al.SyncRoot.GetType()){return al;}
C- ArrayList al = new ArrayList();Monitor.Enter(al);Monitor.Exit(al);return al;
D- ArrayList al = new ArrayList();ArrayList sync_al = ArrayList.Synchronized(al);return sync_al;
Answer: D
11-
You are working on a debug build of an application.You need to find the line of code that caused an exception to be thrown. Which propertyof the Exception class should you use to achieve this goal?
A- Data
B- Message
C- StackTrace
D- Source
Answer: C
12-
You need to generate a report that lists language codes and region codes.Which code segment should you use?
A- for each (CultureInfo^ culture inCultureInfo::GetCultures(CultureTypes::SpecificCultures)) {// Output the culture information...}
B- CultureInfo^ culture = gcnew CultureInfo("");CultureType^ type = culture->CultureTypes;
// Output the culture information...}
C- for each (CultureInfo^ culture inCultureInfo::GetCultures(CultureTypes::NeutralCultures)) {// Output the culture information...}
D- for each (CultureInfo^ culture inCultureInfo::GetCultures(CultureTypes::ReplacementCultures)) {// Output the culture information...}
Answer: A
13-
You need to serialize an object of type List
A- BinaryFormatter^ formatter = gcnew BinaryFormatter();MemoryStream^ stream = gcnew MemoryStream();formatter->Serialize(stream, data);
B- BinaryFormatter^ formatter = gcnew BinaryFormatter();MemoryStream^ stream = gcnew MemoryStream();for (int i = 0;i
C- BinaryFormatter^ formatter = gcnew BinaryFormatter();byte
D- BinaryFormatter^ formatter = gcnew BinaryFormatter();MemoryStream^ stream = gcnew MemoryStream();Capture c(formatter,stream);data->ForEach(gcnew Action
Answer: A
14-
You need to create a method to clear a Queue named q. Which code segment should youuse?
A- for each (Object^ e in q) {q.Dequeue();}
B- for each (Object^ e in q) {q.Enqueue();}
C-q.Clear();
D-q. Dequeue();
Answer: C
15-
You create an application that stores information about your customers who reside invarious regions. You are developing internal utilities for this application.You need to gather regional information about your customers in Canada.Which code segment should you use?
A- For Each objCulture As CultureInfo In_CultureInfo.GetCultures(CultureTypes.SpecificCultures)...Next
B- Dim objCulture As New CultureInfo("CA")
C- Dim objRegion As New RegionInfo("CA")
D- Dim objRegion As New RegionInfo("")If objRegion.Name = "CA" Then...End If
16-
You are creating an undo buffer that stores data modifications. You need to ensure thatthe undo functionality undoes the most recent data modifications first. You also need toensure that the undo buffer permits the storage of strings only. Which code segmentshould you use?
A.Dim undoBuffer As New Stack(Of String)B.Dim undoBuffer As New Stack()C.Dim undoBuffer As New Queue(Of String)D.Dim undoBuffer As New Queue()
Answer: A
17-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform. You use a Windwos XP Professional clientcomputer named Certkiller -WS536 as your development computer. You are developing a .NET Framework 2.0 Windows application on Certkiller -WS536 which is used as collateral.
You write the following code in the application:Dim testplain As Byte() The byte array testplain contains the data that needs to be protected and the length of the data stored in the byte array is always a multiple of 16. You want only thethreads running under the current user context to be able to unprotect the data whilst the protected data will be stored in a different byte array. The original contents from the testplain byte array must remain unmodified. You are required to select which code segment to use if the application will be executed on computers running Windows XP Professional.What should you do?
A.Use ProtectedMemory.Protect(testplain, MemoryProtectionScope.SameLogon)B.Use ProtectedMemory.Protect(testplain, Nothing, DataProtectionScope.LocalMachine)C.Use ProtectedMemory.Protect(testplain, MemoryProtectionScope.SameProcess)D.Use ProtectedData.Protect(testplain, Nothing, DataProtectionScope.CurrentUser)
Answer: D
Explanation:The ProtectedData.Protect method is used to return a protected copy of the data in the testplain byte array whilst the content of the byte array remains unaffected making this the correct option to use in the scenario.
18-
You work as the application developer at Certkiller .com. You are developing a .NET Framework 2.0 Windows Service application named TestScannerSync that will be used to constantlymonitor for a scanner to be connected to the computer. The TestScannerSync class inherits its functionality from the ServiceBase class. When you connect a scanner the servicesynchronizes its data with the data in a SQL Server database.You decide to override the OnStop method in the TestScannerSync class and write code to close database connections. are required to identify a place in the code where you can openthe connection to the database.What should you do?
A.The database connection is opened in the constructor of TestScannerSync class
B.The database connection is opened in the OnContinue method of TestScannerSync classC.The database connection is opened in the OnStart method of the TestScannerSync classD.The database connection is opened in the OnPowerEvent method of the TestScannerSync class
Answer: C
Explanation:The constructor for a service class derived from ServcieBase is called the first time you call Start on the service, the OnStart command-handling method is called immediately after theconstructor executes.
19-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform. You use a Windwos XP Professional clientcomputer named Certkiller -WS554 as your development computer.You are developing a .NET Framework 2.0 application.
The application will be used globally and must be able to represent characters in the following languages:English, Chinese Traditional, Hebrew and Tamil. Your application is required to provide error detection for invalid sequences of characters whilst your application must also optimize storage.What should you do?
A.Encode the characters in your application using the UTF8Encoding classB.Encode the characters in your application using the UTF7Encoding classC.Encode the characters in your application using the UTF32Encoding classD.Encode the characters in your application using the UTF16Encoding class
Answer: A
Explanation:To successfully enable error detection and make the class instance more secure you should make use of the UTF8Encoding class in the scenario.Incorrect Answers:B: The Encoding class used in this option UTF7Encoding does not provide any error detection and should not be used in the scenario.
C, D: The Encoding classes in these options should not be used in the scenario because the UTF16Encoding class represents each character as a sequence of one to two 16-bit integers and the UTF32Encoding represents each code point as a 32-bit integer.
20-
You work as an application developer at Certkiller .com. A fellow developer named Amy Walsh recently created an assembly that implements a custom permission set. Certkiller .comhas asked you to test this assembly. You start by copying the assembly to a test server named Certkiller -SR15 that has the Microsoft .NET 2.0 Framework installed. You thenlog on to the Certkiller -SR15 as a member of the local Administrators Windows group.
You run the assembly, and receive a security exception. You perform a brief analysis of the security issues involved, and find that the assembly has not been assigned the appropriatepermissions to run.
You need to ensure that this assembly runs.What should you do?
A-Use the permview.exe tool to modify the assembly's granted permissions.B-Use the sn.exe tool to modify the assembly's granted permissions.C-Use the caspol.exe tool to modify the assembly's granted permissions.D-Use the gacutil.exe tool to modify the assembly's granted permissions.
Answer: C
Explanation:The caspol.exe command-line tool allows users to modify security permissions, permission sets, and code groups for an assembly at the machine, user, and enterprise policy levels.Incorrect Answers:A: The permview.exe tool only allows users to view declarative security of an assembly.
B: The sn.exe tool allows developers to create a strong-named asymmetric key pair for strong-named assemblies.D: The gacutil.exe tool allows users to manage the contents of the global assembly and download cache.
21-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform. You are developing a .NET Framework 2.0 Web application and are busy creating a Configuration object in your application that inherits settings from the applications' web.config file and machine.config file. You modify several of the Configuration objects settings and want to save the Configuration object to a file named testconf.config. You require only the values that differ fromthe inherited values to be written to the configuration file.What should you do? (Choose two)
A.The Save method on the Configuration object should be called
B.The ConfigurationSaveMode.Full value must be passed as a parameterC.The ConfigurationSaveMode.Modified value must be passed as a parameter
D.The SaveAs method on the Configuration object should be calledE.The ConfigurationSaveMode.Minimal value should be passed as a parameter
Answer: CD
Explanation:When you are required to write configuration settings to a different file the SaveAs method should be called. If you wish to write only values which differ from inherited values theConfigurationSaveMode.Minimal value should be passed as a parameter.
22-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform. You are developing a .NET Framework 2.0 application and write the following code in your Bill program:
Dim logFile As Stream = File.Create("C:\BillLogFile.txt") Dim txtl As TextWriterTraceListner = New TextWriterTraceListner(logFile) Trace.Listners.Add(txtl) Trace.WriteLine("Bill Message 1")Debug.WriteLine("Bill Message 2") Trace.Flush() You need to know what output will be generated in the C:\BillLogFIle.txt file when you run the Bill program in debug mode.What should you do?
A.Bill Message 1B.Bill Message 2
C.The C:\BillLogFile.txt file is emptyD.Bill Message 1 Bill Message 2
Answer: D
23-
You work as an application developer at Certkiller .com. You are currently creating an application that requires role-based security. You are planning to utilize a database to store the user accounts and group membership data.You need to ensure that users are able to log on and off. You also need to ensure that the application you have created tracks the user accounts of these users, and restrict or allow access to code based on their group membership. You need to achieve this objective with as little developer effort as possible.
What should you do to implement role-based security?
A.Inherit from the GenericIdentity and GenericPrincipal classes.B.Make use of GenericIdentity and GenericPrincipal objects.C.Implement the IIdentity and IPrincipal interfaces.D.Make use of WindowsIdentity and WindowsPrincipal objects
Answer: B
24-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform. You are developing a Windows Service application that consists of two Services. The first service monitors a directory for new orders while the other service replicates a database table with up-to-date information. You are required to develop a project installer class to install these services.
What should you do? (Choose two)
A- One ServiceProcessInstaller instance must be Instantiate and add it to the project installer class
B- Two ServiceInstaller instances must be Instantiate and add them to the project installer class
C- Two ServiceProcessInstaller instances must be Instantiate and add them to the project installer class
D- One ComponentInstaller instance must be Instantiate and add them to the project installer classE-Two ComponentInstaller instances must be Instantiate and add them to the project installer classF-One ServiceInstaller instance must be Instantiate and add them to the project installer class
Answer: AB
25-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform.You are developing a .NET Framework 2.0 Windows application that provides a user interface similar to Microsoft Excel and allows users to manage their expenses.
You recently wrote a wrapper around the expense management application which performs security checks. If the users have the sufficient rights the wrapper application launches the expense management application, if no sufficient rights the application should be forced to close. You must decide which method of the Process class to use.What should you do?
A.Use the Kill method.B.Use the Close method.C.Use the Dispose method.D.Use the CloseMainWindows method.
Answer: A
26-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform.You are developing a .NET Framework 2.0 application that will be used for publishing its own custom performance counter. You additionally require the value of a performance counter toincrease by 5 and must minimize the amount of code needed to write.What should you do?
A.Use the NextValue method.B.Use the Decrement method.C.Use the Increment method.D.Use the IncrementBy method.
Answer: D
27-
You work as an application developer at Certkiller .com. You are developing a .NET Framework 2.0 application used to store a type-safe list of names and e-mail addresses. The list will bepopulated all at ones from the sorted data which means you well not always need to perform insertion or deletion operations on the data.You are required to choose a data structure that optimizes memory use and has good performance.What should you do?
A.The System.Collections.Generic.SortedList class should be usedB.The System.Collections.HashTable class should be usedC.The System.Collections.Generic.SortedDictionary class should be usedD.The System.Collections.SortedList class should be used
Answer: A
28-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform.You are developing a .NET Framework 2.0 geographical information system for the company and create a class named Certkiller Code. You are required to serialize all public and non-publicdata of the Certkiller Code class whilst you ensure that you produce the smallest byte stream so that the smallest load is placed upon network resources.What should you do?
A.The XmlSerializationWriter class should be usedB.The XmlSerializer class should be usedC.The BinaryFormatter class should be usedD.The SoapFormatter class should be used
Answer: C
29-
You work as an application developer at Certkiller .com. Certkiller .com has been contracted to develop an application for the local bank.
You have been given the responsibility of creating this application and need to store each transaction record, which is identified using a complex transaction identifier, in memory. The bank informs you that the total amount of transaction records could reach 200 per day.
To achieve this, you decide to utilize one of the existing collection classes in the .NET 2.0 class library. You need to ensure that you the collection class you select is the most efficient one for storing transaction records.
What should you do?
A-Select the ListDictionary collection class.B-Select the HashTable collection class.C-Select the Queue collection class.D-Select the StringCollection collection class
Answer: B
30-
You work as the application developer at Certkiller .com. Certkiller .com uses Visual Studio.NET 2005 as its application development platform.You are developing a .NET Framework 2.0 time management application that requires opening a file namedBillTimeManagement.als programmatically.
All the client computers are equippedwith Microsoft Office and file associations have not been modified after installation of the software. You are required to create a ProcessStatInfo object to provide file details to open the file.What should you do?
A.Dim psi As ProcessStartInfo = New ProcessStartInfo("BillTimeManagement.xls", "Excel")
B.Dim psi As ProcessStartInfo = New ProcessStartInfo("Excel BillTimeManagement.xls")C.Dim psi As ProcessStartInfo = New ProcessStartInfo("Excel", "BillTimeManagement.xls")D.Dim psi As ProcessStartInfo = New ProcessStartInfo("BillTimeManagement.xls")
Answer: D
31. Why should boxing be avoided? (Choose one.)
A. It adds overhead.
B. Users must have administrative privileges to run the application.
C. It makes code less readable.
32 Structures inherit ToString from System.Object. Why would someone override that method within a structure? (Choose as many correct answer as apply.)
A. To avoid boxing.
B. To return something other than the type name.
C. The compiler requires structures to override the ToString method
D. To avoid run-time errors caused by invalid string conversions.
33. If there is no valid conversion between two types, what should you do when
implementing the IConvertible interface?
A. Delete the ToType member that performs the conversion
B. Throw an InvalidCastException.
C. Throw a new custom exception reporting the error.
D. Leave the member body empty.
34. With strict conversions enabled, which of the following would allow an implicit
conversion? (Choose all that apply.)
A. Int16 to Int32
B. Int32 to Int16
C. Int16 to Double
D. Double to Int16
Respuestas
31. Correct Answer: A
A. Correct: The primary reason to avoid boxing is because it adds overhead.
B. Incorrect: Boxing requires no special privileges.
C. Incorrect: Boxing does not make code less readable.
32. Correct Answers: A and B
A. Correct: Value types are boxed when an abstract method inherited from
System.Object is called. Overriding the method avoids boxing.
B. Correct: By default, the ToString method simply returns the type name,
which is typically not useful for a consuming application.
C. Incorrect: The compiler does not require structures to override the
ToString method.
D. Incorrect: ToString never causes a run-time error; it simply returns the type
name unless overridden.
33. Correct Answer: B
A. Incorrect: You can’t omit a member of an interface and still conform to that
interface.
B. Correct: InvalidCastException is the recommended exception to throw.
C. Incorrect: While you could throw a custom exception, using standard
exception types makes it easier for developers writing code to consume
your type to catch specific exceptions.
D. Incorrect: You must return a value for each conversion member.
34. Correct Answers: A and C
A. Correct: You can convert from Int16 to Int32 because that is considered a
widening conversion. Because Int32 can store any value of Int16, implicit
conversion is allowed.
B. Incorrect: You cannot convert from Int32 to Int16 because that is consid-
ered a narrowing conversion. Because Int16 cannot store any value of Int32,
implicit conversion is not allowed.
C. Correct: You can convert from Int16 to Double because that is considered a
widening conversion. Because Double can store any value of Int16, implicit
conversion is allowed.
D. Incorrect: You cannot convert from Double to Int16 because that is consid-
ered a narrowing conversion. Because Int16 cannot store any value of Dou-
ble, implicit conversion is not allowed.

