Xamarin Studio.

Started by Adamiks, May 30, 2015, 08:17:58 AM

Previous topic - Next topic

Adamiks

Hey, i'm newbie in C# coding, i'm using Xamarin Studio and i have a very stupid question(s)...

1. How i can edit dll files? I can open them by Xamarin Studio but i can't export dll files to text (like in Ilspy).
2. How i can compile projects ("convert" them to dll files?)?

Oh... and:
3. What "build" button even do? It save the project or something?

1000101

#1
Not sure if troll, but...

This explaination will Windows specific but holds true for other platforms as well.

Xaramin is an IDE - an Integrated Development Environment - which allows you to write, manage and compile a high-level source code (human readable text files) project.  Xaramin and Mono handle quite a few high-level languages such as C++, C#, etc.  What we care about is C#.

Mono is many things but what we care about is the compiler.  The compiler builds your C# source code or project into a platform specific binary.  The binaries we care about are applications (.exe) or Dynamic Link Libraries (.dll).  The main difference is that applications generally contain working logic while libraries contain working functions.  ie:  A dll itself is not a program and only contains functions for programs which want to use them, all the logic which makes functions meaningful is in the application.

Tools such as ILSpy and jetBrains DotPeek are decompilers which allow you to turn an application or dll back into a human readable form.  These tools don't build source to binary but they may export source from binary assuming they are able to decompile it.  Similar to decompilers are disassemblers but instead of re-creating source from the binary, they give a direct human mnemonic output known as an "assembly dump."  Assembly is similar to a high-level language such as C, C#, Java in that you write source code and compile it - well assemble it actually.  The only reason I mention assembly here is that you will find loading the RimWorld application into ILSpy or dotPeek is useless.  Those tools can't decompile RimWorld itself.  You can disassemble it, but unless you know assembly it's output will be garbage.  That being said, I know x86 assembly and the assembly output of RimWorld is garbage.  :D

So, simple recap.

Xaramin to write and manage source code files.
Mono (via the build menu in Xaramin or command-line (not covered here)) to build the source to a binary (application or dll).
Decompilers (ILSpy, dotNet) to turn binaries into source again.
(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By

Adamiks

#2
Quote from: 1000101 on May 30, 2015, 11:41:25 AM
Not sure if troll, but...

No, i'm not trolling, i'm just retarded, and i have 14 years, so in school i learn about programs like paint/wordpad not about dll's or modding ;D

Anyway, thanks! I really appreciate it!

RickyMartini

Now I feel bad, I wanted to post a similar question last week but didn't find the time.  ;D

Questions like these happen when someone with 0.1% programing skills try to make their own .dll files.  :-[

1000101

Quote from: Adamiks on May 30, 2015, 12:04:32 PM
Quote from: 1000101 on May 30, 2015, 11:41:25 AM
Not sure if troll, but...

No, i'm not trolling, i'm just retarded, and i have 14 years, so in school i learn about programs like paint/wordpad not about dll's or modding ;D

Anyway, thanks! I really appreciate it!

Ahh, you're only 14, I see.  Well, when I was 14 I was programming BASIC on Commodores and TRS-80's.  But that was a loooooooooooooong time ago.  That you are trying to wrap your head around C# and more advanced computer science concepts is actually impressive for your age group.

btw, the word you're looking for is "ignorant" not "retarded."  Ignorant just means a lack of knowledge (even though it's usually used in a negative way to hurt people).  It doesn't imply stupid or an inability to learn, just a lack of knowledge.

With respect to this, the best way to learn a compiler and language is read the manuals and experiment.  If your computer is setup right (ie, your normal login does NOT have administrative privileges), you should be fairly safe from catastrophic damage to your system.  If you have an idea or even just want to see "what if", DO IT!  See what happens.  You can't expect to launch a rocket without a few explosions on the launch-pad.  That being said, obviously apply common sense.  Deleting everything in your root directory would be bad.  Don't do that.  :P  But, there is an old saying in computer science - If you don't crash your computer at least once a day, you haven't done anything that day.  Although, this applies to old systems which had no protection from a single program crashing the entire system, modern systems isolate programs to prevent an entire system take-down.  Still, if your program crashes then you know you've done something.
(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By

Adamiks

Quote from: 1000101 on May 30, 2015, 01:02:09 PM
Quote from: Adamiks on May 30, 2015, 12:04:32 PM
Quote from: 1000101 on May 30, 2015, 11:41:25 AM
Not sure if troll, but...

No, i'm not trolling, i'm just retarded, and i have 14 years, so in school i learn about programs like paint/wordpad not about dll's or modding ;D

Anyway, thanks! I really appreciate it!

Ahh, you're only 14, I see.  Well, when I was 14 I was programming BASIC on Commodores and TRS-80's.  But that was a loooooooooooooong time ago.  That you are trying to wrap your head around C# and more advanced computer science concepts is actually impressive for your age group.

btw, the word you're looking for is "ignorant" not "retarded."  Ignorant just means a lack of knowledge (even though it's usually used in a negative way to hurt people).  It doesn't imply stupid or an inability to learn, just a lack of knowledge.

With respect to this, the best way to learn a compiler and language is read the manuals and experiment.  If your computer is setup right (ie, your normal login does NOT have administrative privileges), you should be fairly safe from catastrophic damage to your system.  If you have an idea or even just want to see "what if", DO IT!  See what happens.  You can't expect to launch a rocket without a few explosions on the launch-pad.  That being said, obviously apply common sense.  Deleting everything in your root directory would be bad.  Don't do that.  :P  But, there is an old saying in computer science - If you don't crash your computer at least once a day, you haven't done anything that day.  Although, this applies to old systems which had no protection from a single program crashing the entire system, modern systems isolate programs to prevent an entire system take-down.  Still, if your program crashes then you know you've done something.

Thanks for kind words :) And i used word "retarded" in a kind of joke (also, maybe i used this word because my brother had server network in Counter-Strike when he was 12 that he sold for nice cash? ;D).

Actually i'm trying to create a new playable race (stereotype aliens :D), but because lacks of time (exams etc.), learning C# will take me a long time.

1000101

No offence to your brother or his skill set, but anybody can build a computer and install software.  Writing software is where the real skill is.  Scripting is not coding, IT is not Computer Science.  :)
(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By

StorymasterQ

Quote from: 1000101 on May 30, 2015, 03:56:24 PM
No offence to your brother or his skill set, but anybody can build a computer and install software.  Writing software is where the real skill is.  Scripting is not coding, IT is not Computer Science.  :)

Listen to the guy who has binary code as a forum handle. He's absolutely right.
When I was 14, I was coding Basic and Pascal. I since went up to VB and .Net. Geez, that takes me back. Good times, good times.
I like how this game can result in quotes that would be quite unnerving when said in public, out of context. - Myself

The dubious quotes list is now public. See it here

Adamiks

Quote from: StorymasterQ on May 31, 2015, 09:06:00 PM
Quote from: 1000101 on May 30, 2015, 03:56:24 PM
No offence to your brother or his skill set, but anybody can build a computer and install software.  Writing software is where the real skill is.  Scripting is not coding, IT is not Computer Science.  :)

Listen to the guy who has binary code as a forum handle. He's absolutely right.
When I was 14, I was coding Basic and Pascal. I since went up to VB and .Net. Geez, that takes me back. Good times, good times.

01000010 01101001 01101110 01100001 01110010 01111001 00100000 01110100 01110010 01100001 01101110 01110011 01101100 01100001 01110100 01101111 01110010 00100000 00111011 01000100

1000101

(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By


1000101

heh, thanks.  The security hack mini-game from Fallout 3 and Fallout NV is what gave me the idea.
(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By

RawCode

You can't mod rimworld effectively without mid level CLI knowledge.
Your questions are first page google, this means that you also can't google effectively, this is BAD.

1) read about common language infrastructure , few books (not kidding, you must read book to understand language, you can't just ask on forum for this, there is no jedi tricks to allow coding from single post).

2) read documentation on mono develop

just reading is not sufficient, you must read and understand what you are reading.

you can find all documentation and cli books in google for free (just dont download instruction.exe and you will be fine)