Diskussion:Arbeiten mit .NET: C-Sharp/ Inhaltsverzeichnis/ Archiv

Thema hinzufügen
Aktive Diskussionen

FeedbackBearbeiten

Dickes Lob, was ich bisher gesehen habe hat mich begeistert! --62.224.38.189 23:35, 18. Dez. 2007 (CET)

Super Buch ;), wird mich wohl noch eine Weile begleiten =) Danke! --82.210.233.229 13:25, 13. Jan. 2010 (CET)

Als Fachmann muss ich euch bremsen. Auf verschiedenen Seiten sind mehr oder weniger gravierende Mängel enthalten, siehe z.B. Diskussion:Programmierkurs C-Sharp: Verzweigungen oder Diskussion:Programmierkurs C-Sharp: Schleifen#Verwertbarkeit. Ich möchte daraus ein "ordentliches" Buch machen, aber das wird sich noch etwas hinziehen. Bis dahin muss ich um "kritisches Lesen" bitten! -- Jürgen 13:33, 13. Jan. 2010 (CET)

Design PatternsBearbeiten

Für Design Patterns gibt es doch schon ein Wikibook: Entwurfsmuster . Könnte in diesen Abschnitten ausschließlich auf die Implementierung eingegangen werden? Oder noch besser: Hier nur eine einfache Einführung und der rest im Entwurfsmuster-buch?--C.hahn 13:55, 9. Okt. 2007 (CEST)

DownloadsBearbeiten

Der Download für .NET 3.0 klappt net ... Seite net gefunden ...

Bedeutung der Icons in den Info-Boxen?Bearbeiten

Gibt es irgendwo eine Liste, was die Icons am Kopf der Infoboxen genau zu bedeuten haben? Ein paar (Monitor-Icon, ...) kann man sich ja denken, aber was bedeutet z.B. das rote X? Ist das evtl. ein Löschkandidat? --WikiBookPhil 01:54, 23. Mai 2008 (CEST)

Menü wie bei VB.NET?Bearbeiten

Hallo, wäre es möglich das Menü von VB.NET Visual Basic .NET: Vorlage:Navigation in eine eigene Vorlage für C# zu übernehmen und dann einheitlich zu verwenden. Weil im Moment lässt sich das hier leider nicht wie ein Buch lesen. Ich frage deshalb, weil ich mich mit den Konventionen von Wikibooks noch nicht so genau auseinandergesetzt habe ;) --XZise 16:52, 30. Mär. 2009 (CEST)

Es gibt eine Reihe einheitlicher Vorlagen, siehe Kategorie:Vorlage. Ich schlage vor, diese zu übernehmen:
Vorlage:Navigation Buch für die Navigation
Regal:Programmierung: Vorlage:Code für die Code-Beispiele -- Juetho 14:04, 11. Okt. 2009 (CEST)

Fortgeschrittene Programmiertechniken I - DatenverarbeitungBearbeiten

Ich möchte mich an diesem Buch gerne beteiligen – zurzeit beschäftige ich mich mit Einführung in SQL. Der Bereich "Datenverarbeitung" müsste erheblich detaillierter werden als bisher skizziert. Ich könnte mir aber vorstellen, dass das den Rahmen sprengen würde, und möchte es deshalb erstmal zur Diskussion stellen.

  • Textdateien (wie vorgesehen)
  • Xml-Dateien (etwa wie vorgesehen)
  • Grundsätze von ADO.NET - Daten trennen: Festplatte, Arbeitsspeicher, GUI
Die Ausgangsfrage ist meistens: Wie bekomme ich Daten aus einer TextBox auf die Festplatte, vor allem in eine Datenbank? Das kann leider so nicht beantwortet werden, weil dazu viele Einzelthemen wichtig sind.
  • Daten im Arbeitsspeicher, vor allem DataSet/DataTable (ohne Typisierung)
  • Wie kommen die Daten von der Festplatte in den Arbeitsspeicher und zurück?
    • ReadXml, WriteXml
    • DbConnection, DbProvider
    • DbDataAdapter
    • DbDataReader
    • DbCommand.ExecuteNonQuery
  • Wie kommen die Daten vom Arbeitsspeicher in die GUI und zurück?
    • DataGrid
    • DataGridView
    • BindingSource
    • DataBinding, z.B. mit TextBoxen usw.
    • es fehlen noch die Möglichkeiten von WebForms, davon habe ich überhaupt keine Ahnung
    • irgendwohin gehört auch die Darstellung "beliebiger" xml-Dateien durch TreeView usw.
  • Erweiterungen:
    • typisiertes DataSet mit Visual Studio
    • dito ohne VS mit xsd.exe
    • TableAdapter des VS

Eine andere Reihenfolge kann sinnvoll sein, das habe ich jetzt noch nicht überlegt. Mir ging es darum, die Komplexität des Bereichs anzusprechen und um Vorschläge zur Behandlung zu bitten. -- Juetho 13:53, 11. Okt. 2009 (CEST)

Nachtrag: Es ist mir bewusst, dass das alles wenig mit C# (wie auch wenig mit VB.NET oder Delphi Prism) und sehr viel mit dem NET-Framework zu tun hat. Vielleicht wäre es besser, das .NET-Buch aus der Versenkung zu holen und diesen Teilbereich dort zu bearbeiten. -- Juetho 10:28, 12. Okt. 2009 (CEST)

Feedback JoachimBearbeiten

Danke für die gelungene Einführung in C#
Leider is die Einführung aber nicht immer verständlich wenn man den Beispiel-Code nicht einfach ausprobieren kann. Siehe Dazu "Das Beispiel funktioniert nicht in C# 2008 Express" (im nächsten Abschnitt) zum Thema Programmierkurs C-Sharp: Multithreading Grundlagen. -- Beiträge/93.223.127.205 18:12, 12. Feb. 2010 (CET)

Das Beispiel funktioniert nicht in C# 2008 ExpressBearbeiten

Fehlermeldungen:
Fehler 1 Der Typ- oder Namespacename "ComponentModel" ist im Namespace "System" nicht vorhanden. (Fehlt ein Assemblyverweis?)
Fehler 2 Der Typ- oder Namespacename "RunWorkerCompletedEventArgs" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
Fehler 3 Der Typ- oder Namespacename "DoWorkEventArgs" konnte nicht gefunden werden. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
Beiträge/93.223.127.205 17:53, 12. Feb. 2010 (CET)

Die dort genannten Fehler sind alles Standardfehler nicht des Programms, sondern des Programmierers. Es sieht so aus, als ob du die folgende Zeile nicht übernommen hast:
using System.ComponentModel;
Alle Bezeichner, die als "unbekannt" bezeichnet werden, gehören zu diesem Namespace. Bitte kontrolliere das und berichtige die Seite.
Beiträge auf Diskussionsseiten sollten unterschrieben werden mit 4 Tilden: ~~~~. -- Gruß -- Jürgen 19:03, 12. Feb. 2010 (CET)

Benutzter Code kopiert aus Beispiel

using System;
using System.Collections;
using System.ComponentModel;

namespace Org.Wikibooks.De.CSharp.MultiThreading
{
    class Program
    {
        static void Main(string[] args)
        {
            //
            // Test MIT zusätzlichen Threads.
            // Und zwar nehmen wir für jede Zahl einen eigenen,
            // so dass jeder dann anfangen kann, sobald das Betriebssystem
            // es ihm erlaubt.
            //

            // Wir wählen 10 verschiedene Zahlen aus,
            // die die Position innerhalb der Reihe darstellen.
            // Von diesen Zahlen lassen wir uns die Fibonacci-Zahl geben.
            int[] fibonacciFolge_PositionsListe = new int[] { 5, 9, 11, 16, 20, 25, 30, 35, 40, 45 };
            ArrayList workerList = new ArrayList(fibonacciFolge_PositionsListe.Length);
            DateTime startGesamt = DateTime.Now;

            foreach (int position in fibonacciFolge_PositionsListe)
            {
                // Wir schicken für jede Aufgabe einen "Backgroundworker" ins Rennen.
                BackgroundWorker worker = new BackgroundWorker();
                // Um sie kontrollieren zu können,
                // schreiben wir sie auf unsere "Lohnliste".
                workerList.Add(worker);

                //
                // Jetzt geben wir dem neuen Thread noch Arbeitsanweisungen ...
                //
                // Lieber "BackgroundWorker", bitte erledige diesen Job.
                worker.DoWork += new DoWorkEventHandler(worker_DoWork);
                // Und wenn du fertig bist, sage bitte hier Bescheid.
                worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);

                //
                // ... alles erledigt, Belehrung erfolgt: Lasst die Spiele beginnen!
                //
                // Fange jetzt bitte an zu arbeiten!
                worker.RunWorkerAsync(position);
            }

            // Wir haben alle an die Arbeit geschickt.
            // Jetzt warten wir auf das Ende.
            Console.WriteLine("... Warte auf Ende der Berechnungen...");
            bool istBeschaeftigt = true;
            // ... Mindestens einmal müssen wir alle worker fragen...
            do
            {
                foreach (BackgroundWorker worker in workerList)
                {
                    istBeschaeftigt = worker.IsBusy;
                    // Wenn wenigstens einer noch beschäftigt ist,
                    // brauchen wir gar nicht weiter prüfen.
                    if (istBeschaeftigt == true)
                        break;
                }
            }
            while (istBeschaeftigt == true);
            DateTime endeGesamt = DateTime.Now;
            TimeSpan spanneGesamt = endeGesamt - startGesamt;
            Console.WriteLine("Die Berechnung aller Zahlen hat {0} Sekunden gedauert."
                               , spanneGesamt.Seconds);
            Console.ReadLine();
        }

        static void worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            // Würdest du bitte das Ergebnis deiner Berechnungen 
            // auf der Konsole ausgeben?!
            Console.WriteLine("Die Zahl an Position {0} lautet: {1}"
                               , (int)((object[])e.Result)[0]
                               , (long)((object[])e.Result)[1]);
        }

        static void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            long fibonacciZahl = 0;
            int position = (int)e.Argument;

            // Wir holen uns ein neues Objekt
            Fibonacci fibonacci = new Fibonacci();
            fibonacciZahl = fibonacci.Berechne(position);

            // Wir speichern das Ergebnis in einem object-Array...
            object[] ergebnis = new object[] { position, fibonacciZahl };
            // ... und legen dieses object-Array in das "Result".
            e.Result = ergebnis;
        }
    }

    class Fibonacci
    {
        public long Berechne(int zahl)
        {
            if (zahl <= 1)
                return zahl;

            return Berechne(zahl - 1) + Berechne(zahl - 2);
        }
    }
}

Beiträge/93.223.127.205 20:46, 12. Feb. 2010 (CET)

Was jetzt das Kopieren des Codes bedeuten soll, verstehe ich überhaupt nicht. Außerdem erwarte ich, dass du deine Diskussionsbeiträge unterzeichnest. (Ist das jetzt das zweite oder dritte Mal, dass ich danach frage?) -- Jürgen 21:00, 12. Feb. 2010 (CET)

Sorry Ich bin Joachim aber der Teil "using System.ComponentModel;" ist bei mir das Problem "siehe Fehler (Fehler 1 Der Typ- oder Namespacename "ComponentModel" ist im Namespace "System" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:\Users\Joca\Documents\Visual Studio 2008\Projects\Schulung wiki Csharp\Schulung wiki Csharp\CodeFile1.cs 3 14 Schulung wiki Csharp )

Ich will mich hier nicht wichtig machen " Ich bin Joachim aus Oldenburg und will C# lernen
Ich habe meine letzten Progammierkenntnisse in Basic (C-64)
und SPS (siemens, Mitsubishi (AWL,KOP,FUP ... usw)

Was mach ich also falsch wenn ich die Beispiele ausprobieren will ? (liegt es daran das der Schreiber denkt "ausprobieren braucht ein Anfänger nicht ?)
oder ist das doch kein Einsteiger Wiki?
Beiträge/93.223.127.205 21:11, 12. Feb. 2010 (CET)

Wenn(!) das Buch mal fertig ist, ist es (auch) eines für Einsteiger. Die Autoren, die in der Vergangenheit an diesem Buch gearbeitet haben, haben leider keine besonders gute Arbeit geleistet. Es ist einfach schlicht in der jetzigen Form ungeeignet für Lern-/Lehrzwecke. Wenn Du was zu so einem Buch beitragen willst, muss das natürlich auf "Profiniveau" erfolgen. Schließlich geht es inhaltich um normale Bücher, wie man sie auch in der Buchhandlung oder Bibliothek findet. --84.131.154.177 21:32, 12. Feb. 2010 (CET)
Ich habe den monierten Code mal ausprobiert: Sowohl in SharpDevelop als auch in VS C# Express (2005) habe ich jeweils eine neue Anwendung für Console erstellt, den Code einfach reinkopiert und kompoliert. Es gab überhaupt keine Fehlermeldung.
Komm mir nicht mit der Version 2005 gegenüber 2008: Was unter 2005 läuft, läuft auch unter 2008 (umgekehrt ist es nicht immer sicher, aber in diesem Fall würde es auch gelten.) Also musst du irgendeine Kleinigkeit übersehen haben. -- Jürgen 15:40, 14. Feb. 2010 (CET)

Mein Beitrag zu 3D / Der WürfelBearbeiten

Ausserdem finde ich es Schade das du meinen 3_D Beitrag löschst.
immerhin hast du zu fragen und antworten aufgerufen.!!!!!!!!!!!! Ausserdem war das ein interessantes Thema.
Wenn du es verschoben hättest zu"Programmierbeispiele" hätt ichs noch verstanden ... Beiträge/93.223.127.205 20:46, 12. Feb. 2010 (CET)

Das muss hier nicht doppelt diskutiert werden, siehe Benutzer Diskussion:Joachim. -- Jürgen 15:40, 14. Feb. 2010 (CET)
Zurück zur Seite „Arbeiten mit .NET: C-Sharp/ Inhaltsverzeichnis/ Archiv“.