Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Is C# right for me?

Is C# right for me?

Scheduled Pinned Locked Moved C#
c++sysadminquestioncsharpjava
6 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tansey4
    wrote on last edited by
    #1

    I want to create a multiplayer boardgame which allows players to either connect to a central server and join a game, or to host their own game and have their computer act as a private server. Security is also a high priorty for me, since I plan on creating a points system which leads to prizes, etc, so I don't want anyone to be able to cheat. So my question is: is C# the right language for this? I've done most of my programming in C++ and Java in the past. Most of my applications have been computational or console apps, so I've never really gotten into GUI design (though I've done some basic swing and a little mfc). Likewise, I've never done anything at all with regards to network programming and setting up client/server applications. I'm new to C# (all I know right now is from the FAQ on this forum), and it seems like what I want to use, but I'm not sure. Would you recommend it over say C++ and/or Java?

    R D 2 Replies Last reply
    0
    • T tansey4

      I want to create a multiplayer boardgame which allows players to either connect to a central server and join a game, or to host their own game and have their computer act as a private server. Security is also a high priorty for me, since I plan on creating a points system which leads to prizes, etc, so I don't want anyone to be able to cheat. So my question is: is C# the right language for this? I've done most of my programming in C++ and Java in the past. Most of my applications have been computational or console apps, so I've never really gotten into GUI design (though I've done some basic swing and a little mfc). Likewise, I've never done anything at all with regards to network programming and setting up client/server applications. I'm new to C# (all I know right now is from the FAQ on this forum), and it seems like what I want to use, but I'm not sure. Would you recommend it over say C++ and/or Java?

      R Offline
      R Offline
      RizwanSharp
      wrote on last edited by
      #2

      Dear .Net provide a hell lot easire classes for network programming and the graphics related work u want to do + you cant use Crypto Classes to encrypt ur messages to send and receive from the peers. Dotn worry. Just Go Ahead. ;) Cheers, Best Regards, Rizwan

      C 1 Reply Last reply
      0
      • T tansey4

        I want to create a multiplayer boardgame which allows players to either connect to a central server and join a game, or to host their own game and have their computer act as a private server. Security is also a high priorty for me, since I plan on creating a points system which leads to prizes, etc, so I don't want anyone to be able to cheat. So my question is: is C# the right language for this? I've done most of my programming in C++ and Java in the past. Most of my applications have been computational or console apps, so I've never really gotten into GUI design (though I've done some basic swing and a little mfc). Likewise, I've never done anything at all with regards to network programming and setting up client/server applications. I'm new to C# (all I know right now is from the FAQ on this forum), and it seems like what I want to use, but I'm not sure. Would you recommend it over say C++ and/or Java?

        D Offline
        D Offline
        Dan Neely
        wrote on last edited by
        #3

        C#/java would be faster and easier to do the implementation in, but from a security perspective both have the same weakness. The distributed programs are compiled to an intermediate format rather than machine language which is much easier to reverse engineer. IF your design is poor that could result in an easier attack path for cheaters. Provided you validate *everything* on the server (all user input is bad until proven otherwise), and don't send the user any data they can't currently see (out of sight areas of the map, private details of opponents) this shouldn't be a major issue. You should do both of these even if you're using c++, if the prizes are good enough the same cheating can be done by packet sniffing and writing a custom cheat client. C# is my langauge of choice, but it's always a good thing to know the limitations before you begin.

        T 1 Reply Last reply
        0
        • R RizwanSharp

          Dear .Net provide a hell lot easire classes for network programming and the graphics related work u want to do + you cant use Crypto Classes to encrypt ur messages to send and receive from the peers. Dotn worry. Just Go Ahead. ;) Cheers, Best Regards, Rizwan

          C Offline
          C Offline
          Colin Angus Mackay
          wrote on last edited by
          #4

          dotnetdev83 wrote:

          Dear .Net provide a hell lot easire classes for network programming and the graphics related work u want to do + you cant use Crypto Classes to encrypt ur messages to send and receive from the peers.

          Yes, .NET provides fairly easy networking and graphics classes. But, easier than what? What do you mean "you can't use crypto classes"? Why not? I don't have a problem with the crypto classes, unless going to or from the Compact .NET Framework because it has only a subset, so you have to work with the crypto classes available in the Compact .NET Framework if you are going to use that. Otherwise it has a good selection of classes that you can use to block encrypt or encrypt a stream. ColinMackay.net "Man who stand on hill with mouth open will wait long time for roast duck to drop in." -- Confucius "If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell

          R 1 Reply Last reply
          0
          • D Dan Neely

            C#/java would be faster and easier to do the implementation in, but from a security perspective both have the same weakness. The distributed programs are compiled to an intermediate format rather than machine language which is much easier to reverse engineer. IF your design is poor that could result in an easier attack path for cheaters. Provided you validate *everything* on the server (all user input is bad until proven otherwise), and don't send the user any data they can't currently see (out of sight areas of the map, private details of opponents) this shouldn't be a major issue. You should do both of these even if you're using c++, if the prizes are good enough the same cheating can be done by packet sniffing and writing a custom cheat client. C# is my langauge of choice, but it's always a good thing to know the limitations before you begin.

            T Offline
            T Offline
            tansey4
            wrote on last edited by
            #5

            Thanks for the advice all, I think I'm going to go ahead and write it in C#. :)

            1 Reply Last reply
            0
            • C Colin Angus Mackay

              dotnetdev83 wrote:

              Dear .Net provide a hell lot easire classes for network programming and the graphics related work u want to do + you cant use Crypto Classes to encrypt ur messages to send and receive from the peers.

              Yes, .NET provides fairly easy networking and graphics classes. But, easier than what? What do you mean "you can't use crypto classes"? Why not? I don't have a problem with the crypto classes, unless going to or from the Compact .NET Framework because it has only a subset, so you have to work with the crypto classes available in the Compact .NET Framework if you are going to use that. Otherwise it has a good selection of classes that you can use to block encrypt or encrypt a stream. ColinMackay.net "Man who stand on hill with mouth open will wait long time for roast duck to drop in." -- Confucius "If a man empties his purse into his head, no man can take it away from him, for an investment in knowledge pays the best interest." -- Joseph E. O'Donnell

              R Offline
              R Offline
              RizwanSharp
              wrote on last edited by
              #6

              Sorry Boss It was a typing mistake:^). I wanted to write you CAN use Crypto Classes. Sorry Again. Best Regards,

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups