spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
hey guys a while back ago i remember having a c++ community learning project,and i was wondering if anyone knew c# and where the best place online to learn it is?? and the big problem i am facing right now is trying to get c# to work on linux i don't have windows i just have linux and i think something called mono does the job but i don't think there is support for the .net libraries or many of the default libraries that are found in windows.
------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
Calin![]() Member Posts: 358 From: Moldova Registered: 12-04-2006 |
MS Visual Studio 2005 Express Editions are free I don't know any C# tutorial that is a lot better than others, however a google for C# tutorial will get you decent results I'd say. I don't know too much about running C# programs on non-Windows platforms (except that it can be done using Mono, which you already know). ------------------ |
||
samw3![]() Member Posts: 542 From: Toccoa, GA, USA Registered: 08-15-2006 |
What kind of programming experience do you have? If you already know a curly bracket language, picking up c# should be easy. In fact my SpeedGame entry, Finding Adina, is really the first time I've coded in c#. If found it really easy since I have much experience in C and java. And there are some really cool oop features that I immediately put to use like delegates (like a strongly typed void pointer for callbacks). I'm currently on windows, so I use Visual C# Express. On linux, it looks like the IDE of choice is MonoDevelop. As for tutorials, again, this depends upon your skill set. I just googled "getting started in c#" and seems to find a good starting point for you. If you are a more skilled programmer, maybe try the ccn approved approach of building a suite of small games like number guess, tic-tac-toe, etc. God Bless! ------------------ |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
I've used Mono with good success in the past.quote: There are a few of the .Net libraries that Mono doesn't support, but by and large, it supports a good number of them. For instance, if you were to use a graphics library like SDL.Net, I'm pretty sure that runs on Mono just fine. If you're getting into some Windows-only-specific-stuff (like XNA), then that won't be supported under Mono. But Mono certainly supports most of the .Net classes (like over 95% of them or something). So yes, I recommend you install MonoDevelop and use that -- it's really the best way to get started with Mono on Linux. Cheers! --clint |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
I don't have any specific tutorial recommendations but my favorite site is CodeProject. If I have an issue I am trying to resolve, I will go there first. I first took a C# class (3.5 years ago) at the local community college which gave me a well-rounded idea of various parts of the .NET Framework. From there, I just kept trying things out, focusing on the aspects I wanted to learn (ADO.NET and Forms). I am now leading an effort at work to migrate parts of our application to C#, although I am still spending more time in C++ than C#. Sam, GREAT to hear you used C# for the first time. So, will you be another C# convert on CCN? |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i know c/c++ although i haven't done any decent coding for the past 1-2 month i also know java. i saw a bit of some tutorial and it looks like a pretty nice language,the only thing that kind of concerns me is the whole library issue which clint kind of cleared up for me,but the thing i don't get is in linux when you compile using mono do you get a linux binary or an exe? the reason i am trying to learn c# is that i am trying to get into college and at first i thought i should get into aas degree in java specialization but i heard you get more and better paying jobs in c# so... but i really like java,i don't think c# is as portable as java. i haven't checked out monodevelop but is it a visual ide like visual studio?? ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote: Yes. |
||
samw3![]() Member Posts: 542 From: Toccoa, GA, USA Registered: 08-15-2006 |
@ssquared - Its a nice language strongly typed and yet flexible in its oop model. I won't convert per se, but definitely add it to my belt. I believe it is my new language of choice for pc apps. @spade89 - I believe c# compiles down to an intermediary language similar to java bytecode. However there is also (on windows at least) a tool called ngen that generates native code i.e. machine language executables for your processor platform. My guess is that mono on linux works the same way. In other words, it seems there will always be a run-time library associated with the code (.NET 2.0 for instance). I really like java too. I code a LOT in java for my day job. It is currently more portable than most any other language, especially in a compiled form. But, there are some things about java that I despise like no operator overloading which produces some ugly code like BigInteger.add(a,b) instead of just a + b. One of the other reasons I like java so much is because of eclipse refactoring tools. While visual studio express has rename, override completion and method stub creation and extraction, eclipse adds push-up/pull-down, automatic property and variable creation (that has saved a LOT of time), plus eclipse has Mylyn which honestly doubles my productivity on large projects. I really wish tools like these were available for visual studio as I feel like c# has a more up to date object model than java. But, often, the problem is getting things done, and eclipse helps a developer do this well. Great Discussion! God Bless! ------------------ Check out my CCN SpeedGame 2 Blog [This message has been edited by samw3 (edited August 21, 2007).] |
||
jestermax![]() Member Posts: 1064 From: Ontario, Canada Registered: 06-21-2006 |
@sam: i didn't realize that you were into java! i thought i was the only major java supporter here ![]() I'd say my biggest beef with C# is the hack-job of a generics library as opposed to Java's wicked-awesome set that have the same interface. </spam> ------------------ |
||
samw3![]() Member Posts: 542 From: Toccoa, GA, USA Registered: 08-15-2006 |
I'm into too many languages it seems. :P Though, like I said, I do spend a lot of time in java. ![]() Now, if I can only find someone here interested in microcontrollers Well, the reason I chose C# this time around was because of the SpriteCraft library. Which actually turned out to be a pain in the you-know-where. I looked at GTGE and SDL.NET and both I thought were weak for a two week compo. GTGE didn't have particle systems or sprite scaling and SDL.NET was just too lightweight. I thought about a full blown XNA game, but people were mentioning the problems they had with distribution. So, SpriteCraft seemed like a well rounded library but ended up having a bunch of bugs in it that I had to work around. I like the way its OpenGL based and its got me thinking about lwjgl. So, uh.. sorry about hijacking your thread spade.. I still did talk about C#... ^_^ ------------------ |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
SDL.Net is decently light weight, but yeah, it's always hard to know what to choose. I would probably recommend that newcomers to graphical game programming in C# start with something like GDI+ for the first tic-tac-toe game, and then graduate to something like SDL.Net as they get more comfortable in the base language. I'm sorry to hear you had so much trouble with the spritecraft library -- what you created with it was extremely cool! <offtopic>I like microcontrollers. --clint |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
ok i realize that the .net library has lots of libraries where do i go to learn about them all msdn? the syntax of the language and all that is something i think i might get used to but i think i should learn as i go along. but moreover i need you guys to give me an advise - i haven't coded anything in a while,what should i do to get back on track?any suggestions? ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
dartsman![]() Member Posts: 484 From: Queensland, Australia Registered: 03-16-2006 |
just figure out something you need to create and start creating it... I have a C# book but all it teaches me is the syntax. Use MSDN and google to find out about how to use the controls for your project. ------------------ |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
MSDN is terrific. I use it all the time for learning concepts or looking up classes. What to start is really up to you. Do you want to learn database? Web? GUI? XML? I recommend starting with a simple GUI application. Start out by creating a Form with an Edit control and one combo box. Add values to the combo box using the Forms designer. Then have a button which, when pressed, will display a MessageBox with the user's values from the Edit and ComboBox controls. Now, instead of using the resource editor to fill in the combo box, add values to it programatically. Once this is working, spend some time learning Delegates. Understand how they work on controls. When using the Forms designer, the use of delegates is hidden to you, so it can potentially be an overlooked concept. But it is an important one to learn and understand. Read MSDN or the previously mentioned CodeProject website for more information. Then just start playing around with the different controls. Sliders, radio buttons, checkboxes, etc. From there, well, I'd recommend looking into ADO.NET and the use of DataTables, DataSets, etc. You have two options here. You can install a database and read/write data using the database, or you can just use XML files. Take a look at my contest game this year for an example of using ADO.NET with XML files. Look at the UserData and GameData classes. Using a database is a really great learning project. The Express products work well with the free SQL Express, but you can use other products as well. It's just you will get a LOT more visual database building with the IDE if you use MS SQL. This should take awhile. GDI+ is another thing you should probably look at. Learn how to draw squares, polygons, circles, use colors, rotate them. Figure out how to load a bitmap and display it. Learning GUI and Database will take you far if you want to do application or web software development. But it really depends on what you want to learn. Do you want to do games? Application development? Web development? I am a Windows Application developer, so my choices and recommendations are tailored for that. Do you not have a Windows machine? The Express products are really nice. |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i like the approach you came up with ssquared what i want to do is get into appication development and to a certain level web development. i couldn't get monodevelop to work on linux i installed it but it is not starting up. i think i will go back to windows as soon as i have money, i trashed my old windows xp cd,i think i will get vista(if it's not too harsh on the system requirement) ,so another advise here i don't have fancy hardware and i think vista requires lots of memory/procesor speed and video card capabilities which i don't have and it's expensive but everyone is moving to that and vista is becoming more and more what xp was about a year ago. anyways i found www.planetsourcecode to be really useful but i couldn't figure out how to compile/run some of the projects.... anyways should i download msdn(which is too hughe about 1gb) or is it available online?? ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
The whole Vista issue still has a big question mark, to me. From what I can tell, Vista does have a large requirement. I have now been using Vista at work for 6 months and I can honestly say, on this particular machine, it is making me less productive. Everything is SLOOOOOW and I will often click Visual Studio to give it focus, and the title bar will then say "Not Responding" for 30-60 seconds. I have to wait for the focus to get back. That's just one issue. The computer is a Core2Duo 1.6 GHz with only 1 GB of memory and it is clearly not capable of Vista. We have another Vista box at work running on a P4 with 1 GB RAM and it seems to run much more smoothly. So, I don't really know what's up. Lately, I have been thinking there is just some bad hardware issue on this machine. Sorry. Got a little off topic there. Vista vs. XP is a tough decision. Some of the new .NET technology is geared specifically for Vista features. As for compatibility problems, there are plenty. Although it was MUCH worse when Vista first came out. You still have some companies saying they will not be updating their products to Vista anytime soon. MSDN is available on the internet and should always contain the latest details. Although I personally like to work locally. The local version of MSDN still goes out to the internet if it needs to. When installing the Express products, you have the option to install the necessary documentation. |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i have an old pc with procesor i think amd k6(somwhere b/n 200-333mhz),a 196+mb ram,and an old videocard,my hard disk is 160gb.so maybe vista isn't for me,and about xp is there a big difference b/n home edition and professional and all the variants. how about the ancient one windows 2000 could you get that anywhere?or windows server 2003?is there problem if you do so? i am still having trouble with mono though even after it compiles you have to use mono to run it you can't use wine and even when you use mono there are some errors,and you don't have the path system32 on linux so it is a problem with some applications. and monodevelop still isn't working. ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
The big difference between Home and Pro is networking and security. I am not too knowledgable on the exact differences between the two so hopefully someone with a deeper understanding can give you more detailed information. I'm not too sure how XP will run on that particular machine. 333 MHz may not be fast enough. Perhaps you should focus on getting Mono working first and use MonoDevelop for now. |
||
samw3![]() Member Posts: 542 From: Toccoa, GA, USA Registered: 08-15-2006 |
Here are the minimum hardware requirements for XP. http://www.microsoft.com/windowsxp/pro/upgrading/sysreqs.mspx ------------------ Check out my CCN SpeedGame 2 Blog [This message has been edited by samw3 (edited August 22, 2007).] |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote: If you start MonoDevelop from the command line, does it give you any error messages? |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i use to run windows xp fine on this same pc, i think i should focus on getting monodevelop to work, but does monodevelop open visual c# projects? because some of the sample code i have seen i think are made using visual c#. here is the command line output of monodevelop:
until i can afford a new xp i will try to use mono . other than that i can't seem to figure out where to start in msdn,it keeps sending me to the product page. ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
Try the MSDN Library. Specific C# page is here. | ||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
hey does anyone know any linux c# ide's other than monodevelop i tried sharpdevelop but all i found was a windows version. ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
quote: This is your problem. For whatever flavor of Linux you're running, make sure that you've got GTK# installed (it's different from GTK+, as it sits on top of it). I think some people use Eclipse for Linux C# development, but really Monodevelop is the best. Stick with it -- it'll be worth it! And yes, I believe it can import Visual Studio C# projects. --clint |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i'm running opensuse10.2 and i did install gtk-sharp but i think i have an earlier version or something i tried searching for the latest but no luck. ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
GTK#2 RPMs for x86 on Suse 10.2 should be available at the bottom of this page: http://www.go-mono.com/download-stable/suse-102-i586/ Is that what you need? --clint |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i think that maybe the right one since it's form the mono site,i'll download it and see if it works. thanks a lot clint ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
HanClinto![]() Administrator Posts: 1828 From: Indiana Registered: 10-11-2004 |
Groovy -- I hope it works out for you. ![]() --clint |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
ok here's what monodevelop says now:
so what's wrong with that i installed lots of mono stuff and still more problems,i am thinking of windows more and more. other than that i have been trying to compile example code i downloaded that was made using winforms and i have winforms for windows installed and after i compiled one of the codes when i tried to run the assembly here is what it says:
can anyone help me with this? ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
You will need to use "using" when bringing in an assembly. That's just part of the language. Kind of like, ummm....ummm....what is it Java has? Import or something like that? I haven't touched Java for 6 months and I already forgot this. In addition to "using", you should also add a reference to your Project settings, but I have no idea how to do that in MonoDevelop. I don't know what is going on with your particular run-time exception. Could it be the feature is not implemented in Mono? |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i think you misunderstood i am not using mono i am trying to compile from command line and i am using the using keyword and the problem is not with the code it's with the compilation to compile a file you have to type a command like : gmcs /out:Simple_Inventory_Calc.exe AssemblyInfo.cs Form1.cs /r:System.Windows.Forms.dll /r:System.Drawing.dll /r:System.Data.dll you have to list the dll of every inlude(in this case using) you have in your file i was just asking if there was a way to do this without listing all the dll's but my real problem isn't with compilation now it's with running applications compiled using gmcs and running monodevelop look at the errors i had . btw,i went ahead and bought windows xp professional with sp2 for $59.95 at www.wholesalepcstuff.com i just hope it isn't a really really well planned scam or something because i never thought i would find an xp so cheap and with unlimited installs. i just might even stop being a linux user as a whole although linux is nice fance and enjoyable it really can pull down your performance because of it's complexity everytime you need a new software you have to go rpm hunting and after you have the rpm you want they will have dependency issues and you will have to go rpm hunting again and when you find those there is more problems i spent about 3 days now trying to get a decent c# ide. but i think i will keep my linux installations just for fun. and other than that do you think i could get visual sudio express 2005 on a cd or something because i don't want to download. ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |
||
SSquared![]() Member Posts: 654 From: Pacific Northwest Registered: 03-22-2005 |
> i was just asking if there was a way to do this without listing all the dll's Like I mentioned, this is just something you have to do. You will need to use 'using' within your code file and to add a reference during compilation. Since you are using the command line, the /r is where you set the reference, so you have that down. I realize you have gotten past this part, but I am a bit confused about something and I just want to clear it up. When you mention "using" you are talking about the "using" statements in the actual CS file? Or are you talking about how you have to list all of the DLLs on the command-line? Keep in mind, the 'using' statement is listing a namespace, not a DLL. Also, you are not necessarily required to add the 'using' statement. The alternative is to qualify all of your code with the FULL namespace. In other words, type System.Drawing.Point everywhere you use Point. This can make for some messy and long lines of code. But, there are some occasions where writing it all out can be helpful. And is actually required in the case of a potential conflict. As an example, .NET has a Font class and so does SDL.NET. If you want to use Font, you will need to explicitly qualify the entire class with something like SdlNet.Graphics.Font. |
||
spade89![]() Member Posts: 561 From: houston,tx Registered: 11-28-2006 |
i did mean the using statements in the .cs file. until my new xp is delivered i'll just try to download the instller or something(if i can find it). c# is kind of fun,i was just trying to get his irc bot running the other day(with no luck) but i like the code. but the naming standard is kind of different in c# in java mehods[functions] don't start with capitals in c# they do and probably more. ------------------ Jesus answered, "I am the way and the truth and the life. No one comes to the Father except through me. |