Re: GUI programming, MFC and C#



Hello Siddharth,

Not sure how the history will help you.
Xerox PARC came up with the fundamental ideas of the overlapping window.
Apple lept on the idea with the LISA and then the Mac, creating a great deal
of interest. A number of systems appeared for the DOS platform that
provided window-style views, which led to Microsoft developing a number of
iterations of a product called Windows that didn't take off until Windows
3.0 came out.

At that point, C was the language of choice and there were only a few
"controls" that were native to the system.
(I wrote one or two C apps to use the first windows interface... it wasn't
easy).

As Microsoft made the transition to C++, some other folks suggested that the
way to open up GUI development was to provide visual designers. The first
successful one was Visual Basic. So, around the time that C++ and MFC were
getting up steam, VB presented millions of folks with a way to develop GUI
apps without writing in either C or C++. Delphi, Powerbuilder, and others
took this direction to new heights, and many pre-existing languages like
FoxPro added GUI capabilities and took them in new directions.

Microsoft added visual designers to C++ through Visual Studio using MFC.
Microsoft also pursued the COM architecture and made it trivial to create
COM apps in Visual Basic. (It took a bit more work to do COM in C++).

Then the Internet came along. Microsoft jumped in with both feet, but it
took the invention of Java to really shake things up. Java understood the
web inherently, and was small and fast to download. Microsoft came out
first with ATL, and then jumped on the Java bandwagon. At one time,
Microsoft's JVM was the fastest one available.

Microsoft saw the advantages and disadvantages of Java and hired some of the
current "bright lights" of programming language development to come to
Redmond. They began working on Microsoft's next generation of languages
based on the strengths of Java but closer to C++ in style. Then SUN sued,
and put Microsoft out of the Java business.

Around the same time, Microsoft's efforts came to fruit, and MS put out the
..Net framework along with C# and VB.Net and partners that delivered dozens
of additional languages. Java is still strong. My personal opinion is that
C# is quite strong as well. SUN created a fierce competitor when it decided
to kick MS out of the Java game. Only time will tell which will ultimately
become a de-facto standard.

Now, on to your real problem: None of that matters. You have an app that
uses MFC. MFC has no descendents. There is no easy transition from MFC to
anything.

Depending on the size of your app, you could go one of two ways (a1-a4) or
(b):

a1) become or hire an MFC and COM expert.
a2) Seperate your existing app so that the business logic is different from
the GUI code.
a3) Put the Business object into COM components that your GUI code calls.
a4) Then write a new GUI in C# to call the former systems' business logic.

b) start over in C#.

The size and complexity of your app will dictate the direction you should
take. You may want to outsource (a1-a3) (see RentACoder.Com) and see what
comes back. That would give you the ability to do (a4) yourself. You will
still need to know COM and MFC to add any new business functionality, but it
is a lot easier than starting over and you are less likely to introduce
defects. Regression testing is easier as well because, at some point, you
can have a C# app and a C++ app side by side and you can see, for yourself,
if your new GUI does the exact same things as the old GUI does.

Hope that helps,

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--
"Siddharth Jain" <siddharth_jain_1@xxxxxxxxxxxxxx> wrote in message
news:1117195189.915999.18340@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> Hello,
>
> Could someone please tell me the history of GUI programming for
> windows. In the early days, we had to write 100s of lines of code to
> make a simple dialog box. Then along came MFC to simplify things. And
> now, finally we have visual C#.NET.
> Is that right? Is there anything else to it? Can someone please guide
> me to some link form where I can get to know how things evolved from
> pre-MFC to MFC to where we are now.
>
>
> Now...here is my problem....I have an application which was made years
> back. Its GUI has been written using MFC. Now I need to make some
> changes and make a newer verison of it. But for that I will have to
> teach myself MFC (I am familiar with C#). The only advantage of using
> MFC is that MUCH of the earlier code will be reused. Is there any way
> to get around this? I really wish I could write the GUI in C# and still
> reuse the code of the precious stuff.
>
> Thanks
> Siddharth
>


.



Relevant Pages

  • Re: Help with text adventure
    ... You can also just write a console app with printf and getline, ... Is there a way to make a Win32 console application? ... Since you don't want or need MFC, ... windowing process of Windows, like it was behind any Windows program. ...
    (microsoft.public.win32.programmer.gdi)
  • Re: MFC & Guis
    ... The fact that so many GUI wheels are reinvented by so many devs is an ... Users of Windows software form expectations ... > to learn to use your app. ... > while the client areas exhibit behaviour specific to the application domain. ...
    (microsoft.public.vc.mfc)
  • Re: GUI programming, MFC and C#
    ... Nick Malik [Microsoft] wrote: ... VB presented millions of folks with a way to develop GUI ... > Microsoft added visual designers to C++ through Visual Studio using MFC. ... You have an app that ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: GUI question
    ... I am currently developing a MFC dialog based application for WinCE 4.2 using eVC++ 4.0, and I am doing the GUI with the standard tools that come with eVC++ 4.0. ... Or may be you want something multiplatform for Linux, Windows and Windows CE? ...
    (microsoft.public.windowsce.app.development)
  • Re: Title bar in Doc/View application
    ... While it's true that MFC isn't portable, ... Any app that uses MFC/Win32 is not portable anyway. ... and I'm only interested if it works on Windows anyway. ... Maybe MAC. ...
    (microsoft.public.vc.mfc)