Announcement

Collapse
No announcement yet.

why C# and Direct X

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • why C# and Direct X

    Chris,

    I get a lot of questions on why pushing for C# and Direct X instead of the more portable Java and Open GL. How did you decide on C# and Direct X?


    Mark

  • #2
    Originally posted by marksolo@Sep 3 2004, 08:50 AM
    Chris,

    I get a lot of questions on why pushing for C# and Direct X instead of the more portable Java and Open GL.Â* How did you decide on C# and Direct X?
    Mark
    I've already lost count on the number of times I've had to defend using both C# and DirectX. Usually people think the C++ and OpenGL route would be better, but the issue really just comes down to performance, productivity, and marketability.

    Microsoft ownes greater than 95% (or so) market share with personal computers. Our aim here at Learning Technologies is to touch as many people as possible with our products, so making something work (and work well) with MS Windows is top priority. World Wind started it's life with a piece of software called Blue Marble Viewer(this was before I came onboard), which was based on Open Scene Graph. That was primarily developed on Linux and while this piece of software was revolutionary and extremely powerful, porting each successive version to Windows proved to be costly. This created a need for a stable MS Windows product with the same functionality of BMV. With extremely limited resources, C# seemed like the only option that would allow us to have a deliverable product. This leads me into the biggest advantage for using C#...

    C# is one of the most productive programming languages out there. When I try to implement a feature in c# with the .NET framework, it usually doesn't take me that long, and what gets produced is (relatively) bug-free. However, doing the same thing in c++ would take me at least twice as long, perhaps more depending on how much I was able to leverage the .NET framework when using c#.

    *This productivity issue comes into play when it's just one guy (a student intern) programming the entire project. Going the C# route was the difference between finishing the project, and not finishing the project.*

    Why not JAVA? The World Wind software pushes the limits of the new 3D accelerated hardware. JAVA 3D doesn't yet have the features, functionality, and performance of OpenGL or DirectX.

    OpenGL vs. DirectX -> World Wind started off with using C# and a Wrapper for OpenGL access. There were a few issues with this, and the implementation of it was not exactly straightforward. I also saw that many of the latest games use DirectX, and with the introduction of Managed DirectX, it seemed only natural to use it. Managed DirectX gets rid of the complicated C# to C++ wrappers and basically makes everything more readable and robust. It's easier to explore the limits of the new video card features with Managed DirectX, and being natively Object-Oriented in C#, development fits better in the overall architecture of World Wind. The same *productivity* issue also comes up again, as DirectX has built-in libraries for meshes and math, which make my life easier since I don't have to build these libraries from scratch like I would with OpenGL. Oh, and one small but critical element for the use of DirectX over OpenGL, multi-threaded graphics device access.

    I guess that's the ~short~ answer to the issue... :lol: I can elaborate more if anyone has specific questions about it.
    ~ just a programmer ~

    Comment


    • #3
      Hey I am sorry I have to make you go thru that again.
      I could not have said it better myself.
      I will be quoting you on this!

      Thanks,

      Mark

      Comment


      • #4
        Originally posted by cmaxwell@Sep 3 2004, 12:35 PM
        I've already lost count on the number of times I've had to defend using both C# and DirectX. Usually people think the C++ and OpenGL route would be better, but the issue really just comes down to performance, productivity, and marketability.

        Microsoft ownes greater than 95% (or so) market share with personal computers. Our aim here at Learning Technologies is to touch as many people as possible with our products, so making something work (and work well) with MS Windows is top priority.

        MS doesn't own anywhere near that share of the market in educational settings! If you are creating Learning Technologies, should I just tell my daughter that her school, like thousands of others, has been abandoned in order to ensure Bill Gates' monopoly of mindspace?

        I'm sorry if I seem belligerent, but I'm sick of being treated like a second- or third-class citizen by the good guys (and NASA is the quintessence of the good guys, to me).

        --
        orangemike

        Comment


        • #5
          The source code is out there, the core will compile on on Mono on the Mac (minus GUI and DirectX pieces).

          If the community has the interest to do the port no one is preventing it.
          Adam Hill - .NET and GIS Guy
          Thregecy Inc. ::: TheBigPixel
          Hack #24 - World Wind

          Comment


          • #6
            Originally posted by orangemike@Sep 23 2004, 04:33 PM
            MS doesn't own anywhere near that share of the market in educational settings! If you are creating Learning Technologies, should I just tell my daughter that her school, like thousands of others, has been abandoned in order to ensure Bill Gates' monopoly of mindspace?

            I'm sorry if I seem belligerent, but I'm sick of being treated like a second- or third-class citizen by the good guys (and NASA is the quintessence of the good guys, to me).

            --
            orangemike
            The use of C# and DirectX was because we needed to prove our concept and *quickly* get a product out there that will fulfill our objectives. The World Wind project has only been in development for about a year, and the only programmer to this point has been myself. It looks like we are starting to get where we wanted to go with the attention we need to expand, and it's definitely a high priority for myself to get this product out for the Mac. I really don't want to see anyone left empty-handed. We've got extremely limited resources in our "shop" for doing a Mac port, but I'm hoping that within 6 months, we will have a Mac version of this program with at least the core functionality in place that you see in this current release.
            ~ just a programmer ~

            Comment


            • #7
              Originally posted by adamhill@Sep 23 2004, 05:13 PM
              The source code is out there, the core will compile on on Mono on the Mac (minus GUI and DirectX pieces).

              If the community has the interest to do the port no one is preventing it.
              Where is "out there"? Perhaps someone might be interested in doing the porting if one
              could find it. I only find the MS executable.

              Comment


              • #8
                Originally posted by Mark Everett@Sep 24 2004, 02:54 PM
                Where is "out there"? Perhaps someone might be interested in doing the porting if one
                could find it. I only find the MS executable.
                Aha! Open mouth, input foot. It would appear, by the documentation I can find
                elsewhere (since downloads are still impossible because of load) that the download
                includes the software.

                Two suggestions. First, you might want to split them into two downloads since most
                people will just want to use the application. And, second, you might consider doing
                one of the distribution methods like BitTorrent that allows you to piggyback on other's
                bandwidth. I know its a little geeky, so you wouldn't want to make it the only method,
                but it would certainly lessen the load considerably.

                Comment


                • #9
                  Originally posted by Mark Everett@Sep 24 2004, 03:05 PM
                  Aha! Open mouth, input foot. It would appear, by the documentation I can find
                  elsewhere (since downloads are still impossible because of load) that the download
                  includes the software.

                  Two suggestions. First, you might want to split them into two downloads since most
                  people will just want to use the application. And, second, you might consider doing
                  one of the distribution methods like BitTorrent that allows you to piggyback on other's
                  bandwidth. I know its a little geeky, so you wouldn't want to make it the only method,
                  but it would certainly lessen the load considerably.
                  We are going to put the source code up on SourceForge, but we're still handling some logistics first. It will be up very soon (especially after today). While I'd love to have this downloadable via Bit Torrent, we're actually not allowed to put the program up there ourselves due to administrative reasons (at least from our computers at work). However, anyone else can freely put the software up as they like (and once we get home tonight, we'll be working towards this). This Slashdot incident definitely caught us off-guard since this program isn't officially *released* yet. There are still many people in the agency that don't know about this application yet.
                  ~ just a programmer ~

                  Comment


                  • #10
                    I for one think the decision to go with C# and Managed DirectX is a good one. Productivity is essential, no matter whether its one developer or a thousand.

                    I am EXTREMELY excited that this will be available as an open-source project, and I intend to get involved with improving it!

                    Comment


                    • #11
                      Why not JAVA? The World Wind software pushes the limits of the new 3D accelerated hardware. JAVA 3D doesn't yet have the features, functionality, and performance of OpenGL or DirectX.
                      Not totally accurate.

                      https://jogl.dev.java.net/

                      provides OpenGL bindings for java, but I'll agree that a C#/DX-client is probably the simplest solution for the average application user.

                      Comment


                      • #12
                        Originally posted by Rothron@Sep 27 2004, 04:33 AM
                        Not totally accurate.

                        https://jogl.dev.java.net/

                        provides OpenGL bindings for java, but I'll agree that a C#/DX-client is probably the simplest solution for the average application user.
                        How can I install World wind without the .NET framework? The installation process describes .NET as optional - so I do not install it. But the application fails with an error. I have DX9c installed.

                        In spite of the advantages I can not concientiously submit to some of the ethical principles of .NET.

                        -- Scôtt

                        Comment


                        • #13
                          Originally posted by Scott@Nov 25 2004, 11:36 PM
                          How can I install World wind without the .NET framework? The installation process describes .NET as optional - so I do not install it. But the application fails with an error. I have DX9c installed.

                          In spite of the advantages I can not concientiously submit to some of the ethical principles of .NET.

                          -- Scôtt
                          Despite what the installer says .NET is required.

                          Unless someone comes along and ports the source code, it will probably be required for awhile.
                          Llynix AT gmail.com
                          -------
                          Not working for NASA (Am for hire)
                          Installer Maintainer
                          FAQ Extrodinare
                          Founder of World Wind Central :
                          Wiki (and FAQ) * Chat * Hotspots * Geocoder
                          and OneDittyADay

                          Comment


                          • #14
                            Originally posted by Scott@Nov 25 2004, 08:36 PM
                            How can I install World wind without the .NET framework? The installation process describes .NET as optional - so I do not install it. But the application fails with an error. I have DX9c installed.

                            In spite of the advantages I can not concientiously submit to some of the ethical principles of .NET.

                            -- Scôtt

                            What ethical principles are you speaking of? Is there something inherently evil about .NET?

                            Comment


                            • #15
                              Originally posted by Guest@Dec 7 2004, 10:44 AM
                              What ethical principles are you speaking of? Is there something inherently evil about .NET?

                              yeh, speaking of ethics,

                              why is not any one boycotting chinese stuff?
                              china is far more totalitarian and brutal than microsoft, sells prisoner organs, tramples on all sort of human right, copy right, religious right and animal rights.

                              by any scale, china is far more disgusting than microsoft,
                              yet, no one is boycotting chinese stuff,

                              can some one tell me why?

                              Comment

                              Working...
                              X