Tag Archives: .NET

Microsoft’s UI development model

The future of graphic world (UI) at Microsoft is called WinUI. WinUI are the XAML controls of Windows 10. They’re made of C/C++.

Windows 10 makes extensive use of them and offers them (finally) full access to everyone: NET, C++, Win32.

Microsoft is committed to C++. Windows too. Microsoft makes its software in C/C++ because It’s fast and efficient. Do you understand my innuendo? On the Microsoft site, if you are looking to do software development, you are referred to .NET by default. I ask the question: but why?

Microsoft doesn’t. Why would I? Microsoft is no longer in dog-fooding as before. There is an internal discourse and an external discourse.

Internally, there is no debate, we do almost everything (90%) C/C++. Windows, Office, Edge, etc.

Externally, we only promote .NET, the web, JS/TS, Angular and python!

Where I laugh is that Microsoft evangelists who spend their time taking pictures of their hamburger meal on twitter know nothing about the native world and there is a problem for example, on WinUI. There is no one left to explain the real Microsoft, the one from the inside.

On WinUI, you have to promote XAML Islands, Controls in C++ and how to explain how to mix it with MFC and Win32 controls for example. Result: nothing. There’s no one who knows how to do it.

As an MVP, I’m going to focus on that. but it’s not normal for Microsoft not to fulfill its share of Learning.

Sometimes I have discussions with developers who think that Windows is made in C#???? WTF! The level of knowledge of the Microsoft company is leveled from the bottom. .NET architects believe that desktop graphics interfaces should be made in WPF. Oh, yes? Why doesn’t Microsoft do it then?

The future is C++ and .NET Core. It’s not ony .NET and C#. NET and its CLR is powered by C++.

Create a simple cache in C# .NET

Here is a little sample of code I have written to simulate a cache, wich write the data every second on disk in the background in a dedicted thread.

Using this class Engine, you can write data to the internal dictionary and keep it safe because the database is written to disk… I do not have handled the reload of the data in the ctor… Here the client program who write any number of values you want:

If I run the console application using different values, here is the result:

D:\Dev\MyCache\ConsoleApp1\bin\Debug>ConsoleApp1.exe 10
Count: 10
Time elapsed set: 0 ms
Time elapsed get: 0 ms
Writing DB…
Writing DB OK

D:\Dev\MyCache\ConsoleApp1\bin\Debug>ConsoleApp1.exe 100
Count: 100
Time elapsed set: 0 ms
Time elapsed get: 0 ms
Writing DB…
Writing DB OK

D:\Dev\MyCache\ConsoleApp1\bin\Debug>ConsoleApp1.exe 1000
Count: 1000
Time elapsed set: 1 ms
Time elapsed get: 1 ms
Writing DB…
Writing DB OK

D:\Dev\MyCache\ConsoleApp1\bin\Debug>ConsoleApp1.exe 10000
Count: 10000
Time elapsed set: 7 ms
Time elapsed get: 13 ms
Writing DB…
Writing DB OK

D:\Dev\MyCache\ConsoleApp1\bin\Debug>ConsoleApp1.exe 100000
Count: 100000
Time elapsed set: 98 ms
Time elapsed get: 140 ms
Writing DB…
Writing DB OK

D:\Dev\MyCache\ConsoleApp1\bin\Debug>ConsoleApp1.exe 1000000
Count: 1000000
Writing DB…
Writing DB OK
Time elapsed set: 3656 ms
Time elapsed get: 4023 ms
Writing DB…
Writing DB OK

Source code here: MyCache.zip

poster conference.net

Conference.net the poster !

poster conference.net

In 2001, I have assisted the conference.net event where MS guys and kids presented the .NET Framework. Amazing.