Completing SQL. Part 3: Complementing SQL. The life of Visual Studio extensions. Working with IO. Using SQL in unconventional ways.

Total: 21 Average: 3.8

What is this article about?

This is the third article in the series of articles on the life of IDE developers for databases.

Its structure will be similar to the first one and the second one, even so, I am not going to tell you about the parsing of text. This article will present information on some tricks working with files and various problems of creating a big desktop application on the .NET platform.

Read More

Completing SQL. Part 2: Optimizing string processing and file opening

Total: 22 Average: 4

What is this article about?

This is the second piece from the series of articles about the life of database IDE developers. Its structure is similar to that of the previous article. Just like in the first one, I’ll talk about the issues we faced and the solutions we arrived at – both effective and not so much. To understand this article, you don’t have to read the first part in its entirety, but the first few paragraphs would be useful to help you grasp the context.

Read More

.NET – Tools for working with multithreading and asynchrony – Part 2

Total: 10 Average: 4.9

This article comprises the second part of my speech at the multithreading meetup. You can have a look at the first part here. In the first part, I focused on the basic set of tools used to start a thread or a Task, the ways to track their state, and some additional neat things such as PLinq. In this part, I will fix on the issues you may encounter in a multi-threaded environment and some of the ways to resolve them. Read More

.NET: Tools for working with multi-threading and asynchrony – Part 1

Total: 21 Average: 4.7

The need to do things in an asynchronous way – that is, dividing big tasks between multiple working units – was present long before the appearance of computers. However, when they did appear, this need became even more obvious. It is now 2019, and I’m writing this article on a laptop powered by an 8-core Intel Core CPU which, in addition to this, is simultaneously working on hundreds of processes, with the number of threads being even larger. Next to me, there lies a slightly outdated smartphone which I bought a couple of years ago – and it also houses an 8-core processor. Specialized web resources contain a wide variety of articles praising this year’s flagship smartphones equipped with 16-core CPUs. For less than $20 per hour, MS Azure can give you access to a 128-core virtual machine with 2 TB RAM. But, unfortunately, you cannot get the most out of this power unless you know how to control the interaction between threads. Read More

New Features in Visual Studio 2019

Total: 32 Average: 4.6

Microsoft has recently released the preview version of Visual Studio 2019. Like all previous editions, the latest Visual Studio comes with lots of improvements and new features that are focused on faster execution, more productivity for developers and team collaboration.

Visual Studio 2019 Banner

If you haven’t downloaded it yet, you can do it here for free: Visual Studio 2019 preview. You can then easily install and run it alongside any other edition of Visual Studio – they won’t interfere with each other and this won’t require any considerable upgrades of your OS. You can also download Visual Studio 2019 RC (Release Candidate) from the official website.

Read More

Functional F# that slowly appears in C#

Total: 5 Average: 3.6

For some reason, we often do not use this functionality. Maybe we haven’t got used to it yet. And sometimes we use it, having no idea that this is the functionality from F#.

Before reviewing it, let’s quickly run through the most interesting features that appeared in different versions of the language. Note that each time a new version of the language comes out with a new version of Visual Studio. For someone, this may be obvious, but even for developers who have worked with C# for several years, this may turn out to be a piece of news (not everyone takes notice of it).

Read More

Resource Release in .NET Applications

Total: 1 Average: 5

In C#, there is one huge benefit, which is a drawback at the same time – an automatic garbage collection. With traditional desktop applications, this is great when a platform cleans up the whole garbage and releases memory. However, it is not always good for Web.

When we develop a Web application, Web-requests are mainly short; our code must perform small tasks and work very quickly. If we do not help a garbage collector, the server resources can exhaust in no time.

Read More

Using Expressions to Filter Data of Database

Total: 13 Average: 3.4

I would like to start with a description of the problem that I encountered. There are entities in the database that need to be displayed as tables on the UI. The Entity Framework is used to access the database. There are filters for these table columns.

It is necessary to write a code to filter entities by parameters.

For example, there are two entities: User and Product.

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
}

Read More