1

I'm having an issue determining which technologies to use in a cross-platform environment. Here's my thoughts so far.

  • Java is a fine programming language, although I'm not very used to it. And since I prefer having access to things like Linq, delegates and so on that I have gotten used to in C#, I would rather not use it that much. I'm also not a huge fan of how Beans work compared to User Controls.

  • C# is my preferred language. I love it, and I would call myself an expert within the field (not an expert within COM obviously though).

  • C++ is a city in Russia to me. I feel like I'm walking blind when using this programming language, and that things take longer to make compared to C#.

I am making a backup system for a 4 week school project. However, I have greater intentions for it in the future. And for a backup system to succeed, it must have cross-platform compatibility.

So if I made a Class Library in C# .NET COM visible, and used that COM within a Java project containing a GUI, would the whole application still work cross-platform?

Mathias Lykkegaard Lorenzen
  • 15,031
  • 23
  • 100
  • 187

3 Answers3

4

COM is a microsoft technology, it is not cross platform.

You could use C# and the mono project to give you cross-platform deployment.

http://www.mono-project.com/Main_Page

Phil Hannent
  • 12,047
  • 17
  • 71
  • 118
1

Theoretically COM is cross platform but in implementation it depend on Windows. And beside it making a .NET assembly COM visible does not make it independent from .NET runtime(CLR) so you depend on both .NET(for your assembly) and Windows(for COM). But there are implementation for both COM and .NET there is POSIX implementations. AFAIK for .NET there is runtime named Mono that can installed on iOS, Android and POSIX but for school project I don't think that your teacher accept it as cross platform, so you should use Java or C++ that are cross platform in nature (Java is runtime compatible and C++ is source code compatible).

BigBoss
  • 6,904
  • 2
  • 23
  • 38
1

I am making a backup system for a 4 week school project. However, I have greater intentions for it in the future. And for a backup system to succeed, it must have cross-platform compatibility.

My advice would be to focus exclusively on the goal of getting the 4 week school project done. Don't add unnecessary complexity (such as cross-platform support) that might derail your project. Use the (applicable) technology that you are most comfortable with right now.

Once you've finished your course, by all means revisit the project and try to turn it into something bigger / better / more saleable / whatever.

(We can all dream of being the next Bill Gates, but do you seriously think that you will get rich and/or famous with yet another backup program? )

Stephen C
  • 698,415
  • 94
  • 811
  • 1,216