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. The Lounge
  3. Is the .NET Framework a successful platform?

Is the .NET Framework a successful platform?

Scheduled Pinned Locked Moved The Lounge
csharpdotnetquestion
80 Posts 51 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.
  • J jpg 0

    I love the C# language and the .NET BCL is very well written and clean. However, not having deterministic deallocation is a big downside for me. Besides, anyone know of any big app written in .NET?

    J Offline
    J Offline
    John M Drescher
    wrote on last edited by
    #16

    .jpg wrote:

    However, not having deterministic deallocation is a big downside for me.

    I would say that .NET is good for some things but not good for others. I would certainly would not write game code in it or an image processing application where an image can be a GB or so. But then most business applications do not have these needs and that is what both java and .NET were designed for and excel at.

    John

    J T 2 Replies Last reply
    0
    • D Daniel Grunwald

      Which platform does have deterministic deallocation? The free()/delete implementation of your C runtime probably is not as deterministic as you think! (from time to time, free() has to combine adjacent memory blocks to prevent memory fragmentation - this can lead to "lags" similar to those caused by garbage collection!) Deterministic destruction (C++ destructors) are easily replicated with the disposable pattern. But immediately making released memory available for new allocations is a waste of time, releasing whole blocks of memory is more efficient.

      N Offline
      N Offline
      Nemanja Trifunovic
      wrote on last edited by
      #17

      Daniel Grunwald wrote:

      Deterministic destruction (C++ destructors) are easily replicated with the disposable pattern.

      Except that it is the burden on the user of a class to actually use using blocks.

      Daniel Grunwald wrote:

      But immediately making released memory available for new allocations is a waste of time, releasing whole blocks of memory is more efficient.

      Not really - GC needs to determine which blocks can be released and which not. Worse, usage of non-deterministic GC increases the memory footprint which leads to page faults. In spite of all the papers about GC improving performance, I have yet to find a really performant language with GC.

      Programming Blog utf8-cpp

      D M 2 Replies Last reply
      0
      • N Nemanja Trifunovic

        Daniel Grunwald wrote:

        Deterministic destruction (C++ destructors) are easily replicated with the disposable pattern.

        Except that it is the burden on the user of a class to actually use using blocks.

        Daniel Grunwald wrote:

        But immediately making released memory available for new allocations is a waste of time, releasing whole blocks of memory is more efficient.

        Not really - GC needs to determine which blocks can be released and which not. Worse, usage of non-deterministic GC increases the memory footprint which leads to page faults. In spite of all the papers about GC improving performance, I have yet to find a really performant language with GC.

        Programming Blog utf8-cpp

        D Offline
        D Offline
        Daniel Grunwald
        wrote on last edited by
        #18

        Nemanja Trifunovic wrote:

        GC needs to determine which blocks can be released and which not

        But your application doesn't need to determine when to call free. When you know when to call delete/free, of course that's faster than using a GC. But I think the GC beats most smart pointers / manual reference tracking mechanisms. It would be nice to have a language that allows both allocating from a manually managed heap and a garbage collected heap (and from the stack); but then again, that would introduce whole new classes of bugs (more allocation types = more possibilities to confuse them).

        N D 2 Replies Last reply
        0
        • C Chris Maunder

          .jpg wrote:

          Besides, anyone know of any big app written in .NET?

          Yes. CodeProject.com

          cheers, Chris Maunder

          CodeProject.com : C++ MVP

          R Offline
          R Offline
          Rajesh R Subramanian
          wrote on last edited by
          #19

          Chris Maunder wrote:

          Yes. CodeProject.com

          Repost. I beat you to it. ;P

          Many are stubborn in pursuit of the path they have chosen, few in pursuit of the goal - Friedrich Nietzsche .·´¯`·->Rajesh<-·´¯`·. [Microsoft MVP - Visual C++]

          1 Reply Last reply
          0
          • D Daniel Grunwald

            Nemanja Trifunovic wrote:

            GC needs to determine which blocks can be released and which not

            But your application doesn't need to determine when to call free. When you know when to call delete/free, of course that's faster than using a GC. But I think the GC beats most smart pointers / manual reference tracking mechanisms. It would be nice to have a language that allows both allocating from a manually managed heap and a garbage collected heap (and from the stack); but then again, that would introduce whole new classes of bugs (more allocation types = more possibilities to confuse them).

            N Offline
            N Offline
            Nemanja Trifunovic
            wrote on last edited by
            #20

            Daniel Grunwald wrote:

            When you know when to call delete/free, of course that's faster than using a GC. But I think the GC beats most smart pointers / manual reference tracking mechanisms.

            GC could beat reference counting mechanisms, especially if they are poorly implemented (e.g. lock the counter instead of using atomic increments/decrements), but in general I would bet against GC, because of the memory footprint it typically causes. But in practice, there is rarely need for reference counting and shared object ownership in general. RAII[^] is more than enough to take care of automatic reource managament in most cases, and the overhead is optimized away by modern compilers, so it ends up being as fast as manual deallocation.

            Programming Blog utf8-cpp

            1 Reply Last reply
            0
            • R realJSOP

              I think the Windows Task Scheduler is. It's certainly good enough for some folks around here, and it's probably huge, considering its evident scope and breadth.

              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
              -----
              "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

              N Offline
              N Offline
              Nemanja Trifunovic
              wrote on last edited by
              #21

              John Simmons / outlaw programmer wrote:

              I think the Windows Task Scheduler is.

              I seriously doubt it. Examples of its use on MSDN are good ol' COM with C++[^]

              Programming Blog utf8-cpp

              1 Reply Last reply
              0
              • J jpg 0

                I love the C# language and the .NET BCL is very well written and clean. However, not having deterministic deallocation is a big downside for me. Besides, anyone know of any big app written in .NET?

                E Offline
                E Offline
                El Corazon
                wrote on last edited by
                #22

                > Besides, anyone know of any big app written in .NET? I guess that depends on what you consider "big" -- now that I fixed the GDI speed for large graphs one of my customers has an app that does some pretty important stuff. but mass populace will never see it so "big" is relative.

                _________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb) John Andrew Holmes "It is well to remember that the entire universe, with one trifling exception, is composed of others."

                1 Reply Last reply
                0
                • D Daniel Grunwald

                  Nemanja Trifunovic wrote:

                  GC needs to determine which blocks can be released and which not

                  But your application doesn't need to determine when to call free. When you know when to call delete/free, of course that's faster than using a GC. But I think the GC beats most smart pointers / manual reference tracking mechanisms. It would be nice to have a language that allows both allocating from a manually managed heap and a garbage collected heap (and from the stack); but then again, that would introduce whole new classes of bugs (more allocation types = more possibilities to confuse them).

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

                  Afaik C++.net (or whatever they're calling it this week) does let you mix native and managed objects directly.

                  Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                  S 1 Reply Last reply
                  0
                  • D Dan Neely

                    Afaik C++.net (or whatever they're calling it this week) does let you mix native and managed objects directly.

                    Today's lesson is brought to you by the word "niggardly". Remember kids, don't attribute to racism what can be explained by Scandinavian language roots. -- Robert Royall

                    S Offline
                    S Offline
                    Single Step Debugger
                    wrote on last edited by
                    #24

                    The C# also allows you to create unmanaged objects. You just need to declare them in "unsafe" context blocks.

                    The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.

                    1 Reply Last reply
                    0
                    • J jpg 0

                      I love the C# language and the .NET BCL is very well written and clean. However, not having deterministic deallocation is a big downside for me. Besides, anyone know of any big app written in .NET?

                      J Offline
                      J Offline
                      Judah Gabriel Himango
                      wrote on last edited by
                      #25

                      .jpg wrote:

                      Besides, anyone know of any big app written in .NET?

                      This seems to come up a few times a year, along with the "where are Microsoft's .NET applications?" or "Why isn't Microsoft rewriting Office in .NET?" Some apps I can think of off the top of my head which I use on a daily basis: Microsoft Windows Live Writer RssBandit Visual Studio (parts of it, at least) MSBuild Paint.NET Reflector Live Mesh Ants Profiler Cruise Control Yahoo Messenger If we're counting websites, heck, I'd say at least half the sites I visit use ASP.NET, including big ones like CodeProject, StackOverflow, MSDN,...

                      Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                      S 1 Reply Last reply
                      0
                      • J John M Drescher

                        .jpg wrote:

                        However, not having deterministic deallocation is a big downside for me.

                        I would say that .NET is good for some things but not good for others. I would certainly would not write game code in it or an image processing application where an image can be a GB or so. But then most business applications do not have these needs and that is what both java and .NET were designed for and excel at.

                        John

                        J Offline
                        J Offline
                        Judah Gabriel Himango
                        wrote on last edited by
                        #26

                        .NET is great for writing games. See XNA.

                        Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                        J 1 Reply Last reply
                        0
                        • J Judah Gabriel Himango

                          .NET is great for writing games. See XNA.

                          Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                          J Offline
                          J Offline
                          Jim Crafton
                          wrote on last edited by
                          #27

                          But there, if I understand things correctly, all it's used for is a layer around all the heavy lifting. In other words, all the cool graphics code (3D/2D/image processing) is written in the underlying DirectX layer, and that's almost certainly in C/C++.

                          ¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! VCF Blog

                          M J 2 Replies Last reply
                          0
                          • J Judah Gabriel Himango

                            .jpg wrote:

                            Besides, anyone know of any big app written in .NET?

                            This seems to come up a few times a year, along with the "where are Microsoft's .NET applications?" or "Why isn't Microsoft rewriting Office in .NET?" Some apps I can think of off the top of my head which I use on a daily basis: Microsoft Windows Live Writer RssBandit Visual Studio (parts of it, at least) MSBuild Paint.NET Reflector Live Mesh Ants Profiler Cruise Control Yahoo Messenger If we're counting websites, heck, I'd say at least half the sites I visit use ASP.NET, including big ones like CodeProject, StackOverflow, MSDN,...

                            Tech, life, family, faith: Give me a visit. I'm currently blogging about: Feelings-Based Morality of the Secular World The apostle Paul, modernly speaking: Epistles of Paul Judah Himango

                            S Offline
                            S Offline
                            Single Step Debugger
                            wrote on last edited by
                            #28

                            Never heard about those. Are they big?

                            The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.

                            N J 2 Replies Last reply
                            0
                            • E eyeseetee

                              Twoz a joke :)

                              Deliver yesterday, code today, think tomorrow. "http://www.heuse.com/cphumor.htm"

                              K Offline
                              K Offline
                              keyboard warrior
                              wrote on last edited by
                              #29

                              i know? i was not upset. i posted a joke orininally.

                              ----------------------------------------------------------- "When I first saw it, I just thought that you really, really enjoyed programming in java." - Leslie Sanford

                              1 Reply Last reply
                              0
                              • S Single Step Debugger

                                Never heard about those. Are they big?

                                The narrow specialist in the broad sense of the word is a complete idiot in the narrow sense of the word. Advertise here – minimum three posts per day are guaranteed.

                                N Offline
                                N Offline
                                Nemanja Trifunovic
                                wrote on last edited by
                                #30

                                Deyan Georgiev wrote:

                                Never heard about those. Are they big?

                                You answered yourself :)

                                Programming Blog utf8-cpp

                                1 Reply Last reply
                                0
                                • V Vikram A Punathambekar

                                  Depends on your definition of big, but I love RSS Bandit. :cool:

                                  Cheers, Vıkram.


                                  "You idiot British surprise me that your generators which grew up after Mid 50s had no brain at all." - Adnan Siddiqi.

                                  P Offline
                                  P Offline
                                  Pete OHanlon
                                  wrote on last edited by
                                  #31

                                  You know - when I scanned that line, I read that you love A*se Bandit. I'm so glad that I reread it,

                                  Deja View - the feeling that you've seen this post before.

                                  My blog | My articles | MoXAML PowerToys

                                  1 Reply Last reply
                                  0
                                  • J jpg 0

                                    I love the C# language and the .NET BCL is very well written and clean. However, not having deterministic deallocation is a big downside for me. Besides, anyone know of any big app written in .NET?

                                    M Offline
                                    M Offline
                                    Member 96
                                    wrote on last edited by
                                    #32

                                    This kind of talk made sense 6 years ago but it's a done deal now. There are now *many* big apps that are .net based and doing very well. We have a very large app that is used globally and is one of the leading ones in it's industry and it's done very well by us and by our customers. Little technical issues such as you describe or the platform or technology used are perhaps of interest to programmers but of zero interest to the world at large and have exactly zero bearing on how successful an application is.


                                    "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                                    H 1 Reply Last reply
                                    0
                                    • J Jim Crafton

                                      But there, if I understand things correctly, all it's used for is a layer around all the heavy lifting. In other words, all the cool graphics code (3D/2D/image processing) is written in the underlying DirectX layer, and that's almost certainly in C/C++.

                                      ¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! VCF Blog

                                      M Offline
                                      M Offline
                                      Member 96
                                      wrote on last edited by
                                      #33

                                      Perhaps, I don't know, but it certainly makes sense since it's indisputable that development, time to market and time to make and release changes / updates is faster in .net than in a fully unmanaged language so XNA sounds like the best of both worlds which makes perfect sense.


                                      "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                                      J D 2 Replies Last reply
                                      0
                                      • J jpg 0

                                        I love the C# language and the .NET BCL is very well written and clean. However, not having deterministic deallocation is a big downside for me. Besides, anyone know of any big app written in .NET?

                                        P Offline
                                        P Offline
                                        Pete OHanlon
                                        wrote on last edited by
                                        #34

                                        How about the entire platform for one of the emergency services in a country? That big enough for you?

                                        Deja View - the feeling that you've seen this post before.

                                        My blog | My articles | MoXAML PowerToys

                                        1 Reply Last reply
                                        0
                                        • M Member 96

                                          Perhaps, I don't know, but it certainly makes sense since it's indisputable that development, time to market and time to make and release changes / updates is faster in .net than in a fully unmanaged language so XNA sounds like the best of both worlds which makes perfect sense.


                                          "It's so simple to be wise. Just think of something stupid to say and then don't say it." -Sam Levenson

                                          J Offline
                                          J Offline
                                          Jim Crafton
                                          wrote on last edited by
                                          #35

                                          Absolutely, but I understood the question to be asking for examples of "big" apps, which I tend to understand as large, complex applications, like Photoshop, Illustrator, Maya, the DirectX implementation, Office, etc. And for most of those cases, .Net take up seems to be lukewarm at best.

                                          ¡El diablo está en mis pantalones! ¡Mire, mire! Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)! SELECT * FROM User WHERE Clue > 0 0 rows returned Save an Orange - Use the VCF! VCF Blog

                                          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