Hey C# people,

Sorry for my topic title, I honestly didn't know what else to call it. I'm a Java developer and I'm looking into learning C#. I've read up a bit on it but I'm rather
confuzed (as expected)...

1) Firstly, in java you can choose to use an IDE or you could just code java programs in something like notepad. With C#, do you HAVE to use Visual Studio? You can't simply code a C# program in notepad?

2) Secondly, if using Visual Studio, is it a common thing to create you GUIs through the form creator? In Java using form creators that generate the code for you is bad practice. Is this the only option you have in C# or could you code your GUI by hand?

I'll think of more questions as the topic goes along. But this is it for now...

I'm not comparing the two, I'm asking someone to ellaborate on the process of developing programs with C#. If you can't answer, don't bother replying to this, you're wasting my time.

1) Firstly, in java you can choose to use an IDE or you could just code java programs in something like notepad. With C#, do you HAVE to use Visual Studio? You can't simply code a C# program in notepad?

Answer: Nope. You can use notepad/ordinary text editor to program AS WELL as Visual Studio (Which by the way, is not the ONLY IDE for C# developers, there's plenty more. Visual Studio is just the *main* one as the big people themselves made it - Microsoft).

2) Secondly, if using Visual Studio, is it a common thing to create you GUIs through the form creator? In Java using form creators that generate the code for you is bad practice. Is this the only option you have in C# or could you code your GUI by hand?

Answer: You can create GUI's all from scratch without the IDE's help. The one that gives you the coding and generates the code for you is called: Windows Forms Application. The one that allows you to make GUI's from scratch is called: WPF Application - pretty powerful.

Hope that helped.

Edited 5 Years Ago by Usmaan: n/a

You can perfectly develop C# applications using any texteditor you prefer(In the past I used vi and I could still,use it for C#) Download a SDK from MS for free. The compiler command is csc, just try it out or dump it.

Thanks for your replies, it really cleared up some misconceptions I had. I know it might seem that I'm comparing Java and C#, but I'm just listing what I'm used to and then asking how it works in C#...

About creating the user interface with "windows form application" or coding it manually. What is considered better practice? I'm sure diff people have diff opinions about this, but I would just like to know what the majority thinks.

Also, in Java, your pre-complied file is a .java file, after it has been compiled it's a .class file. In C#, what type of file is a pre-compiled program? After it's been compiled I'm assuming it's a .exe ?
If using a text editor, I'm also assuming that you can compile your programs through command prompt?

Edited 5 Years Ago by Dean_Grobler: n/a

I understand you perfectly. And even if you WERE comparing the two languages, what harm is there in that? Anyway..... I 'personally' recommend Windows form Application as a beginner, try to get a good understanding of how it works by going through the pre-generated classes such as: Program.cs which contains the entry-point/main method and the formDesigner classes which contain the Initialize method for drawing objects on the form. When you drag and drop certain objects such as Label or Button on to the form, the Initialize method generates the code for you i.e. location, size, name etc. try to understand how to CODE the objects after dropping them in on the actual form. Of course, this is achieved AFTER doing it manually....So first drag and drop and observe the code on how to make the objects and then try to code them yourself.

After you've done that, make a small project if you can. I made a Hangman game and got really good at OOP/Win Forms and other miscellaneous stuff. Just improvise and expand to WPF when you're ready. WPF is a lot more powerful, so I've heard.

As for your next questions - check this out: http://msdn.microsoft.com/en-us/library/1700bbwd%28v=vs.71%29.aspx

I hope this helps in clearing your thoughts.

csc is a command on the command prompt if you installed the download.
I create my user interfaces with Visual Studio it is by far more handy than e.g. to do all those Button coordinates and sizes etc. by typing them in.
You must still be aware what you are doing!
C# uses a JIT compiler, just like Java I think.

Great thanks again!
One last question I have, does c# have some form of API documentation? In otherwords, where you can see what methods are already build into the language and what methods are available for you to use?

In Java this is called the API docs. Can't seem to be finding something similiar on google for c#...

Don't know if this exists in Java but in Visual Studio, editing a C# file you have something called Intellisence. If you type the name of a class you have, via a pop down list access to all its methods and properties!

dear Dean Grobler i have been using both the languages and for a long time and I found C# much more easy to deal with and user friendly environment and VS provides you help on just starting to write any thing mean if you write S it will provide a pop down list with each possible thing starting with S like String..... It also gives a brief usage of each thing in pop-down list... If you are still not satisfied visit MSDN library it gives you details of every thing in C# and other VS languages....:).... hopefully you will enjoy programming with C#

Thanks @Momerath, that is exactly what I was looking for!

Hey @abelLazm, I can imagine C# being easier to deal with. As for the VS, other IDE's for Java has the exact same functionality. Like Eclipse and Netbeans for instance. Looking at the Syntax, C# and Java are alot same.

In terms of getting started. Do you just download the C# SDK from MSDN or something. Then you can download any IDE like VisualStudio for instance and get coding?

This article has been dead for over six months. Start a new discussion instead.