The technologies I use on the field - .NET Missions

On the field, customers have a lot of time a lot of technologies for building their IT system. First, they rely on .NET Framework and C#. Then, we split into two categories, either Web or classic Windows development. But, the most important next is the data access choice. Either Entity Framework, Transact-SQL, raw SQL, dapper or Enterprise Library. Backend Database is SQL Server in 90%.

On the backend, IIS is very used because of the facility of doing web services like WCF or Web API.

When you understand the architecture of the software, you make a deep dive into the source code. Each customer has a technique to organize its code. I appreciate when there is a single solution but it depends. In the code, we often see interfaces and DI stuff like Unity. Sometimes, there is the popular Framework Entreprise Library. LINQ is heavy used. For WPF projects, you can see PRISM also. For Web apps, a lot of JavaScript libs can be used.

To master all these technologies, it takes time to be an expert ; each of them can take several weeks to be discovered. For example, WCF can be easy to code but the configuration file both on client and server can make you crazy.

Once you have discovered the source code, take a look at the Source Control Management system. It can be TFS, git, svn, ClearCase... Check the branching strategy of the customer.

There are no magic rules to bring your customer to the top. There are best practices for C#, SQL, DI, oriented object programming, TFS branching and merging, etc.

The more customers you see, more your experience is valuable, you eat multiple way of doing software.

The next step your customer is asking is sometimes performance enhancements or scalability. And in the job is difficult. There are a lot of cases where the rules "Simple is beautiful" solve the problem. But sometimes, it's Linq requests that are faulty, most of the time related with Entity Framework. Be aware to not get all data on the client/server side without exclusion criteria. Rely on trusted stuff, use the server and make sever processing when you can rather of using the web server...

I am on the field more than 20 years and I am always fascinated of what I see on customers's site.