.NET Architecture - eShopOnContainers
· ☕ 2 min read
Below video is from 2018, so almost 3 years old now, but somehow I only found it now. It's a handy overview into microservices, has a few gotchas such as avoiding internal communication when fulfilling client requests, to reduce latency, as well as async workflows like adding items to cart.

Jetbrains .NET Days 2021 - Notes
· ☕ 13 min read
Here are some of the notes I took while attending Jetbrains .NET Days 2021 online event - for select sessions from Days 1 and 2. Specifically, I skipped 1 session from Day 1 (React/CosmosDB), and only watched 1 session from Day 2 (AWS/Kubernetes). This is similar to my earlier MS Build notes articles.

.NET Core 2.0 Worth Using?
· ☕ 2 min read
September of 2017 is almost gone, and only now I had a chance to look at the most recent issue of the monthly MSDN magazine. What's the hot topic in September? .NET Core 2.0 / Standard 2.0 is highly praised by most MSDN authors. One of the articles mentions a feature I did not know existed. It's called Razor pages. In short, it's the new Web Forms.

.NET Winforms - App loses focus when a window is closed
· ☕ 1 min read
I have a main form which is an MDI parent and a modal form, which is a progress dialog. When loading is completed, an MDI child is opened. If it cannot be completed, an error message shows up with user prompt. Problem is if user takes action, and the modal form is closed, the focus is switched to the application, which was active before my application was started.

VB.NET - Hidden items in a ListBox
· ☕ 1 min read
There is one good way to dynamically show/hide items in a ListBox - use a DataView as DataSource. You do not need to manually Add and Remove items from your list. In fact, coding effort is very low with this approach.

VB.NET - Delay form resize-to-fit until it loads
· ☕ 1 min read
Suppose every once in a while in your application you need to have a popup dialog being shown. This dialog is a value picker, nothing more. It shows as many values as your screen can handle. Problem happens when list population takes considerable amount of time, say, 5 seconds. Until then you are completely unsure which size it needs to resize to.

.NET - AddRange for HashSet
· ☕ 1 min read
You do not need to implement your own HashSet for that, just use the native UnionWith extension method.

VB.NET - DropDownOpening Event For ComboBox
· ☕ 1 min read
Here is a proper way to do it - inherit a class from native ComboBox and override OnDropDown to raise a custom DropDownOpening event first. If you anticipate loading to take considerable time, you can wrap your reload code into a construct like this