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