Dajbych’s blog abot .NET

dotnet round

How C# nullable reference types affects your ASP.NET Core routing

I thought that the new C# 8.0 fea­ture – non-nul­lable ref­er­ence types is just an In­tel­liSense fea­ture pow­ered by Roslyn that pre­vents null ref­er­ence ex­cep­tions. I was wrong. It may af­fect how your ap­pli­ca­tion works in many ways. More specif­i­cally, ev­ery­thing that use re­flection can start be­having dif­fer­ently. It in­cludes also ASP.NET Core rout­ing. Some bind­ings can stop work­ing when no ad­di­tional code changes are ap­plied. Read more ›


Blazor is .NET in a web browser. What makes it possible?

The most pow­er­ful, per­for­mant and easy-to-use UI frame­work is HTML with CSS and JavaScript. Di­rectX has ex­tremely high de­vel­op­ment price and UWP is miss­ing many fea­tures which are stan­dard in CSS. Achilles heel of pure web de­vel­op­ment is JavaScript. When you use higher lan­guage com­piled to JavaScript, one ques­tion arises – is JavaScript an ef­fi­cient in­ter­me­di­ate lan­guage? The an­swer is no, and the re­sult is a web byte­code called We­bAssem­bly. Read more ›


Browsers will freeze its User-Agent strings

The User-Agent HTTP header was in­tro­duced in 1993 by the first web browser. The string was as sim­ple as Mo­saic/0.9. It could be used for good pur­poses. Web server can serve slightly dif­fer­ent con­tent to browsers which might im­ple­ment new stan­dards dif­fer­ently. Sadly, Google is abus­ing its dom­i­nant po­si­tion to block­ing or mal­func­tion­ing its ser­vices for com­pet­i­tive browsers. There­fore, a new mech­a­nism of declar­ing tech­ni­cal as­pects of user’s de­vice is emerg­ing. Read more ›

dotnet round

Host ASP.NET Core on Oracle Autonomous Linux with Nginx

This ar­ti­cle is a step-by-step man­ual explaining how to cre­ate and con­fig­ure Or­a­cle Au­tonomous Linux vir­tual ma­chine for host­ing ASP.NET Core 3.1 web ap­pli­ca­tion. We will con­nect to Linux ma­chine from the Win­dows work­s­ta­tion by Pow­er­Shell. The ap­pli­ca­tion will be cre­ated and com­piled Vi­sual Stu­dio. The ap­pli­ca­tion is self-con­tained, so instal­la­tion of the .NET Core run­time is not nec­es­sary. Read more ›


An alternative to Let’s Encrypt for Azure Web Apps

The con­fig­ur­ing of Let’s En­crypt cer­tifi­cates for Azure Web Apps was al­ways a pain. One would ex­pect a sim­ple sin­gle-click so­lu­tion. It took four years un­til Mi­crosoft de­liv­ered this fea­ture. It is named App Ser­vice Man­aged Cer­tifi­cates and it will is­sue a cer­tifi­cate for your cus­tom do­mains at no cost. This fea­ture is avai­l­able for cus­tomers with Ba­sic App Ser­vice Plan and above. Naked do­mains or wild­cards are not sup­ported. Read more ›


What to expect from HTTP/3

We barely de­ployed HTTP/2 and we are al­ready talk­ing about HTTP/3. The web is mov­ing very fast these days and its users will ben­e­fit from that. In fact, Chrome is al­ready us­ing HTTP/3 if you are con­nect­ing to Google’s servers. The pro­to­col has been in de­velopment and tested in pro­duc­tion en­vi­ron­ment for years un­der the name of QUIC. It sup­presses TCP and is built up en­tirely on UDP. And the best in the end – en­cryp­tion is manda­tory (at least for the time be­ing). Read more ›

office 2013

How to disable office clipboard

Of­fice Clip­board is a se­cu­rity threat be­cause it stores pass­words copied from pass­word man­agers for a long time, so pro­ten­tional at­tacker can see your pass­words in a mo­ment when you are not check­ing your com­puter. Even worse, this fea­ture is en­abled by de­fault af­ter an of­fice up­date is in­stalled. The sec­ond in­con­ve­nience is a blink­ing yel­low rect­an­gle in the bot­tom right cor­ner of the screen which is dis­rup­tive dur­ing cod­ing in Vi­sual Stu­dio. Read more ›


Xcode is too new

De­spite the fact I only use Vi­sual Stu­dio to edit Xa­marin.iOS project files I ex­pe­ri­enced the si­t­u­a­tion when Vi­sual Stu­dio un­ex­pect­edly thought I used Xcode. More­over, Vi­sual Stu­dio broke my project be­cause it did not al­low me to use an iOS De­signer. Iron­i­cally the sto­ry­board file was cre­ated in ear­lier ver­sion of Vi­sual Stu­dio. My first at­tempt to workaround this bug was suc­cess­ful and here is how I you can do it too. Read more ›


The latest Windows 10 SDKs is all you need

When you are de­vel­op­ing UWP apps you mostly tar­get lower Win­dows 10 ver­sion than that you have cur­rently in­stalled. Ev­ery Win­dows 10 ver­sion has its own SDK. It is not a re­quire­ment to have in­stalled the SDK that matches tar­get min ver­sion. The di­a­log will show all re­leased SDK ver­sions that are less than or equal to the tar­get plat­form ver­sion, re­gard­less of whether they are in­stalled or not. Read more ›


The growth of Azure datacenters in Europe

Eu­ro­pean com­pa­nies will soon have a much wider of­fer of Azure re­gions. Be­sides 6 cur­rent Azure re­gions in Eu­rope – Am­s­ter­dam (West Eu­rope), Dublin (North Eu­rope), Lon­don (UK South), Cardiff (UK West), Paris (France Cen­tral) and Mar­seille (France South) – an­other 8 re­gions will be avai­l­able. Mi­crosoft will op­er­ate 11 Azure re­gions in North­ern Amer­ica and 14 re­gions in Eu­rope. An­other 13 re­gions are lo­cated in Asia. Read more ›


Earthquake behind the UWP

Dur­ing Mi­crosoft Build 2019 con­fer­ence many peo­ple asked about the fu­ture of UWP be­cause there were very few ses­sions ded­i­cated to it. It may look like noth­ing new is hap­pen­ing, but the op­po­site is the truth. Mi­crosoft is chang­ing ar­chi­tec­ture of the whole stack. The vi­sual layer is be­ing de­cou­pled from the op­er­at­ing sys­tem and ahead-of-time com­piler with .NET im­ple­men­ta­tion are be­ing merged with .NET Core. Things are mov­ing for­ward. Read more ›

service fabric

Upcoming breaking change in Service Fabric 6.5

Re­mov­ing node state will not be pos­si­ble when the node is a seed node since Ser­vice Fab­ric 6.5. It will be nec­es­sary to con­vert the seed node into a non-seed node prior to node state re­moval. It is not yet known how to con­vert seed nodes into non-seed nodes. It will be pos­si­ble opt-out from this lim­i­ta­tion in the clus­ter con­fig­u­ra­tion. De­tailed gui­d­ance will be avai­l­able when the Ser­vice Fab­ric ver­sion 6.5 is re­leased. Read more ›