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. What do you guys reckon?

What do you guys reckon?

Scheduled Pinned Locked Moved The Lounge
c++discussioncsharpcssdatabase
21 Posts 14 Posters 1 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.
  • S Offline
    S Offline
    Steve Driessens
    wrote on last edited by
    #1

    G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

    R C T C E 6 Replies Last reply
    0
    • S Steve Driessens

      G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

      R Offline
      R Offline
      Richard Melton
      wrote on last edited by
      #2

      I'd try to isolate out a component for "experimentation", but stick to what you know. Unless its a consulting gig, then its my motto that you should always have somebody else pay for my learning curve (ie: time) while consulting. Ritch

      1 Reply Last reply
      0
      • S Steve Driessens

        G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

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

        Well now, you *know* what I will say... ;) Seriously, I had to make the same decision re: WTL/MFC a while ago, and I spent a fair bit of time writing stuff in my own time using ATL and asked a lot of specific questions here before choosing WTL. I'd suggest that you do the same, and I guess the main thing is to ask yourself what C# *brings* to the equation that is useful to you, and what you *lose* ( I'm guessing mainly experience ). If you're thinking C# because it's new & cool, then it may be a bad idea. If it does stuff you need, then it's probably a good idea to provide your family with a photo and stay at work for a few weeks ( I do this periodically - it's impossible to work at home with children who want stories and a wife who wants spiders squashed/etc. ). Six months is a hell of a long time to get familiar with C# if it is indeed the better choice for your project, and certainly plenty of time to play with some ideas and see how they compare. Of course, I worked in foodservice for a long time as a rep, and I know where I live at least, they all still have 486's, so you have to also consider the impact of C# on your customers in terms of the size of the CLR install versus the room on their 540 MB hard drives. I actually considered writing an app for that industry on the basis I knew it, but never got off the ground. Christian #include "std_disclaimer.h" People who love sausage and respect the law should never watch either one being made. The things that come to those who wait are usually the things left by those who got there first.

        1 Reply Last reply
        0
        • S Steve Driessens

          G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

          T Offline
          T Offline
          Tom Archer
          wrote on last edited by
          #4

          IMHO, this is easy. You're dealing with your company's future here. Without hesitation, I'd go with the MFC/C++ solution. 1) It's a proven architecture 2) You know you're customer base can run these applications 3) You and your team know the technology Nobody knows how fast (or even if) .NET will take hold. Can you say "ActiveX"? Ok. In all probability, .NET will probably succeed, but to what extent? Anyway, I just wouldn't bet a company's product line on something that isn't even necessary for them. It would different if .NET included things that you simply couldn't do without. However, that doesn't sound like the case here. Additionally, I would definitely do everything with COM interfaces. That way, if .NET does suddenly take off, you can start doing the remainder of your product line in C# and use what you've done already using .NET COM Interop.

          M 1 Reply Last reply
          0
          • T Tom Archer

            IMHO, this is easy. You're dealing with your company's future here. Without hesitation, I'd go with the MFC/C++ solution. 1) It's a proven architecture 2) You know you're customer base can run these applications 3) You and your team know the technology Nobody knows how fast (or even if) .NET will take hold. Can you say "ActiveX"? Ok. In all probability, .NET will probably succeed, but to what extent? Anyway, I just wouldn't bet a company's product line on something that isn't even necessary for them. It would different if .NET included things that you simply couldn't do without. However, that doesn't sound like the case here. Additionally, I would definitely do everything with COM interfaces. That way, if .NET does suddenly take off, you can start doing the remainder of your product line in C# and use what you've done already using .NET COM Interop.

            M Offline
            M Offline
            Matt Philmon
            wrote on last edited by
            #5

            Also remember to consider the type of applications you'll be developing. If you're doing any kind of internet application, I'd start leaning towards C# and .NET. Some of the new features available, especially with ASP are a must, IMHO. If it's the same old desktop (thick) applications, stick with what you know, EXCEPT, I'd use COM extensively. It will be easier to move to .NET later on if you use a lot of COM now.

            C realJSOPR 2 Replies Last reply
            0
            • M Matt Philmon

              Also remember to consider the type of applications you'll be developing. If you're doing any kind of internet application, I'd start leaning towards C# and .NET. Some of the new features available, especially with ASP are a must, IMHO. If it's the same old desktop (thick) applications, stick with what you know, EXCEPT, I'd use COM extensively. It will be easier to move to .NET later on if you use a lot of COM now.

              C Offline
              C Offline
              Chris Maunder
              wrote on last edited by
              #6

              Ah the irony. A technology that is meant to do away (or at least, totally hide under the covers) the hassle with COM, that is instead encouraging people to embrace COM in order to be prepared to move to this new technology. My head hurts. cheers, Chris Maunder

              1 Reply Last reply
              0
              • S Steve Driessens

                G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

                C Offline
                C Offline
                Chris Maunder
                wrote on last edited by
                #7

                Do I have the solution for you! (yes - run and hide in fear :)) Instead of trying to decide between C++ and C# why not stick to C++, but use managed extensions? That way you can mix and match your managed and unmanaged code and plug in .NET components or COM/C++ classes in whatever way you wish. Worried that .NET won't take off? Then abstract things like you DB access so you can write a C++ version now, then swap it out later and plug in a DB module that uses ADO.NET when you are sure your customers will have .NET installed (or will be willing to allow your install program to install it for you). You want a grid? I'm working with CapitolSoft on a port of my MFC grid to managed C++. Apart from their tools there will surely be a whole raft of other products that make the move from native to managed apps a lot easier in the future. For new, fully managed apps I would probably go for C#, since it just makes things neater and easier (try writing the same managed app in C++ and C# and you'll see why :)) If there is any server based components then I would definitely go .NET/C#, since you have full control over the server environment (at least I hope you would!). As everyone else has said, you need to work out your target platform. If it's Mum & Pop's deli that you will be writing an app for, then they may still be running an old Pentium 100 and you may want something a little leaner than the .NET runtime cheers, Chris Maunder

                Brian C HartB J 2 Replies Last reply
                0
                • C Chris Maunder

                  Do I have the solution for you! (yes - run and hide in fear :)) Instead of trying to decide between C++ and C# why not stick to C++, but use managed extensions? That way you can mix and match your managed and unmanaged code and plug in .NET components or COM/C++ classes in whatever way you wish. Worried that .NET won't take off? Then abstract things like you DB access so you can write a C++ version now, then swap it out later and plug in a DB module that uses ADO.NET when you are sure your customers will have .NET installed (or will be willing to allow your install program to install it for you). You want a grid? I'm working with CapitolSoft on a port of my MFC grid to managed C++. Apart from their tools there will surely be a whole raft of other products that make the move from native to managed apps a lot easier in the future. For new, fully managed apps I would probably go for C#, since it just makes things neater and easier (try writing the same managed app in C++ and C# and you'll see why :)) If there is any server based components then I would definitely go .NET/C#, since you have full control over the server environment (at least I hope you would!). As everyone else has said, you need to work out your target platform. If it's Mum & Pop's deli that you will be writing an app for, then they may still be running an old Pentium 100 and you may want something a little leaner than the .NET runtime cheers, Chris Maunder

                  Brian C HartB Offline
                  Brian C HartB Offline
                  Brian C Hart
                  wrote on last edited by
                  #8

                  Chris Chris Chris... It's amazing. I think we have our new Managed C++ cheerleader here, don't you people? :-D It's like you're always saying, "RAH! RAH! RAH! Give me an M! Give me a C! Give me a Plus-Plus!! Gimme a MC++! RAH! RAH! RAH!" All in all, I do agree with Chris that we should use whatever works for the job. We have a really big tool bag, and Managed C++ can allow us to pick those right tools for the right jobs and use them in combination!!

                  C F 2 Replies Last reply
                  0
                  • Brian C HartB Brian C Hart

                    Chris Chris Chris... It's amazing. I think we have our new Managed C++ cheerleader here, don't you people? :-D It's like you're always saying, "RAH! RAH! RAH! Give me an M! Give me a C! Give me a Plus-Plus!! Gimme a MC++! RAH! RAH! RAH!" All in all, I do agree with Chris that we should use whatever works for the job. We have a really big tool bag, and Managed C++ can allow us to pick those right tools for the right jobs and use them in combination!!

                    C Offline
                    C Offline
                    Chris Maunder
                    wrote on last edited by
                    #9

                    Where's my pom-poms and mini-skirt? Actually I was just excited because Fazlul from CapitolSoft was telling me about his porting of my grid control, so I figured a bit of blatant self-promotion of my code never goes astray. ;) Besides - there's a ton of guys <evil look in Christian's direction> that are down on .NET so I figure someone has to add a bit of a positive note to things. Ra! cheers, Chris Maunder

                    1 Reply Last reply
                    0
                    • C Chris Maunder

                      Do I have the solution for you! (yes - run and hide in fear :)) Instead of trying to decide between C++ and C# why not stick to C++, but use managed extensions? That way you can mix and match your managed and unmanaged code and plug in .NET components or COM/C++ classes in whatever way you wish. Worried that .NET won't take off? Then abstract things like you DB access so you can write a C++ version now, then swap it out later and plug in a DB module that uses ADO.NET when you are sure your customers will have .NET installed (or will be willing to allow your install program to install it for you). You want a grid? I'm working with CapitolSoft on a port of my MFC grid to managed C++. Apart from their tools there will surely be a whole raft of other products that make the move from native to managed apps a lot easier in the future. For new, fully managed apps I would probably go for C#, since it just makes things neater and easier (try writing the same managed app in C++ and C# and you'll see why :)) If there is any server based components then I would definitely go .NET/C#, since you have full control over the server environment (at least I hope you would!). As everyone else has said, you need to work out your target platform. If it's Mum & Pop's deli that you will be writing an app for, then they may still be running an old Pentium 100 and you may want something a little leaner than the .NET runtime cheers, Chris Maunder

                      J Offline
                      J Offline
                      jkgh
                      wrote on last edited by
                      #10

                      Will you guys (including MS, Sun and the rest of you!) P-L-E-A-S-E slow down. I'm just about getting to COM! ATL Student :rolleyes:

                      1 Reply Last reply
                      0
                      • Brian C HartB Brian C Hart

                        Chris Chris Chris... It's amazing. I think we have our new Managed C++ cheerleader here, don't you people? :-D It's like you're always saying, "RAH! RAH! RAH! Give me an M! Give me a C! Give me a Plus-Plus!! Gimme a MC++! RAH! RAH! RAH!" All in all, I do agree with Chris that we should use whatever works for the job. We have a really big tool bag, and Managed C++ can allow us to pick those right tools for the right jobs and use them in combination!!

                        F Offline
                        F Offline
                        Fazlul Kabir
                        wrote on last edited by
                        #11

                        May be I can step in here to explain our motivation to make unmanaged to managed (or rather pure to garbage (c.).. I see anti .NETers cheering) portability tool for C++ developers. Since .NET was introduced last year, you are all noticing a great deal of confusion, frustration and anger in the VC++ developer community. Part of this is due to the lack of good porting tool that would enable VC++ developers to port their existing C++ controls to the new .NET world smoothly and quickly. MS did a great job in introducing COM/.NET interop services in the new framework, but using this technology isn’t that easy for average C++ controls. Much effort has been put over the past several years to build great C++ controls like Chris’ popular 'Grid Control'. With the introduction of .NET, many developers would simply like to use them in the new .NET platform without ever wanting to re-write them from scratch, none of us want to re-invent the wheel... Does it mean that we are moving away from traditional C++ development (MFC / ATL / WTL)? The answer is a big ‘No’. .NET does NOT give us many key advantages that our current C++ apps enjoy. All we are saying: keep doing MFC/ATL a lot. Do something that is well tested and suits your needs well. If you will ever need to port your existing C++ code to .NET, help is out there. You won’t be left alone. Fazlul Kabir Get RadVC today. Play RAD in VC++ http://www.capitolsoft.com

                        1 Reply Last reply
                        0
                        • M Matt Philmon

                          Also remember to consider the type of applications you'll be developing. If you're doing any kind of internet application, I'd start leaning towards C# and .NET. Some of the new features available, especially with ASP are a must, IMHO. If it's the same old desktop (thick) applications, stick with what you know, EXCEPT, I'd use COM extensively. It will be easier to move to .NET later on if you use a lot of COM now.

                          realJSOPR Offline
                          realJSOPR Offline
                          realJSOP
                          wrote on last edited by
                          #12

                          COM for the sake of COM - bad idea. COM should only be used where there's a chance the code can be a) re-used more than once, *and* b) (more importantly) used from apps written in a different language. If your shop writes code strictly in C++, there is almost NO valid reason to use COM (IMHO) - a regular DLL would generally be a better choice. If, on the other hand, you're writing an app in C++ that does something like access a database (or even a simple structured binary file) and there's a liklihood that your code could be useful to a VB hack, COM is probably a good idea. However, with proper planning your generic code/classes could be written in such a way as to be easily dropped into a COM object, so you're not completely shut off from COM. I also find it amusing that when someone says "COM", they follow it up with "No MFC" - another generally bad idea. MFC provides a lot of functionality and doesn't really "bloat the code" enough to warrant its automatic exclusion from a COM project. I guess I'm just tired of the rhetoric concerning the use of COM and the exclusion of MFC.

                          M D 2 Replies Last reply
                          0
                          • realJSOPR realJSOP

                            COM for the sake of COM - bad idea. COM should only be used where there's a chance the code can be a) re-used more than once, *and* b) (more importantly) used from apps written in a different language. If your shop writes code strictly in C++, there is almost NO valid reason to use COM (IMHO) - a regular DLL would generally be a better choice. If, on the other hand, you're writing an app in C++ that does something like access a database (or even a simple structured binary file) and there's a liklihood that your code could be useful to a VB hack, COM is probably a good idea. However, with proper planning your generic code/classes could be written in such a way as to be easily dropped into a COM object, so you're not completely shut off from COM. I also find it amusing that when someone says "COM", they follow it up with "No MFC" - another generally bad idea. MFC provides a lot of functionality and doesn't really "bloat the code" enough to warrant its automatic exclusion from a COM project. I guess I'm just tired of the rhetoric concerning the use of COM and the exclusion of MFC.

                            M Offline
                            M Offline
                            Matt Philmon
                            wrote on last edited by
                            #13

                            I agree that COM for the sake of COM is a bad idea. I think you misunderstood me. If you're thinking about whether to make the move to C# and .NET in the future, using COM for various pieces of your architecture will make for an easier move. I agree about what you said about being a C++ shop. If that's the case (as it USED to be here) stick with a good 'ol DLL. Sure, you're stuck using old C++ pretty much forever... As for COM only being useful to a VB hack, that's just plain nonsense. COM can surely be a pain, but there are many benefits, LIKE being able to be used in not just VB, but VBScript and JavaScript. You want to use a DLL in a web page? Good luck. If you're not planning on writing web based applications at this point in the game you're about to be obsolete. We're still primarily writing MFC here (with som VB sprinkled in... but very rarely) but have moved to COM rather than straight DLL's to aid us in our own gradual move to web based applications. Another thing you mentioned, about "No MFC" being a bad idea. Again, I think your answer is a bit short-sighted. I love MFC, which is why I frequent this site. However, MFC IS very bloated, MFC is NOT thread safe... If you're wanting to use COM, MFC is NOT the way to go. ATL and STL IS! COM is frequently used on web based app's. Not always, of course, but if you are going that route, Internet Explorer has built-in support for delivering newer versions of your components. All you have to do is cab it up and put it out there. If you're delivering new COM components across the web, SIZE MOST CERTAINLY MATTERS. Most COM objects you'll find probably aren't developed for handling visual effects. If you DO need that, I highly recommend ATL which is FAR smaller, faster, and safer. So, I guess that was my turn to preach.

                            S 1 Reply Last reply
                            0
                            • S Steve Driessens

                              G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

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

                              As somebody else mentioned, I think the big issue is whether the managed environment is right for the environment of your customers. In other words, do they have the hardware to support the managed environment. If they do, then you can consider a managed languaged. If you're talking about doing Windows clients, the managed extensions aren't really an option, since they don't have any designer support. That leaves C#. I've done a few MFC applications (though nothing giant), and recently I decided to port one to WinForms. Once I got up to speed, I found Windows Forms to be a lot easier to use. You don't have to deal with setting up DDX stuff for dialogs (it's all transparent), events are easier to deal with, there's built in support for some things you had to do yourself, such as OK and Cancel handling. I'm not a great fan of the property grid way of doing things (I prefer dedicated dialogs), but I like the rest of the environment, and I'm frankly amazed how much easier it is to write in C# than C++. My advice is to find something small to write, and spend a few days writing code. At that point, you'll have a better idea of what decision to make. Eric

                              1 Reply Last reply
                              0
                              • realJSOPR realJSOP

                                COM for the sake of COM - bad idea. COM should only be used where there's a chance the code can be a) re-used more than once, *and* b) (more importantly) used from apps written in a different language. If your shop writes code strictly in C++, there is almost NO valid reason to use COM (IMHO) - a regular DLL would generally be a better choice. If, on the other hand, you're writing an app in C++ that does something like access a database (or even a simple structured binary file) and there's a liklihood that your code could be useful to a VB hack, COM is probably a good idea. However, with proper planning your generic code/classes could be written in such a way as to be easily dropped into a COM object, so you're not completely shut off from COM. I also find it amusing that when someone says "COM", they follow it up with "No MFC" - another generally bad idea. MFC provides a lot of functionality and doesn't really "bloat the code" enough to warrant its automatic exclusion from a COM project. I guess I'm just tired of the rhetoric concerning the use of COM and the exclusion of MFC.

                                D Offline
                                D Offline
                                Dark Angel
                                wrote on last edited by
                                #15

                                The company I work for uses COM because when we start developing a component / class, we really don't know how or when or where we are going to reuse it. With everybody creating COM objects, it has increased the design standards of our objects because you don't know where or how they are going to be used. The ability to put more than one interface into a COM object and inherit the interface allows for code reuse that doesn't break old code. The separation of the interface from the code is also good design (some design pattern applies here ... and it has a name...). As to excluding MFC, we use the WTL header file atlctrl.h that puts an MFC wrapper around dialog controls used in an ATL project and STL rather than the MFC list classes. If there is a time saving MFC class beyond these, then we don't hesitate to use it. We try to avoid using it, but there are times when it helps ( something like CSocket comes to mind ). "Harland Pepper, would you stop naming nuts" - Harland Pepper

                                1 Reply Last reply
                                0
                                • S Steve Driessens

                                  G'day, I'm wrestling with a largish dilemma at the moment and, as I’m the sole developer here, I can’t gather the programming team around and ask their opinions, so I thought I’d pick a few CPer’s brains, if I may. Come January next year, I start work on a range of new products [1] for our company, and I'm wondering whether to write them in C++ or C#. I’m basically betting the company on these new applications and I’m going to have to live with these products for 4 to 5 years, so I’m thinking conservatively at this stage and leaning towards C++, but I can’t help wondering if I might regret such a decision in a couple of years time. I have oodles of experience with C++/MFC but I’ve only played around the edges of C# to date. I don’t have enough experience with C# to make an informed decision on what language to use yet, but I figure I’ve got a few months to get the hang of C# and then make a final decision. I officially start on my C# edjumacation this week (I’ve read Eric’s book and I’m waiting for Tom’s to arrive), but in the meantime, I’d be interested in hearing what you folk think. Any thoughts that might help me make up my mind? Steve [1] Food Service applications for Windows. Lots of database access and I’ll need a good grid control and database reporting engine (Crystal?).

                                  N Offline
                                  N Offline
                                  Nick Blumhardt
                                  wrote on last edited by
                                  #16

                                  Don't know about the (M)C++/# issue, BUT... Look further than Crystal for your reporting. I'm using Crystal, and IMHO it sucks. Not my choice. If anyone has a good alternative- let me know!!! It may be the best of a bad bunch. The UI is just too cryptic for me. Happy coding, N

                                  D J 2 Replies Last reply
                                  0
                                  • N Nick Blumhardt

                                    Don't know about the (M)C++/# issue, BUT... Look further than Crystal for your reporting. I'm using Crystal, and IMHO it sucks. Not my choice. If anyone has a good alternative- let me know!!! It may be the best of a bad bunch. The UI is just too cryptic for me. Happy coding, N

                                    D Offline
                                    D Offline
                                    Dark Angel
                                    wrote on last edited by
                                    #17

                                    I did some simple reporting with ActiveReports from a VB app, and it worked out quite well for me. It took me the usual day or 2 to get it to do what I wanted. I found Crystal and others to have the mentality of "Write your query to the database then...", as if all the data in the entire computing world is in some sort of SQL database. ActiveReports seemed to have more of a programming mentality to it. I don't know how well it works from C++. "Harland Pepper, would you stop naming nuts" - Harland Pepper

                                    1 Reply Last reply
                                    0
                                    • M Matt Philmon

                                      I agree that COM for the sake of COM is a bad idea. I think you misunderstood me. If you're thinking about whether to make the move to C# and .NET in the future, using COM for various pieces of your architecture will make for an easier move. I agree about what you said about being a C++ shop. If that's the case (as it USED to be here) stick with a good 'ol DLL. Sure, you're stuck using old C++ pretty much forever... As for COM only being useful to a VB hack, that's just plain nonsense. COM can surely be a pain, but there are many benefits, LIKE being able to be used in not just VB, but VBScript and JavaScript. You want to use a DLL in a web page? Good luck. If you're not planning on writing web based applications at this point in the game you're about to be obsolete. We're still primarily writing MFC here (with som VB sprinkled in... but very rarely) but have moved to COM rather than straight DLL's to aid us in our own gradual move to web based applications. Another thing you mentioned, about "No MFC" being a bad idea. Again, I think your answer is a bit short-sighted. I love MFC, which is why I frequent this site. However, MFC IS very bloated, MFC is NOT thread safe... If you're wanting to use COM, MFC is NOT the way to go. ATL and STL IS! COM is frequently used on web based app's. Not always, of course, but if you are going that route, Internet Explorer has built-in support for delivering newer versions of your components. All you have to do is cab it up and put it out there. If you're delivering new COM components across the web, SIZE MOST CERTAINLY MATTERS. Most COM objects you'll find probably aren't developed for handling visual effects. If you DO need that, I highly recommend ATL which is FAR smaller, faster, and safer. So, I guess that was my turn to preach.

                                      S Offline
                                      S Offline
                                      Stephen Kellett
                                      wrote on last edited by
                                      #18

                                      If you're not planning on writing web based applications at this point in the game you're about to be obsolete :-) I don't think so. For some applications yes. For all? No. Here is a great example. Geodesic Systems (www.geodesic.com) have created a garbage collection tool. Its user interface is appalling. Why? Because it is web based. Rather than create a decent UI for the user they force the user to use a web based interface even if the app is running on the computer they are sitting at. If the app being tested was in a different room/bulding/continent I could kind of understand why they did that. Compared to competing tools their UI shoots them in the foot. Here is another example: Web based web page editors. Great market? Hmm, I'd rather use Frontpage/HotDog/Whatever or equivalent. Web based apps have their place, but not all apps need to be web based. Stephen Kellett -- C++/Java/Win NT/Unix variants Memory leaks/corruptions/performance/system problems. UK based. Problems with RSI/WRULD? Contact me for advice.

                                      M 1 Reply Last reply
                                      0
                                      • N Nick Blumhardt

                                        Don't know about the (M)C++/# issue, BUT... Look further than Crystal for your reporting. I'm using Crystal, and IMHO it sucks. Not my choice. If anyone has a good alternative- let me know!!! It may be the best of a bad bunch. The UI is just too cryptic for me. Happy coding, N

                                        J Offline
                                        J Offline
                                        jkgh
                                        wrote on last edited by
                                        #19

                                        The obvious one is "business objects" ATL Student :rolleyes:

                                        1 Reply Last reply
                                        0
                                        • S Stephen Kellett

                                          If you're not planning on writing web based applications at this point in the game you're about to be obsolete :-) I don't think so. For some applications yes. For all? No. Here is a great example. Geodesic Systems (www.geodesic.com) have created a garbage collection tool. Its user interface is appalling. Why? Because it is web based. Rather than create a decent UI for the user they force the user to use a web based interface even if the app is running on the computer they are sitting at. If the app being tested was in a different room/bulding/continent I could kind of understand why they did that. Compared to competing tools their UI shoots them in the foot. Here is another example: Web based web page editors. Great market? Hmm, I'd rather use Frontpage/HotDog/Whatever or equivalent. Web based apps have their place, but not all apps need to be web based. Stephen Kellett -- C++/Java/Win NT/Unix variants Memory leaks/corruptions/performance/system problems. UK based. Problems with RSI/WRULD? Contact me for advice.

                                          M Offline
                                          M Offline
                                          Matt Philmon
                                          wrote on last edited by
                                          #20

                                          WHOAAA, hold on there!;P I'm an MFC programmer. I love MFC because with some patience I can overcome the limitations of the basic set of controls available in MFC (and with the help of this web site) to create some pretty awesome user interfaces. I TOTALLY agree with you... However, it's also true that most of use that don't work in some big company's IT department are FAR more customer driven. I'd love to call out the company, but since I can't, I'll just say that we've been forced on multiple projects to write web applications that manipulate REAL TIME DATA coming through devices connected via the serial port or parallel port (and pretty soon, wireless) of the client machine. Why a web app? ABSOLUTELY NO OTHER REASON than the customer wants web apps. So, they now get a series of components written in ATL, where 95% run ON THE CLIENT. There's no reason at all for building this application this way. It SHOULDN'T have been done this way but we couldn't convince the customer otherwise. Heck, there's a couple functions of the application that having Net access is great, but we could have easily added network support without having to do the whole thing in IE! Anyway, I guess my point is that the "corporate mentality" as I've seen it has been more and more web oriented, even when web oriented doesn't always make the most sense (or no sense). As it turns out, I'm absolutely blown away with what we've managed to do with IE... You have to really know your stuff but if you combine all the technologies out there, you'd be surprised how NON clunky your interface can really be.

                                          S 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