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?

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

    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 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
      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
                                          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