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. Learning C# or really .net, confirm for me my suspicions

Learning C# or really .net, confirm for me my suspicions

Scheduled Pinned Locked Moved The Lounge
csharpcomhelpquestionc++
12 Posts 9 Posters 6 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.
  • C Offline
    C Offline
    charlieg
    wrote on last edited by
    #1

    So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

    Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

    D P M H OriginalGriffO 6 Replies Last reply
    0
    • C charlieg

      So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

      Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

      D Offline
      D Offline
      David ONeil
      wrote on last edited by
      #2

      Are you asking if you need to become familiar with the P-code that C# emits, in order to create your solution? I don't understand the question the way it is worded.

      Our Forgotten Astronomy | Object Oriented Programming with C++ | Wordle solver

      C T 2 Replies Last reply
      0
      • C charlieg

        So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

        Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

        P Offline
        P Offline
        PIEBALDconsult
        wrote on last edited by
        #3

        That's not how I see it. As a poor analogy, I might say that the language is the fuel for running a vehicle (a UI framework). Learning to operate the vehicle is the important part.

        1 Reply Last reply
        0
        • D David ONeil

          Are you asking if you need to become familiar with the P-code that C# emits, in order to create your solution? I don't understand the question the way it is worded.

          Our Forgotten Astronomy | Object Oriented Programming with C++ | Wordle solver

          C Offline
          C Offline
          charlieg
          wrote on last edited by
          #4

          no. I do not want to even know about p-code. What I'm saying/asking/spewing is it seems C# is just the basic tool to get into the .net framework. The analogy I would make would be hey I want to write a C++ interface with MFC. I don't want to do it in win32. Stage 1 is to learn pure C# and stage 2 is to embrace the .net framework. If I have to go into p-code, I've done something wrong.

          Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

          1 Reply Last reply
          0
          • C charlieg

            So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

            Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

            M Offline
            M Offline
            Mycroft Holmes
            wrote on last edited by
            #5

            You are correct the C# component of .net is a minor part of the ecosystem and not something I would concentrate on YET. Assuming there is a database component you will need to understand that. EntityFramework is one option (and a large one) or normal connections. You need to decide on a UI, winforms, WPF or web. Choose the web and you open an entire bucket of worms and other nasties. WPF has a steep learning curve and winforms is somewhat dated. You can then use your exploring these components to get your head around C# - the bits you need. Now that is going to keep you entertained for some time. Although your experience will shorten the learning curve dramatically.

            Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP

            R 1 Reply Last reply
            0
            • D David ONeil

              Are you asking if you need to become familiar with the P-code that C# emits, in order to create your solution? I don't understand the question the way it is worded.

              Our Forgotten Astronomy | Object Oriented Programming with C++ | Wordle solver

              T Offline
              T Offline
              trønderen
              wrote on last edited by
              #6

              A small remark slighly on the side: I never before heard dotNet IL (Intermediate Language) referred to as "P-code". The term "P-code" was made famous by the Pascal compiler of 1970 (or thereabouts), generating code for execution on a virtual machine. Writing an interpreter (i.e. the virtual machine) for the Pascal P-code was quite simple; there were interpreters for dozens of machine architectures. The version that became prominent was called P4; it was the 4th version of P-code for the original Pascal compiler. I even believe that some people replaced the microcode of the LSI-11, the single chip version of the PDP-11 architecture, with alternative microcode to interpret P4 directly without the need for an interpreter - but if my memory is correct, this solution was slower than the interpreter running on the LSI-11 with the original microcode and an interpreter on top :-) P-code, or "bytecode" in general, is designed to be treated as the instruction set of a virtual machine, executed "as is". dotNet IL is certainly not meant for execution as is on a virtual machine. I will not say that it is impossible, but it most certainly is pointless and extremely inefficient. IL is not a P-code or bytecode, but "source code" for the jitter - the Just In Time code generator, translating IL into native machine code for whatever CPU the jitter is run on, immediately before execution. This probably is not at all significant to the OP. Maybe he will later get in touch with dotNet IL. When/if that happens, he should not believe that IL is interpreted the way P-code is. End remark: P-code/bytecode interpretation is certainly slower than native code, in some circumstances a lot slower. With C# - and all other dotNet languages - having the jitter generating native code, it had a speed advantage over Java, which used to interpret Java bytecode. You could compile Java to native code from the beginning, or at least very early, but then you got a binary that couldn't execute on any other architecture, and couldn't utilize e.g. optional instructions available on a specific machine. Java byte code could be moved freely around to any machine with an interpreter. To be able to compete with C# on speed, the JVM (Java Virtual Machine) was extended with the capability of rather than executing the byte code as is, it started out by processing the byte code further, into native code for the current machine. This improved the execution speed significantly. However, Java bytecode wasn't designed for this use, and a

              1 Reply Last reply
              0
              • C charlieg

                So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

                Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

                H Offline
                H Offline
                honey the codewitch
                wrote on last edited by
                #7

                To answer your question, C# is just a language. .NET provides the runtimes (the CLR) as well as a target execution environment (the CLI). A C# compiler produces code that relies on the CLR the way that C program might rely on the C standard runtimes. However, like C, C# actually doesn't need the runtimes. I was mistaken about this myself at one point. I didn't know how it would collect garbage without them. Turns out C# doesn't indicate garbage collection, or really any memory management. That's on the runtimes. In that way, it's not really different than C (malloc), but a bit different than C++ (new/delete). I don't know how C# bakes out "new" in the standard specifically - i haven't looked, but I don't think it says it must be implicitly collected. C# does not need to target the CLI either, and I believe there are toolchains out there that compile C#, sans garbage collection and the CLR/CLI, to a native machine target. So C#, truly is just a language. But you'll almost never see it in the wild without .NET backing it up. As far as learning curve, C# is simple, but the CLR had when I checked back in the .NET 1.0 days, 6500+ base classes in it. So there's your learning curve.

                Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                C 1 Reply Last reply
                0
                • H honey the codewitch

                  To answer your question, C# is just a language. .NET provides the runtimes (the CLR) as well as a target execution environment (the CLI). A C# compiler produces code that relies on the CLR the way that C program might rely on the C standard runtimes. However, like C, C# actually doesn't need the runtimes. I was mistaken about this myself at one point. I didn't know how it would collect garbage without them. Turns out C# doesn't indicate garbage collection, or really any memory management. That's on the runtimes. In that way, it's not really different than C (malloc), but a bit different than C++ (new/delete). I don't know how C# bakes out "new" in the standard specifically - i haven't looked, but I don't think it says it must be implicitly collected. C# does not need to target the CLI either, and I believe there are toolchains out there that compile C#, sans garbage collection and the CLR/CLI, to a native machine target. So C#, truly is just a language. But you'll almost never see it in the wild without .NET backing it up. As far as learning curve, C# is simple, but the CLR had when I checked back in the .NET 1.0 days, 6500+ base classes in it. So there's your learning curve.

                  Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                  C Offline
                  C Offline
                  charlieg
                  wrote on last edited by
                  #8

                  thank you for confirming my fear/understanding/anticipation. :)

                  Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

                  H 1 Reply Last reply
                  0
                  • C charlieg

                    thank you for confirming my fear/understanding/anticipation. :)

                    Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

                    H Offline
                    H Offline
                    honey the codewitch
                    wrote on last edited by
                    #9

                    You know where I think you'll start to really get hammered? The user interface. After Winforms it seems like Microsoft lost their way. They did away with RAD design and the ability to roundtrip between designer and code. WPF just isn't as friendly to drag and dropping UIs together and then refining in code the way Winforms was. Worse, now there are so many platforms and offerings, what do you even use? MAUI? AvaloniaUI? raw WPF? Personally I'm kind of partial to the idea of Electron. I think? Microsoft uses it to power VS Code, and if so, it's really impressive, but it's not .NET. I'm sure it can talk to .NET though.

                    Check out my IoT graphics library here: https://honeythecodewitch.com/gfx And my IoT UI/User Experience library here: https://honeythecodewitch.com/uix

                    1 Reply Last reply
                    0
                    • C charlieg

                      So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

                      Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

                      OriginalGriffO Offline
                      OriginalGriffO Offline
                      OriginalGriff
                      wrote on last edited by
                      #10

                      C# is just another language - albeit a good one - a competent developer can probably pick up most if not all of it in a day without much stress - the only complications are OOPs and references as compared to pointers or memory addresses. But once you have cracked that and if you are even slightly familiar with Windows development it'll be relatively easy to get started. If you are only familiar with a procedural approach rather than message driven then it's going to take rather longer! But ... C# on it's own won't help if you want to write a UI as it's all about the controls you can drop on the dialog (or Form as it's known) - there is a very wide set of those which have properties, events, and methods that you need to be aware of in order to use. I'd suggest that a book (all the major players do good ones) that starts from scratch with C# and windows / .NET development would be worth the investment - it'll teach you C# and .NET at the same time, plus it'll cover most of the "bits and pieces" that you will probably want to use later on. Diving into VS and trying to work it out on your own is a recipe for disaster (but still better than YouTube tutorials) :laugh: Good luck!

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!

                      "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
                      "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

                      1 Reply Last reply
                      0
                      • M Mycroft Holmes

                        You are correct the C# component of .net is a minor part of the ecosystem and not something I would concentrate on YET. Assuming there is a database component you will need to understand that. EntityFramework is one option (and a large one) or normal connections. You need to decide on a UI, winforms, WPF or web. Choose the web and you open an entire bucket of worms and other nasties. WPF has a steep learning curve and winforms is somewhat dated. You can then use your exploring these components to get your head around C# - the bits you need. Now that is going to keep you entertained for some time. Although your experience will shorten the learning curve dramatically.

                        Never underestimate the power of human stupidity - RAH I'm old. I know stuff - JSOP

                        R Offline
                        R Offline
                        Richard Deeming
                        wrote on last edited by
                        #11

                        Mycroft Holmes wrote:

                        winforms, WPF

                        Or WinUI; or MAUI; or Avalonia, if you're open to third-party stuff. :)

                        Mycroft Holmes wrote:

                        web

                        Which has even more choices to make: MVC, Razor Pages, Blazor (Server), Blazor (Web Assembly), Blazor (Hybrid), ...


                        "These people looked deep within my soul and assigned me a number based on the order in which I joined." - Homer

                        1 Reply Last reply
                        0
                        • C charlieg

                          So, I have dusted off my project yet again. Written in FORTRAN my goal is to lift it to modern systems. I've asked various questions over the years, but I hope this might just be my last hurrah that pays for the sailboat I want and pay off my mortgage. I also want to pull in some coder whannabees from local high schools (but that is VERY tbd). Digging into this - my experience says the biggest issue with the existing system is that it's a big blob. I'll leave it there. I don't want to get into too much detail and vector my question. In doing my research, I know I want to use C# to implement the initial UI. What I've concluded is that C# is the tip of the Microsoft iceberg. A language is a language - you just need to get familiar with it's quirks. But underneath C# is the mass of .net. Just like mfc, com, com++, dcom, ActiveX and all of the other rot MS pukes out. Don't get me wrong, some of it is okay. But it seems C# is the trivial part. Am I on the wrong trail, or have I got this right?

                          Charlie Gilley “Microsoft is the virus..." "the problem with socialism is that eventually you run out of other people's money"

                          R Offline
                          R Offline
                          Ravi Bhavnani
                          wrote on last edited by
                          #12

                          charlieg wrote:

                          But it seems C# is the trivial part.

                          Agreed. While C# is nice (I like it a lot), it's the .NET framework in which the power lies.  The .NET framework is to C# what the JDK is to Java. /ravi

                          My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com

                          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