Hej,
Z tego co się orientuje to po napisaniu aplikacji i skompilowaniu w folderze Debug/bin pojawiają się pliki uruchomieniowe w języku CIL. Czy kompilacja z CLR do języka rozumianego przez komputer (010101...1001) odbywa się dopiero podczas uruchomienia i wywołania jakiejś funkcji (JIT)?
A jeśli tworzymy bibliotekę to czy ona jest skompilowana do CLR czy do 0100110...110? Jeśli do CLR to czy można tą bibliotekę dołączyć do programu napisanego w javie na systemie bez zainstalowanego .NET?
- Rejestracja:prawie 12 lat
- Ostatnio:około 9 lat
- Postów:57

- Rejestracja:prawie 23 lata
- Ostatnio:około 6 godzin
Tak, kompilacja z CIL do kodu natywnego dokonywana jest standardowo podczas uruchamiania aplikacji (Just-In-Time, JIT). Obecnie zajmuje się tym nowy kompilator RyuJIT: http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx
Jeżeli tworzymy bibliotekę klas .NET ("assembly") to ona również kompilowana jest do kodu pośredniego (CIL). Java i jej maszyna wirtualna (JVM) nie potrafi skorzystać z bibliotek .NET-owych.
Można kompilować aplikacje do kodu natywnego - istnieje ngen oraz .NET Native. W pierwszym przypadku oczywiście wymagane jest nadal posiadanie środowiska uruchomieniowego .NET na komputerze (choćby po to, by korzystać z bibliotek Frameworka). W przypadku .NET Native jest trochę lepiej, bo wymagane jest tylko minimalne środowisko w postaci biblioteki MRT, ale obecnie ta technologia jest dostępna tylko dla aplikacji korzystających z platformy UWP - po ludzku - tylko dla aplikacji w stylu "modern" dla Windows 10.
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.