It’s possible and relatively easy thanks to .NET Interop from X++. It was introduced in AX 4 and getting better in every version (AX 2012 opened new options with X++ proxy classes). There are things to aware of, though, e.g. a different way of dealing with exceptions, potential performance issues etc. You’ll find many examples on internet.
I use it a lot for things that are easier to written in C# and benefit from existing .NET libraries, but definitely not as replacement of X++.
If you have subsequent questions, don’t forget to mention the version of your AX. You should do it for every thread, preferably by adding a tag with the version.