Laden...
Avatar #jVxXe7MDBPAimxdX3em3.jpg
Peter Bucher myCSharp.de - Experte
Software Entwickler Zentralschweiz Dabei seit 17.03.2005 5.942 Beiträge
Benutzerbeschreibung
Mein Name ist Peter Bucher, seit langer Zeit beschäftige ich mich schon mit Webtechnologien. Angefangen habe ich mit Html und Classic ASP. Jetzt arbeite ich vorallem mit .NET-Technologien.

Forenbeiträge von Peter Bucher Ingesamt 5.942 Beiträge

05.03.2014 - 12:45 Uhr

Hallo zusammen

Ich bin da voll bei der Meinung von Abt.

Gruss Peter

23.01.2014 - 17:42 Uhr

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

13.01.2014 - 12:53 Uhr

Hallo

Wenn es in einer Methode sein muss, die ein Bitmap zurückgibt, sollte folgende Lösung funktionieren:

Gruss Peter

16.12.2013 - 14:55 Uhr

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

02.12.2013 - 18:08 Uhr

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

21.11.2013 - 22:02 Uhr

txtXYZ.Text

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

11.11.2013 - 16:11 Uhr

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:

Gruss Peter

06.11.2013 - 17:39 Uhr

Hallo

Kompiliert bei mir nicht:> Fehlermeldung:

Cannot implicitly convert type 'string' to 'int'

In Zeile:


limit = "five";

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

Gruss Peter

31.10.2013 - 10:56 Uhr

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.

Gruss Peter

30.10.2013 - 15:27 Uhr

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:

Gruss Peter

10.10.2013 - 15:05 Uhr

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

22.08.2013 - 16:08 Uhr

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.

Gruss Peter

22.08.2013 - 12:55 Uhr

Hallo BerndFfm

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

Gruss Peter

12.08.2013 - 15:31 Uhr

Hallo Nurci

Und was ist deine Frage?

Gruss Peter

09.08.2013 - 14:38 Uhr

Hallo Oliver

ich sehe nicht die Vorteile der Freeware
>

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.

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:

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:

Gruss Peter

08.08.2013 - 13:27 Uhr

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

21.07.2013 - 17:55 Uhr

Gratulation myCSharp!

06.07.2013 - 02:30 Uhr

Hallo nicky

Es gibt im Forum einen Artikel über dieses Thema.

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

27.06.2013 - 10:52 Uhr

Mit einer auf POP beschränkten Library, ja 😉

@nicky
Schau mal hier:

Gruss Peter

27.06.2013 - 10:07 Uhr

Hallo 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

24.06.2013 - 12:17 Uhr

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

24.06.2013 - 09:49 Uhr

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:

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

16.06.2013 - 20:58 Uhr

Hallo egamer

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

Gruss Peter

27.05.2013 - 17:49 Uhr

Hallo UZI

Darf ich rechtlich überhaupt DLLs aus dem .NET Framework decompilen/disassemblieren, um zu schauen ob ein Fehler enthalten ist?){gray}

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:

Gruss Peter

17.05.2013 - 12:48 Uhr

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.

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

15.05.2013 - 19:10 Uhr

Hallo Geaz

Der Bauvorgang hat geklappt.
Die Icons rechts unten in der Windows-GUI würde ich noch mit einem Text, beim Drüberfahren mit der Maus bestücken. So ist es zu unverständlich.

Gruss Peter

15.05.2013 - 13:19 Uhr

Hallo BerndFfm

Ich glaube die Projekte sind einfach zu gross, sodass die Bilder zu gross werden.
Am besten wäre wohl, die Software einmal an einem grösseren OpenSource-Projekt ausprobieren.

Gruss Peter

15.05.2013 - 01:52 Uhr

Hallo Geaz

Ich habe das Tool getestet und habe probiert die Dokumentation für einige von meinen Projekten, unter anderem auch LightCore zu bauen.

Dabei kam eine NullReference Exception, gleich am Anfang beim bauen.
StackTrace:> Fehlermeldung:

at SharpDox.Build.Context.BuildContext.BuildDocumentation()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

Die Meldungen lauten wie folgt:> Fehlermeldung:

Starte Bauvorgang...
Lade Lösung. Dauer variiert mit der Projektgrösse...
Die Dokumentation konnte nicht erstellt werden. Object reference not set to an instance of an object.

Du brichst die Ausführung nicht ab, falls eine Exception aufgetreten ist, darum erscheint die Meldung auch in deinem Statustext.
Würde das noch ändern und einen ErrorScreen samt anschliessendem beenden des Programmes einfügen.

Du kannst gerne den LightCore-Quellcode (Siehe Link in meiner Signatur) zum testen nehmen. (Lief auch nur mit dem LightCore.csproj nicht.

Würde mich freuen, wenn du es zum laufen bringst.

Gruss Peter

12.05.2013 - 17:33 Uhr

Hallo

Mit dem typeof()-Operator wärst du mit deinem Ansatz auch ans Ziel gelangt.

Gruss Peter

07.05.2013 - 19:41 Uhr

Hallo zusammen

MSN ist vorbei. Skype integriert und hat mehr Funktionen.
Wem das schon nicht gefällt, was macht er dann wenn Viber die Überhand zu Skype gewinnt.

Scheint ja ausserlandes schon ein richtiger Boom zu sein.
Messages am Windows- / Mac-Computer an mobile Geräte zu schreiben, ist eine interessante Möglichkeit.

Gruss Peter

05.05.2013 - 03:29 Uhr

Hallo

Schau dir mal den vordefinierten Delegate Func<T> an.

Gruss Peter

29.04.2013 - 15:23 Uhr

Hallo dcpacky

Dann wird "filter" (Schlechter Name übrigens) leer sein.
Wieso das so ist, wäre dann die Frage.

Gruss Peter

28.04.2013 - 13:33 Uhr

Hallo

Entweder mit einem MemoryStream, wie herbivore geschrieben hat. Oder aber du nimmst die LINQ To Xml API; von dort die Klasse XElement.

Die hat eine .ToString()-Methode, die das gewünschte macht.

Ich würde LINQ to Xml empfehlen.

Gruss Peter

25.04.2013 - 15:49 Uhr

Hallo Alan

Mir ist nicht klar, wieso du das überhaupt untypisiert machen willst.
Wieso nicht auf den eigentlichen Typ HashSet<Int16> casten und darüber iterieren?

Kommt nicht immer dasselbe zurück?

Gruss Peter

25.04.2013 - 15:37 Uhr

Hallo Alan

Der Typ von deinem "theObjectToCast" ist laut der Fehlermeldung folgender:


System.Collections.Generic.HashSet`1[System.Int16]

Das wäre in einem Cast ausgeschrieben:


HashSet<Int16> typedSet = (HashSet<Int16>)theObjectToCast;

Also caste auf diesen, das ist die einfachste Lösung.
Die Co- und Contravarianz, die von herbivore angesprochen wurde, hilft, einem generellen auf einen spezifischen oder umgekehrt generischen Typ bzw. dessen Typargument zu casten.

Ohne Co- und Contravarianz ist das nicht direkt möglich. Es geht aber per .Cast()-Methode von LINQ; diese castet jeden Eintrag einer Menge einzeln und gibt eine neue Menge zurück.

z.B.


List<object> objectList = ...
List<Haus> hausList = objectList.Cast<Haus>().ToList();

Gruss Peter

20.04.2013 - 20:46 Uhr

Hallo Alan

Und wie lautet der Laufzeitfehler?

Caste mal in das Interface IEnumerable, ohne Generics. IEnumerable arbeitet in jedem Fall mit object, also passt das ja für dich.

Gruss Peter

18.04.2013 - 13:25 Uhr

Hallo

Nein, im Gegenteil, weniger Klassen schreiben, sondern Merkmale in Eigenschaften unterzubringen.

Ungefähr so:
Auto.Marke = "Volvo"
Auto.Typ = "S45"

Gruss Peter

15.04.2013 - 15:20 Uhr

Hallo binaryblog

Ich weis schon, ich weise die filtered Instanz den ActiveItems zu, aber beim Debuggen wird nie etwas aus ActiveItems gelöscht??!!? Was ist ja auch nicht will... Aber wieso ist das so?

Weil du in der ActiveItems-Eigenschaft ein .ToList() machst, damit wird immer eine neue Liste beim nächsten Zugriff auf die Eigenschaft erstellt.

Diese Liste die vorher zurückgegeben wurde und die du verändert hast, wird dann also verworfen.

Gruss Peter

21.03.2013 - 18:02 Uhr

Hallo b0b0

Mit den richtigen Stichwörtern in Google finden sich einige Lösungen.

Gruss Peter

19.03.2013 - 00:47 Uhr

Hallo Ayke

So ganz steige ich nicht durch, was du denn genau willst.
Aber eines kann ich dir mit Gewissheit sagen: Ein Klassenname der "And" oder "Und" enthält, zeigt eindeutig das die Klasse für zwei Dinge gleichzeitig verantwortlich ist und das ist nicht gut.

Was sind denn das für Eigenschaften die initialisiert werden?

BTW: Auf engl. heisst es Initializer, nicht Initialiser.

Gruss Peter

17.03.2013 - 14:00 Uhr

Hallo 7.e.Q.

Drei Möglichkeiten sehe ich hier.

  1. Du nutzt DropBox und kopierst vor dem Arbeiten den aktuellen Stand raus und vor dem heimgehen wieder rein (den alten Stand musst du dann wohl noch vorher löschen).

  2. Wie du siehst hast du auch dort Aufwände, also wieso nicht gleich mit einer Quellcodeverwaltung?

  3. Du nimmst ein Notebook mit deinem Projekt mit, da hättest du die Probleme nicht.

Okay, doch noch ein viertes. Du arbeitest auf einem Server per Remotedesktop, aber das wird halt möglicherweise langsam sein.

Faulheit und Vergesslichkeit ist für mich kein Argument, darum würde ich mich für 2 entscheiden.

Gruss Peter

27.02.2013 - 14:08 Uhr

Hallo

Zu:

if (!lockObject.GetType().Name.Equals("Object", StringComparison.InvariantCultureIgnoreCase))

Könnte man so sauberer umsetzen:


if(lockObject.GetType() != typeof(object))

Gruss Peter

12.02.2013 - 10:39 Uhr

Hallo zusammen

Ist euch der PHP-Fehler links im "Usere MiniCity" Bereich aufgefallen?

Warning: file_get_contents(
>
) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/vhosts/mycsharp.de/httpdocs/wbb2/myminicity.php on line 56

Gruss Peter

05.02.2013 - 09:44 Uhr

Hallo inflames2k

Machen kann man das so, hast du ja selber schon 😉.
Das ganze nennt sich ActiveRecord-Pattern, oder es ähnelt diesem zumindest.

Für kleinere Sachen nutzbar, für grössere nicht mehr.
Da delegierst du die Verantwortlichkeit lieber an eine dedizierte Klasse.

Gruss Peter

04.02.2013 - 22:14 Uhr

Hallo

Die Dateiendung ist eine Hilfe, jedoch geht es auch ohne (Mac).
Dort wo es keine Endungen gibt, wird bspw. am Anfang der Datei den Typ ausgelesen.

Eine Datei muss also nicht immer eine Endung haben, in Windows ist es aber in der Regel so.

Das Dateiformat ist das Schema der Daten innerhalb der Datei.
Aber am besten liest du dich selber ein:

Es gibt Textbasierte Dateiformat wie bspw. XML oder TXT, oder binäre Dateiformate wie bspw. bmp / png / mp3.

Docx ist meines Wissens ein ZIP das XML und andere Dateien im Textformat hält. Früher war eine Word-Datei binär.

Suchen wäre für diese Fragen auch angebracht gewesen.

Gruss Peter

31.01.2013 - 20:23 Uhr

Hallo Pel

Gelernt habe ich auch dank Euch, dass ich den Lebenslauf individuell auf den AG abstimen sollte. Habe ich bisher nie gemacht.

Natürlich nur wenn du kannst und es stimmt.
Ich würde es umgekehrt machen: Die Firma nach deinen Erfahrungen suchen.

Aber ich nehme an, das machst du schon.

Gruss Peter

31.01.2013 - 12:12 Uhr

Hallo Pel

Die Zertifikate solltest du auf jeden Fall angeben.
Eine Tools-Matrix finde ich auch eine schlechte Idee, mit Selbstbewertung noch schlechter.

Wenn du dich an einem Ort bewirbst, solltest du auch wissen was sie fordern und zumindest einigermassen darauf passen. Wenn ihr dann im Gespräch seid, kannst du mit deinem Wissen ja ggf. trumpfen oder zumindest mitreden.

Zertifikate, Beschreibungen von Referenzprojekten ist viel besser, als so eine Matrix anzugeben.

Gruss Peter

29.01.2013 - 10:51 Uhr

Hallo zusammen

Wenn die Solution mehrere Webprojekte enthält, werden automatisch alle mit dem Development Server oder IIS Express gestartet.

Ich glaube bei Webservices ist das Verhalten gleich.

Gruss Peter

17.01.2013 - 21:37 Uhr

Hallo

Die Lösung mit dem eindeutigen Wert mitgeschickt wird ist als Synchronizer Token Patttern aus Java bekannt.

Ein Beispiel mit ASP.NET findest du hier:

In ASP.NET MVC gibts sicher auch Lösungen, ansonsten ist es ja leicht selber zu schreiben.

Gruss Peter