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
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C#
  4. Developing a Client/Server application

Developing a Client/Server application

Scheduled Pinned Locked Moved C#
questioncsharpsysadminxmlperformance
12 Posts 5 Posters 1 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.
  • G Guillermo Rivero

    I suggest to read about Remoting. I just finished a client/server application using remoting and it works very good. You can persist and encrypt using Remoting. Search in CP about remoting. Visit www.ingorammer.com[^] Free your mind...

    K Offline
    K Offline
    Kingvest
    wrote on last edited by
    #3

    I did but to me it looked more like remoting is used to offload processing to another computer. What I want are persistent connections for a couple hundred clients, constantly pushing or pulling data. So, this will be very performance critical. What are the other possibilities to approach this type of application? However, I'll have a deeper look at remoting and see whether it suits my needs

    G 1 Reply Last reply
    0
    • K Kingvest

      I did but to me it looked more like remoting is used to offload processing to another computer. What I want are persistent connections for a couple hundred clients, constantly pushing or pulling data. So, this will be very performance critical. What are the other possibilities to approach this type of application? However, I'll have a deeper look at remoting and see whether it suits my needs

      G Offline
      G Offline
      Guillermo Rivero
      wrote on last edited by
      #4

      Try webservices, but webservices will work for pulling data, as you know it works using a web server, and the web server can't send information to the clients, unless the client ask for the information. I used remoting to push and pull info from the server and the clients. Free your mind...

      K 1 Reply Last reply
      0
      • G Guillermo Rivero

        Try webservices, but webservices will work for pulling data, as you know it works using a web server, and the web server can't send information to the clients, unless the client ask for the information. I used remoting to push and pull info from the server and the clients. Free your mind...

        K Offline
        K Offline
        Kingvest
        wrote on last edited by
        #5

        That's the reason why I can't use web services as the data hast to be pushed to the client. What about developing an own TCP/IP Server... do you see any benefit in doing this?

        N G 2 Replies Last reply
        0
        • K Kingvest

          Hi, I have to develop a client/server application in C#. The connection between the server and the client hast to be persistent and encrypted. There will be steady dataflow on push basis from the server. My question is, what is the best approach to build this kind of application? Speed is one of the most important factors. I read an article about Bear Stearns who built their new stock market transaction server as XML web service. So, if anybody has some gnereal ideas i'd greatly appreciate that

          H Offline
          H Offline
          Heath Stewart
          wrote on last edited by
          #6

          I agree with the first reply that .NET Remoting is worth looking into, but there is another, easier alternative. You can use XML Web Services over HTTPS (HTTP over SSL) if your server has a valid certificate. If you're developing an internal application and have ActiveDirectory, you (or IT) can use the Certificate Services to create a Web Server certificate and install it in IIS. For external applications, I recommend getting an SSL cert from VeriSign, Thawte, or any other certificate authorities (CAs). Then, just make sure you use a URL to access your Web Servce using the https scheme instead of http. It is automatically encrypted without you having to do anything. If you do look into .NET Remoting - which is far more robust, though WS Security is certainly providing additional features for Web Services - I recommend a good book for both new and intermediate Remoting developers from Microsoft Press, ".NET Remoting" by McLean, Naftel, and Williams: http://www.microsoft.com/mspress/books/6172.asp[^]. You could use channel sinks to encrypt, compress, route, or anything else to the messages in an abstract manner. This book cover that and even includes an example channel sink and derivative RealProxy for doing basic load balancing. It's a good book!

          -----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----

          K B 2 Replies Last reply
          0
          • H Heath Stewart

            I agree with the first reply that .NET Remoting is worth looking into, but there is another, easier alternative. You can use XML Web Services over HTTPS (HTTP over SSL) if your server has a valid certificate. If you're developing an internal application and have ActiveDirectory, you (or IT) can use the Certificate Services to create a Web Server certificate and install it in IIS. For external applications, I recommend getting an SSL cert from VeriSign, Thawte, or any other certificate authorities (CAs). Then, just make sure you use a URL to access your Web Servce using the https scheme instead of http. It is automatically encrypted without you having to do anything. If you do look into .NET Remoting - which is far more robust, though WS Security is certainly providing additional features for Web Services - I recommend a good book for both new and intermediate Remoting developers from Microsoft Press, ".NET Remoting" by McLean, Naftel, and Williams: http://www.microsoft.com/mspress/books/6172.asp[^]. You could use channel sinks to encrypt, compress, route, or anything else to the messages in an abstract manner. This book cover that and even includes an example channel sink and derivative RealProxy for doing basic load balancing. It's a good book!

            -----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----

            K Offline
            K Offline
            Kingvest
            wrote on last edited by
            #7

            thanks for both your replies. I'll definitely have a deeper look at remoting. Unfortunately I can not use XML Web Services as i have to push date from the server to the client.

            1 Reply Last reply
            0
            • K Kingvest

              That's the reason why I can't use web services as the data hast to be pushed to the client. What about developing an own TCP/IP Server... do you see any benefit in doing this?

              N Offline
              N Offline
              Niels Penneman
              wrote on last edited by
              #8

              This was already discussed elsewhere I think. I'll give you some advice: don't develop a server which handles each client in a separate thread, cause that will cause processor overloading with >20 clients. Maybe you'll find the answer at .NET 247 ;-) greetz ;-) *Niels Penneman*


              Software/Dev Site
              Personal Site


              K 1 Reply Last reply
              0
              • H Heath Stewart

                I agree with the first reply that .NET Remoting is worth looking into, but there is another, easier alternative. You can use XML Web Services over HTTPS (HTTP over SSL) if your server has a valid certificate. If you're developing an internal application and have ActiveDirectory, you (or IT) can use the Certificate Services to create a Web Server certificate and install it in IIS. For external applications, I recommend getting an SSL cert from VeriSign, Thawte, or any other certificate authorities (CAs). Then, just make sure you use a URL to access your Web Servce using the https scheme instead of http. It is automatically encrypted without you having to do anything. If you do look into .NET Remoting - which is far more robust, though WS Security is certainly providing additional features for Web Services - I recommend a good book for both new and intermediate Remoting developers from Microsoft Press, ".NET Remoting" by McLean, Naftel, and Williams: http://www.microsoft.com/mspress/books/6172.asp[^]. You could use channel sinks to encrypt, compress, route, or anything else to the messages in an abstract manner. This book cover that and even includes an example channel sink and derivative RealProxy for doing basic load balancing. It's a good book!

                -----BEGIN GEEK CODE BLOCK----- Version: 3.21 GCS/G/MU d- s: a- C++++ UL@ P++(+++) L+(--) E--- W+++ N++ o+ K? w++++ O- M(+) V? PS-- PE Y++ PGP++ t++@ 5 X+++ R+@ tv+ b(-)>b++ DI++++ D+ G e++>+++ h---* r+++ y+++ -----END GEEK CODE BLOCK-----

                B Offline
                B Offline
                bnieland
                wrote on last edited by
                #9

                You want this book as reffed in this thread, it shows an implementation of an encrytion sink for remoting in Chapter 9. Remoting does seem to be your answer. DTrent

                1 Reply Last reply
                0
                • N Niels Penneman

                  This was already discussed elsewhere I think. I'll give you some advice: don't develop a server which handles each client in a separate thread, cause that will cause processor overloading with >20 clients. Maybe you'll find the answer at .NET 247 ;-) greetz ;-) *Niels Penneman*


                  Software/Dev Site
                  Personal Site


                  K Offline
                  K Offline
                  Kingvest
                  wrote on last edited by
                  #10

                  hm but every client will receive different data concurrently. How else could this be accomplished without threads?

                  N 1 Reply Last reply
                  0
                  • K Kingvest

                    That's the reason why I can't use web services as the data hast to be pushed to the client. What about developing an own TCP/IP Server... do you see any benefit in doing this?

                    G Offline
                    G Offline
                    Guillermo Rivero
                    wrote on last edited by
                    #11

                    Why invent the wheel when you already have rockets going to mars ??? That's up to you, but remoting is very robust. Any way, if you need an example, I can send you some code. Free your mind...

                    1 Reply Last reply
                    0
                    • K Kingvest

                      hm but every client will receive different data concurrently. How else could this be accomplished without threads?

                      N Offline
                      N Offline
                      Niels Penneman
                      wrote on last edited by
                      #12

                      Sorry, it does require multiple threads, but make sure you are not running 200 threads at once, you'll have to pool / manage your threads... But that's something I - too (i guess) - am not familiar with. greetz ;-) *Niels Penneman*


                      Software/Dev Site
                      Personal Site


                      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