Laden...
Avatar #avatar-3125.png
Benutzerbeschreibung
Mein Blog: https://blog.mariusschulz.com

Forenbeiträge von m0rius Ingesamt 1.002 Beiträge

19.11.2013 - 19:07 Uhr

Hallo Stefan8887878,

herzlich Willkommen auf myCSharp.

Gleich vorweg, dein Code ist leider Kraut und Rüben:
*Variablenbenennung *Sprache (Englisch & Deutsch) *(fehlende) Formatierung

Warum übergibst du deinen Parameter überhaupt per ref? Lass das ref-Keyword doch einfach weg. Per Referenz übergeben wird deine dataset-Instanz trotzdem.

m0rius

07.11.2013 - 23:17 Uhr

Hallo unconnected,

hier noch ein konkreter Lösungsvorschlag, vermutlich @herbivore: Nicht serverseitig trimmen, sondern folgende CSS-Regeln verwenden:

{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

m0rius

10.10.2013 - 15:01 Uhr

Hallo moelski,

natürlich. Sorry, muss deine Frage vorhin nur überflogen haben. Zum Ersetzen durch lesbare Strings ist meine Methode natürlich ungeeignet.

Trotzdem würde ich 32 Aufrufe von Replace vermeiden, schon aus Gründen der Übersichtlichkeit und Wartbarkeit.

var controlCharReplacements = new Dictionary<string, string>
{
    { "\u0000", "Hier deine Ersetzungen" },
    { "...", "..." }
};

string input = "";
foreach (var replacement in controlCharReplacements)
{
    input = input.Replace(replacement.Key, replacement.Value);
}

Analog kannst du die Replace-Operation natürlich auch auf einem StringBuilder ausführen.

m0rius

10.10.2013 - 13:43 Uhr

Hallo moelski,

on top of my head:

string source = "...";
string cleaned = Regex.Replace(source, @"[\u0000-\u001F]", string.Empty);

m0rius

07.10.2013 - 16:53 Uhr

Hallo steschu,

für die Nachwelt sei erwähnt, dass sich durch die Verwendung von decimal die Anzahl der relevanten Nachkommastellen und somit die Präzision erhöht.

m0rius

11.09.2013 - 17:14 Uhr

Hallo Palladin007,

wie gesagt: Das Entity Framework (oder LINQ to SQL) ist dein Freund, was die Generierung von SQL-Statements angeht. Dann musst du dich auch nicht darum kümmern, dass diese korrekt gegen SQL-Injection geschützt werden.

m0rius

11.09.2013 - 14:59 Uhr

Hallo Palladin007,

die Syntax selbst kannst du nicht verändern, also keine eigene domain specific language erschaffen.

Mit LINQ to SQL und dem Entity Framework wird allerdings genau das, was du erreichen möchtest, bereits umgesetzt: das Generieren von SQL-Statements aus LINQ, u.a. aus der query comprehension syntax (so heißt sie offiziell).

m0rius

11.08.2013 - 15:23 Uhr

Hallo Diräkt,

deine localhost-URLs sind zwar nett gemeint, nützen uns hier aber nicht viel 😉.

Ich würde dir empfehlen, niemals direkt deine Domänenobjekte zurückzugeben, sondern immer ein Data Transfer Object (kurz DTO). Dieses enthält nur die Eigenschaften, die du zurückgeben möchtest, funktioniert also wie eine Whitelist. Dieses kannst du beispielsweise per Extension Method aus deiner Entity erzeugen und dann als Rückgabewerte der Action zurückgeben.

m0rius

19.04.2013 - 18:55 Uhr

Hallo zusammen,

der Vollständigkeit halber:

int sCount = "Heizölrückstoßabdämpfung".Count(c => c == 's');

Nicht vergessen, System.Linq importieren.

m0rius

12.03.2013 - 16:22 Uhr

Hallo CoderboyPB,

du kannst Visual Studio auf Englisch installieren.

m0rius

04.02.2013 - 13:59 Uhr

Hallo herbivore,

danks fürs Nachhaken, das ist wirklich ein tolles Angebot.

m0rius

03.02.2013 - 14:27 Uhr

Hallo herbivore,

und hier die alljährliche Frage: Gilt der Code noch in 2013?

m0rius

25.11.2012 - 01:34 Uhr

Hallo vitafit,

wichtig: ArrayList gehört in die Mottenkiste und sollte wie alle untypisierten Collections aus System.Collections nicht mehr benutzt werden. Verwende stattdessen List<T> und alle anderen typisierten Collections aus System.Collections.Generic.

Zu deiner Frage: Du fügst deiner ArrayList nicht viermal einen String hinzu, sondern viermal die gleiche Liste entrys. Dadurch, dass es ein und dieselbe Liste ist, die du der ArrayList mehrfach hinzufügst, verweisen natürlich alle Elemente auf genau diese eine Liste — von der wird keine Kopie erzeugt, sondern lediglich den ArrayList-Elementen mehrfach die Referenz auf die gleichen Liste zugewiesen.

m0rius

19.11.2012 - 11:38 Uhr

Hallo zusammen,

das ist leider wirklich ziemlich peinlich und hätte durch automatisiertes (und erst recht durch manuelles) Testen abgefangen werden müssen. Da hat wohl jemand die nullbasierte Zählung verpfuschst — und auch die gibt es ja nicht erst seit kurzem 😉.

m0rius

10.11.2012 - 14:32 Uhr

Hallo RoboFun,

herzlich Willkommen auf myCSharp.de!

Ich sehe darin überhaupt kein Problem, im Gegenteil: Je mehr Programmiersprachen du kennst, desto mehr hast du einen Blick über den Tellerrand und verbesserst damit deine (sprachunabhängigen) Programmierfähigkeiten. Abgesehen davon sind sich Java und C# sehr ähnlich, von daher sollte das auch vom Lernaufwand her überhaupt kein Problem darstellen.

m0rius

01.11.2012 - 17:16 Uhr

Hallo Howard,

du musst lediglich die URL deiner Action im src-Attribut deines <img>-Tags angeben. Das kann wie folgt aussehen:

<img src="@Url.Action("GetPhotoDetails", "ControllerName", new { ID = 1 })" />

Der erste Parameter der UrlHelper.Action-Methode ist der Name der Action, der zweite der des Controllers. Als dritten Parameter kannst du ein Objekt übergeben, das weitere Route-Daten enthält.

m0rius

17.10.2012 - 18:27 Uhr

Hallo Coooder,

das Stichwort ist Lokalisierung, aber bevor wir dir weiterhelfen können, solltest du erst einmal verraten, um was für eine Anwendung es sich handelt. ASP.NET, WinForms, WPF, Windows 8 App, ... ?

m0rius

15.09.2012 - 23:03 Uhr

Hallo xrc7581,

das macht es ja – fast – auch, nur war dort eben ein tr zu viel enthalten.

m0rius

P.S: Bitte denk das nächste Mal daran, deinen Code einzurücken. Das erleichtert die Lesbarkeit enorm und sorgt vermutlich auch dafür, dass du mehr Antworten bekommst.

15.09.2012 - 22:36 Uhr

Hallo xrc7581,

dein jQuery-Selektor ist falsch — das zweite tr gehört dort nicht hin. Korrekt wäre demnach $("#standorte tr:not(:first)"). Auch möglich wäre $("#standorte").find("tr:gt(0)"), also die Selektion aller Zeilen mit einem Index größer als 0.

Im übrigen eignet sich JsFiddle wunderbar, um dein Problem zum Debuggen zur Verfügung zu stellen. Anhand deines Beispiels sähe das so aus.

m0rius

06.08.2012 - 18:01 Uhr

Hallo Sebi,

hast du eine gute Empfehlung für einen sehr leisen Lüfter?

m0rius

06.08.2012 - 17:49 Uhr

Hallo winSharp93,

danke für den Hinweis, was die Grafikkarte angeht — das werde ich wahrscheinlich so machen.

Zusätzlich zur SSD habe ich natürlich auch eine ausreichend große HDD ausgewählt; frag mich nicht, weshalb die dort nicht gelistet wird.

Was denkst du denn über das Mainboard? Das ist die Komponente gewesen, bei der ich echt ein wenig überfragt war ...

m0rius

06.08.2012 - 02:38 Uhr

Hallo winSharp93,

danke für deine Antwort!

Ich habe vorhin (vor deiner Antwort allerdings) mal einen Rechner bei Alternate zusammengestellt. Leider muss ich wirklich gestehen, dass mein Wissen, was Hardware angeht, doch definitiv seine Grenzen hat 😉.

Hallo zusammen,

habe ich da eurer Meinung nach etwas total dummes verbaut (s. Anhang)? Welche Komponenten würdet ihr ggf. durch welche ersetzen?

m0rius

03.08.2012 - 12:32 Uhr

Hallo,

vielen Dank für eure Einschätzung! Ich werde mir mal bei Alternate einen Rechner zusammenstellen und schauen, auf welchen Preis ich da komme.

@Abt: Gibt es einen Grund, weshalb du eher auf NVidia als auf AMD setzen würdest?

m0rius

03.08.2012 - 01:00 Uhr

Hallo zusammen,

da mein momentaner Desktop-Rechner mittlerweile doch sehr betagt ist und schon das Entwickeln darauf einfach keinen Spaß mehr macht, geschweige denn Gaming, steht für mich demnächst der Kauf eines neuen Rechners an. Dafür möchte ich euch nach Empfehlungen fragen, was das beste Preis-Leistungsverhältnis angeht.

Mein Budget liegt bei ca. +/- 1100€. Eine SSD muss er haben sowie dazu eine herkömmliche Festplatte. 16GB Arbeitsspeicher sollten verbaut sein. Ein guter Prozessor (Ivy Bridge) sowie eine vernünftige Grafikkarte sollten auch nicht fehlen. (Crysis 2 auf voller Auflösung muss die Grafikkarte ruckelfrei nicht hergeben, aber sie sollte schon für nicht professionelles Gaming geeignet sein.) Schlussendlich muss er ein 5.1-Soundsystem unterstützen.

Momentan habe ich mir folgenden Rechner ausgeguckt, der mir von der gebotenen Leistung her sehr gut gefällt: Rechner-Konfiguration auf amazon.de. Meine Frage ist nun: Ist dieser Rechner nicht ein wenig überteuert für das, was er bietet? Oder ist der Preis für diese Konfiguration angemessen?

Danke schon mal im Voraus!

m0rius

20.06.2012 - 01:27 Uhr

Hallo Bunnychecker,

das ist jetzt ein wenig generell. Mit so wenigen Informationen kann ich dir natürlich nicht sagen, wie du es am besten anstelltst, dass "auch alle Parameter für diesen Methodenaufruf vorhanden sind". Ob du diese in Dateien zwischenspeicherst oder sonst wo ablegst, musst du selbst anhand deines konkreten Szenarios entscheiden.

m0rius

20.06.2012 - 00:43 Uhr

Hallo Bunnychecker,

du kannst dein Problem mit Hilfe verschiedener Ansätze lösen.*Einerseits kannst du die gewünschten Methoden aufrufen, nachdem eine – vom jetzigen Zeitpunkt ausgehende – Zeitspanne abgelaufen ist. Stichwort: Timer. *Andererseits kannst du periodisch, also z.B. alle 5 Minuten, überprüfen lassen, ob du dich in deinem angestrebten Zeitfenster befindest. Weiterhin musst du überprüfen, ob die Methoden nicht bereits ausgeführt worden sind; das regelst du am besten über ein "Ausgeführt"-Flag. Sind beide Bedingungen erfüllt, führst du die Methoden aus. Wurden diese erfolgreich ausgeführt, setzt du das "Ausgeführt"-Flag auf true.

m0rius

08.06.2012 - 18:52 Uhr

Hallo zusammen,

NAverage ist nun GitHub zu finden, genau wie ExtraLINQ auch.

m0rius

07.06.2012 - 23:05 Uhr

Hallo ZeroQool,

ich stimmt Abt vollkommen darin zu, dass Popups wirklich nervig sind (und teilweise sogar vom Browser des Benutzers geblockt werden). Es spricht allerdings überhaupt nichts dagegen, diese Autocomplete-Funktion per JavaScript zu lösen. Es wäre jedoch schöner, neben der Artikelnummer-Textbox eine Liste anzuzeigen, in der die Suchresultate geladen werden. Evtl. kommt auch ein Dropdown in Frage, wie es normalerweiser der Fall bei Autocomplete ist.

m0rius

05.06.2012 - 01:28 Uhr

Hallo Alphawolf1988,

es geht ja nicht nur darum, zu prüfen, ob der Spieler dort stehen kann. Das kann sowohl auf dem Client als auch auf dem Server geschehen. Du musst das ganze konsequent ein wenig weiterdenken, denn um Cheating zu vermeiden, sollte diese Option (sowie die tatsächliche Position des Spielers) dem Server überlassen werden — sonst validiert sich jeder Client etwas zurecht, was laut Spiellogik gar nicht erlaubt sein dürfte.

m0rius

04.06.2012 - 23:00 Uhr

Hallo Alphawolf1988,

warum hältst du nicht die gesamte Spielwelt auf dem Serverspeicher?

m0rius

03.06.2012 - 23:09 Uhr

Hallo zusammen,

ich habe selbst ein dotnetpro-Abo, gerade wegen der Inhalte — die finde ich nämlich ziemlich hoch in ihrer Qualität.

m0rius

28.05.2012 - 12:16 Uhr

Hallo thefiloe,

schau mal, ob dir dieser Thread weiterhilft: How to make my WPF MainWindow a singleton?

m0rius

09.05.2012 - 17:32 Uhr

Hallo digi333,

Selection ist kein Befehl in C#, sondern der Name der Collection, über die in der foreach-Schleife iteriert wird.

m0rius

06.05.2012 - 11:09 Uhr

Hallo Tester-05,

du fügst der KlasseC deine neue Eigenschat hinzu, das ist alles. Mit Ableitung bzw. Vererbung hat das nichts zu tun. Das sind allerdings absolute Grundlagen.

m0rius

04.05.2012 - 00:46 Uhr

Hallo CoderboyPB,

kurz gesagt enthält formCollection ein Key-Value-Pair-Aufzählung aller übermittelten Formularwerte.
Eine beispielhafte Verwendung der FormCollection-Klasse findest du hier: How can a formcollection be enumerated in ASP.NET MVC?.

m0rius

01.05.2012 - 23:40 Uhr

Hallo rock3t,

ich möchte dich an dieser Stelle nur kurz darauf hinweisen, dass es "develop" heißt und nicht "develope", bevor sich der Fehler in allem manifestiert, was ihr schreibt.

m0rius

30.04.2012 - 21:54 Uhr

Hallo Campy,

ich will wirklich keine Haarspalterei betreiben, aber eine 7-sekündige (!) Google-Suche nach "wpf checkbox button" hat diesen StackOverflow-Thread aufgetrieben: WPF CheckBox with “Button” appearance.

Hier in Kurzform: Benutze einen ToggleButton. Dieser besitzt die Control-Logik einer Checkbox und sieht aus wie ein Button.

m0rius

25.04.2012 - 04:44 Uhr

Hallo Abt,

für diese Videoreihe ist keine Plus-Subscription erforderlich, sondern lediglich die genannten Schritte.

m0rius

24.04.2012 - 12:24 Uhr

Hallo zusammen,

ich möchte euch an dieser Stelle auf den Kurs Building ASP.NET MVC Apps with EF Code First, HTML5, and jQuery hinweisen, der bis zum 27. April kostenlos von Pluralsight angeboten wird. Daher mein Aufruf an alle Webentwickler: Nutzt die Gelegenheit und bildet euch in server- sowie clientseitigen Webtechnologien weiter!

Genaueres zum ca. 5-stündigen Videotutorial findet ihr hier: Building ASP.NET MVC Applications with Entity Framework Code First, HTML5, and jQuery.

m0rius

12.04.2012 - 01:30 Uhr

Hallo Grundkurs,

ohne mich jetzt genauer mit der Dokumentation von C++ beschäftigt zu haben, vermute ich, dass die Post-Inkrementierung in C++ so implementiert ist wie die Prä-Inkrementierung in C#. Dies wurde, schätze ich, aus o.g. Gründen in C# abgeändert.

m0rius

12.04.2012 - 01:15 Uhr

Hallo 7.e.Q,

je nach Anwendungsfall kann es durchaus sinnvoll sein, über beide Varianten der Inkrementierung zu verfügen, wie der folgende Pseudocode zeigt:

int i = 0;
object[] demoArray = new object[...];

foreach (...)
{
    demoArray[i++] = ...
}

Würde der erhöhte Wert der Variablen zurückgegeben werden, würde die erste Zuweisung bereits den Index 1 verwenden und nicht, wie gewünscht, den Index 0.

Das Ganze nennt sich übrigens Prä- bzw. Post-Inkrementierung. Analog dazu gibt es ebenfalls die Prä- bzw. Post-Dekrementierung mit dem Operator --.

m0rius

12.04.2012 - 00:38 Uhr

Hallo Grundkurs,

der Ausdruck

i++;

ist die Kurzform der folgenden Anweisung:

i = i + 1;

Sie erhöht den Wert der Variable i um 1. Der Rückgabewert der Kurzform dieses Ausdrucks ist jedoch nicht der Wert der erhöhten Variable, sondern der der noch nicht erhöhten. Dieser Wert (5 in deinem Beispiel) wird zurückgegeben; die Variable i wird erst anschließend inkrementiert. Der Wert der Variable bleibt in deinem Beispiel deshalb konstant 5, da du ihr den noch nicht erhöhten Wert zuweist und somit Durchlauf für Durchlauf effektiv nichts machst.

Um dein Beispiel zum Laufen zu bringen, lass einfach die Zuweisung weg und schreibe lediglich folgende Zeile:

i++;
i = ++i;

Dabei wird der Wert von i erst erhöht und anschließend (redundant, da doppelt) zugewiesen. Das dient jedoch nur zu Illustrationszwecken und ist nicht zu empfehlen.

m0rius

05.04.2012 - 01:54 Uhr

Hallo zusammen,

um es hier zusammenzufassen:

The maximum render size for a Silverlight UIElement is 2048 x 2048 pixels. This is a design limitation of the runtime which was made for performance reasons.

m0rius

28.03.2012 - 20:20 Uhr

Hallo st@tic,

hast du mal Google bemüht und nach "ASP.NET MVC" gesucht? Das erste Suchresultat schickt dich auf www.asp.net/mvc, eine Seite von Microsoft, die sehr ausführliche Online-Tutorials zu den wichtigsten Themenbereichen von ASP.NET MVC enthält.

m0rius

27.03.2012 - 22:44 Uhr

Hallo st@tic,

Abt hat Recht damit, dass die Geschwindigkeit der Weiterentwicklung von Web-Technolgien sehr hoch ist. Mit dieser Frequenz können Bücher schlicht aufgrund der Tatsache, dass sie ein Printmedium sind, nicht mithalten. Ich würde dir trotzdem empfehlen, dir ein Buch zuzulegen und dir die Grundlagen anzueignen. So habe ich zum Beispiel die Professional ASP.NET MVC gelesen (damals noch für ASP.NET MVC 2) und war mit dem Buch sehr zufrieden.

Um dich auf dem aktuellen Stand zu halten und über die neuesten Themen Bescheid zu wissen, musst du natürlich digitale Quellen heranziehen, also Dokumentationen, Blogeinträge, usw. Ich halte es jedoch für sinnvoll, sich vorerst systematisch die Grundlagen anzueignen, und dafür ist ein zusammenhängendes Buch von renommierten Autoren meiner Meinung nach am besten geeignet.

m0rius

27.03.2012 - 09:17 Uhr

Hallo Abt,

vielen Dank für deine Antwort.

Wie handhabst du denn clientseitige JavaScript-Validierung?

m0rius

27.03.2012 - 01:01 Uhr

Hallo Abt,

implementierst du das IValidateableObject-Interface in deinen Entity-Klassen oder in View-spezifischen ViewModels?
Wenn in den ViewModels, wie vermeidest du Redundanzen?

[...] da es deutlich flexibler und korrekter arbeitet.

Inwiefern arbeitet IValidateableObject korrekter?

m0rius

02.03.2012 - 05:15 Uhr

Hallo dcc.marx,

herzlich Willkommen auf myCSharp.de!

Lese- und schreibgeschützte Eigenschaften existieren, um den Zugriff von Benutzern (Programmierern, nicht Endnutzern!) einer Klasse einschränken zu können. So kann es zum Beispiel sinnvoll sein, nach dem Instantiieren einer Klasse deren Eigenschaften lesen zu können, aber nicht – oder zumindest nicht von außerhalb der Klasse heraus – verändern zu können.

In anderen Fällen macht es keinen Sinn, eine Eigenschaft überhaupt schreibbar zu machen. Das ist zum Beispiel der Fall, wenn diese lediglich etwas berechnet:

public class SalaryCalculator
{
    public double HourlyPay { get; set; }
    public double HoursWorked { get; set; }

    public double SalaryPayment
    {
        get { return HourlyPay * HoursWorked; }
    }
}

SalaryPayment hätte auch folgendermaßen als Methode implementiert werden können:

public double CalculateSalaryPayment()
{
    return HourlyPay * HoursWorked;
}

m0rius

23.02.2012 - 08:35 Uhr

Hallo zusammen,

irgendwo hat natürlich jeder seinen Lieblingseditor, daher werfe ich meinen für HTML + JavaScript auch mal in die Runde: Sublime Text 2.

m0rius

13.02.2012 - 20:16 Uhr

Hallo Abt,

Ich bin den CAPTCHAs sehr kritisch gegenüber, weil immer irgendeine Gruppe ausgeschlossen bzw. benachteiligt wird.

okay, darin stimme ich dir zu. Ich hatte deinen letzten Post, auf den ich geantwortet habe, anscheinend falsch verstanden und "weshalb die E-Mail als Grafik noch der beste Schutz sein dürfte." als Empfehlung für reine Grafiken interpretiert.

m0rius