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. C# .NET question

C# .NET question

Scheduled Pinned Locked Moved C#
csharpc++questionjavavisual-studio
12 Posts 7 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.
  • Z zimbar

    C# .NET question My first and main question is: Can C# produce native executables, that would run on any Windows platoform without the .NET binaries? Just like C++? Or it only compiles to bytecode like Java? (it doesn't matter how MS calls it?) Do you think that C# is good for Graphics Applications? (I mean is it fast enough) I would like to try .NET SDK and online documentation before I move to VS .NET. Do you know about any online books on C# (beside C# Language Specification and Thinking in C#)? I think a FAQ on C# would answer this question but so far I couldn't find any with the anwsers I want. Any help is appreciated. Thank you, Z.

    J Offline
    J Offline
    James T Johnson
    wrote on last edited by
    #3

    Zimbar wrote: My first and main question is: Can C# produce native executables, that would run on any Windows platoform without the .NET binaries? No, the C# compiler only compiles down to MSIL bytecode. Zimbar wrote: Do you think that C# is good for Graphics Applications? (I mean is it fast enough) Probably not; but you could always try it to see. James "Java is free - and worth every penny." - Christian Graus

    1 Reply Last reply
    0
    • Z zimbar

      C# .NET question My first and main question is: Can C# produce native executables, that would run on any Windows platoform without the .NET binaries? Just like C++? Or it only compiles to bytecode like Java? (it doesn't matter how MS calls it?) Do you think that C# is good for Graphics Applications? (I mean is it fast enough) I would like to try .NET SDK and online documentation before I move to VS .NET. Do you know about any online books on C# (beside C# Language Specification and Thinking in C#)? I think a FAQ on C# would answer this question but so far I couldn't find any with the anwsers I want. Any help is appreciated. Thank you, Z.

      C Offline
      C Offline
      Christian Graus
      wrote on last edited by
      #4

      Zimbar wrote: ++? Or it only compiles to bytecode like Java? That is sort of right. But yes, you need the runtime. Zimbar wrote: Do you think that C# is good for Graphics Applications? (I mean is it fast enough) No. My graphics filters were benchmarked by Chris L. and the same code in C++ was 25 times the speed. I wrote mine in C# only because I needed to, to differentiate them from some I wrote in C++ for a former employer. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

      E 1 Reply Last reply
      0
      • C Christian Graus

        Zimbar wrote: ++? Or it only compiles to bytecode like Java? That is sort of right. But yes, you need the runtime. Zimbar wrote: Do you think that C# is good for Graphics Applications? (I mean is it fast enough) No. My graphics filters were benchmarked by Chris L. and the same code in C++ was 25 times the speed. I wrote mine in C# only because I needed to, to differentiate them from some I wrote in C++ for a former employer. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

        E Offline
        E Offline
        Eric Gunnerson msft
        wrote on last edited by
        #5

        25x? That seems surprising. Care to share a bit of code (both in C++ and in C#)?

        C 1 Reply Last reply
        0
        • E Eric Gunnerson msft

          25x? That seems surprising. Care to share a bit of code (both in C++ and in C#)?

          C Offline
          C Offline
          Christian Graus
          wrote on last edited by
          #6

          My C# code is here on the site - I did not think the speed was too bad ( but I maintain C# is the wrong tool, mostly because Microsoft in their wisdom have made pixel access 'unsafe' ), but Chris Losinger has posted the question based on conversion to C++ that he did. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

          A 1 Reply Last reply
          0
          • C Christian Graus

            My C# code is here on the site - I did not think the speed was too bad ( but I maintain C# is the wrong tool, mostly because Microsoft in their wisdom have made pixel access 'unsafe' ), but Chris Losinger has posted the question based on conversion to C++ that he did. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

            A Offline
            A Offline
            Anonymous
            wrote on last edited by
            #7

            Two questions: 1) Was the code written using GetPixel and SetPixel()? 2) What other option was there besides making pixel access unsafe? I don't like it either, but I can't see how you can be fast without being pointer-based.

            C 1 Reply Last reply
            0
            • A Anonymous

              Two questions: 1) Was the code written using GetPixel and SetPixel()? 2) What other option was there besides making pixel access unsafe? I don't like it either, but I can't see how you can be fast without being pointer-based.

              C Offline
              C Offline
              Christian Graus
              wrote on last edited by
              #8

              Anonymous wrote: Was the code written using GetPixel and SetPixel()? Mine was not, that would not be unsafe. I assume Chris' was not either - he writes an imaging library, you know. Anonymous wrote: What other option was there besides making pixel access unsafe? I don't like it either, but I can't see how you can be fast without being pointer-based. The obvious option is a function that returns the bitmap as a 2D array. How do you think every array in memory is laid out ? There is no reason to regard it as unsafe to access the member data of the Bitmap class. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

              E 1 Reply Last reply
              0
              • Z zimbar

                C# .NET question My first and main question is: Can C# produce native executables, that would run on any Windows platoform without the .NET binaries? Just like C++? Or it only compiles to bytecode like Java? (it doesn't matter how MS calls it?) Do you think that C# is good for Graphics Applications? (I mean is it fast enough) I would like to try .NET SDK and online documentation before I move to VS .NET. Do you know about any online books on C# (beside C# Language Specification and Thinking in C#)? I think a FAQ on C# would answer this question but so far I couldn't find any with the anwsers I want. Any help is appreciated. Thank you, Z.

                F Offline
                F Offline
                Feng Qin
                wrote on last edited by
                #9

                If you installed vs.net, you can find C# language sepecification document on VC# folder, and also you can find many resource on msdn online. I'm amumu, and you?

                1 Reply Last reply
                0
                • C Christian Graus

                  Anonymous wrote: Was the code written using GetPixel and SetPixel()? Mine was not, that would not be unsafe. I assume Chris' was not either - he writes an imaging library, you know. Anonymous wrote: What other option was there besides making pixel access unsafe? I don't like it either, but I can't see how you can be fast without being pointer-based. The obvious option is a function that returns the bitmap as a 2D array. How do you think every array in memory is laid out ? There is no reason to regard it as unsafe to access the member data of the Bitmap class. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

                  E Offline
                  E Offline
                  Eric Gunnerson msft
                  wrote on last edited by
                  #10

                  Sorry that the last one came across as anonymous. Not sure why... Christian Graus wrote: The obvious option is a function that returns the bitmap as a 2D array. How do you think every array in memory is laid out ? There is no reason to regard it as unsafe to access the member data of the Bitmap class. Hmm. Did the C++ version use pointer arithmetic, or did it use array indexing? I agree that you can return a 2D array, but I don't that would help much in this case because: 1) multidimensional access in C# is a bit slower than single dimensional 2) Array indexing is slower than pointer arithmetic 3) The .NET classes are a thin layer on top of the unmanaged GDI+ functions. If you can't change that, then you'd have to copy from the unmanaged world to the managed world and back, which would be really slow. #3 is a design decision which I hope can be addressed in the future. I'm not sure what we'd do to address the others. Thanks for the info; I'll take a look at the code.

                  C E 2 Replies Last reply
                  0
                  • E Eric Gunnerson msft

                    Sorry that the last one came across as anonymous. Not sure why... Christian Graus wrote: The obvious option is a function that returns the bitmap as a 2D array. How do you think every array in memory is laid out ? There is no reason to regard it as unsafe to access the member data of the Bitmap class. Hmm. Did the C++ version use pointer arithmetic, or did it use array indexing? I agree that you can return a 2D array, but I don't that would help much in this case because: 1) multidimensional access in C# is a bit slower than single dimensional 2) Array indexing is slower than pointer arithmetic 3) The .NET classes are a thin layer on top of the unmanaged GDI+ functions. If you can't change that, then you'd have to copy from the unmanaged world to the managed world and back, which would be really slow. #3 is a design decision which I hope can be addressed in the future. I'm not sure what we'd do to address the others. Thanks for the info; I'll take a look at the code.

                    C Offline
                    C Offline
                    Christian Graus
                    wrote on last edited by
                    #11

                    Eric Gunnerson (msft) wrote: Did the C++ version use pointer arithmetic, or did it use array indexing? Pointers, for speed. I appreciate all that you are saying, my point is more that C# should be able to access the bitmap data in one call, instead of using get/setpixel which is notoriously slow, and without having to write code that will be marked 'unsafe'. Ideally, I guess that means GDI+ should provide another call, or C# should sandbox the GetData call and return the data. This will be slower, of course, but I would not mind that if I had the option to go unsafe, but could do pixel access in some way that was as optimised as I could hope for without marking my code as unsafe. Christian come on all you MS suckups, defend your sugar-daddy now. - Chris Losinger - 11/07/2002

                    1 Reply Last reply
                    0
                    • E Eric Gunnerson msft

                      Sorry that the last one came across as anonymous. Not sure why... Christian Graus wrote: The obvious option is a function that returns the bitmap as a 2D array. How do you think every array in memory is laid out ? There is no reason to regard it as unsafe to access the member data of the Bitmap class. Hmm. Did the C++ version use pointer arithmetic, or did it use array indexing? I agree that you can return a 2D array, but I don't that would help much in this case because: 1) multidimensional access in C# is a bit slower than single dimensional 2) Array indexing is slower than pointer arithmetic 3) The .NET classes are a thin layer on top of the unmanaged GDI+ functions. If you can't change that, then you'd have to copy from the unmanaged world to the managed world and back, which would be really slow. #3 is a design decision which I hope can be addressed in the future. I'm not sure what we'd do to address the others. Thanks for the info; I'll take a look at the code.

                      E Offline
                      E Offline
                      Eric Gunnerson msft
                      wrote on last edited by
                      #12

                      I looked at the code, and it pretty much looks like my code. Is there anyplace I can look at the equivalent C++ code that Chris timed?

                      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