Richard June 3rd, 2021 The .NET or Common Language Runtime (CLR) type system is the foundation of the .NET programming model. We often talk about System.Object being the base of the type system, but it’s really the base of all (reference) types. The type system is (at least) one step lower than that. It defines that both reference and value types exist, that strings are immutable, that single-inheritence is allowed and multiple-inheritence is not, and that generics are a runtime concept. On the other h...
Rozmawiając z paroma kolegami po fachu zapytałem ich o czym chcieliby poczytać na blogach programistycznych. Jednym z tematów, który się przewinął, był Common Language Runtime, w skrócie CRL. Wychodząc na przeciw oczekiwaniom chciałbym przedstawić wam trochę wiedzy z samym bebechów .NET-a.Platforma .NET Zacznijmy, jak zawsze, od podstaw. Na początku była pustka, potem wielki wybuch… dobra, przyśpieszmy. Czym w ogóle są CLR, IL, JIT? Jeżeli wpadła ci w ręce książka dotycząca .NET (lub inne profesjonalne ...
.NET application is “just” a piece of CIL bytecode to be executed by the .NET runtime. And .NET runtime is “just” a program that is able to perform this task. But what if we write .NET runtime as… .NET appli...
Structures, handles, pointers and managed code in C++. Twelfth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
Marshal-by-bleed, DllMain in C#, timers and more. Eleventh part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
Threads, memory model, pumping COM messages, internals of Thread.Abort. Tenth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
GC, card table, brick table, finalizers, f-reachable queue and more. Ninth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
Unions, varargs, global fields. Eighth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
Advantages of boxing, exceptions, well known members, duck typing and more. Seventh part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
Loading shim, app domains, size of an empty structure or .NET calling convention. Sixth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
Methods with same name and parameters but different return type, const vs readonly, parameters evaluation and much more. Fifth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
How to add a type constructor or a static field to an interface? How to implement a parameterless constructor for a struct? Fourth part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
How to create object without calling constructor? How to call constructor multiple times? How to create an instance of an interface? Third part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
How to compact LOH? How to stop out-of-band exceptions? How to resurrect an object? Second part of .NET Internals Cookbook with answers to various C#/.NET/CLR questions.
This page collects all the posts I’ve written within .NET Internals series so far
Sztuka programowania 2217 dni, 3 godziny, 21 minut temu 145 źrodło rozwiń
A few months ago I wrote an article about Zero GC in .NET Core 2.0. This proof of concept was based on a preview version of .NET Core 2.0. However upcoming .NET Core 2.1 contains many improvements in that field so I’ve decided to write follow up post. I’ve also answered one of the questions bothering me for a long time – how would real usage of Zero GC like in the context of ASP.NET Core application?
Nowa seria: Tajemnice CLR. Dziś na tapetę biorę to jak działa metoda GetType() czyli skąd obiekt wie jakiego jest typu.
W poprzedniej części opisałem wymagania wobec projektu MemoryVisualizer. Teraz pora przejść do konkretów, czyli technologii. Dla przypomnienia, piszę narzędzie, które pozwoli za pomocą jakiegoś języka zapytań wizualizować pamięć procesu .NETowego.
Daj się poznać 2016 3209 dni, 19 godzin, 53 minuty temu 95 źrodło rozwiń
Projekt w ramach konkursu 'Daj się poznać' czas zacząć! Siedzę w temacie analizy pamięci w .NET już jakiś czas. Zaczęło się od potrzeby, kilka lat temu - produkcyjne systemy miały jakiś wyciek i trzeba było namierzyć dziada. Złapałem bakcyla. No to napiszę narzędzie!
Daj się poznać 2016 3212 dni, 3 godziny, 43 minuty temu 169 źrodło rozwiń
O IntelliTrace pisałem już wielokrotnie. Do tej pory nie wyjaśniłem jednak, że chociaż IntelliTrace nazywamy debugger'em historycznym to w rzeczywistości IntelliTrace jest profilerem. Dokładniej mówiąc jednym z komponentów składowych IntellITrace jest niezarządzana implementacja interfejsu ICorProfiler. Profiler ten komunikuje się z zarządzaną częścią IntelliTrace, czyli z programem IntellITrace.exe. IntellITrace.exe jest natomiast używane przez Visual Studio...