System.Timers.Timer vs System.Threading.Timer

This article offers a fairly comprehensive explanation: “Comparing the Timer Classes in the .NET Framework Class Library” – also available as a .chm file The specific difference appears to be that System.Timers.Timer is geared towards multithreaded applications and is therefore thread-safe via its SynchronizationObject property, whereas System.Threading.Timer is ironically not thread-safe out-of-the-box. I don’t believe … Read more

Best way to get application folder path

AppDomain.CurrentDomain.BaseDirectory is probably the most useful for accessing files whose location is relative to the application install directory. In an ASP.NET application, this will be the application root directory, not the bin subfolder – which is probably what you usually want. In a client application, it will be the directory containing the main executable. In … Read more

How do I use WPF bindings with RelativeSource?

If you want to bind to another property on the object: {Binding Path=PathToProperty, RelativeSource={RelativeSource Self}} If you want to get a property on an ancestor: {Binding Path=PathToProperty, RelativeSource={RelativeSource AncestorType={x:Type typeOfAncestor}}} If you want to get a property on the templated parent (so you can do 2 way bindings in a ControlTemplate) {Binding Path=PathToProperty, RelativeSource={RelativeSource TemplatedParent}} … Read more

In WPF, what are the differences between the x:Name and Name attributes?

There really is only one name in XAML, the x:Name. A framework, such as WPF, can optionally map one of its properties to XAML’s x:Name by using the RuntimeNamePropertyAttribute on the class that designates one of the classes properties as mapping to the x:Name attribute of XAML. The reason this was done was to allow … Read more

Calculate the execution time of a method

Stopwatch is designed for this purpose and is one of the best ways to measure time execution in .NET. var watch = System.Diagnostics.Stopwatch.StartNew(); // the code that you want to measure comes here watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; Do not use DateTime to measure time execution in .NET. UPDATE: As pointed out by @series0ne in … Read more

Difference between InvariantCulture and Ordinal string comparison

InvariantCulture Uses a “standard” set of character orderings (a,b,c, … etc.). This is in contrast to some specific locales, which may sort characters in different orders (‘a-with-acute’ may be before or after ‘a’, depending on the locale, and so on). Ordinal On the other hand, looks purely at the values of the raw byte(s) that … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)