Hallo Augenlicht,
die Grundlagen der Programmierung in C# / .NET sind die selben, unabhängig davon, welche Technologie du zum Darstellen der Oberfläche (UI) verwendest: Konsolenanwendung (Konsole), Windows Forms (Fenster), WPF (u.a. Fenster, neuere Technologie), ...
m0rius
Hallo herbivore,
wenn ich mir deine Technik zum Ermitteln eines Full Houses ansehe, muss ich gerade über meinen eigenen Code lachen, den ich vor 1 1/2 Jahren dazu geschrieben habe 😄 ...
Die Kernidee war dabei folgende:
for (int index = 0; index < pipsOccurrences.Length; index++)
{
int occurrence = pipsOccurrences[index];
if (occurrence != 0)
{
occurrencesProduct *= occurrence;
}
}
// The product of the occurrences of the non-zero values needs to be 6
// e.g. 4-4-4-6-6 is a valid Full House because we have 3 fours and 2 sixes
// => 2*3 = 6 (6 is only factorizable into 1*6 and 2*3; 1*6 cannot appear)
if (occurrencesProduct != 6)
{
return false;
}
m0rius
Hallo InfoStudent86,
woran genau scheitert es zur Zeit? Bitte formuliere eine klare Frage.
m0rius
Hallo Marwyc,
sieh dir mal die Klasse MD5CryptoServiceProvider zum Berechnen des MD5-Hashes an. Die Berechnung des Hashes hat mit der Verwendung von DLLS absolut nichts zu tun. Wie du an die laufenden Prozesse gelangst, hat ja der-schlingel schon beschrieben.
m0rius
Hallo Warenschild,
die Variablen Zufallszahl1
und Zufallszahl2
erzeugst du innerhalb der while
-Schleife und daher in ihrem Geltungsbereich. Ist der verlassen (nach der schließenden geschweiften Klammer), können diese nicht mehr verwendet werden.
Abgesehen davon ist dein Code ein – sorry – ziemlich verkorkster Ansatz zum Erzeugen zweier Zufallszahlen.
1.Du solltest vermeiden, die Random-Instanzen innerhalb der Methoden zu erzeugen. Wenn die Methode zufall()
in kurzen Zeitabständen aufgerufen wird, werden die Instanzen mit dem gleichen Environment.TickCount initialisiert und liefern dann folglich die gleichen Zahlen. Daher: Random
-Instanzen einmal pro Klasse instanziieren und anschließend nur noch deren NextXXX
-Methoden aufrufen.
1.Auch, wenn du zwei Zufallszahlen erzeugen willst, benötigst du nur ein Random
-Objekt, auf dem du mehrfach seine NextXXX
-Methoden aufrufst.
m0rius
verwendetes Datenbanksystem: Entity Framework 4
Hallo,
ich möchte je nach Debug/Release-Einstellung verschiedene Connection Strings für meine Datenbankverbindung verwenden. Dafür verwende ich die Web.config
-Transformationen (Web.Debug.config
und Web.Release.Config
).
Nun verwenden meine Datenbanken aber verschiedene Schemen und Namen – wie kann ich das in meinem Entity Data Model bzw. in meinem Connection String berücksichtigen?
m0rius
Hallo JunkyXL,
ich habe eben den Connection String angepasst und greife nun auf meinen lokalen SQL Server zu – das passiert in gewohnter Geschwindigkeit.
Ich frage mich nur, weshalb sich die Zugriffsgeschwindigkeit auf meine Online-Datenbank ohne erschließbaren Grund so verschlechtert hat ...
LG Marius
Hallo MarsStein,
die Antivirensoftware müsste sich doch bei allen Anwendungen beschweren bzw. für Verzögerungen sorgen, oder? Andere ASP.NET MVC 2 Anwendungen laufen nämlich lokal und online perfekt – es geht wirklich nur um diese eine 😐.
m0rius
Hallo zero_x,
ich habe die Anwendung auch per Start without Debugging getestet – ohne Erfolg.
Für meine Website verwende ich natürlich IIS, jedoch ist es mühselig und unerwünscht, jede kleine Änderung am Code online am Produktivsystem testen zu müssen. Der lokale Webserver, der ASP.NET Development Server, ist selbstverständlich nicht für die Öffentlichkeit gedacht, sondern für mich zum Entwickeln.
Ja, ich habe gegoogelt. Auch die Antwort
Disabling Google Toolbar solved the problem
auf das Problem
Trying out a few simple asp.net apps, using Visual Studio's built in Web Server, its taking 1 minute 35 secs to load the first page.
This seems a long time. Is this normal or is it a Vista problem?
hat bei mir nicht geholfen – ich habe die Google Toolbar nicht installiert. Außerdem habe ich die Anwendung in verschiedenen Browsern getestet; die Wartezeiten bleiben dabei gleich.
m0rius
Hallo,
ich entwickle eine Webanwendung in ASP.NET MVC 2 mit Visual Studio 2010 Professional. Zum Testen der Anwendung verwende ich den lokalen Webserver von Visual Studio in Kombination mit der MS SQL-Datenbank auf meinem echten Webserver.
In letzter Zeit dauert es allerdings unglaublich lange (ca. 2-3 Minuten (!)), bis lokal die Anzeige eines normalen Webforms, das ca. 20 Datensätze abruft und darstellt, fertig ist – online dauert kein Seitenaufruf länger als 1-2 Sekunden. Bis vor ein paar Tagen lief auch offline alles wie geschmiert, mittlerweile aber ohne plausiblen Grund nicht mehr.
Woran kann es liegen, dass die lokale Version so viel langsamer ist als die auf dem Webserver ausgeführte Anwendung?
m0rius
Hallo Flauschi,
eine Bitte zur Formatierung: Manuell bitte Zeilenumbrüche nur dort setzen, wo ein neuer Absatz beginnt – nicht am Ende jeder Zeile. Danke!
m0rius
Hallo zusammen,
gerade auf StackOverflow ...
m0rius
Hallo zusammen,
auch eine Perle:
if (Session["sessionid"] == null)
{
Response.Redirect("Login.aspx");
}
else if (Session["value"] == null)
{
Response.Redirect("Login.aspx");
}
m0rius
Hallo tgrisu,
ich würde die von zommi vorgeschlagene Methode auf eine separate Bitmap zeichnen lassen und dann eine (selbstgeschriebene) Kantenerkennung darüberlaufen lassen, um den äußeren Rand des gefüllten Polygons zu ermitteln.
m0rius
Hallo brittner,
bitte lies [Hinweis] Wie poste ich richtig? Punkt 4a, 4b, 4c, 5, 9 – wir machen dir hier nicht deine Arbeit.
m0rius
Hallo Giftzwerg,
und wo genau hängt es bei dir momentan? Wie sieht dein Ansatz bisher aus? (Wir erledigen dir hier nicht deine Aufgaben und schreiben deine Programme für dich (s. [Hinweis] Wie poste ich richtig? Punkt 4a, 4b, 4c).
m0rius
Hallo Giftzwerg,
du trennst in deinem Beispiel inkonsistent einzelne Teile – mal teilst du eine Summe auf, mal ein Produkt und dann wiederum gar nicht den Teil in der Klammer.
Was genau willst du erreichen? Wenn du die Formel parsen willst, gibt es hier im Forum bereits einige Ansätze dazu:*Parser für mathematische Formeln
*Formelparser
*klitzekleiner Formelparser (mit RegEx und viel Lambda/LINQ)
m0rius
Hallo Gumba,
prinzipiell nennt sich "dieses Aufklappdings" Expander.
m0rius
Hallo Golo Roden,
ich schließe mich zero_x an und würde mich über ein paar Details zu deinem Sinneswandel freuen. Ich selbst schreibe zwar auch Unit Tests, allerdings habe ich noch nie wirklich TDD angewandt ...
m0rius
Hallo zusammen,
ich auch 😃 – habe mir eine 1920px*1080px-Version gebastelt ...
m0rius
Hallo Fabian,
in der Tat, die Geschwindigkeit ist fantastisch ...
Hallo (stellvertretend) herbivore,
tolle Sache, ein dickes Lob dafür!
m0rius
Hallo baensch,
du hast einen sogenannten Kopierkonstruktor implementiert. Wenn das von dir beschriebene Verhalten auftritt, ist das Feld oder die Eigenschaft x
ein Referenztyp und kein Wertetyp – dessen Wert würde übernommen werden und würde sich bei einer Änderung nicht auf die andere Instanz auswirken. So teilen sich die Instanzen den Referenztyp – du hast in diesem Fall nur eine shallow copy, eine flache Kopie, erstellt.
Wenn du nicht-geteilte Referenztypen in den Instanzen verwenden willst, musst du eine deep copy, eine tiefe Kopie, durchführen.
m0rius
Hallo m.grauber,
wenn Kundenname
und Kundennummer
keine einfachen Datentypen, sondern Klassen sind, die die Eigenschaften Wert1
und Wert2
enthalten, ist das möglich. Du solltest dabei allerdings das Gesetzt von Demeter beachten.
Edit: Bitte beachte vorsorglich [Hinweis] Wie poste ich richtig? Punkt 1.1.1!
m0rius
Hallo pacy,
PNs sind ja nicht per se unerwünscht, sondern nur dann, wenn über sie Fragen gestellt werden, für die das Forum vorgesehen ist.
m0rius
Hallo P584,
wenn du [Hinweis] Wie poste ich richtig? gelesen hast, sollte dir bewusst sein, dass
Allerdings wäre es super wenn man mir gleich ein Code für mein Beispiel liefern könnte. eine Frechheit ist. Mal abgesehen davon lernst du durch Eigeninitiative und eigene Recherche deutlich mehr als durch vorgesetzte Lösungen.
m0rius
Hallo Yheeky,
deine Frage wurde hier bereits besprochen - Anregungen findest du in IP-Adressen aller Teilnehmer am gleichen Subnetz herausfinden.
m0rius
Hallo Tarion,
ich finde deine Idee nicht schlecht. Auch wäre meiner Meinung nach die Vergabe von Schlagwörtern für Themen sehr sinnvoll, da ich häufig Beiträge finde, in denen die Suchbegriffe nur am Rande vorkommen.
m0rius
Hallo realProg,
Florian Reischl wollte – soweit ich das verstanden habe – nur betonen, dass es keinen Sinn macht, pauschal für jede Entity ein Interface zu erstellen. Du musst also nicht, nur weil du die Entität Car
verwendest, zwangsläufig das zugehörige ICar
-Interface erstellen.
m0rius
Hallo TomLeech,
auch das ist möglich – wie gesagt, ich kenne das Control nicht. Aber vielleicht kann uns da einer der WPF-Experten im Forum weiterhelfen ...
m0rius
Hallo TomLeech,
das glaube ich nicht - zumindest verhält sich das Control nicht so. Beispielsweise verwendet auch der File => New Project...-Dialog von Visual Studio 2008 diese Trennlinie, die weder expandieren kann noch sich wie ein Akkordion verhält.
m0rius
Hallo talla,
der IIS-Manager beispielsweise verwendet ebenfalls dieses Control, s. Anhang. Das obige Bild ist ein Screenshot von Sandra Lite.
Hallo gnc,
ich bin eher von einem fertigen Control ausgegangen, da es in verschiedenen Anwendung identisch aussieht und sich perfekt in den Windows 7 Style von ListView
s integriert.
m0rius
Hallo,
wie nennt sich dieses Trennlinien-Control in WPF?
m0rius
Hallo realProg,
Robert Mühsig hat dazu einen schönen Blog-Eintrag verfasst: HowTo: 3-Tier / 3-Schichten Architektur.
m0rius
Hallo progi123,
bei mir tritt das Problem nicht auf – das Bild wird auch im Internet Explorer 8 korrekt dargestellt.
m0rius
Hallo VizOne,
vielen Dank für deine ausführliche Antwort! Ich werde wahrscheinlich die Binding-Basisklasse umsetzen, da mir die Gefahr bei mehreren Entwicklern zu hoch ist, dass vergessen wird, die Include
-Liste anzupassen.
m0rius
Hallo Peter Bucher,
weil dadurch mein Problem weiterhin besteht. So würde ich mir eher noch eine zusätzliche Sicherheitslücke (Tampering) einholen, wenn ich beispielsweise die Eigenschaft Id
vom Binding ausschließe, die in einem Refactoring zu DinnerID
umbenannt wird.
m0rius
Hallo,
um zu vermeiden, dass beim Model Binding von ASP.NET MVC 2 per [Bind]
Eigenschaften gebunden werden, die nicht gebunden werden sollen, schränke ich diese wie folgt ein:
[MetadataType(typeof(Dinner_Validation))]
[Bind(Include = "Title,Description,EventDate,Address,Country,ContactPhone,Latitude,Longitude")]
public partial class Dinner
{
/* ... */
}
Der Nachteil ist, dass die Eigenschaften hier nicht umbenannt werden, sobald ich diese an einer anderen Stelle per Refactor => Rename...
umbenenne. Das führt zu schwer aufzufindenden Bugs, wenn sich bestimmte Formularfelder nicht mehr editieren lassen, weil die zugehörige Eigenschaft umbenannt wurde.
Gibt es – neben Alternativen wie ViewModel
s etc. – für diese Art der Beschränkung eine Lösung für das Problem?
m0rius
Hallo 1mannlan,
sieh dir mal ConvertIcon! an. Aus ICO-, PNG-, GIF- oder JPEG-Dateien kannst du dir PNGs und ICOs generieren lassen und dabei wählen, welche Größen in das Icon integriert werden sollen.
m0rius
Hallo Cuin,
könnte man das spiel evtl. so realisieren, dass, wenn man eine truppenbewegung startet, nur die Zeit gespeichert wird, bei der die truppen ankommen und wenn diese zeit erreicht wird, wird ein event oder so gefeuert, wodurch dann der aktuelle stand berechnet wird? Den während die truppen unterwegs sind, kann man sie eh nicht angreifen...
du musst überhaupt kein Event feuern, da du das Ergebnis eines Kampfes erst dann berechnen musst, wenn es jemanden interessiert, beispielsweise wenn ein Spieler den Kampfbericht einsehen möchte oder ein weiterer Kampf danach stattfindet. Willst du einmal pro Stunde die Ranglisten aktualiseren, musst du natürlich alle noch offenen Kampfergebnisse berechnen, um auf dem aktuellen Stand zu sein.
m0rius
Hallo zusammen,
in der Zwischenzeit gibt es eine Lösung von aadler, s. Vorlage für eine Windows Vista/7 Tray Application.
m0rius
Hallo inflames2k,
hätte, hätte, Fahrradkette. (Vielleicht hätte das Spiel einen ganz anderen Verlauf genommen, vielleicht wären aber die Deutschen wegen des zweiten Gegentreffers zu Hochtouren aufgelaufen und hätten 5:2 gewonnen.
m0rius
Hallo oliversharp,
zwar keine direkte Antwort auf deine Frage, aber ein Hinweis: Es gibt für ASP.NET MVC 2 eine aktualisierte Version des NerdDinner-Tutorials von Scott Hanselman zum Download auf codeplex.
m0rius
Hallo frederico,
ich kann auch nur raten, was du meinst. Variablen mit Unterstrich? Sprichst du von Feldern einer Klasse, deren Namen ein Unterstrich vorangestellt wird?
private int _property;
Wenn du dem Benutzer einer Klasse eine öffentliche Eigenschaft anbieten willst, machst du das so:
public int Property
{
get
{
return _property;
}
set
{
_property = value;
}
}
m0rius
Hallo sakanoue,
ich verstehe die Frage nicht - meine Tips sind:1.deserialisiere die Datei Template.xml
1.ersetze Platzhalter wie [value1]
durch entsprechende Werte wie #333333
1.generiere daraus den CSS-Code
In anderen Worten: Du musst schon etwas konkreter werden.
m0rius
Hallo gfoidl, hallo Khalid,
Array.Copy
ist eine korrekte Lösung, aber Enumerable.Union
? Soweit ich das verstanden habe, will tentod die Arrays nur aneinanderhängen, aber nicht mehrfach vorkommende Elemente durch ein einziges Vorkommen ersetzen.
m0rius
Hallo PC17,
was genau läuft nicht? Bitte beschreibe dein Problem genau, so können wir nur raten.
Wenn du versuchst, in der Methode test
auf Controls des Fensters zuzugreifen, schlägt der Zugriff fehl, da nur der Thread, der die Controls erzeugt hat, auf diese zugreifen kann.
m0rius
Hallo Bubblegum,
wie Joetempes schon geschrieben hat, ist es sinnvoll, einen Model-Layer einzuführen, der die verschiedenen Objekte der Domäne enthält enthält, die jeder kennen kann: Der Presentation Layer, der sie anzeigt, der Business Layer, der sie verarbeitet und der Data Access Layer, der sich um den Datenzugriff kümmert.
m0rius
Hallo SlyFox,
Round rundet kaufmännisch, Abs rundet ab.
das stimmt so nicht. Math.Round()
kann auch mathematisch runden, wenn MidpointRounding.ToEven
gesetzt ist. Math.Abs()
rundet gar nicht, sondern gibt den Betrag der übergebenen Zahl zurück, wobei "Abs" für "Absolutwert" steht.
m0rius