More often than not, I reach for .NET in Max just because there's that one property or method not exposed to MAXScript, yet everything else could be easily done MAXScript-side. And when you're trying to move fast and explore ideas, switching apps to compile new libraries and the workarounds needed for hot reloading derail your focus, and feel like total overkill. On-the-fly compilation helps, but you lose syntax highlighting, error offsets become a math puzzle, and the boilerplate often dwarfs the actual logic – especially now with the CodeDomProvider.CompileAssemblyFromSource vs CSharpUtilities.CSharpCompilationHelper split.
Let's have a look at some ways on how I use the .NET API without stepping outside the MAXScript world. While it won't make everything elegant, it shouldn't get all that cumbersome either – and if it ever does, chances are you would be better off writing a proper C++ plugin and skipping the shenanigans altogether anyway.

