Skip to main content

Posts

Showing posts with the label C#

Windows Service To Manage Worker Processes

In one of my projects I needed to have multiple instance of the same process running in parallel and each one of them if it fails for some reason needs to restart immediately. The idea was to have a message queue, in this case I'm using Azure, and multiple competing consumers (Each process is a consumer). I had differences options: 1. Create multiple windows services that would be managed by the operating system, but the main down side is that whenever I need to scale by increasing the number of consumers I'll have to install a new windows service, likewise if I want to scale down I'd have to stop services. 2. Create a windows service that is in charge of starting and maintaining a certain number of processes running at any time depending on the a configuration file. 3. The third option I've considered is using Azure workers, but I quickly dismissed it when I found out how much it was costing me, since these consumers are running continuously, but if it was for a li...

Full Text Search using Entity Framework

I've been working on a project where I needed to implement full time search on one table. My current solution was based on SQL Server db and Entity Framework 6. I had two choices implement the full text search in C# or use the functionality available in SQL server, since the data was stored in SQL Server the obvious solution was to use the built in full text search. How this works: 1. You need to activate and configure the full text search: Activate on the sql server table by using SSMS, and specify which columns are going to be included. 2. To perform a full text search in a T-SQL query you have the choice between 2 Boolean functions: Contains and Freetext or two functions that returns 2 columns tables. In my case I need a function that could be used in a where clause (Boolean), and decided to use 'Contains'. For more details about the difference between Freetext and contains have a look at this article . 3. I need to instruct EF6 to generate a particular T-SQL stateme...

Getting started using Amazon Product Advertizing API in C#

Amazon Product API is a set of web services that are available for developers, to interact with Amazon e-commerce website (more details are available on Amazon website ): You can extract information about product: Get information about products, reviews, information about the company selling these items. Create a fully functional shopping cart The main goal for developers here is to advertise items sold on amazon website and get a commission from sales they generate through the associate program.(more details available on Amazon website ) Bellow I'm going to show a simple example on how to use this API: Pre-requisites: Become an Associate Become a Product Advertising API Developer Before coding you can try the web client provided by amazon: Product Advertising API Scratchpad Using the API: Now we can start coding. For this example I'm just going to create console app that calls the web service to retrieve some information: 1. List products for a given cate...

Keeping web development skill up-to-date

I recently came a cross a blog post from women trying to learn codding, and she decided that the best way to achieve her goal was to build website. In fact she has been creating one website per day for 180 days ( blog.jenniferdewalt.com ). Her post got me thinking, in my case I'm a developer, I've been developing websites, software tools, Mobile phone / Tablets apps, Excel plugins, Web scrappers.... But all this was for the benefit of a client. I realised that I've never published my own website. At the time I was mainly focussing on Non web technologies, but I was keen to keep my skills up-to-date on web developments. So I decided to follow Jennifer's lead, but not so extreme, rather than having such an aggressive time frame, one website per day, I did not set a time target but just decided to start building websites, the only constraint I've set was to use recent technologies and create something useful. The first website is a pretty basic web site that provide...

aspnet_regiis

The current identity (.......) does not have write access to 'c:\WINNT\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files' When configuring a web site on IIS, I had this issue and I know how to resolve it by using a command line tool, but I always spend 5 or 10 minutes looking for the name of the tool in the internet: Here is the name of this tool and it's location: C:\WINNT\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis And we need to use it with these parameters to grant the right to the user running the application pool: C:\WINNT\Microsoft.NET\Framework\v2.0.50727> aspnet_regiis –ga username

Local IP Address

Here is a usefull block of code to retrieve a host IPAddress: private static class Network { #region DNS public static IPAddress FindIPAddress( bool localPreference) { return FindIPAddress( Dns .GetHostEntry( Dns .GetHostName()), localPreference); } public static IPAddress FindIPAddress( IPHostEntry host, bool localPreference) { if (host == null ) throw new ArgumentNullException ( "host" ); if (host.AddressList.Length == 1) return host.AddressList[0]; else { foreach (System.Net. IPAddress address in host.AddressList) { bool local = IsLocal(address); if (local && localPreference) return address; ...

Understanding Monte Carlo Simulation C#

This method has been introduced to resolve numerically complex physics problems, such as neutron diffusion, that were to complex for an analytical solution. This method is based on generating random values for parameters or inputs to explore the behaviour of complex systems, now this method is used in various domains like: Engineering, science and finance. These approaches tend to follow a particular pattern: 1- Define a domain of possible inputs. 2- Generate inputs randomly from the domain using a certain specified probability distribution. 3- Perform a deterministic computation using the inputs. 4- Aggregate the results of the individual computations into the final result. Here is an example of using Monte Carlo simulation to approximate the value of Pi: In this case we have 2 parameters x,y which defines a location in the plane (e.g The picture on the left). We will calculate the probability to have a point in the 1/4 Circle area, with a radius of 1. To calculate Pi we...