2017-03-10

Wpf - Aplicaciones localizables

En este artículo se estudia la forma de crear aplicaciones multilingües usando los archivos de recursos.

El articulo esta en este enlace

Wpf – Extender un control ComboBox que cargue una enumeración


En este documento se estudia como extender un control ComboBox, que cargue, y muestre una enumeración al crearse.
El articulo esta en este enlace

2016-09-27

Designing with Exceptions in .NET

El articulo esta en ingles en:
https://www.infoq.com/articles/Exceptions-API-Design

Puntos clave
  • Prefiero excepciones incorporadas, o subclases de los mismos, para los tipos comunes de errores.
  • Utilice el tipo de excepción para indicar si el error está en la propia aplicación, en la biblioteca que se llama, o un problema ambiental.
  • tipos de excepción deben ayudar a las operaciones de determinar quién necesita mirar el error en primer lugar.
  • Evitar el uso de códigos de error para distinguir entre tipos de errores ajenos que pasan a ser levantado por el mismo método.
  • Nunca coger o lanzar ApplicationException.
Las excepciones son una parte integral del trabajo con .NET, pero demasiado muchos desarrolladores no piensan acerca de ellos desde una perspectiva de diseño API. La mayor parte de su trabajo comienza y termina con saber qué excepciones que necesitan para atrapar y lo que se debe permitir a golpear el registrador mundial. Usted puede reducir significativamente el tiempo que se necesita para corregir errores si el diseño de la API para utilizar las excepciones correctamente.

El articulo esta en ingles en:
https://www.infoq.com/articles/Exceptions-API-Design

2016-09-11

How to Create Timer in WPF

ver el articulo
http://www.codescratcher.com/wpf/create-timer-wpf/



Private dpTimer As DispatcherTimer
Private horaInicioIntervalo As DateTime
Public Sub New()
 
      ' Esta llamada es exigida por el diseñador.
      InitializeComponent()
 
      ' Agregue cualquier inicialización después 
      ' de la llamada a InitializeComponent().
  
      dpTimer = New DispatcherTimer
      dpTimer.Interval = TimeSpan.FromMilliseconds(1000)
      AddHandler dpTimer.Tick, AddressOf TickMe
 
      horaInicioIntervalo = DateTime.Now      
      dpTimer.Start()
  End Sub

Private Sub TickMe(sender As Object, e As EventArgs)
 
    Dim intervalo As TimeSpan = DateTime.Now - horaInicioIntervalo
    Me.textBoxTiempoTrascurrido.Text =
           String.Format("{0,2:00}:{1,2:00}:{2,2:00}",
                         intervalo.Hours,
                         intervalo.Minutes,
                         intervalo.Seconds)
 
    ' Forcing the CommandManager to raise the RequerySuggested event
    CommandManager.InvalidateRequerySuggested()
End Sub
 

2016-08-07

ConvertIco - PNG to ICO Conversion

ConvertICO.com
Convierte de PNG a ICO, y viceversa, generando incluso las diferentes variantes para cada resolución.

MEGAEPUB.com - libros gratis

Mega ePub
Multitud de libros electrónicos para descargar de manera directa.

Proyecto BASIC ZX



Proyecto BASIC ZX
Colección de listados de programas publicados en revistas de Spectrum.

Compu Saurios


Compu Saurios
Variada colección de contenidos de retroinformática.

¿Cómo programar en C (en 2016)?


Este artículo es una traducción del artículo How to C in 2016. Todo el contenido aparece originalmente en aquel artículo, yo solo me he limitado a traducirlo.


2016-08-04

Error en debuging ContextSwitchDeadLock


Problema


leyendo de forma recursiva los ficheros del disco me ha saltado este mensaje de error
'******************
Ocurrió ContextSwitchDeadlock
Message: El Asistente para la depuración administrada 'ContextSwitchDeadlock' ha detectado un problema en 'E:\users\joaqui\documents\NET\Version2015\Pruebas\RepesIneitorPruebasBorrar\SolucionWpfBusquedaFicheros20160719\WpfBusquedaFicheros20160719\bin\Debug\WpfBusquedaFicheros20160719.vshost.exe'.
Información adicional: El CLR no ha podido realizar la transición del contexto COM 0x1144008 al contexto COM 0x11440c0 durante 60 segundos. Es probable que el subproceso que contiene el contexto o apartamento de destino esté en espera sin proporcionar mensajes o que procese una operación de ejecución muy larga que no proporcione mensajes Windows. Normalmente, esta situación tiene un impacto negativo en el rendimiento y puede hacer que la aplicación no responda o que acumule continuamente el uso de la memoria. Para evitar este problema, todos los subprocesos de contenedores uniproceso (STA) deberían utilizar primitivos de espera que proporcionen mensajes (como CoWaitForMultipleHandles) y proporcionar mensajes regularmente durante operaciones de ejecución largas.
'**************

La solución

http://sergiotardio.blogspot.com.es/2008/06/error-en-el-debuging.html

Error en el debuging ContextSwitchDeadLock
Hola
Que errorcito fregado este, no se si les salió alguna vez pero a mi me hizo perder varias horas, antes de divagar en lo que significa por que la verdad es un tema un poco espeso les comento la "solución"
Hay que apagar un checkbox que corresponde al MDA (managed debug assistant) de nombre  ContextSwitchDeadLock.
Depurar / Excepciones / Managed Debuging assistants.
Apaguen el check box correspondiente ContextSwitchDeadLock
Por default no aparece la opcion de Excepciones en el submenu Debug, si ese es su caso añadanlo haciendo lo siguiente:
Vayan a
Ver / barras de herramientas / Personalizar
Una vez ahí en el panel izquierdo seleccionen Debug y entre las opciones que aparecen a la derecha estará Excepciones, tomen la opción   y arrastren hasta el menú debug
Bien ahora una pequeña explicación de esto, resulta que los MDA son asistentes y ayudas que se utilizan en el debug en coordinación con la CLR , ellos generan mensajes informativos en tiempo de ejecución sobre eventos y por lo que entiendo el error que se produce en este caso es por que el depurador lanza esta excepción ya que encuentra hilos de ejecución en la aplicación que se está depurando que aparentan estar colgados ya que no devuelven ningún mensaje y el MDA al no conocer el estado genera esta excepción.  Por otro lado he leido que es un problema en algún componente COM que la aplicación que esta haciendo burreras jeje Al inicio les coloque ¨Solucion¨ entre comillas por que si se dan cuenta en realidad el problema no se soluciona pero si se evita que el Debug lance el error, el problema muy probablemente se debe a un componente COM que no está comunicándose correctamente con el MDA y por tanto este lanza la excepción.
Bueno en fin ahí va un unos links por si quieren leer mas acerca de este error, que es toda una rareza confusa y si alguien entiende mas de esto y quiere dejarme un comentario, será bien venido

http://msdn.microsoft.com/es-es/library/d21c150d(VS.80).aspx
http://msdn.microsoft.com/es-es/library/ms172233(VS.80).aspx