Incorporar MSChart en Visual Studio y aplicaciones con el FW 3.5 Seleccionado.

Para algunas aplicaciones que utilizan la versión 3.5 del marco y son reeditadas en Visual Studio 2010, tienen la dificultad de no encontrar la referencia a MSChart (Evidentemente si la aplicación lo estaba utilizando) entonces es cuando surge la pregunta… ¿como puedo incorporarlo si quiero continuar trabajando este proyecto con el framework 3.5 como destino?

Para no entrar en discusiones de los filtros aplicados a las librerías según el marco seleccionado, una de las soluciones es simplemente descargar e instalar el control desde :

http://go.microsoft.com/fwlink/?LinkId=128852

Luego simplemente pulsando F5 tendremos de nuevo la compilación libre de errores sin tener que modificar referencia alguna.

Saludos,
Pep Lluis,

Single or Parallel – for.loops test – Visual Studio 2010

ParallelWon  SingleAndParallel Single

 Una de las novedades más excitantes de Visual Studio 2010 y el Framework, sin duda es la incorporación de las librerías para el uso de la ejecución en paralelo “paralelismo” o TPL (Task Parallel Library), pudiendo por fin sacar provecho a los ya extendidos multiprocesadores y/o múltiples ‘cores’.

Parece sencillo pero… no esta tan claro.

Es evidente que el uso de un simple ‘Parallel.For’ como cualquier otro proceso a través del framework, requiere de un número de recursos para conformar o organizar, planear y finalmente realizar la ejecución, además podemos suponer que este paralelismo se apoya sobre ‘threading’, por lo que debemos entender su aplicación dentro de escenarios donde exista un uso intensivo en la ejecución de tareas especificas y que estas justifiquen el consumo inicial de recursos en términos de rendimiento.

Con dichas conjeturas, está claro que un simple ‘for next’ siempre ganara en velocidad a un ‘parallel.for’,  si su ejecución se limita a la iteración sobre una simple estructura o lista y bien entendiendo en funciones cuya ejecución se realiza en una sola pasada.

Sin embargo la situación sufre un cambio radical cuando nuestro bucle itera en llamadas a funciones que realizan tareas con cierta carga de proceso.

Sin ninguna otra pretensión me complace compartir con vosotros un punto de entrada para evaluar la conveniencia o no de usar el paralelismo en determinadas tareas. También es evidente que no se trata de una herramienta formal, simplemente pretende ser un punto de entrada para experimentar de forma sencilla y asequible la implementación de escenarios muy básicos.

Esperando vuestras valoraciones, espero que llame vuestra atención y os complazca.

Cuidaros Mucho!
Pep Lluis,

Para probar la aplicación, necesitareis tener instalada la versión beta de Visual Studio 2010 y crear un nuevo proyecto ‘Windows Form Application’ deberemos añadir y distribuir en su form1 las siete etiquetas (del Label1 al Label7) correspondientes a la visualización de los datos del proceso, dos ‘NumericUpDown’ para proporcionarle el numero de bucles e iteraciones, un ‘Progressbar’ para comparar tiempos de ejecución y listo … con copiar y pegar el código adjunto, podréis utilizar este “tester” para vuestra primera aplicación en paralelo J

No dudéis en contactar conmigo si necesitáis cualquier aclaración o si necesitáis que os envíe el prototipo para este proyecto.

 With no doubt  one of the most exciting features in Visual Studio 2010 and Framework 4 is parallel computing or TPL (Task Parallel Library), being able finally to take benefit of multiprocessors  and multi core systems. 

This seems clear and simple but… may be need consider some aspects before J

It is evident that the use of simple Parallel.For’ like any other process through framework, requires a minimum number of resources to conform, to organize, to plan and finally to make the execution, in addition we can suppose that this parallelism leans on `threading’, reason why must be applied within scenes where have an intensive use of processes execution or long tasks, at end only this may justify these initial consumption of resources in performance terms.

With these conjectures, it is clear that simple `for next’ always won in speed to `parallel.for’, if their execution are limited to iterate on a simple structure or list, as well understanding this functions inside single flow process and made one to one.

Nevertheless the situation undergoes a radical change when our iteration calls to functions that make tasks with certain load of process.

Without any other pretension it pleases to me to share with you an entry point to evaluate the convenience of using parallelism in certain tasks. Also it is evident that one is not a formal tool, simply tries to be an entry point to start with a reasonable simple form and the implementation of very basic scenes.

Waiting for your evaluation, I hope this short explanation pleases to you.

Take care!
Pep Lluis,

Ps: No doubt in contacting with me if you need any extra explanation or if you need that I sent this prototype to you.

 

In this sample readings do not seem respond to the real milliseconds, I recommend use `ElapsedTicks’ instead `Elapsed.TotalMilliseconds”, these correspond directly to ticks of chrono, eliminating any other interpretation.

Regards,

Imports System.Threading

‘ Simple Skeleton to test ‘parallel.for’
‘ Pep Lluis 14.07.2009

‘ Compare/test time execution of single over parallel task’s

‘ To run require Visual Studio 2010 Beta
‘ To catch Illegal Cross threat’s exceptions, correct appropriate code
‘ or set false, Checking cross thread calls.

Public Class SingleOrParallel
    Dim _timer As New System.Timers.Timer
    Private Sub SingleOrParallel_Load() Handles MyBase.Load
        AddHandler _timer.Elapsed, AddressOf Testing    ‘Run Test every elapsed time
        _timer.Interval = 1000                          ‘elapsed time to 1s
        _timer.Enabled = True                           ‘run timer
    End Sub

    Dim Elapsed1, Elapsed2 As Double                    ‘define elapsed memory’s
    Sub Testing()
        _timer.Enabled = False                          ‘Stop timer
        Me.Label5.Text = “Running Test”
        loops = Me.NumericUpDown1.Value                 ‘read number of loops
        SequentialFor()                                 ‘Call Sequential for
        ParallelFor()                                   ‘Call Parallel for
       
        ‘ Show results
        If Elapsed1 > Elapsed2 Then
            Label3.ForeColor = Drawing.Color.Red        ‘Parallel won
            Label4.ForeColor = Drawing.Color.Green
            ‘show execution time & differences between parallel & single
            Me.ProgressBar1.Value = (Elapsed2 * 100 / Elapsed1)
            Label5.Text = “fast “ + (100 – Int(Elapsed2 / Elapsed1 * 100)).ToString + “%”
            Label6.Text = Elapsed1.ToString             ‘Single time
            Label7.Text = Elapsed2.ToString             ‘Parallel time
        Else
            Label3.ForeColor = Drawing.Color.Green      ‘Single won
            Label4.ForeColor = Drawing.Color.Red
            Me.ProgressBar1.Value = (Elapsed1 * 100 / Elapsed2)
            Label5.Text = “fast “ + (100 – Int(Elapsed1 / Elapsed2 * 100)).ToString + “%”
            Label6.Text = Elapsed2.ToString             ‘Parallel time
            Label7.Text = Elapsed1.ToString             ‘Single time
        End If
        ‘ put result bottom progressbar value
        Label7.Left = (Me.ProgressBar1.Left +
                      ((ProgressBar1.Width / ProgressBar1.Maximum) * ProgressBar1.Value)) –
                      (Label7.Width / 2)
        _timer.Enabled = True                           ‘start timer to next test
    End Sub

 

    Dim loops As Integer
    Dim Chrono As New Stopwatch

    Sub SequentialFor()
        Chrono.Start()              ‘Start watch
        ‘ Conventional for next
        For n = 0 To loops
            SomeTask()
        Next
        ‘ remember Elapsed time
        Elapsed1 = Chrono.Elapsed.TotalMilliseconds
        Chrono.Stop()               ‘Watch stop
        Chrono.Reset()              ‘reset!
    End Sub

    Sub ParallelFor()
        Chrono.Start()              ‘Start wath
        ‘ parallel for
        Parallel.For(0, loops, Sub(n)
                                   SomeTask()
                               End Sub)
        ‘ remember Elapsed time
        Elapsed2 = Chrono.Elapsed.TotalMilliseconds
        Chrono.Stop()               ‘Watch stop
        Chrono.Reset()              ‘reset!
    End Sub

   
    ‘Simulated task
    Sub SomeTask()
        ‘Your task here
        Thread.SpinWait(NumericUpDown2.Value)
    End Sub

End Class 

De Vacaciones :-)

Si es vuestro caso os deseo unos felices dias de descanso. En caso contrario paciencia pues finalmente todo llega.

Estare respondiendo a vuestras solucitudes en tanto finalicen los dias donde internet es algo inacesible para los que no disponemos de 3G, el WiFi es inexistente y se desconoce la implementacion de los conectores RJ45 🙂

Cuidaros mucho y hasta la vuelta!
Salud,
Pep Lluis,

VB Hablame!

Aprovechando la inquietud de algunos de vosotros en tanto a ‘TextSpeech’ y con la intencion de romper el hielo, os dejo un ejemplo muy simple de como hacer hablar a la Srta. Anna con tan solo una linea, usando el ‘System.Speech’.


Saludos,
Espero Vuestros comentarios…
Pep Lluis,


PD. Como siempre el proyecto ejemplo en ‘Attachments’


 

WebServices para FW 3.5 En Vista, Sin WebConfig

Hablando de los archivos ‘.asmx’ colocados en el ‘wwwroot’ en ausencia de ‘web.config’ cuando intentamos llamar a servicios web hechos para framework 3.x sin tener configurada explicitamente la version a usar… obtenemos un “ERROR DE COMPILACION” porque por defecto nos esta tomando la :


Versión de Microsoft .NET Framework:2.0.50727.1318; Versión ASP.NET:2.0.50727.1318


Una de las formas de instruir que version del compilador debe usar el sistema al invocar estos servicios, es indicando la version que deseamos utilizar, adecuando la siguiente entrada del ‘web.config’ :


en el apartado :
  <system.codedom>
    <compilers>


con los valores…
        <providerOption name=”CompilerVersion” value=”v3.5″ />
o
        <providerOption name=”CompilerVersion” value=”v2.0″ />


Según convenga.
Saludos,
Pep Lluis,


 


 

SQL Server 2005 en Longhorn Server o Vista.

Imprescindible revisar las notas del equipo de documentacion de SQL, respecto a la instalacion de SQL Server 2005 en las nuevas versiones de SO…. si estais con Longhorn Server, debeis poner especial antencion en instalar el HTTP redireccion antes de iniciar la instalacion del SQL, para evitar el mensage "Incorrect IIS Configuration"

Tambien es util si estais intentando instalar el Visual Studio 2005, pues al finalizar su instalacion en el log de errores tendreis un "setup failed on component SQL Server 2005 express edition".

http://www.microsoft.com/sql/howtobuy/windowsvistasupport.mspx

Saludos,
Pep,

 

Nuevos Foros de MSDN

Con la sana intención de darlos a conocer y promover su uso, os participo la creación de estos nuevos foros. Realmente no substituyen a ninguno de los clasicos por lo que son complementarios a los grupos de noticias.

 


Lo interesante es darle vida para que la contribucion de los MVP’s vaya creciendo. O sea que ¡toca crearse el “habito”!

 

Saludos,

Pep Lluis.

 

MSDN Magazine July 2006 disponible!

MSDN Magazine June 2006Ya se encuentra disponible para su descarga la edición de Julio 2006 de la excelente revista MSDN Magazine.

MSDN Magazine July 2006

Entre los artículos que podemos encontrar:

Atlas At Last: ASP.NET Atlas Powers The AJAX-Style Sites You’ve Been Waiting For por Matt Gibbs.

Extreme ASP.NET: Asynchronous Web Parts por Fritz Onion
.

Data Points: Reporting Controls in SQL Server 2005 Reporting Services por John Papa.




    Entre otros igual de interesantes.

    Puedes descargar la revista desde aquí (archivo: MSDNMagazine2006_07.chm (1,719 KB))
    Puedes descargar el código fuente desde
    aquí (archivo: MSDNMag2006_07.exe (2,570 KB))

    2006 Developer Day


    No te pierdas el próximo 31 de mayo la nueva edición del Microsoft Developer Day, puedes obtener mayor informacion en


    http://go.microsoft.com/?linkid=4888188


    El Microsoft Developer Day, Un clásico entre la comunidad de desarrolladores. Como en otras ocasiones, será un evento técnico donde aprovecharemos para descubrir las ventajas de seguridad de Windows Vista y la plataforma Microsoft para desarrolladores.


    Lugar de celebración: Kinepolis, Pozuelo de Alarcón


    Fecha: 31 de mayo de mayo 2006 (día completo)

    MZTools

    Seccion .NET, Revista profesional SoloProgramadores, Numero de Mayo.


    Tendremos la oportunidad de leer una interesante entrevista virtual que pude realizar a Carlos Quintero, que como ya sabeis es el creador de las MZTools.


    Espero que os guste y por supuesto vuestros comentarios.


    Pep,


    El sitio web del popular complemento (add-in) MZ-Tools
    (
    http://www.mztools.com) del MVP Carlos Quintero para los entornos VB6, VB5,
    VBA, VS.NET 2002/2003 y VS 2005 ha sido traducido al español junto con los
    programas de instalación de las distintas versiones del producto, de manera
    que el inglés ya no sea una barrera para los desarrolladores que no están
    cómodos con ese idioma. Aunque la interfaz de usuario de dicho producto
    estaba traducida al español desde sus orígenes, el sitio web estaba sólo en
    inglés.

    MZ-Tools es una familia de complementos, algunos de ellos gratuitos, para
    los distintos entornos de desarrollo (IDEs) de Microsoft que mejora la
    productividad añadiendo más de 40 funcionalidades mediante una barra de
    botones y distintos menús, permitiendo escribir, buscar código o diseñar
    formularios más deprisa, documentar las aplicaciones, etc.

    Más información en
    http://www.mztools.com