Freelance Software Developer


Comparison of databases for UWP apps: SQLite, Realm & LiteDB

Ob­ject ori­ented ap­pli­ca­tions usu­ally needs ob­ject ori­ented stor­age. Re­la­tions are good at map­ping poin­t­ers but many tech­ni­cal lim­i­ta­tions are hid­den un­der doc­u­men­ta­tion crust. It is not easy to choose the right database tech­nol­ogy be­cause pros are writ­ten ev­ery­where and cons are spread across many GitHub is­sues. It is like buy­ing a new car. You know the price, power and fuel con­sump­tion but you must in­quire into re­li­a­bil­ity and main­te­nance costs. Read more ›

dot net

What’s new in C# 7.1, 7.2 & 7.3 and what’s next

C# is con­tin­u­ously evolv­ing and ab­sorb­ing many use­ful fea­tures. Some of them are syn­tax sugar and Vi­sual Stu­dio will pro­pose a sim­pli­fied code, but some of them al­lows what wasn’t pos­si­ble be­fore so tak­ing ad­van­tage of new C# ver­sion re­quires a change of think­ing about the code. The best way how to un­lock new ca­pa­bil­i­ties is learning of func­tional pro­gram­ming be­cause most fea­tures are taken from F#. Read more ›

visual studio

Visual Studio for Mac begins support for Team Foundation Version Control

Mi­crosoft an­nounced the re­lease of Vi­sual Stu­dio for Mac one year ago. It il­log­i­cally sup­ported Git in­stead of TFVC. Vi­sual Stu­dio sup­ports Git since 2014 so ab­so­lute ma­jor­ity of projects are con­trolled un­der TFVC. Vi­sual Stu­dio Team Ser­vices are also price friendly be­cause GitHub wants de­vel­op­ers charge for pri­vate repos­i­to­ries. Read more ›


Microsoft announces its own Content Delivery Network

Mi­crosoft Azure pro­vided two Con­tent De­liv­ery Net­works (CDN) – Aka­mai and Ver­i­zon. To­day, cus­tomers can pick up one more provider – Mi­crosoft. The price is a half of con­cur­rent CDNs but the ser­vice is in pre­view. Mi­crosoft of­fers sim­i­lar fea­tures like others: HTTPS end­point, cus­tom do­main cer­tifi­cate, con­tent purge, com­pres­sion, geo-fil­ter­ing and core an­a­lyt­ics. Read more ›


Azure Portal: Hmmm... Looks like something went wrong

Azure Por­tal some­times fails to load. It hap­pened to me sev­eral times. It was al­ways caused by ex­ceed­ing the quota of HTML5 Lo­cal Stor­age. The so­lu­tion is as sim­ple as clear­ing the stor­age and nav­i­gate to por­tal again. Mi­crosoft Edge con­tains hid­den De­vel­oper Tools which helps with tasks like this. You can also delete en­tire brows­ing his­tory but it will af­fect all web­sites, not just Azure Por­tal. Read more ›


How to redirect to HTTPS in ASP.NET MVC application correctly

Up­grad­ing browsers vis­it­ing your web­site to se­cure con­nec­tion is a best prac­tice and it is easy to do. I have de­cided to share my im­ple­men­ta­tion be­cause I had seen many par­tial or in­se­cure im­ple­men­ta­tions. Cor­rect im­ple­men­ta­tion sat­is­fies both back­ward com­pat­i­bil­ity and se­cu­rity re­quire­ments of var­i­ous web browsers. This ar­ti­cle covers what you need to know be­fore you start to redi­rect your users to HTTPS pro­to­col. Read more ›


Q# – Introduction to quantum computing

Mi­crosoft has re­leased a new .NET lan­guage called Q# along with Mi­crosoft Quan­tum De­vel­op­ment Kit. It con­tains a full state quan­tum sim­u­la­tor. Mi­crosoft want to pave the path to quan­tum com­put­ing in dat­a­cen­ters able to ex­e­cute pow­er­ful quan­tum al­gorithms. A quan­tum com­puter is fun­da­men­tally dif­fer­ent than a clas­si­cal bi­nary com­puter. A new era of com­put­ing may be closer than you may think. Read more ›

dot net

How to enable response compression in ASP.NET Core 2 with gzip and Brotli encoding

In­ter­net traf­fic can be com­pressed to save net­work band­width us­age. While im­ages and web fonts are al­ready com­pressed, text files are stored on the server in hu­man read­able form. HTTP.sys server and Kestrel cur­rently don't have built-in com­pres­sion sup­port. By de­fault, only static files are com­pressed with gzip. What if you want com­press more? Read more ›


A few notes on Sonar

A val­ida­tor is a great tool that checks your site for in­vis­i­ble de­fects. There are many of them but the Sonar is dif­fer­ent than all others. It is the only test­ing tool which wants to val­i­date web­sites com­plexly, is open source and com­mu­nity driven and has a browser in­te­gra­tion. Why fron­tend de­vel­op­ers need a com­plex test­ing tool? Why the in­de­pen­dence from any big soft­ware ven­dor is im­por­tant? And fi­nally – does Sonar have some po­ten­tial and is it a use­ful tool now? Well, I have col­lected some sig­nif­i­cant notes to its qual­ity. Read more ›


Čím se řídí vývoj Microsoft Edge?

Mi­crosoft je v oblasti vývoje svého we­bového proh­lížeče velice otevřený. V současné době je tým, který se věnuje jeho vývoji, výrazně vetší, než tomu bylo v před­chozích něko­lika letech. Díky od­s­tranění starého kódu pro kom­pat­i­bil­itu s weby z doby ka­menné a jeho ponechání svému osudu v IE je im­ple­men­tace nových stan­dardů v moderním proh­lížeči výrazně rych­le­jší, než tomu bylo v min­u­losti. Zbývá jen sdělit Mi­crosoftu na co by se měl v jeho vývoji zaměřit. Celý článek ›

service fabric

Memory leaks symptoms & causes in Service Fabric reliable services

Mem­ory leaks are hard to de­tect and can cause se­ri­ous prob­lems. While a sin­gle job task run­n­ing for few sec­onds doesn’t have to care about them, the ser­vice run­n­ing 24 hours a day must be care­fully tuned to suc­cess­fully ful­fill its job. More­over, mem­ory leaks don’t have to be de­tected straight away, they usu­ally ap­pear as an­other ex­cep­tion point­ing you to find­ing prob­lems in dif­fer­ent area. Let’s look at one ex­am­ple of a mem­ory leak and how it shown up. Read more ›

service fabric

Keep your service running forever by designing an instant shutdown

Over a year of de­sign­ing and mov­ing sev­eral ser­vices from Azure Cloud Ser­vice to Ser­vice Fab­ric taught me few things which are im­por­tant to keep in mind dur­ing cre­at­ing or refac­tor­ing mi­croser­vices hosted in Ser­vice Fab­ric en­vi­ron­ment. Don’t for­get that Ser­vice Fab­ric pat­terns are tight to .NET, which has gone throw a mas­sive paradigm shift. You must be up-to-date at least with asyn­chronous pro­gram­ming to be able to code solid ser­vices. Read more ›