none
Windows forms advantage in C# RRS feed

  • Question

  • Hello everyone

    Can someone explain the advantages for Windows Forms programming in C# instead of other programming languages as C++ for instance.

    Thanks in advance

    Thursday, March 14, 2013 6:30 AM

Answers

  • Hi,

    C++

         C#

    C++ is powerful and lets you interact with the entire
    controllable set of parameters like hardware ,drivers,
    and other system components through API s or low
    level
    calls, header files, native(32 bit,64
    bit...,x86,) compiled programs which are the most suitable
    adaptation for the OS and hardware etc.

    C# is based on a framework that does
    error

    handling ,garbage collection , Try{} Catch {}
    etc.

    The framework handles portability issues like OS,
    hardware etc.

    Allows transparent
    development

    Allows fast development dependent on the framework

    Linux program development differs from Windows
    and has separate header files

    Here framework is only concerned when adopting a desired OS.
    If the framework is available for Linux then programs may work on
    Linux. So far MONO and Moonlight are some frameworks
    which are still trying to match components from Dotnet
    framework from Microsoft

    It allows you to know each factor of the environment that makes
    a program running for a system

    It may not expose each factor for manipulation.

    As you may make exact manipulations possible your
    desired output is in your control and you may be able to overcome
    restrictions and provide further variations using available skills

    Here manipulations would be limited to the abilities of the
    namespaces
    available which expose classes and functions to
    manipulate. Writing wrappers is possible but basic limitations
    cannot be overriden

    More effort would be needed to apply all finer
    refinements suitable for various machines and platforms

    Effort would not be needed to apply all finer
    refinements suitable for various machines and platforms, but would
    compromise the freedom to manipulate further
    .

    Maintenance may allow a lot of manipulations for each platform

    Allows quick pace of development and results in quicker output
    and UI and lower maintenance

    More hours could be spent on concentration on fine tuning with
    platform/hardware/software requirements and re-usability of such
    models which may always be repeatable.Hence leaving a chance to
    lose time for discussing business requirements

    More hours could be spent on concentration on business
    requirements
    and re-usability of such models which may always
    be repeatable.

    As C++ is a universal programming language, portable
    applications could be written for LINUX as well as WINDOWS

    As C# is a DOTNET language and to program portable applications
    may be difficult for LINUX as well as WINDOWS

    PS : opinions may differ and with time newer technologies have come up like XAML (ZAMAL) which is unlike windows forms. things may keep evolving , also as windows8 has come with extremely asynchronous programming retaining features of XAML

    there may also be people who may never want to use XAML but would go for it as it may be an imposition and not a choice.

    Regards.


    Please remember to mark the replies as answers if they help and unmark them if they provide no help , or you may vote-up a helpful post


    Thursday, March 14, 2013 7:30 AM
  • In short (and helpful as I hope).

    1) Microsoft made C# IDE more helpful in windows programming than C++ IDE (Note this is not to say anything about the language).

    2) If you are new to programming, I recommend C# because it much easier and you will be more productive. C++ is only more efficient in some advanced area which you are not likely going to program with as new programmer; by the time, you may be experienced enough to learn C++.

    Thursday, March 14, 2013 8:58 PM
  • I mean this part:

    1) Microsoft made C# IDE more helpful in windows programming than C++ IDE (Note this is not to say anything about the language).

    Umm, Ok.

    First, Intellisense gives brief description of the used method, property,... etc in addition to its parameters in C#. In C++; however, no description is provided by the intellisense; just the type of the parameters. Secondly, It is very simple in C# to imports images, sounds in the resources by going in the project properties; in C++, this is much more complicated. Third, the properties of the project are organized in way that easy to find and access; in C++, you feel there are too much, and you may feel lost (of course unless you learn C++ IDE). Fourth: Default customization, C# IDE by default elegantly organized toolbar, properties window, and files window; in C++, the properties window for example is not visible by default which is indispensable in Windows programming. Fifth Connecting events to methods is more complicated in C++; C++ requires more parameters to be entered at the level of the code; in C# the intellisense add the necessary keyword (new EventHandler) and just let you enter the only parameter which is the name of the method. Here are just some of the benefits of using C# for "windows programming" and I think there are others; however, I found only one good point in C++ not found in C# is that when deleting a control, C++ automatically deletes the previously auto generated code for this control; while in C# you have to delete the code manually (at least in Visual C#.NET Express 2008) I don't know if microsoft fixed this in later editions.

    Hope this "helpful" :)

    • Marked as answer by Mohican1989 Friday, March 15, 2013 10:51 PM
    Friday, March 15, 2013 9:30 PM

All replies

  • Hello,

    You are comparing apples and oranges, C++ is a programming language whereas WinForms is a UI technology and in fact, you can use C++/CLI to write WinForms applications.


    Regards,

    Eyal Shilony

    Thursday, March 14, 2013 6:45 AM
  • Thanks for the answer

    Sorry i'm new to C# programming, but i'm making a project and i have to explain why i use this programming language to Windows Forms programming.


    • Edited by Mohican1989 Thursday, March 14, 2013 6:55 AM
    Thursday, March 14, 2013 6:55 AM
  • Hi,

    C++

         C#

    C++ is powerful and lets you interact with the entire
    controllable set of parameters like hardware ,drivers,
    and other system components through API s or low
    level
    calls, header files, native(32 bit,64
    bit...,x86,) compiled programs which are the most suitable
    adaptation for the OS and hardware etc.

    C# is based on a framework that does
    error

    handling ,garbage collection , Try{} Catch {}
    etc.

    The framework handles portability issues like OS,
    hardware etc.

    Allows transparent
    development

    Allows fast development dependent on the framework

    Linux program development differs from Windows
    and has separate header files

    Here framework is only concerned when adopting a desired OS.
    If the framework is available for Linux then programs may work on
    Linux. So far MONO and Moonlight are some frameworks
    which are still trying to match components from Dotnet
    framework from Microsoft

    It allows you to know each factor of the environment that makes
    a program running for a system

    It may not expose each factor for manipulation.

    As you may make exact manipulations possible your
    desired output is in your control and you may be able to overcome
    restrictions and provide further variations using available skills

    Here manipulations would be limited to the abilities of the
    namespaces
    available which expose classes and functions to
    manipulate. Writing wrappers is possible but basic limitations
    cannot be overriden

    More effort would be needed to apply all finer
    refinements suitable for various machines and platforms

    Effort would not be needed to apply all finer
    refinements suitable for various machines and platforms, but would
    compromise the freedom to manipulate further
    .

    Maintenance may allow a lot of manipulations for each platform

    Allows quick pace of development and results in quicker output
    and UI and lower maintenance

    More hours could be spent on concentration on fine tuning with
    platform/hardware/software requirements and re-usability of such
    models which may always be repeatable.Hence leaving a chance to
    lose time for discussing business requirements

    More hours could be spent on concentration on business
    requirements
    and re-usability of such models which may always
    be repeatable.

    As C++ is a universal programming language, portable
    applications could be written for LINUX as well as WINDOWS

    As C# is a DOTNET language and to program portable applications
    may be difficult for LINUX as well as WINDOWS

    PS : opinions may differ and with time newer technologies have come up like XAML (ZAMAL) which is unlike windows forms. things may keep evolving , also as windows8 has come with extremely asynchronous programming retaining features of XAML

    there may also be people who may never want to use XAML but would go for it as it may be an imposition and not a choice.

    Regards.


    Please remember to mark the replies as answers if they help and unmark them if they provide no help , or you may vote-up a helpful post


    Thursday, March 14, 2013 7:30 AM
  • In short (and helpful as I hope).

    1) Microsoft made C# IDE more helpful in windows programming than C++ IDE (Note this is not to say anything about the language).

    2) If you are new to programming, I recommend C# because it much easier and you will be more productive. C++ is only more efficient in some advanced area which you are not likely going to program with as new programmer; by the time, you may be experienced enough to learn C++.

    Thursday, March 14, 2013 8:58 PM
  • Thanks for the answers :)

    Can you please be more concrete about the word "helpful" ?.

    Friday, March 15, 2013 1:42 PM
  • Thanks for the answers :)

    Can you please be more concrete about the word "helpful" ?.

    I mean by "helpful" that I hope my post helps you go on with correct path.

    By the way, don't forget to mark all the answers that satisfy your question "Mark as answer" beside to vote as helpful for useful posts.

    Best wishes...

    Friday, March 15, 2013 6:15 PM
  • I mean this part:

    1) Microsoft made C# IDE more helpful in windows programming than C++ IDE (Note this is not to say anything about the language).

    Friday, March 15, 2013 8:40 PM
  • I mean this part:

    1) Microsoft made C# IDE more helpful in windows programming than C++ IDE (Note this is not to say anything about the language).

    Umm, Ok.

    First, Intellisense gives brief description of the used method, property,... etc in addition to its parameters in C#. In C++; however, no description is provided by the intellisense; just the type of the parameters. Secondly, It is very simple in C# to imports images, sounds in the resources by going in the project properties; in C++, this is much more complicated. Third, the properties of the project are organized in way that easy to find and access; in C++, you feel there are too much, and you may feel lost (of course unless you learn C++ IDE). Fourth: Default customization, C# IDE by default elegantly organized toolbar, properties window, and files window; in C++, the properties window for example is not visible by default which is indispensable in Windows programming. Fifth Connecting events to methods is more complicated in C++; C++ requires more parameters to be entered at the level of the code; in C# the intellisense add the necessary keyword (new EventHandler) and just let you enter the only parameter which is the name of the method. Here are just some of the benefits of using C# for "windows programming" and I think there are others; however, I found only one good point in C++ not found in C# is that when deleting a control, C++ automatically deletes the previously auto generated code for this control; while in C# you have to delete the code manually (at least in Visual C#.NET Express 2008) I don't know if microsoft fixed this in later editions.

    Hope this "helpful" :)

    • Marked as answer by Mohican1989 Friday, March 15, 2013 10:51 PM
    Friday, March 15, 2013 9:30 PM
  • It is very helpful

    Thanks a lot ! :)

    Friday, March 15, 2013 10:51 PM
  • You are welcome.

    Good luck in your project.

    Saturday, March 16, 2013 8:47 AM