Seite 1 von 1

C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 09:53
von paul79
Hallo!

Da wir hier ja das Welt-Universal-Forum sind versuche ich nun auch mal mein Glück! :D

Ich bin gerade dabei mich in C# einzuarbeiten. Das geht auch soweit ganz gut vorwärts. Ich suiche jedoch noch einige Seiten in den weiten des Internet die für Einsteiger gut geeignet sind.

Das meiste was ich bisher gefunden habe waren entweder "nur" Foren oder sehr tiefgreifende Erklärungen.

Kennt jemand gute Seiten oder evtl. auch eBooks die zum Einstieg gut geeignet sind?

Besonders hänge ich gerade dabei Funktionen einer externen DLL zu nutzen. Besonders bei der Umwandlung der Datentypen. Das es irgendwie mit DLLImport und MarshallAs geht weiß ich inzwischen, aber das Thema wird überall nur angeschnitten und leider nicht genauer behandelt. :thinker: :thinker:

Wenn jemand weiß wo ich entsprechende Infos, egel ob allgemein oder zu meinem aktuellen, speziellen Problem finden kann wäre es Klasse!

Bevorzugt WWW Seiten in deutsch oder englisch. Dürfen aber auch gerne Bücher sein!

Gruß
Paul

PS: Bin ja mal gespannt was das Welt-Forum hier zu bieten hat! :D

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 10:57
von jk
also über c/c++ und assembler könnten wir uns unterhalten, aber C# hab ich selbst schon länger installiert und noch nicht mal ein "hallo welt" damit gebastelt... *schäm*

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 11:03
von Harvey
http://www.codeguru.com ist zwar auch recht speziell, aber vielleicht findest Du unter http://www.codeguru.com/csharp/csharp/c ... php/c4239/ was Du suchst.

C# kenne auch ich nur dem Namen nach.

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 11:23
von paul79
Danke für die Antworten!

[quote=""jk""]also über c/c++ und assembler könnten wir uns unterhalten, aber C# hab ich selbst schon länger installiert und noch nicht mal ein "hallo welt" damit gebastelt... *schäm*[/quote]

Hm... Assembler. Erinnerungen werden wach. Programmierten wir in der Ausbildung. Hat viel Spaß gemacht, da wusste man noch wie die Bits durch die Register geschoben wurden! :D

[quote=""Harvey""]http://www.codeguru.com ist zwar auch recht speziell, aber vielleicht findest Du unter http://www.codeguru.com/csharp/csharp/c ... php/c4239/ was Du suchst.

C# kenne auch ich nur dem Namen nach.[/quote]

Danke für den Hinweis. Schau ich mir über's Wochenende mal an.

Euere Antworten zeigen mir schon das gleich was ich auch bei der Suche mit Google schon gedacht habe. Zu C++ findet man wesentlich mehr, sowohl für Anfänger, Fortgeschrittene als auch die meisten Dokus zu den benutzbaren DLLs beziehen sich auf C++.

In den meisten vergleichen der Sprachen liest man als Fazit jedoch das die Zukunft der Windows-Programmierung wohl bei C# liegen soll. Ich bin ständig hin und her gerissen. :crazy: :crazy:

Mal sehen evtl. installiere ich am WE doch auch mal die C++ Entwicklungsumgebung und schaue mal ob ich das mit der vorhandenen Doku nicht evtl. doch schneller hinbekomme!


Gruß
Paul
*Sich auf weitere Meldungen freuend*

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 11:30
von jk
das gute an asselbler ist, daß man der kiste sagt was sie zu tun hat, mit der ganzen objektorientieren programmierung und dem multitasking von heute ("neumodernes klumpert") kann man ja den scheduler ja nur mehr darum "bitten" etwas zu tun wenn er denn dafür zeit hat.

früher war's noch hart, entweder das ding tat was man wollte, oder er ist eben abgestürzt und hat die zusammenarbeit mit meinem code verweigert, warum auch immer :D

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 13:59
von schasskistn
ich hänge für windows entwicklungssachen gerne auf:

http://www.codeproject.com

rum, hat ein ehemalige codeguru regular (und MFCGridCtrl schreiber) gegründet und ist mittlerweile eine riesen platform (mit sehr guter einteilung) geworden.

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 14:52
von Pippin
Hallo,

sitze gerade "nebenbei" im Visual Studio und mache ein wenig C# (und bekomme sogar noch Geld dafür :wink: ).
Wenn man C++ kann und auch schon mit MFC Erfahrungen, dann sollte die Einarbeitung nicht schwer fallen. Mein Fazit zu C# und .NET: Für alles was GUI ist, sehr zu empfehlen.

Noch ein paar Links
Teach yourself C# in 24 Hours
http://www.csharphelp.com/

Codeguru und Codeproject wurden ja schon genannt.

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 14:52
von Woodman
[quote=""paul79""]...
Kennt jemand gute Seiten oder evtl. auch eBooks die zum Einstieg gut geeignet sind?

...[/quote]Hallo Paul,
ich getrau mich kaum zu fragen: Hast Du's schon mal mit google versucht?
U.a werden folgende Seiten gemeldet:
http://www.galileocomputing.de/openbook/csharp/
http://www.heise.de/ix/artikel/2001/12/122/
http://www.rrzn.uni-hannover.de/buch.html?titel=c_sharp
http://csharpcomputing.com/Tutorials/TOC.htm

usw.

Viel Spaß beim Sichten :p

AW: C# Einsteiger Tutorials

Verfasst: Do 28. Sep 2006, 15:00
von jk
ich greif da noch immer zum borland c-builder, das ding bin ich recht gewohnt und für was schnelles in c mit herzeigbarem frontend find ich das teil klasse

AW: C# Einsteiger Tutorials

Verfasst: Fr 29. Sep 2006, 10:11
von khdtrader
Ich laß dir mal was zukommen ... :p crock:

AW: C# Einsteiger Tutorials

Verfasst: Fr 29. Sep 2006, 15:17
von hagge
[quote=""paul79""]Ich bin gerade dabei mich in C# einzuarbeiten. Das geht auch soweit ganz gut vorwärts. Ich suiche jedoch noch einige Seiten in den weiten des Internet die für Einsteiger gut geeignet sind.[/quote]
Hast Du es schon mal mit der Doku von Visual Studio selbst probiert?

Visual Studio .NET -> Visual Basic und Visual C# -> Referenz -> Visual C#-Sprache.

Dort findet man eigentlich alles was man braucht, inklusive Beispiele. Darunter gibt es dann noch die .NET-Framework-Referenz.
Besonders hänge ich gerade dabei Funktionen einer externen DLL zu nutzen. Besonders bei der Umwandlung der Datentypen. Das es irgendwie mit DLLImport und MarshallAs geht weiß ich inzwischen, aber das Thema wird überall nur angeschnitten und leider nicht genauer behandelt. :thinker: :thinker:
Ist ja auch nicht immer trivial, zumindest wenn man externe DLLs mit unmanaged Code meint. Wenn Du Strukturen übergeben musst, die Zeiger beinhalten, wird es besonders schwer bis nahezu unmöglich.

Ich habe hier ein Beispiel von Windows CE. Das C#-Programm benutzt direkt die Funktionen CreateFile(), CloseHandle(), ReadFile() und WriteFile() aus der coredll. Hier die Deklaration der Konstanten und DLL-Funktionen.

Code: Alles auswählen

        // CreateFileW()
        internal const UInt32 METHOD_BUFFERED = 0;
        internal const UInt32 METHOD_IN_DIRECT = 1;
        internal const UInt32 METHOD_OUT_DIRECT = 2;
        internal const UInt32 METHOD_NEITHER = 3;

        internal const UInt32 FILE_ANY_ACCESS = (0 << 14);
        internal const UInt32 FILE_READ_ACCESS = (1 << 14);    // file & pipe
        internal const UInt32 FILE_WRITE_ACCESS = (2 << 14);   // file & pipe

        internal const Int32 INVALID_HANDLE_VALUE = -1;
        internal const UInt32 OPEN_EXISTING = 3;

        [DllImport("coredll.dll", EntryPoint="CreateFileW",
                   SetLastError = true)]
        private static extern
        IntPtr CECreateFileW(String lpFileName, UInt32 dwDesiredAccess,
                             UInt32 dwShareMode,IntPtr lpSecurityAttributes,
                             UInt32 dwCreationDisposition,
                             UInt32 dwFlagsAndAttributes,
                             IntPtr hTemplateFile);

        // CloseHandle()
        [DllImport("coredll.dll", EntryPoint="CloseHandle",
                   SetLastError = true)]
        private static extern
        int CECloseHandle(IntPtr hObject);

        // ReadFile()
        [DllImport("coredll.dll", EntryPoint="ReadFile", SetLastError = true)]
        private static extern
        int CEReadFile(IntPtr hFile, byte[] lpBuffer,
                       Int32 nNumberOfBytesToRead,
                       out Int32 lpNumberOfBytesRead, IntPtr lpOverlapped);

        // WriteFile()
        [DllImport("coredll.dll", EntryPoint="WriteFile", SetLastError = true)]
        private static extern
        int CEWriteFile(IntPtr hFile, byte[] lpBuffer,
                        Int32 nNumberOfBytesToWrite,
                        out Int32 lpNumberOfBytesWritten, IntPtr lpOverlapped);
Aufrufen kann man das dann z.B. so:

Code: Alles auswählen

            hPort = CECreateFileW(FileName, (UInt32)access, 0, IntPtr.Zero,
                                  OPEN_EXISTING, 0, IntPtr.Zero);
            if (hPort == (IntPtr)INVALID_HANDLE_VALUE)
            {
                throw new Exception("Can't open file");
            }
Vielleicht hilft das schon ein bisschen weiter. Das Grundkonzept müsste klar sein.

Wegen der Typumwandlung beim Aufruf:
Arrays kann man direkt anstelle von Pointern übergeben, einfache Variablentypen (int, char, usw) auch. Strukturen sind wie gesagt schwierig. Pointer auch. Obwohl mein Beispiel ja schon ein paar Sachen zeigt.

Auf dem PC müsste es noch einfacher gehen, aber auf WinCE gibt es viele Marshalling-Funktionen nicht (oder erst ab Compact Framework 2.0 oder gar 3.0), da ist es richtig knifflig und muss manchmal über Bytefelder simuliert werden. Und wehe das soll dann auf einer Maschine mit anderem Byte-Ordering laufen, au weia...

Gruß,

Hagge

AW: C# Einsteiger Tutorials

Verfasst: Fr 29. Sep 2006, 16:18
von Bonni
Auch wenn ich's gerade nicht brauche, vielen Danke für die Links. Man weiß ja nie ...

AW: C# Einsteiger Tutorials

Verfasst: Sa 30. Sep 2006, 10:28
von paul79
Auch ich bedanke mich für die ganzen Links. Bin jetzt fleissig am lesen. Mal sehen was ich hinbekomme!

Gruß
Paul