.NET

@aspnet

Random element of IEnumerable/Array

Random element extension method for IEnumerable/Array
 
0
I don't work with random values very often but recently I had to write some small function that returns random value from an array. It sounded like a good idea to write it as an extension method to make it reusable for other projects. ...read more

ConcurrentDictionary vs Hashtable.Synchronized

Comparison of collections in multithread environment
 
0
Basically all Dictionary collections in .NET internally implement Hashtable wrapped, so in terms of mechanism they are pretty much the same. The difference is that Dictionary exposes strong types while Hashtable uses object-object keyvalue pair which is much harder to work with because you need to know what is the actual type of the object stored in a key or value. Often casting will probably be required. In multithread code environment locking is considered by default when accessing any shared resource...read more

Convert string to any type that implements TryParse method

String extension method for converting to other value types
0
In many cases serialized data is returned in a form of string although the actual type of data is different. The problem begings when you want to use data in it's original type becaus direct cast is not allowed in C# as it is in VB.net. This is why you have to use TryParse and safely parse the value to it's original type...read more

Creating Visual Studio ProjectTemplate VSIX package

How to create VSIX package for ProjectTemplate
 
0
If you often have projects which setup is pretty much the same you might consider creating ProjectTemplate for Visual Studio.It speeds up development for the project setup, adding references, default configuration .config, content files... Before you start make sure that you have installed Microsoft Visual Studio 2013 SDK (http://www.microsoft.com/en-us/download/details.aspx?id=40758) and Nuget Package Explorer (http://npe.codeplex.com/)I also attached a small dummy project just to help understanding what is written in this article.Skipping to hands on code is always more helpful and faster for me to, so if you are bored by reading, download the attached .7zfile and explore it...read more

Custom configuration section with intelisense

Setup intelisense for custom configuration sections in app.config
 
0
Config files are really useful and allow you to store some setting values without having to hard-code them. It provides out of the box configuration utility which is very flexible, but because of its flexibility, it has some drawbacks as well. For you application you can easily create your own, nonstandard elements and easily bind them to your strongly typed model in order to read values...read more

Set entry assembly in Unit testing methods

Resolving null entry assembly issue in unit tests
0
Recently I started writing unit tests for a small project I keep in my visualstudio online TFS repository. After few test done I run into an issue. Since this project heavily relies on Reflection and dynamic assembly loading, main class constructor at one point is calling ...read more

Avoiding high processor load in long running loops

Keep processor not overloaded with long running loops
0
When having a long running loop which you are not sure when it is going to end you will probably have to create a loop in a separate loop and on every iterration you will check whether some condition is true and exit the loop. Let's say you want to execute some piece of code after some specific time, let's say after one minute or everyday at specific time (common scenario in windows services). You can do it really simple with Timer class and just few lines of code as the code below. ...read more

Deserializing JSON to anonymus type in C#

Binding JSON string to anonyms type
0
JSON is really easy to use and it really boosts performances since it is a lot lighter than XML and SOAP. Sometime it can be really annoying having to create POCO class every time you need to deserialize JSON value passed from client side in ASP.NET web applications. During extending project functionality this number of POCO classes can significantly grow to that matter that you have a bunch of classes for even the simplest task you have to do with JSON value. ...read more

Application plugin host with assembly caching and auto reloading

Caching and loading plugins dynamically when plugin library updates
 
0
Few moths ago I wrote and article about simple way to implement plugin architecture in C# simple plugin host application approach. This approach is great for desktop applications because when you for example need to update (which means replace the plugin dll) you can easily close the app and start it again and it will pickup new code. If you do not stop the application to replace the dll of plugin, you will not be able to replace the dll...read more

One way, fire and forget action in WCF

Long running process invoke from ASP.NET web application
0
In case you are building a web app that needs to perform some complex or long running task, for sure you would't want that task to slow down your website or web application. For example you have a database of growing number of members on your website and you want to send a notification after you published some page on the website. Imagine you have 10,000+ members and that you are composing different message for each of them based on their account information and then sending an email with notification message. ...read more

Team Foundation Server Power Tools

Integrate TFS in Windows Explorer in Tortoise SVN style
0
To be honest I really like Tortoise SVN. It is so easy to work with it from the file system and it is so easy to commit your code changes to public repositories on GitHub. Unfortunately, if you would like to keep your code somewhere safe in cloud and keep it private, for GitHub option you will not get it for free. ...read more

Separate Debug and Release code in C#

Use separate code for debug and release compilation in C#
0
Basic functionality of your code does what it should do regardless of whether it is compiled in Debug of Release mode. Only differences might be related to debugging the code and tracing errors during debug. For sure you want more monitoring during the development (debug mode), so you would probably add some sort of logging. ...read more

Restrict image and CSS hotlinking of your ASP.NET website

Blocking hotlinking with IIS Url Rewrite
0
I did not rely how important to restrict hot-linking until one day my friend came to me and told me that he has to pay additional money for the bandwidth on his website. He was surprised that he reached bandwidth quota limit. It was weird, but after some logging of requests coming to a website we realized that most of the requests were initiated from some other website...read more

JavaScript

read more

SQL/T-SQL

read more

Umbraco CMS

read more

PowerShell

read more