ID:183889
 
I've been goofing around with C# a bit lately for my workplace. It really seems like C# is way too tightly wound up in Microsoft's stuff, like the .NET framework, and horrendous file structures and so fourth. I've noticed that when I publish even the most basic applications, it generates a ton of files, including a Appname.application and Appname.exe file. Furthermore, the published install file installs the program to C:\Documents and Settings\YourUser\Local Settings\Apps\2.0\randomstring\randomstring\appname.

What's the deal with this stuff? Is Microsoft just tying everything up into proprietary design? Is there a way to just compile a darned exe for a braindead simple Windows app? Do you have to remain attached to Microsoft's hip, their 90 files per application, and so forth?

Anyone who knows a bit more than I do about this, I'd love to hear from you. ;)


~Polatrite~
Dump Microsoft but not C#: use Mono.
In response to PirateHead
where can i find a tutorial because i want to learn C#
Polatrite wrote:
Is there a way to just compile a darned exe for a braindead simple Windows app?

there should be a folder called "bin" within the project's folder. inside bin there are two folders, "Debug" and "Release". when you compile a debug build, the .exe that is created is put into bin\Debug, when you compile a release build the .exe is put in bin\Release.

the debug/release thing is a property of the solution, and can be changed via the standard toolbar or the properties menu of the solution.
In response to OneFishDown
Could Mono be used for cross-platform development of BYOND?
In response to Flame Sage
If BYOND were entirely ported from its current C codebase to C#, then yes, Mono could run BYOND.
In response to Upinflames
My best advice is to buy a book with good reviews from Amazon. Internet tutorials were never really helpful for me so I decided to spend some money on some high quality books. They're worth every penny.

There's a few good sources online but they cost money as well, and I don't like reading off the screen as much. All the free C# tutorials I've found have been choppy, too specific, or too general.

That said, I love C# and it's an excellent step up from BYOND like Java, but without the crapiness that comes with Java.
In response to Kunark
Python would be a better choice. It has a really good tutorial on the website, too.
In response to Jp
Not necessarily... there are many performance issues involving Python that C# gives you the flexibility to avoid. For programming enthusiasts, I suggest learning C#/Mono and Python; and don't forget LISP and Ruby!
In response to PirateHead
PirateHead wrote:
Not necessarily... there are many performance issues involving Python that C# gives you the flexibility to avoid. For programming enthusiasts, I suggest learning C#/Mono and Python; and don't forget LISP and Ruby!

While we're at it, don't forget C and C++! A little more work, I guess, but I like them. =)

Hiead
In response to Hiead
If you want to develop applications fast with the simplicity of VB and the power of C++ try C#.
In response to Hiead
Hiead wrote:
PirateHead wrote:
Not necessarily... there are many performance issues involving Python that C# gives you the flexibility to avoid. For programming enthusiasts, I suggest learning C#/Mono and Python; and don't forget LISP and Ruby!

While we're at it, don't forget C and C++! A little more work, I guess, but I like them. =)

i can't think of a language that's bad to learn. but, its important to learn the most important things first. and, when you're starting out its far more important to get the basics down in any language before you move on to other ones. it doesn't do much good if you know the syntax to 8 languages but can't make a program to do what you need in any of them.

especially with general purpose languages used for casual programming, there's hardly any reason to use one of those languages over another. if you keep moving from one language to another because one appears to be "easier", its going to take you a long time to learn anything. just get comfortable with one language so you don't have to think of the syntax and you can just think of things conceptually. from there, learning other languages will be easy.

we are getting a little off-topic though...
In response to OneFishDown
OneFishDown wrote:
i can't think of a language that's bad to learn.

Check out Brainfuck -- it's definitely bad to learn. Once you get good at it, you turn into a soulless robot a la Lummox (they say that Lummox had just porting writing Hunt the Wumpus to Brainfuck when... the incident occurred.)

but, its important to learn the most important things first. and, when you're starting out its far more important to get the basics down in any language before you move on to other ones. it doesn't do much good if you know the syntax to 8 languages but can't make a program to do what you need in any of them.

I am sort of that way -- I understand the syntax of a lot of languages but I need documentation present in order to do anything useful. I don't memorize languages very well, I just get a feel for the syntax and logic flow mechanisms. That's why I like self-documenting languages like Python and Ruby (and Unix shell script).

especially with general purpose languages used for casual programming, there's hardly any reason to use one of those languages over another.

I disagree! There is a time to use Python, a time to use Perl, and a time to use Ruby. Except, given the time to use Ruby, there might not be time for anything else. =P

if you keep moving from one language to another because one appears to be "easier", its going to take you a long time to learn anything. just get comfortable with one language so you don't have to think of the syntax and you can just think of things conceptually. from there, learning other languages will be easy.

Not necessarily. I know you understand programming languages; now try Brainfuck.

we are getting a little off-topic though...

I really don't think that's a bad thing. Once a post branch switches topics, I wish there was just a way of marking that branch as a new topic and continuing on from there. Perhaps I'll write forum software that is built around that functionality -- or perhaps I could petition for that functionality in BYOND's forum code.
In response to OneFishDown
OneFishDown wrote:
i can't think of a language that's bad to learn.

COBOL does bad things to people.
In response to CaptFalcon33035
Oh god, you've just made a big understatement.
I'm not really asking if C# is a good language - it's clearly a good language. I've already written a number of apps for it. I'm mostly asking how reliant it is on Microsoft proprietary stuff, why the built-in Publish feature sucks, and if I can get around that and just have a stand-alone executable without 20 support files.

It's good to know about Mono, for sure!


~Polatrite~
In response to Polatrite
Polatrite wrote:
I'm not really asking if C# is a good language - it's clearly a good language. I've already written a number of apps for it. I'm mostly asking how reliant it is on Microsoft proprietary stuff, why the built-in Publish feature sucks, and if I can get around that and just have a stand-alone executable without 20 support files.

when you compile a project it creates an exe. if you have multiple projects in a solution it may result in several files (for example, an exe and some necessary dlls), but i've never had your problem of having 20 files for one program when i'm expecting it to be a single exe.
In response to CaptFalcon33035
CaptFalcon33035 wrote:
OneFishDown wrote:
i can't think of a language that's bad to learn.

COBOL does bad things to people.

as long as you can keep your head on straight, cobol (or any other language) isn't bad for you. if you can separate your ideas from the language you're using to implement them, you won't get caught up in the details of a particular language or find yourself caught in a cobol state of mind.

in general, people have a terrible idea of what is good or bad. the same is true when it comes to programming. its thought that goto is 'bad', but try programming in assembly without using a jump or branch command... you can't. using goto can result in code that is hard to read, but that's why you have to do things intelligently. if you're going to be an idiot about things, then a lot of stuff is 'bad'.
In response to OneFishDown
In a C# switch where you need to break goto can be useful.