PDA

View Full Version : "Interactive" tutorials over C#



a_bertrand
09-15-2010, 09:43 AM
C# is a language which has been developed by Microsoft and is now a standard ECMA (like Javascript). Support on Linux and Mac is offered and could be used even on smart phones (iPhone, or others).

Now... C# is a great language (don't be fooled by the fact it has been developed by Microsoft) which can be used in nearly all the possible usage. Here is a short list
- Windows services
- Standalone console applications (linux, mac, windows)
- Standalone GUI (linux, mac, windows)
- Web development (linux, mac, windows on iis and on apache)
- Browser applications like flash (linux weak, mac and windows good)
- Smart phone development (windows phones, iphone (released) and android (beta))

But that's not the main point of the language. What really makes the difference is the quality of the code you have (compared to PHP for example) and the HUGE library you may use (either directly offered or the huge number of additional lib / tools / sources you may found on internet).

Said all that, who would be interested, for once, to go away from PHP and check together (in a bunch of threads / posts as tutorials) how you do things and what it can do for you?

Requirements: mainly run on windows, even if you can develop on Linux or Mac, and then agree to download the development tools (free).

So let me know, as I will invest time to write stuff ONLY if there is really some interest.

Zeggy
09-15-2010, 11:13 AM
I would :) I have visual studio 2008/2010 and ready to get started! :P

I used c# before, but I don't know anywhere near enough to write any kind of real software.

a_bertrand
09-15-2010, 11:53 AM
Well we would have to decide what kind of "simple" soft we want to try to work on, and with which technology (web, standalone, etc)

Dominion
09-15-2010, 12:02 PM
i would love to see a topic on a standalone c# application, however would you think about doing a video using hyper cam or something like it? just asking since i would think a topic on it (even a basic topic) would be long therefore more people would sit here and watch a video on youtube etc either way i would love to see topics on c# from you :)

a_bertrand
09-15-2010, 12:10 PM
Well my spoken english skills are not that great, also I cannot register my voice here, so I would prefer to work on a step by step basis.

Equinox
09-15-2010, 12:20 PM
Sign me up ;)

Djkanna
09-15-2010, 05:10 PM
I'd be interested in more step by step guides from you! :P

srachit
09-15-2010, 05:14 PM
I am up for it :)

Just a few questions:
Any languages I should know before starting?
Which software will I exactly require to have installed onto my system? (windows computer)

Paddy
09-15-2010, 06:26 PM
I'm up for it too,

same questions as the above

Cheers

Dayo
09-15-2010, 06:32 PM
lol i actuly was thinking of starting C# as i would like to go into iphone app developing i brought a book to read at work last weekend so this would be great to help me along ^^

a_bertrand
09-15-2010, 08:08 PM
Well as we will pick a standalone GUI based application, I would say you just need this one:
http://www.microsoft.com/express/Downloads/#2010-Visual-CS

It's free, and contains all what you need: a great IDE, compiler and debugger all in one.

If you have the professional version or whatever else version you don't need any thing else.

My idea was to build a FTP client which would allow drag / drop operations. What do you think?

Zeggy
09-15-2010, 08:39 PM
FTP client sounds good!

Joshua
09-15-2010, 09:43 PM
I recently aquired the brand new Office Version of Virtual Studios and Visual basic stuff as well, I would be interested, have been debating this for awhile now.

a_bertrand
09-16-2010, 07:41 AM
Ok invested 1 hour time and worked on a first steps:
Link removed as old...

It's in PDF as it's much easier for me to copy / paste images into Word and then simply generate the PDF. This first steps will allow you to create the layout of our application, without even writing a single line of code.

Let me know if you manage to get the result or if you have troubles. Once this is done we can continue.

a_bertrand
09-16-2010, 12:55 PM
Ok here you are with a complete tutorial and a complete source:
http://garg.web.nowhere-else.org/web/tutorials/

The code works, and allows to browser FTP sites, you may navigate from one directory to the next via double click on the icon. I hope you enjoy it, as overall it took me a lot of time :D

Dominion
09-16-2010, 06:59 PM
a_bertrand - thank you for putting the time in and doing something like this for everyone :)

Zeggy
09-16-2010, 07:29 PM
Yeah, like dominion said, thanks :D

I finished the first tutorial :)

Karlos94
09-21-2010, 05:06 PM
This was rather useful to me, I shall follow it but won't develop until there are a few tutorials.

a_bertrand
09-21-2010, 07:19 PM
Beside you will find all sorts of tutorials on the web as C# is one growing language (not like others which are shrinking), it takes me a whole day to produce a tutorial like that. So I may do a second one, but I shall really see some interest about it. Also I would like to have some input about what you want to see as next one in case.

Karlos94
09-21-2010, 09:42 PM
Well if you are taking ideas, here are a few ideas of stanalone applications:

Calculator
Notepad
Browser (Maybe over a few tutorials)
Games - Tic-Tac-Toe, Checkers, etc?

Joel
09-22-2010, 12:11 AM
it's good to see that people are getting involed into new languages.

you should really get use to the software your using to create these applications, this way you can do more things easily.

oh, good work a_bertrand

a_bertrand
09-22-2010, 04:29 AM
Thanks for the ideas:

- A notepad would involve little to nothing to.
- A browser (if we use the pre-made component) is also really not difficult.
- A calculator is oddly enough quiet complex as you must implement some sort of "stack" due to the precedence of operators and such.
- Games are lot more work and could take weeks.

CJ - Twitch
09-22-2010, 05:40 PM
Wow great tutorial I really did learn alot. :D

I have a few ideas.
A Lite Media player. Something like winrar. A Lite PDF viewer.
Just a few ideas. :P You could make a "Lite" collection.

Zeggy
09-22-2010, 07:02 PM
Here's what I made in C# with a_bertrand's help:

http://code.google.com/p/andz/downloads/detail?name=jcc.zip

It's a javascript compiler using google's closure compiler. Just paste some javascript into the left box, click compile and it will 'compile' it into the box on the right.

(If nothing happens, it means your code can't be compiled - advanced compilation needs the script to meet certain requirements)
Oh, and it needs an internet connection to work.

I'm going to work on it a bit more to make it easier to use, but I just thought I'd show what I was able to do after following this tutorial :D

Isomerizer
02-10-2011, 08:51 PM
Very good tutorials, I've managed to create LittleFTP 0.1.
And hope to expand on it with some small functions such as prompt boxes if login incorrect etc.
:)

(One small question: Why do we not use WPF instead of Windows Form Application for LittleFTP 0.1?)

a_bertrand
02-11-2011, 05:08 AM
WPF is a completely different API but you can of course use it instead of WinForms. For most things it will work, and actually work better than WinForms some stuff are not yet fully supported and you need to do some kind of "hacks" with the windows API to get the results you want.

Anyhow back to your question, I decided to use WinForms for that tutorial as it was then possible to run it on Linux too.

Spudinski
02-11-2011, 12:53 PM
I love that you are introducing new things to the community a_bertrand, and I also respect you very much as a developer.
But, could you give me a reason why I would want to go and study C# on a university level, when I already will be taught C(++), Java and RPG?

I am will defiantly mainly use linux and unix variants when I will go work for corporate companies. I haven't seen that many people use C# for unix development, so that is why I am asking.
Other than creating desktop windows applications(and fyi, in ZA they use RPG for it), which is native to C# if I'm not wrong, what would I really use it for when I have knowledge of Java and C?
On the one hand Java runs on anything, so does C++. With C# I will need to incorporate every little thing to suit Mac, Linux or *nix.

a_bertrand
02-11-2011, 01:10 PM
I have no clue what RPG is is in this context Spudinski, anyhow let me try to answer some of your questions:

1) C# is mainly for windows, windows phone platforms. This is a fact, but it doesn't mean it doesn't work or it doesn't bring anything to Linux or Mac. For example, you can take the Unity 3D engine which is completely cross platform and yet uses C# as main language. Why? Because as language C# offers quiet a few improvements over Java and A TONS of improvement over C++.

2) C# / .NET can run and runs quiet well on Linux as well as Mac and on other platforms (android, iphone and more). For this Mono is the keyword, it's free and offer most of the .NET framework (which is huge) across those platforms.

3) C# is not only for desktop applications, it's great as web environment (honestly so far and currently I find it the best in this area), but you can also use it for SOAP services, back-ends, DB development on MS SQL, mobile development, game development and much much more.

4) C++ has his advantages but MANY drawbacks. Portability without some special framework is not an option in C++ actually, and GUI development, web development is certainly not the best for C++ developers.

5) Java has some advantages when it comes to running on multiple platforms, but honestly I don't find it anymore a great language, and it is certainly sub-par compared to C# / .NET

Now talking about Mac and Linux development you could check MonoDevelop but honestly it is way behind Visual Studio, and now the real question, why would you develop for Linux and Mac? Mac is a near dead market and linux is a good market only on the sever segment. A lot of enterprises uses C# and .NET environments actually... so you should maybe rethink about it ;)

Sim
02-11-2011, 02:39 PM
How about a simple multi user server/client demo? =]

a_bertrand
02-11-2011, 03:16 PM
what is a "simple" multi user client/server? As when you introduce the network (beside those pre-made classes) it is normally already not simple, and yet client server?
Sure I could create a SOAP server and have a simple GUI to chat, but how is it useful?

Sim
02-11-2011, 06:41 PM
A chat server would show the basic's of setting up a client/server which I was having trouble doing years ago. A basic chat client/server also is the first step in creating multi player games.

a_bertrand
02-13-2011, 09:13 AM
Ok I made the code for it in WPF and ASP.NET for the web service:
http://garg.web.nowhere-else.org/web/tutorials/SoapChat.zip

The client connect to the web server for the SOAP communication, the server is responsible to propagate the events. The client get updates ever 2 sec and parse them based on the kind of message.

If you kill the client, the server should kick the connection after about 10 sec.

So you mainly have a complete chat client and server. To fully test it, start at least 2 clients.

I didn't wrote so far any side tutorial / documentation as it takes me quiet some time for doing so, however the code itself is not complex and should be easy to read. Let me know what kind of info you need in case.

BTW, there is one special trick involving the "Dispatcher.BeginInvoke". In WPF or WinForms you cannot modify anything on the GUI from a background thread. If you need to do it (like we do as the poller is on a second thread) you need to synchronize the threads and basically fire the modifications from the thread which owns the GUI. The dispatcher is there for that.