Andresoft Developer

Sin Software, el Hardware es inutil…

[VSTS2010] Listado de Novedades en C# 4.0 y VB.Net 10

Publicado por Andres Granja en marzo 7, 2009

Poco tiempo le he dedicado a Visual Studio Team System 2010 en estos ultimos días, entre tanta fiesta navideña, el 1er año de Valentino y otros menesteres.

Sin embargo, veo que otros cracks si han seguido trabajando en estas fechas. Por ejemplo, Lisa Feigenbaum ha creado un pequeño listado con las novedades que se incluyen en las nuevas versiones de C# 4.0 y Visual Basic.Net 10.0. Es tan simple y concreto que no me he podido resistir a traducirlo y a postearlo para futuras referencias:

Publicado en Visual Studio | Deja un Comentario »

Primer parche para Windows 7 Beta

Publicado por Andres Granja en enero 20, 2009

vista_7_1

Microsoft acaba de entregar el primer parche para el Windows 7 Beta. Si tienes esta versión oficial, en cualquier momento el sistema te va a ofrecer bajar e instalar este parche sólamente arregla un problema con los archivos de audio.

Como era de esperarse, el parche arregla el problema de que Windows 7 borraba algunos segundos y segmentos de audio de archivos MP3.

Según Microsoft, la reciente vulnerabilidad descubierta en el protocolo SMB que afecta a todas las versiones de Windows (Windows 7 inclusive) no se va a mejorar sino al momento del lanzamiento oficial del sistema operativo, por tratarse de un problema no urgente.

El parche ya se encontraba disponible desde hace dos días para ser instalado manualmente, pero es recién hoy que fue empujado al sistema automático de mejora.

parche de audio

Publicado en Sistemas Operativos | Deja un Comentario »

Documentation’s here

Publicado por Andres Granja en enero 8, 2009

Ya está lista toda la información…….

sacale el jugo…!!

Si quieres alguna información adicional, deja un comentario….

Publicado en Noticias | 1 comentario

Dercargar Windows 7 Build (pre-beta)

Publicado por Andres Granja en enero 6, 2009

Hace unas semanas mencionamos que la pre-BETA de Windows 7 se había filtrado a la web. Muchos usuarios la descargaron y la mayor parte no tuvo más que quejas a pesar de que era una versión muy temprana para hacer conjeturas. Ahora parecería ser que Windows 7 se encuentra en estado de prueba y disponible para descargar. No es que Microsoft la haya liberado para el público, pero como siempre sucede se filtró una copia del ISO y esta para descargar en sitios de torrents.

Aunque Microsoft anunció oficialmente que la BETA estaría disponible en enero de 2009, ya se encuentra para descargar la versión de 32-bit. Eso no quiere decir que no exista una versión 64-bit, pero curiosamente aún no se ha filtrado. Según indican los rumores, esta versión ha estado en prueba desde el 12 de diciembre.

El escritorio de Windows 7.
El Escritorio de Windows 7.
Links de Descarga:
Windows 7  Build 6956
Parte 1: http://depositfiles.com/es/files/9umldm60l
Parte 2: http://depositfiles.com/es/files/r368soz2c
Parte 3: http://depositfiles.com/es/files/o85jg4ftr
Windows 7  Build 7000
http://depositfiles.com/es/files/t60xwan8a ( Torrent )

Publicado en Sistemas Operativos | 1 comentario

¿Cómo se mide la calidad en el software?

Publicado por Andres Granja en enero 4, 2009

¿Qué es la calidad en el software?¿Se puede medir?¿Cómo?
Cuando decimos que para nosotros la calidad es muy importante, ¿a que nos referimos?

En primer lugar quiero puntualizar las siguientes afirmaciones de dicho artículo:

  • Directivos y personal de Márketin dan más importancia al número de características que tiene un software que a la calidad, porque la calidad no se puede poner en un anuncio o en una oferta.
  • Algunos directivos al mando de empresas que construyen software caen en el error de pensar en la producción de software desde los parámetros habituales en otras industrias. La producción de software es muy diferente, es un proceso creativo no un proceso manufacturero. (Léase ejemplo de bolígrafos en dicho artículo)
  • La principal diferencia cuando ‘fabricamos’ software es que la calidad no es opcional, no puedes elegir fabricar software de baja calidad y rebajar el precio. Puedes restarle funcionalidad, pero no calidad.
  • Nadie recuerda a quien hizo un buen software (de calidad), pero nadie olvida el que fallaba constantemente (¿os acordáis de los pantallazos azules del w95?)
  • Paradójicamente, y esto es un hecho, es que añadir calidad a nuestro software, al contrario de lo que puede parecer a primera vista, reduce los costes de desarrollo y acorta los plazos.Pantallazo

Y por último quiero citar un párrafo textualmente:

“He visitado empresas, con grandes carteles en recepción del estilo “La calidad es nuestra esencia” o “La calidad al servicio del cliente” y con todas las certificaciones habidas y por haber de ‘calidad’ que no tienen ni un solo especialista en calidad del software, ni un solo especialista en probar aplicaciones. Y no, los desarrolladores, no son expertos en calidad y pruebas.”

Bien, dicho esto, y reflexionado sobre ello, podemos afirmar que en otros entornos percibimos la calidad perfectamente, cuando probamos un coche de gama alta, percibimos la calidad, ¡y no tenemos conocimiento del proceso de producción!, pero si palpamos la calidad, por ejemplo (y siguiendo con el ejemplo del coche), cuando aceleras sientes rendimiento, cuando tomas una curva y percibes estabilidad, cuando frenas, notas seguridad… realmente son indicadores (“métricas”), que se podrían medir y poner una puntuación de calidad a cada vehículo.

¡¡Vamos a intentar medir la calidad del software!!

Primero vamos a intentar identificar los factores que desde un punto de vista externo definen la calidad del software, no me refiero a los procesos internos de desarrollo, como pruebas unitarias, gestión de cambios, calidad del código… no!! me refiero a lo que se percibe, una vez el software está terminado, implantado y en producción, lo que nota un usuario. Intentemos pensar (como ejemplo para evaluar la calidad) en un producto software…, uno de los primeros que desarrollamos o probamos, así veremos mejor su evolución y evaluaremos la calidad teniendo en cuenta factores temporales.

  • Satisfacción del cliente (se suelen hacer encuestas para obtener este dato)
    • Interfaz de usuario (usabilidad, accesibilidad, facilidad de manejo, curva de aprendizaje, diseño…)
    • Rendimiento de la aplicación, Seguridad, Despliegue, Actualizaciones, Integración con sistemas…
  • Número de bugs en producción (bugs encontrados y la importancia de los mismos, se podría incluir en satisfacción del cliente)
  • Rentabilidad económica (%, precio de venta – coste de desarrollo)
    • Este factor no es relevante para el usuario, pero tiene mucha información subliminal y por eso lo quiero incluir. Para mí está muy ligada la rentabilidad a la calidad, por muchas cosas como la (la buena estimación, buena planificación, gestión, previsión, pruebas, buena arquitectura, buen código, pocos bugs, aplicación modular y bien preparada para el cambio…) por ello lo quiero incluir como factor a tener en cuenta, aunque no le afecte al cliente diréctamente, si indirectamente, ya que si el software es rentable, el cliente obtendrá un mejor servicio, soporte, mantenimiento… en definitiva un buen producto…(bueno este es otro tema)
  • Tiempo de vida por cliente (años que el software está funcionando)
    • El usuario quiere algo que le satisfaga y si (por ejemplo) en el banco de Cuenca tienen una aplicación Cobol, desarrollada hace 15 años, que les satisface las necesidades actuales, desde luego que es un aplicativo con calidad. Al igual que un coche, de hecho es muy típico ver mercedes de hace 20 años rodando a diario por las carreteras.
  • Número de clientes (clientes que tiene el software implantado y en producción)
    • Otro factor importante es el número de clientes que tiene un software, (no voy a poner más ejemplos de coches), por ejemplo existen productos software que están muy estandarizados (SAP, Subversion, PhotoShop, Office…) es software muy popular, muy testeado, en diferentes entornos y condiciones, y yo creo que eso es un síntoma de calidad.

Estos son los factores que se me han ocurrido, seguro que hay muchos mas (espero vuestros comentarios ;) ).

Una vez apuntados los factores vamos a medir la calidad, … ¿qué?¿cómo?… si si, vamos a medir la calidad…, de las propiedades del software de calidad, podemos sacar métricas y de esas métrica (de una manera muy simple y lógica) vamos a preparar una primera versión de la fórmula:

Formula irreal de la calidad del software

Por si alguién no se ha dado cuenta está fórmula me la acabo de sacar “de la manga”, pero yo creo que tiene los factores clave para darnos una medida de la calidad que percibe un usuario de software.

Es tan dificil medir la calidad…, no cabe duda de que si diésemos con una fórmula válida, nos haríamos multimillonarios, pero la calidad no es algo tan trivial, que se pueda medir en una escala de 0 a 10… la calidad tampoco es binario o 0 o 1, o se tiene o no se tiene, es algo mas complejo, la calidad es el día a día, el trabajo meticuloso, de trabajo organizado y estructurado, probado y documentado, orientado a la petición de cambio del cliente y a la facilidad para llevar a cabo el cambio en el equipo de desarrollo, la calidad no es CMMI o SCRUM, aunque si es cierto que cualquier metodología actual sienta las bases para desarrollar un producto de calidad.

Por todo esto y para terminar, decir que la calidad no se puede medir, pero los factores que afectan a la calidad si se pueden identificar y mejorar… por lo tanto la calidad está en la mejora diaria, en cada uno de los eslabones del desarrollo de software, en la buena gestión, en cada línea de código, … todos deben aportar calidad, desde la codificación (tratando de documentar el código, haciendolo, legible, mantenible…), hasta la implantación del producto (haciendo un aterrizaje suave sobre un entorno de pre-producción, pasar de nuevo el plan de pruebas), hasta incluso después de la puesta en producción aportando al cliente un buen bug-tracker y comunicación continua…

¿Entonces, que tengo que hacer para aplicar calidad a mis desarrollos? … ¡mejorar! Mejorar en todos y cada uno de los procesos, hitos y tareas de la producción de software. (Y para decir esta frase el rollo que he soltado…)
PD: Si has tenido la paciencia de leer hasta el final, ¡¡enhorabuena!! estás reálmente interesado en mejorar y ese es el requisito fundamental para aplicar calidad al software.

Fuente:

  • Rodrigo Corral
  • Miguel Sierra

Publicado en Software | 1 comentario

El lenguaje Oficial del VS 2010

Publicado por Andres Granja en enero 3, 2009

Microsoft tiene planes de integrar F# (pronunciado “ef sharp”, un lenguaje de programación funcional desarrollado por el Grupo de Investigación de Microsoft, con su ambiente de desarrollo integrado Visual Studio. Este lenguaje se basa en los conceptos de programación funcional, en los cuales se trata a la computación como la evaluación de funciones matemáticas; se preguntarán quien se interesaría por esto: principalmente, profesionales con necesidad de resolver problemas que se encuentren en dominios que se describen mejor en notación matemática, como las finanzas, ciencias y computación técnica.

F# combina seguridad de tipos, desempeño y scripting. También soporta scripting interactivo como en Python, y F# también puede usar las librerías de .NET y sus herramientas de base de datos. Hasta ahora, la noticia ha tenido buena recepción entre algunos programadores. A pesar de que aún no hay fecha de lanzamiento, el producto ya está bastante avanzado y podría ser lanzado en breve.

Publicado en Visual Studio | 1 comentario

Visual Estudio 2010 Primeras Pruebas

Publicado por Andres Granja en enero 3, 2009

Usando la CTP de Sep08

Bajar la CTP de Septiembre 08 de Visual Studio 2010

Si quieres bajarte la CTP de Visual Studio 2010 y .NET Framework 4.0, pulsa en este link:
http://go.microsoft.com/fwlink/?LinkId=131310

Y si quieres ver más información o dar soporte a esta “preview” de Visual Studio 2010, pulsa en este link:
http://go.microsoft.com/fwlink/?LinkId=129231

El nuevo look del IDE de Visual Studio 10

La primera impresión cuando abres el Visual Studio 2010 (o Visual Studio 10) es que han cambiado la página de inicio (Start Page), ahora utiliza WPF, con lo que se mejora el “look” de esa página de inicio.
En la figura 1 tienes una de las tres partes de esta página de inicio.
En la figura 2 tienes la parte que agrupa la creación de nuevos proyectos o el acceso a los proyectos existentes. Entre los cambios que hay, puedes ver que ahora es fácil de eliminar proyectos de esa lista, no se pueden reordenar, pero es posible que lo agreguen en futuras revisiones.

Figura 1. Página de inicio de Visual Studio 2010

Figura 1. Página de inicio de Visual Studio 2010

Figura 2. La sección para los proyectos de Visual Studio 2010
Figura 2. La sección para los proyectos de Visual Studio 2010

Seleccionado de las clases y variables en el IDE

El IDE de Visual Studio 10 permite seleccionar o resaltar las clases y tipos que tenemos seleccionado.
Por ejemplo, en la figura 3, tengo seleccionada la variable nums y en el editor se resaltan todas las veces que aparece esa variable.

Figura 3. Resaltado de la variable seleccionada
Figura 3. Resaltado de la variable seleccionada

Novedades de Visual Basic 10

A continuación te muestro las novedades de Visual Basic 10 que he probado:

Adiós al continuador de líneas (o casi)

Ahora no es necesario usar el continuador de líneas para escribir el código en varias líneas físicas.
Al menos en la mayoría de situaciones, aunque aún hay algunas cosillas que si no se usa el continuador de líneas, es posible que el compilador se líe y no nos permita usarlas.
Por ejemplo, puedes cambiar de línea (sin usar el continuador) después de un operador, después de una coma o un punto y cuando escribes consultas de LINQ o expresiones lambda multilíneas.

En los siguientes ejemplos puedes comprobar que no es necesario usar ese continuador para dividir el código en varias líneas físicas.

Si se usan operadores, se puede partir el código sin usar continuador de líneas:

Dim i1 = 10 + 5
Dim i2 = 10 +
    5

En ciertos casos, como este, se puede cambiar de línea sin usar el continuador:

Console.WriteLine(“i1 = {0}, i2 = {1}”, i1, i2)

Donde más se echaba en falta era en la asignación de cadenas:

Dim s = “Hola mundo” & vbCrLf & “Segunda línea”

También es muy útil cuando se escriben consultas de LINQ:

Dim q1 = From n In nums Where n > 4 Select Valor = n, Espar = (n Mod 2) = 0

Incluso cuando se escriben consultas de LINQ usando los métodos extensores:

Dim q2 = nums. Where(Function(n) n > 4). OrderByDescending(Function(n) n)

En los bucles, hay situaciones en las que debemos usar el continuador de líneas:

For i = 0 To _ nums2.Length – 1 Console.WriteLine(i) Next

Pero solamente si el compilador no se aclara, ya que en otros casos, si se pueden usar:

For i = 0 To nums2. Length – 1 Console.WriteLine(i) Next

Como vemos a continuación, tenemos muchas opciones en las que no es necesario el continuador de líneas:

For Each n In nums2. OrderByDescending( Function(n1) n1) Console.WriteLine(n) Next

Y como veremos más abajo, también es muy útil cuando escribimos código que definen colecciones, arrays o expresiones lambda
, sobre todo cuando son de varias líneas.

Propiedades autoimplementadas

Las propiedades autoimplementadas nos permiten definir de forma muy simple las propiedades que no deben ejecutar código personalizado en los bloques Set o Get.

Se permite asignar un valor inicial (como se hace con las variables normales), incluso a colecciones o arrays.

En el siguiente trozo de código, puedes ver un par de ejemplos de propiedades autoimplementadas, lo que no se permite es crear este tipo de propiedades con ámbitos diferentes para cada bloque de código (bloque Get o bloque Set) o propiedades que sean de solo lectura o solo escritura.

Class Colega
    ' Propiedades autoimplementadas "normales"
    Public Property Nombre As String
    Public Property Correo As String

    ' Con un valor inicial
    Public Property ID As String = "0001"

    ' Una propiedad de tipo colección
    ' con valores iniciales
    Public Property Valores As New List(Of Integer) From {1, 2, 3, 4, 5}

End Clas

Inicialización de arrays

Ahora se pueden iniciar los arrays sin necesidad de indicar que es un array…

En este primer ejemplo, se define un array de tipo Integer de la forma “tradicional”

Dim nums1() As Integer = {1, 2, 3, 4, 5, 6}

Esta es la forma de definir un array de forma “simple”:

Dim nums = {1, 2, 4, 3, 5, 7, 6, 9, 8}

Incluso se puede cortar en varias líneas para que resulte más fácil de leer,
por ejemplo cuando se usa la inicialización de objetos:

Dim colegas = {
    New Colega With {.Nombre = "Guille"},
    New Colega With {.Nombre = "Pepe"}
}

Inicialización de colecciones

En esta versión de Visual Basic, también se pueden inicializar las colecciones, aunque tiene un poco de “truco”, ya que se debe usar la instrucción From para indicar los valores que se asignarán a la colección: En este primer ejemplo vemos cómo crear una lista de tipo List(Of Integer):

Dim colNums As New List(Of Integer) From {1, 2, 3, 4, 5, 6}

En este otro inicializamos una colección de tipo Dictionary:

Dim colDic As New Dictionary(Of Integer, String) From { {1, “Uno”}, {2, “Dos”}, {3, “Tres”} }

En este ejemplo, inicializamos una colección de tipo List(Of Colega):

Dim colegas2 As New List(Of Colega) From { c1, New Colega With {.Nombre = “Pepe”}, New Colega With {.Nombre = “Guille”} }

Por supuesto, no hace falta indicar las cosas en líneas diferentes:

Dim col2 As New List(Of Colega) From {c1, New Colega With {.Nombre = “Pepe”}}

Expresiones lambda

En Visual Basic 9 (o Visual Basic 2008) solo se podían definir expresiones lambda (o funciones en línea) usando Function y en esa función solo se permitía una instrucción.
En Visual Basic 10 (VB10), si esa expresión lambda no devolverá un valor, se puede usar Sub en lugar de Function, pero lo más interesante es que se pueden escribir expresiones lambda con más de una instrucción (es decir, una expresión lambda multilínea).
En los siguientes apartados puedes ver ejemplos de esto que comento:

Que no devuelven valores (Sub)

En este ejemplo asignamos un método para interceptar un evento:

AddHandler Button1.Click, Sub() MessageBox.Show(“Hola (2) “ & TextBox1.Text)

Multilínea

En este ejemplo, vemos algo parecido al anterior, pero usando una expresión lambda multilínea.
En este caso, al ser de tipo Sub, se debe indicar End Sub como final:

AddHandler Button1.Click, Sub() Label2.Text = “(Sub) Hola “ & TextBox1.Text End Sub

En este ejemplo, al usar Function, se debe acabar el bloque de código con End Function y debe devolver algo… aunque sea nada:

AddHandler Button1.Click, Function() Label2.Text = “(Function) Hola “ & TextBox1.Text Return Nothing End Function

En este ejemplo, se usa una expresión lambda de tipo Function multilínea:

Dim v1 = CInt(TextBox2.Text) Dim v2 = CInt(TextBox3.Text) Dim r = Function(x1 As Integer, x2 As Integer) Dim v = x1 + x2 Return String.Format(“{0} + {1} = {2}”, x1, x2, v) End Function Label3.Text = r(v1, v2)

Es importante tener en cuenta que si se escriben expresiones lambda multilíneas de tipo Function, siempre debe indicarse la instrucción Return con el valor que esa función debe devolver.

Publicado en Visual Studio | 1 comentario

Visual Studio 2008 y SqlServer 2008

Publicado por Andres Granja en enero 3, 2009

  • Ambiente de Desarrollo Integrado (IDE):Si instalas Visual Studio 2008 en una computadora con Visual Studo 2005, laprimera vez que inicies Visual Studio 2008 puedes importar todas las configuraciones que tenias en Visual Studio 2005.Si tienes snippets personalizados o de una empresa, puede que necesites pasar estos de manera manual. Otra de las características es que el menu Community (Comunidad) fue removido de la barra principal. Los comandos internos del menu, como Ask a Question (Haz una pregunta) y Check Question Status (Cheque el estatus de la pregunta) se unieron para formar una opción denominada MSDN Forums dentro del menu Help (Ayuda). El comando Send Feedback (Sugerencias), cambio denombre y ahora se llama Report a Bug (Reporta un problema) y esta dentro del propio menu Help. La que me agrada más es el soporte de diseñador de clases (Class Designer) de Visual Studio a C++ .NET. Lo malo es que solamente se utiliza para documentación y visualización, es decir, no trae soporte a código.
  • Proyectos y Soluciones: Soporte a Windows Presentation Foundation de manera nativa. Cuando se inicia un proyecto, seleccionando el lenguaje, se pueden crear cuatro (4) tipos de proyecto WPF:
    • WinFX Windows Application
    • WinFX Web Browser Application
    • WinFX Custom Library
    • WinFX Service Library

Una de las mejores características que se agregaron a Visual Studio 2008 es la capacidad de especificar el Framework sobre el cuál se desea compilar. En las cajas de dialogo Advanced Compiler Settings (VB) y Advanced Build Settings (C#), ahora existe un nuevo campo denominado Target Framework que permite seleccionar lo siguiente:

  • .NET Framework 2.0
  • .NET Framework 3.0
  • .NET Framework 3.5
  • Implementación: ClickOnce ha sido mejorado para brindar soporte a Windows Vista:
    • Ahora soporta la implementación de proyectos WPF Web Browser Application. Como estos proyectos requieren una implementación especial y una configuración adicional de seguridad, ahora Visual Studio provee de los asistentes y pasos requeridos para configurar dichos elementos.
    • Ahora las empresas que desarrollan software comercial (ISVs), toman ventaja de una característica interesante. Ahoran pueden firmar nuevamente el manifiesto de la aplicación, colocando elementos dentro del manifiesto que permiten identificar a la empresa.
    • Soporte para publicación a través del Publicador de Proyectos o del Asitente de Publicación.
  • Edición: Ahora, tenemos una herramienta para el diseño de hojas de estilo (CSS). También se agrego tecnología Intelisense a JScript en los proyectos AJAX. Además, el diseñador de WPF permite crear aplicaciones y controles personalizados en el IDE.

SQL Server 2008

  • Entities (Entity Data Model): Se creo un framework sobre ADO para proveer a los desarrolladores un modelo de abstracción para programar en alto nivel (clases y objetos) y manipular información relacional (BD). Esta característica de abstracción se brinda gracias a la tecnología LINQ, la cuál es una tecnología que permite hacer consultas contra la información que se maneja en las entidades, sin utilizar T-SQL.
  • Ocassionally Connected Systems: También se agregó características de desconexión temporal de los datos a través del modelo de “Sistemas Conectados Ocasionalmente”.
  • FileStream: También (y creo que es la característica que me agrada más de SQL) es la capacidad de poder almacenar cualquier tipo de datos, a través del nuevo tipo de dato FileStream.

Existen más características, pero si las coloco todas, sería muy largo este blog :-) . Los invito a descubrir que otras bondaes nos traen Visual Studio 2008 y SQL Server 2008.

Publicado en Visual Studio | Deja un Comentario »

 
Seguir

Get every new post delivered to your Inbox.