I have been learning C# for a time now. I basically come from a non-developing background (means I dont know the actual working of different programming tools). I just started learning Monogame but few things confused me.
Firstly it says that Monogame is open-source implementation of XNA. What does it mean? -that it makes XNA open-source -or takes features of XNA and implements it itself but with same function names etc. as XNA -any other
And is it allowed and legal? If yes, can I copy any app in any app store and make my own version? What needs to be different for it to be legal?
Secondly when I installed Monogame, SharpDX was also installed. When I searched about it, I found that SharpDX is managed DirectX (I have never worked in DirectX). What is the link between Monogame and SharpDX (or XNA and DirectX) and cant I use monogame or SharpDX separately? And what does it mean by managed DirectX?
Thirdly are there more cross-platform C# frameworks other than those provided by Xamarin? I cant find more.
What does it mean?
Monogame is another implementation (same interface, different underpinnings) of XNA
And is it allowed and legal?
I don't know XNA's terms offhand, but typically Microsoft allows duplicates of this sort (see the original Mono). You can do research on the license for XNA if this concerns you.
Can I copy any app in any app store and make my own version? What needs to be different for it to be legal?
I am not a lawyer (especially not a copyright lawyer), a couple of things to steer you in the right direction, mostly it boils down to copies ideas is fine, copying anything concrete is not.
So if you wrote it and were inspired that is fine, but if you take it that is not fine. Also note that there is a significant grey area when it comes to decompilation so I wouldn't do anything related to that if you want to sell your product. (Or even put it on an app store)
On a less objective note, don't try and copy something directly, if it is popular you won't replicate that success just by being the same. Find an idea you like and tweak it to make it more interesting at the least.
What is the link between Monogame and SharpDX (or XNA and DirectX) and cant I use monogame or SharpDX separately?
Monogame probably uses SharpDX on Windows and/or XBox (both of which have DirectX as an option). SharpDX is an externally maintained managed interface to DirectX. Rather than redoing that work they use it. Whether you need it depends on your platform. It would be useless on Android or iOS for instance, since neither of those platforms supports DirectX.
Thirdly are there more cross-platform C# frameworks other than those provided by Xamarin?
You need to define framework and probably cross-platform if you want an answer to this question. For instance Mono is basically the only cross-platform framework by using the .NET Framework definition of framework.