Hát ettől sajnos egyáltalán nem lettem okosabb, megpróbálom átfogalmazni a kérdést.
Vegyük például a WebAssembly-t, az is bájtkód és OSS, próbáljuk meg ahhoz hasonlítani.
- ott használhatok bármilyen IDE-t, van ugyan integráció, de nem kötelező (pl. írhatom vi-ban vagy emacs-ban is)
- azt fordíthatom simán IDE-től függetlenül (mondjuk Clang-al, Bynarien-el; az emscripten és WASI SDK-k pedig IDE-től függetlenül is simán elérhetők és telepíthetők)
- azt futtathatom számos alternatívával (pl. wasmint, wac, wasm3, wasmjit, stb.)
Vagy hasonlíthatjuk akár a Java-hoz is, szintén zenész:
- ott is használhatok bármilyen IDE-t, van ugyan integráció, de nem kötelező (Eclipse, NetBeans stb.)
- azt is fordíthatom simán IDE-től függetlenül (a JDK, a .jar fájlok IDE-től függetlenül is simán elérhetők és telepíthetők)
- azt is futtathatom számos alternatívával (Oracle JRE, IBM JRE stb.)
Ha jól értem, az utóbbiból, a futtatási környezetből csak az MS cucca létezik, azt használja mindenki, de az legalább OSS és multiplatform.
Az viszont továbbra is rejtély számomra, hogy az első kettő mennyire lehet MS független, és hogy mennyire szorosan vannak egymásba integrálva.
Használható a C# IDE nélkül, azaz telepíthető a fordító és az SDK attól függetlenül, különösebb szívás nélkül? (Amit a MonoDevelop is csinált, de az megszűnt, van helyette más, nem MS cucc? Nem IDE, hanem SDK és fordító)
Vagy ez is olyan, mint az ObjC, amit csak XCode IDE-vel érdemes használni, mert minden mással agyhalál (ott hiába van pl. Linux-os fordító, használhatatlan, mert a szükséges SDK-k (ott framework-ök) csakis Mac-en elérhetőek)?
Szóval ha ezen három szempont alapján próbáljuk összehasonlítani, akkor miként néz ki a C#/.NET infrastruktúra?