Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Peter Bucher
Thema: Frage zum Programmierstil: zwei Rückgabewerte [und Alternativen dazu, z.B. Exceptions]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo DERKLAUS

Zitat von DERKLAUS
Darf in C# die Methode ihre Parameter auch ohne ref einfach überschreiben?
Die Daten sind Aussen wie Innen die gleichen. Wenn du also die Liste änderst, geht das problemlos.

"ref" musst du nur angeben, wenn du die Referenz der Liste überschreiben willst.

Das heisst, innerhalb der Methode eine Zuweisung deines Parameters selber machst, z.B.:


// Innerhalb der Methode.
stringList = new List<string>();

Siehe:
- Artikel: Parameterübergabe in C# (by value, by reference und out)
und
- [Artikel] Parameter-Übergabemechanismen: call by value vs. call by reference (ref/out)


Gruss Peter

Thema: [erledigt][ASP.NET] FileUpload Nur den Dateinamen ermitteln
Am im Forum: Web-Technologien

Hallo CShark2

Es gibt da eine Lösung.
Der Mimetyp muss
- http://www.aspnetzone.de/blogs/peterbucher/archive/2007/05/02/dateipfad-ohne-upload-der-datei-auslesen.aspx (Dateipfad ohne Upload der Datei auslesen)

Zitat
Beim serverseitigen FileUpload Control oder einem <input type="file" [...] dass serverseitig läuft, fügt ASP.NET automatisch das "enctype" Attribut mit dem Wert "multipart/form-data" zum Formular hinzu.

Zitat
Hinweis:
Im "enctype" Attribut wird der Mimetyp mit dem das Formular versendet wird, festgelegt.
Standardmässig steht diese Attribute auf "application/x-www-form-urlencoded", wenn man allerdings per POST einen Dateiupload ermöglichen will, muss der Wert auf "multipart/form-data" stehen.

Wenn dieses Attribut gesetzt ist, werden die Dateien übertragen, und genau das wollen wir in diesem Fall nicht.
Ist dieses Attribut (wie standardmässig), nicht gesetzt, wird anstelle der Datei und des Dateipfades, nur der Dateipfad per POST gesendet.

Erreichen können wir das mit einem normalen <input type="file" [...] Tag, das nicht serverseitig deklariert ist.
Man muss noch darauf achten, dass man hier das "name" Attribut zur Identifizierung benutzt, weil das anschliessende Request.Form[] auf dieses zugreift.
Zitat von Abt
Lösung: ohne die Datei hochzuladen und dem Server bekannt zu machen bleibt Dir nur Javascript. So würde man das auch bei MVC machen.
Der Dateiname ist hierbei im value-Attribut des Input-Felds.
Beschriebenes geht sicher auch über ASP.NET MVC, ist ja alles nativ.


Gruss Peter

Thema: Erstellen einer 2D-Tile-Anwendung
Am im Forum: Grafik und Sound

Hallo Horo

Wie versuchst du denn die PNGs zu zeichen?
Ich nehme an mit GDI+. Das kannst du gut nutzen, auch direkt auf die Form.

Wenn es aber anspruchsvoller wird, solltest du dann aber wegen der Performance eher auf andere Technologien ausweichen.

Siehe:
- [FAQ] Wie finde ich den Einstieg in die 3D-Programmierung mit C#?

Das ein Tutorial an der einen oder anderen Seite nicht zu deinen Anforderungen passt, ist normal. Du musst dich anpassen, nicht das Tutorial ;-)


Gruss Peter

Thema: Best Practices: Wohin mit den Datenbankmethoden?
Am im Forum: Rund um die Programmierung

Hallo Fabian710

Grundsätzlich alles was eine bestimmte Sache betrifft, zusammenfassen.

Beispiel:
- Datenbankzugriff
- Logging
- Konfiguration auslesen
- Logik um X zu berechnen
- Instanzen erstellen
- ...

Das nennt man dann "Auslagerung" und "Kapselung".
Zusätzlich kannst du, wenn nötig, abstrahieren.

Lies dich am besten mal ein wenig in die objektorientierte Programmierung ein. Beispielsweise unter:
- http://openbook.galileocomputing.de/oop/
- http://www.aspnetzone.de/blogs/peterbucher/archive/2010/03/01/abstraktion.aspx (Begriffsdefinition Abstraktion)


Gruss Peter

Thema: Codeformatierung: Position bzw. Nutzung der geschweiften Klammern bei Methoden bzw. bei if
Am im Forum: Rund um die Programmierung

Hallo Tehral

Die Leute bei Micosoft haben sich schon was dabei überlegt, als sie Konventionen aufgestellt haben. Am besten schaust du dort. Auch was andere Fragen in die Richtung angeht.
Tools wie StyleCop oder Resharper unterstützen auch standardmässig die Microsoft Konventionen.


Gruss Peter

Thema: Codeformatierung: Position bzw. Nutzung der geschweiften Klammern bei Methoden bzw. bei if
Am im Forum: Rund um die Programmierung

Hallo zusammen

Ich bin da voll bei der Meinung von Abt.


Gruss Peter

Thema: IComparable<T>, IComparer<T>, Comparison<T>: Welchen Einsatzzweck für was?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Daniel

Weitere Objekte / Informationen kannst du in allen Optionen mitgeben.
Bei IComparable indem du die betreffende Klasse so anpasst, sodass die Informationen in der Compare-Methode zur Verfügung stehen.

Und bei IComparison, indem du einfach verfügbare Objekte in den Lambda-Ausdruck übernimmst.

Ich denke ebenso wie herbivore, dass IComparison hauptsächlich wegen der Nutzung von Lambda, bzw anonymen Methoden eingebaut wurde.

Wenn es aber um Austauschbarkeit, Erweiterbarkeit geht und ggf. so eine Sortierung bzw. Vergleich komplexer wird, IComparer vor IComparison vorzuziehen ist. Denn dann hast du Instanzen und nicht irgendwelche freischwebenden Ausdrücke oder Referenzen auf statische / instanzbehaftete Methoden, wie bei IComparison.


Gruss Peter

Thema: Screenshot von Form (mit WebBrowser-Control) erstellen, auch wenn anderen Programm drüber ist
Am im Forum: Grafik und Sound

Hallo

Wenn es in einer Methode sein muss, die ein Bitmap zurückgibt, sollte folgende Lösung funktionieren:
- Get a screenshot of the web browser control?


Gruss Peter

Thema: Wie kommen Anfänger an die benötigten Informationen?
Am im Forum: Smalltalk

Hallo Silke

Was genau meinst du mit "wie ich hinter die Geheimnisse komme neuer Funktionen komme"?

Und was mit "die Hintergründe aus den vielen Post im Netz filter können"

Hinter einer neuen Methode, neuen Klassen, die du noch nicht kennst?
Oder neuen Frameworks und Features die rausgekommen sind?
Oder Best Practices?

Wichtig finde ich dass man weiss was man will. Und dann: Dass man weiss, wie man sucht.

Ist dies gegeben, findet man auch.


Gruss Peter

Thema: NetworkStream in Datei speichern + Fortschrittsanzeige des Downloads
Am im Forum: Netzwerktechnologien

Hallo emsch

Wieso verwendest du die CopyStream-Methode nicht auch beim Senden?
Hast du schon mal versucht, es möglichst zu vereinfachen; ob es dann funktioniert?


Gruss Peter

Thema: Fehler bei Berechnung: "System.InvalidCastException"
Am im Forum: Rund um die Programmierung

txtXYZ.Text

Du musst schon die Text-Eigenschaft nutzen, nicht das Control selber.

Thema: Dependency Inection via XML mit unbekannten DLLs
Am im Forum: Rund um die Programmierung

Hallo hannes123

Irgendwo und irgendwie musst du eine Konfiguration hinterlegen. Wenn nicht per XML, dann in einem anderen Dateiformat.

Du könntest aber, fallst du das selber entwickeln kannst, ein Modul schreiben, dass eine Art "Probing" machen würde.

Also ein Suchen deiner DLLs bzw. der Typen darin in vorbestimmten Pfaden.

Mit LightCore ist das über eine eigene Implementierung eines "RegistrationModule" möglich.
Siehe:
- http://lightcore.ch/de/documentation/extensibility.aspx


Gruss Peter

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

Hallo

Kompiliert bei mir nicht:

Fehler
Cannot implicitly convert type 'string' to 'int'

In Zeile:


limit = "five";

"soll", also eine Änderung machen, dann läuft es meinst du.

Gruss Peter

Thema: DTE ExecuteCommand: Zweites Kommando erst ausführen, wenn das erste abgeschlossen ist
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo unknown

Ich kenne SSDT überhaupt nicht.
Am besten wäre es, wenn du über DTE z.B. prüfen könntest. z.B. ob eine Datei erstellt wurde, der Build fertig ist.

Ob diese Möglichkeit besteht, kann ich dir aber nicht sagen.

Sonst bleibt dir nur noch die Möglichkeit, wie folgt im Link beim vorherigen Beitrag beschrieben. Warten mit einem Timer, wenn du ungefähr weisst, wie lange es geht.

Oder: warten, nächste Aktion probieren, wenn nicht erfolgreich, warten usw.

- DTE ExecuteCommand: Zweites Kommando erst ausführen, wenn das erste abgeschlossen ist


Gruss Peter

Thema: DTE ExecuteCommand: Zweites Kommando erst ausführen, wenn das erste abgeschlossen ist
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen

Beschäftige mich im Moment auch in einem ähnlichen Bereich.
Es soll Commands geben, die intern synchron laufen "File => New Project" z.B. aber auch solche die asynchron laufen, wie "Build Project".

Daher wäre es wichtig, den Kontext zu kennen.

Hier ein Beispiel, wie spezifisch auf ein "Build Command" eingegangen wird:
- DTE.ExecuteCommand and wait


Gruss Peter

Thema: 2D RPG Hobbyprojekt: Das Drachenauge
Am im Forum: Projekte

Hallo sorion

Die Bäume und Mauern sollten noch transparent sein.
Ist mit XNA simpel:
-https://www.google.ch/#psj=1&q=xna+2d+transparency


Gruss Peter

Thema: Nicht kommerzielles Online SourceCode Hosting
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen

Ich nutze schon seit längerem Kiln (Weboberfläche für Mercurial) und FogBugz (Bugtracking) integriert. Bin sehr zufrieden mit dieser Lösung.

Es läuft nativ Mercurial, unterstützt zusätzlich aber auch der Zugriff per Git.
Davon gibt es die kompletten Features als Studenten- / Startup-Version die allerdings auf 2 Benutzer beschränkt ist.

- http://www.fogcreek.com/kiln/pricing.html


Gruss Peter

Thema: .NET Usergroup Frankfurt 18. September : Was jeder über Node.js wissen sollte mit Golo Roden
Am im Forum: Szenenews

Hallo BerndFfm

Das hört sich ja interessant an. Wird es den Vortrag auch irgendwo als Videoaufzeichnung geben?


Gruss Peter

Thema: Überprüfen ob Eingegebener Wert schon in der DB existiert?
Am im Forum: GUI: WPF und XAML

Hallo Nurci

Und was ist deine Frage?


Gruss Peter

Thema: Framework: MEF - lightcore - XY?
Am im Forum: Rund um die Programmierung

Hallo Oliver

Zitat von Oliver Stippe
ich sehe nicht die Vorteile der Freeware http://lightcore.ch/de/documentation/

Die Beispiele laufen nicht, Namespace fehlen.
Muss man da was installieren?
Die Vorteile einer bestimmten Komponente gegenüber einer anderen ist Geschmackssache und wird auch davon bestimmt, was man denn genau braucht und ob die Komponente das unterstützt.

Dafür braucht es aber zuerst ein Verständnis der Grundlagen.

So wie ich das sehe sprichst du jetzt direkt LightCore an. Was für Beispiele laufen nicht?
LightCore enthält einige Beispiele. Ich nehme an die MVC-Beispiele laufen nicht, dafür muss man ASP.NET MVC in der benötigten Version installieren, ja.
Zitat von Oliver Stippe
Wann nehme ich diesen Framework?
Wann nehme ich MEF?

Vielleicht hat jemand ein prägnantes Projekt, wo man den Vorteil sieht.
Zum Unterschied von MEF zu IoC- / DI-Container liest du dich am besten im Netz ein, z.B. MEF (Managed Extensibility Framework) vs IoC/DI

MEF und DI-Container arbeiten unterschiedlich und können sich sogar ergänzen, da sie nicht wirklich miteinander in Konkurrenz stehen:
- autofac - MefIntegration

Es ist wirklich so das man verstehen muss und anschliessend beispielhaft anwendet. So werden einem dann die theoretisch verstandenen Vorteile offenbar.

Für die Grundlagen kannst du dich gerne in meine zwei Artikel einlesen:
- Teil 1: Umkehrung der Kontrolle erklärt, oder: Von der Fabrikmethode zum DI-Container
- Teil 2: Umkehrung der Kontrolle erklärt, oder: Von der Fabrikmethode zum DI-Container


Gruss Peter

Thema: [erledigt] MultiSelectList: Selected Values werden nicht markiert!
Am im Forum: Web-Technologien

Hallo Steffo

Wenn du die Entwicklung ernst nimmst und dir Qualität und vermeiden von Fehlerquellen lieb ist, nimm die Ratschläge von Abt an.

Den Fehler hast du nicht mehr, wenn du von Hand das HTML aus der Liste erzeugst, ausser du baust den gleichen Fehler von Hand ein, was unwahrscheindlich ist.

Recht hast du sicherlich, das es trotzdem interessant wäre, woran der Fehler liegt.
Ich hatte einmal ein ähnliches Problem. Damals lag es an einer Überladung die nicht passte.

Am besten suchst du dafür einmal Englisch nach deinem Problem. Du findest bestimmt etwas.


Gruss Peter

Thema: myCSharp.de ist 10 Jahre jung
Am im Forum: Ankündigungen

Gratulation myCSharp!

Thema: Referenztyp mit ref Parameter übergeben? Sinnlos? [==> es gibt sinnvolle Fälle]
Am im Forum: Rund um die Programmierung

Hallo nicky

Es gibt im Forum einen Artikel über dieses Thema.
- [Artikel] Parameter-Übergabemechanismen: call by value vs. call by reference (ref/out)

Darunter findest du noch ein Blogpost, den ich geschrieben habe.
Ich denke mit diesen beiden sollten keine Fragen mehr offen bleiben.

Die Entwickler von C# haben sich schon was dabei gedacht und bauen meist keine unvernünftige Features ein, meist.


Gruss Peter

Thema: OpenPop Authentifizierungsprobleme von Remote Server
Am im Forum: Netzwerktechnologien

Mit einer auf POP beschränkten Library, ja ;-)

@nicky
Schau mal hier:
- Google-Suche nach Server did not accept user credentials gmail


Gruss Peter

Thema: OpenPop Authentifizierungsprobleme von Remote Server
Am im Forum: Netzwerktechnologien

Hallo Abt

Zitat von Abt
Ich verwende GoogleMail nicht.. aber haben die nicht standardmäßig IMAP und man muss POP3 aktiv über die Einstellungen freischalten?
Ich weiss per Zufall dass es so ist.

Aber wenn lokal POP geht, muss es ja auch in den Einstellungen freigeschaltet sein.


Gruss Peter

Thema: Benutzt ihr #region und wenn ja habt ihr ein bestimmtes Schema?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen

Danke für eure Antworten, das erweitert doch den manchmal arg kleinen und festgefahrenen Glaubenshorizont :-).

Es gibt in so gut wie allen Fällen keine einzige Ansicht, die passt, sondern Teile aus verschiedenen Ansichten, die zu einer passenden werden.


Gruss Peter

Thema: Benutzt ihr #region und wenn ja habt ihr ein bestimmtes Schema?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen

Früher habe ich Region benutzt, heute überhaupt nicht mehr.
Begründet habe ich mir das früher das ich grosse Klassen hatte und es folgendend Unterteilungen nötig hatte.

Der Fehler ist m.E. nicht, das man Region benutzt, sondern das die Klassen zu gross sind und man deshalb Region benutzt.

Ein gutes Beispiel ist folgende Klasse:
- Kommentare (und Regions) zur optischen Gliederung (z.B. Trennlininen) einsetzen: Best Practice?

Während ich an einer Klasse arbeite, nutze ich manchmal auch Collapse / Expand für die Methoden, wie Console32.

@Abt und die anderen Verfechter
Was bringt es euch, Region als Unterteilung zu benutzen? Übersichtlichkeit lasse ich nicht durchgehen, denn ich nehme an, eure Klassen sind meistens nicht über 200 Zeilen gross?
Und mit einem Scrollen des Mausrads, oder einem Page-Down, ist man dann auch schon fast da, wo man sein will.

Ich sehe einfach keinen Grund mehr - ausser das die Klassen zu gross wären - Region zu benutzen.


Gruss Peter

Thema: ASP.Net: Single-File oder Code-Behin Model ?
Am im Forum: Web-Technologien

Hallo egamer

Codebehind ist ganz klar sauberer für Webforms, da getrennt.


Gruss Peter

Thema: MediaPlayer.DownloadProgress nur 0.0 oder 1.0
Am im Forum: GUI: WPF und XAML

Hallo UZI

Zitat von UZI
[offtopic] Darf ich rechtlich überhaupt DLLs aus dem .NET Framework decompilen/disassemblieren, um zu schauen ob ein Fehler enthalten ist? [/offtopic]
Ja, es handelt sich hierbei um eine readonly Reference-Source-Lizenz.

Das heisst, dekompilieren und schauen ist erlaubt. Kopieren nicht. Nur "sinnesgemäss", also was nach dem schauen im Gedächnis verbleibt, nicht 1:1.

Siehe:
- http://referencesource.microsoft.com/netframeworklicense.aspx
- http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx


Gruss Peter

Thema: Konvertierung in beliebigen Typ
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo andski

Nicht nur in deinem Fall, sondern auch im Web ist so eine Methode nützlich. Denn da kommt auch vieles als String daher.
Bei meiner Lösung hast du noch die Möglichkeit, optional einen Standardwert anzugeben, falls es fehlschlägt und es wird auch Nullable<T> unterstützt.

Ansonsten sieht es sehr ähnlich aus.

- Typkonvertierung vereinfacht, oder: <Value>.ToOrDefault<Type>();

Der Code:


public static partial class Common
{
    /// <summary>
    /// Gibt ein typisiertes Objekt aus einem String zurück.
    /// Falls die Umwandlung nicht erfolgreich ist, wird stattdessen
    /// der Standardwert des Zieltypen zurückgegeben.
    /// </summary>
    /// <typeparam name="T">Zieltyp</typeparam>
    /// <param name="value">Zu typisierenden String</param>
    /// <param name="defaultValue">Standardwert (Wird bei Fehlschlag zurückgegeben)</param>
    /// <returns>Typisiertes Objekt</returns>
    public static T ToOrDefault<T>(this string value, T defaultValue)
    {
      T result = defaultValue;

      if (value == null)
        return result;

      TypeConverter converter = TypeDescriptor.GetConverter(typeof(T));
      if (converter.CanConvertFrom(typeof(string)))
      {
        try
        {
          result = (T)converter.ConvertFrom(value);
        } catch (Exception) {}
      }

      return result;
    }

    /// <summary>
    /// Gibt ein typisiertes Objekt aus einem String zurück.
    /// Falls die Umwandlung nicht erfolgreich ist, wird stattdessen
    /// der Standardwert des Zieltypen zurückgegeben.
    /// </summary>
    /// <typeparam name="T">Zieltyp</typeparam>
    /// <param name="value">Zu typisierenden String</param>
    /// <returns>Typisiertes Objekt</returns>
    public static T ToOrDefault<T>(this string value) {
        return value.ToOrDefault<T>(default(T));
    }
}

Gruss Peter