Laden...
Avatar #avatar-3111.jpg
edsplash myCSharp.de - Member
Elektroingenieur i.A. Dabei seit 19.04.2008 390 Beiträge
Benutzerbeschreibung

Forenbeiträge von edsplash Ingesamt 390 Beiträge

07.04.2010 - 19:54 Uhr

Hallo admirandis

Gefällt mir ganz gut, allerdings sind mir einige Unstimmigkeiten aufgefallen (Windows 7):*Die Abspielsoftware sollte nicht vorgegeben sein, vielleicht verwendet jemand ja einen anderen Player als Zoom oder VLC *Der Folder Browser springt nach dem Öffnen eines Ordners immer nach oben *Beim Auswählen der Film- und Serienordner fehlt ein übernehmen Knopf (Neustart nötig) *Das Suchen nach den Daten der gefundenen Filme sollte für alle Filme aufs mal möglich sein. So müsste man nicht jeden Film einzeln anklicken.

Zu guter Letzt habe ich noch einen Screenshot:
Irgendwie fehlt mir da eine Scrollbar oder ein anständiges Wrapping des Textes.

Sonst aber ein ganz nettes Projekt 😉

Gruss

02.04.2010 - 19:32 Uhr

Hallo zero_x

Alles, was mit der visuellen Repräsentation zutun hat, darf nicht im ViewModel sattfinden, da dies eine Sache der View ist.

Ein String wäre in diesem Falle nichts anderes, als "etwas", was als DateTime fungiert und somit eher unsinnig.

Man kann das Problem jedoch auch so betrachten, dass der String bereits eine visuelle Repräsentation des DateTimes ist. Vielleicht möchte das View das Datum auch als eine Art Uhr anzeigen und da wäre der String dann eher hinderlich. Allerdings kann man auch hier sagen, dass man es von Fall zu Fall beurteilen muss.

Man kann noch einen Schritt weitergehen und sich folgendes Fragen: "Soll eine ListBox eine
>
von Views oder ViewModels anzeigen?".

Eigentlich leicht zu beantworten: Weder noch und trotzdem beides. Die Liste enthält zwar die ViewModels, diese werden allerdings gerendert und der Benutzer bekommt eigentlich das View zu sehen.

Gruss

02.04.2010 - 08:20 Uhr

Hallo winSharp93

"Schön" zu sehen das sich auch andere über dieses Thema den Kopf zerbrechen können 😉

Irgendwann habe ich mich dann aber glücklicherweise gefragt, was ich mir eigentlich von dme ganzen verspreche: Klar, Universlität ist immer gut - aber leider wurde auch alles immer komplexer. Der eigentliche Sinn von MVVM (nämlich: Logik vom UI in einer einfachen Art und Weise zu trennen) rückte mehr und mehr in den Hintergrund.
Daher sehe ich das jetzt etwas pragmatischer: Auch mal ohne schlechtes Gewissen was ins ViewModel packen - später ändern bzw. allgemeiner fassen kann man es immer noch (und zwar relativ einfach).

Da hast Du natürlich recht. Idealismus und der Drang zur Perfektion ist in solchen Fällen eher hinderlich.

Theoretisch könnte das MVM (also in deinem Beispiel CustomerViewModel auch geringere Veränderungen an der Struktur der Daten vornehmen (gerade z.B. Dictionaries auflösen usw.).
Zudem ist es denkbar, das auch transparentes Lazy-Loading usw. eingebaut werden könnte.

Stimmt, das LazyLoading habe ich nicht bedacht.

Gruss

01.04.2010 - 20:17 Uhr

XDA-Developers haben heute verkündet, dass Android 2.1 fürs HTC Hero kommt.
Über sowas macht man keine Witze -.-

01.04.2010 - 16:14 Uhr

Hallo Zusammen

Im Zusammenhang mit MVVM und ValueConvertern ist mir vorhin folgende Frage durch den Kopf gegangen:
Wenn ich im Model ein Property als DateTime anbiete, muss ich es im ViewModel als String oder ebenfalls als DateTime anbieten?
Würde ich es als String anbieten, wäre ich gezwungen die Formatierung im ViewModel vorzunehmen, was das ViewModel automatisch weniger "reusable" macht. Biete ich das Property als DateTime an, bin ich gewzwungen einen ValueConverter zu verwenden. Dies hätte zwar den Vorteil, dass das VM besser wiederverwendet werden kann. Allerdings nimmt es so dem ViewModel nahezu die Daseinsberechtigung, da das ViewModel ja eigentlich die Repräsentation des Views darstellt, obwohl diese Aussage wieder auf den Streit "Ein ViewModel pro View oder ein ViewModel pro Model" hinauslaufen würde.

Basierend auf folgendem Thread habe ich mir noch weitere Gedanken gemacht:
Thought: MVVM eliminates 99% of the need for ValueConverters

Schlussendlich läuft es auch dort auf ein hypothetisches "MMVVVM" Pattern hinaus, was mich meine Frage auf folgende Art beantworten lässt:
Existiert nur ein ViewModel pro Model (wie z.B. Customer und CustomerViewModel), sollte das ViewModel die Konvertierung NICHT vornehmen, da es wieder-verwendet werden können sollte. Ein ViewModel welches allerdings fest an ein View gekoppelt ist, dürfte ruig die Konvertierung selber in die Hand nehmen. Ein gutes Beispiel für ein solches ViewModel wäre ein MainWindowViewModel.

Man hätte also zwei Arten ViewModels. Die eine Art repräsentiert ein Model und die andere Art repräsentiert ein View. Ein solches ViewModel, welches ein View repräsentiert, würde eigentlich das View antreiben. Was ist aber mit den ViewModels, die ein Model repräsentieren?

To put it another way, I think it risks mixing concerns. If I'm browsing the
VM following the process for downloading the file and communicating whether
it's done, I'd rather not see the code adding "%" after each number or an
IsCancelButtonEnabled property. I'd much rather a ProgressPercentage integer
property and a HasCompleted boolean property, and let the view convert it.
The VM manages state, the view manages how it's visualized.

Um das Beispiel mit den Customers aufzugreifen, stelle ich folgendes Szenario auf:
Eine Klasse Customer wird von einem CustomerViewModel gekapselt. Eine View AllCustomersView hätte ein AllCustomersViewModel hinter sich. All CustomersViewModel bestünde wiederum aus einer Liste von CustomverViewModel. Diese Liste wird per Binding an einen DataGrid gebunden. AllCustomersViewModel beinhaltet weiterhin die nötigen Commands und Logik um die lokalen Daten zu aktualisieren. Ein weiteres View EditCustomerView hätte wiederum ein ViewModel EditCustomerViewModel hinter sich, welches intern ein CustomerViewModel enthält. Auch beinhaltet dieses EditCustomerViewModel die Commands um den veränderten Customer der Datenbank zu übergeben. Das CustomerViewModel selbst enthält weder Commands, die an ein View gebunden werden könen, um die Datenbank zu aktualisieren noch solche um die neusten Daten zu holen. Das CustomerViewModel leitet eigentlich nur die Daten weiter.
Wenn man nun wieder das Zitat von Paul Stovell liest. Bemerkt man, dass auch eine Konvertierung im CustomerViewModel am falschen Ort ist, da man, wie er sagt, „not see the code adding "%" after each number“. Zu diesem Zeitpunkt beginne ich, an der Daseinsberechtigung des CustomerViewModels zu zweifeln. Es konvertiert weder Daten, noch ist es in der Lage ein View anzutreiben. Es leitet lediglich die Daten weiter. Da die Konvertierung sowieso von einem ValueConverter übernommen wird, kann man doch sagen, dass das CustomerViewModel nur noch für das „NotifyPropertyChanged“ da ist?

Rechtfertigt sich aber ein solcher Aufwand, nur damit man kein NotifyPropertyChanged in den Modelklassen implementieren muss?

Gruss

01.04.2010 - 12:55 Uhr

Hallo

Es läuft wohl eher darauf heraus, dass ich meine BOs/DOs definiere und diese dann im DAL in die entsprechende EntityObjekte (von EF 1) umwandle. Die UML 1:1 auf die Tabellen abbilden würde wohl funktionieren, wenn mir der Enterprise Architect auch SQLite Scripts generieren könnte. Ansonsten muss ich die Datenbank wohl von Hand generieren 😉

Gruss

01.04.2010 - 12:48 Uhr

Hallo Zusammen

Mir ist auch als erstes die Bekämpfung des Spams in den Sinn gekommen.

Gruss

31.03.2010 - 20:36 Uhr

Hallo LuXon

Von C auf C# zu schliessen halte ich für eine schlechte Idee. Viele Konzepte von C# sind gegenüber denen von C verschieden. Damit du in einem Monat starten kannst würde ich Dir ebenfalls raten, das Openbook durch zu arbeiten, auch wenn Du schon ein wenig Programmiererfahrung hast. Du kannst ja auch selbst entscheiden, welche Seiten und Kapitel Du überspringen möchtest.

Gruss

29.03.2010 - 12:32 Uhr

Also das Spiel weiterzugeben trotz des Wissens, dass es sich nicht aktivieren lässt hat imo schon einen arglistigen Hintergrund.

zum Topic:
Diese Politik ist gerade zu typisch für EA und wundert mich leider überhaupt nicht. (Ähnlich schwach finde ich auch die Tatsache, dass Spiele immer öfter im Beta (bei Open Beta Versionen ist das etwas anderes) Stadium veröffentlicht werden und die User dann mit schwachen Updates hingehalten werden. So sind gewisse Spiele erst nach einigen Patches (UT3 war da ganz schlimm) spielbar.

29.03.2010 - 12:23 Uhr

Hm schade!

Dabei hat mir der Model-First Ansatz vom EF 4 gerade so gefallen.

Trotzdem Vielen Dank für die Info!

25.03.2010 - 16:52 Uhr

Hallo

Es wäre aber problemlos etwas wie:

Imo nützt einem das IFoo aber herzlich wenig, da du lediglich den Event dort definiert hast. So kannst du aus dem Event auch nur auf Elemente, die von IFoo definiert werden zugreifen, was aufgrund völlig unterschiedlicher Funktionalität von Baz und Bar möglicherweise gar keinen Sinn macht.
Zudem muss man auch wieder casten, wenn man auf spezifische Elemente von Bar oder Baz zugreifen möchte.

Ob man nun von Object nach Bar castet oder von IFoo nach Bar macht doch keinen Unterschied.

Gruss

24.03.2010 - 14:18 Uhr

Hallo Zusammen

Ich habe gerade einen kleinen Artikel über die Neuerungen am EF gelesen und habe mich gefragt, da immer vom VS2010 die Rede war, ob das Framework auch unter VS2008 so verwendet werden kann?

Wird es da wieder ein SP geben oder kommt EF4 nicht für VS2008?
Habe leider im Internet kaum was dazu gefunden, bis auf die Spekulation, das .NET 4.0 nur für VS2010 kommen würde..

Gruss

23.03.2010 - 21:11 Uhr

Ich hätte auch den zum Converter geraten, so ist es auch dem View überlassen mit welcher Farbe die Ü18 Personen dargestellt werden.

Gruss

21.03.2010 - 10:24 Uhr

Also
>
... es is Call of Duty Modern Warfare 2 und Divinity 2.

Ich halte es für ein wenig problematisch Hilfe beim Programmieren von Cheats anzufordern, vor allem, da es in CODMW2 einen Multiplayer Teil gibt. Für Übungszwecke oder Singleplayer (In der Form eines Trainers) ginge das imo in Ordnung - Alles andere kann ich nicht unterstützen.

16.03.2010 - 13:38 Uhr

Bei mir ist prinzipiell alles kostenpflichtig.

Es stehen ein paar Getränke- (Süssgetränke etc.) und Kaffeautomaten.
Der Kaffee aus den Automaten ist allerdings eher schlecht als recht. Meistens nimmt einer Privat eine Kaffemaschine mit und lässt die anderen dran teil haben, verlangt aber pro Kaffe einen kleinen Betrag. Von Bohnenkaffee bis Nespresso steht praktisch alles rum. 😉
So komme ich auf ca. 2 Tassen Kaffee pro Tag

Gruss

08.03.2010 - 20:00 Uhr

Ich bin auch ein überzeugter Benutzer das Wave Keyboards 😉 sehr angenehm zum Schreiben und weicher aber bestimmter Druckpunkt.

24.02.2010 - 10:20 Uhr

Hallo Zusammen

Das die IntelliSense teilweise ganz verschwindet und mit einem Workaround gefixt werden kann ist ja bekannt. Mir fehlen aber nach wie vor die Beschreibungen zu den Properties.

Wenn ich in der Codebehind Datei z.b.

myButton.ActualHeight

eintippe. Kommt neben den anderen zur Verfügung stehenden Properties und Methoden auch eine Beschreibung des Properties

Ruft die gerenderte Höhe dieses Elements ab.Dies ist eine Abhängigkeitseigenschaft. Im XAML Editor fehlt mir diese Beschreibung aber. Ich sehe da zwar welche Properties zur Verfügung stehen, habe aber keine Beschreibung zu den einzelnen Properties wie im Code.

Gibt es dazu einen Fix oder ist es gar nicht vorgesehen, das man im XAML diese Beschreibungen zu Gesicht bekommt?

Danke & Gruss

23.02.2010 - 16:50 Uhr

Hallo Zusammen

IMO kann man auch Ansatz 1 und 2 kombinieren. IArtikelDatenzugriffsschicht würde intern z.B. einen O/R Mapper nutzen, um an die Daten gelangen, stellt aber dem BL nur eine Handvoll Abfragen (LadeAlleArtikel(), LadeAlleAktivenArtikel()) zur Verfügung, so dass dieser auch nicht mit dem O/R Mapper in Kontakt kommt. Entscheidet man sich nämlich die Daten künftig in einer XML Datei zu speichern, ist man relativ aufgeschmissen, wenn man im BL direkt den Mapper benutzt.

Gruss

23.02.2010 - 09:30 Uhr

Hallo Zusammen

Nach langem Recherchieren habe ich SQLite getestet.
Das ganze funktioniert soweit ganz gut. SQLite untersützt mehrere gleichzeitig lesende und ein schreibender Prozess. Für meine Anforderungen wo durchschnittlich alle 30 Minuten etwas aus der Datenbank gelesen oder hineingeschrieben wird, reicht dies völlig aus. Wenn ein schreibender Prozess die DB blockiert, warten die anderen, die ebenfalls etwas hineinschreiben möchten bis zu 30 Sekunden, bevor sie eine Exception werfen.
Das SQLite FAQ macht allerdings auf das grundsätzliche Problem bei embedded Datenbanken auf Freigaben aufmerksam, wo erklärt wird, dass es einige fehlerhafte NFS Implementierungen erlauben, dass mehrere Clients einen Schreib-Lock auf diesselbe Datei haben, worauf die Datenbank korrumpiert werden könnte.

Ich habe es aber bereits einige Tage getestet mit 2 Rechnern und je 10 Threads die pausenlos schreiben und bis jetzt habe ich keine Fehler festgestellt.
Das Entity Framework funktioniert nun auch mit SQLite und auch die Auto Increment Spalten funktionieren nun.

Gruss

21.02.2010 - 00:35 Uhr

Du möchtest an einer Stelle den gesamten Thread blockieren ("sodass es quasi da wo es momentan ist nicht mehr weitermacht bis die Zeit abgelaufen ist") aber das GUI, welches im selben Thread läuft soll aber auf Anfragen reagieren und nicht blockiert sein.
Das scheint mir irgendwie ein Ding der Unmöglichkeit zu sein.

Wenn du innerhalb eines Events o.Ä. wartest blockierst du die gesamte Meldeschleife, was sich im Einfrieren des GUIs äussert. Je nach Anforderung könntest Du aber auf einen weiteren Thread ausweichen, ob das aber den gewünschten Effekt hat, kann ich nicht beurteilen.

Was willst Du denn genau erreichen?

17.02.2010 - 14:40 Uhr

Und auf dem Rechner, auf dem der Share liegt, kannst du nicht keinen SQL-Express, Firebird, etc. installieren?

Nein, leider nicht.

Und ein einzelner dedizierter Zielrechner kann notfalls auch nicht dafür herhalten?

Das müsste ich abklären. Wäre aber eine Möglichkeit.

Für mich steht fest, dass es so wie ich es mir gewünscht habe nicht funktioniert.
Die Datenbank ist eigentlich relativ schwach frequentiert. Falls es aber doch mal vorkommen sollte, dass zwei Benutzer gleichzeitig an die Daten ran müssen, muss es trotzdem funktioniern. Wenn man beim Gebrauch von Sql Compact die nötigen Exceptions abfängt kann man wohl die gewünschte Synchronisierung einbringen. Doch denke ich, dass kaum ein O/R Mapper auf diese speziellen Anforderungen optimiert ist. Da diese - wenn überhaupt - nur auf SqlCompact im lokalen Betrieb programmiert sind und dann mit dieser Situation nicht umgehen können.

Ich habe also im Prinzip die wahl zwischen einem DAL, der intern ADO.NET verwendet und daher selbst geschrieben werden muss, dafür aber auch den Ausnahmefall von zwei oder mehreren Benutzern abfängt.
Oder ich organisiere eine serverbasierte Datenbank, auf die dann mittels O/R Mapper zugegriffen werden kann.

Gruss

17.02.2010 - 13:13 Uhr

Ich bin auf den Artikel gelangt, als ich nach dem Fehler gesucht habe, der bei mir auftrat, wenn ich einen Insert in eine Tabelle mit einem Auto Increment Primary Key probiert habe.

Also lass mich mal zusammenfassen:
Das Problem mit dem Multiuser Zugriff, lässt sich nur lösen, wenn man einen Server hat, auf dem SQLServer o.Ä. läuft und über welchen alle Clients auf die Datenbank zugreifen. Leider steht mir eine solche Infrastruktur nicht zur Verfügung.

Wenn ich auf jedem Zielrechner SqlExpress, Firebird o.Ä. installieren würde und wiederum das Datenbankfile auf einem Share speichern würde, wäre das ja imo dasselbe Problem wie wenn ich mit Sql Compact auf ein .sdf File zugreife, das ebenfalls auf einem Share liegt.

@dN!3L

Vielen Dank, ich werde mir das mal anschauen.

17.02.2010 - 11:50 Uhr

Und selbst wenn man es hinfrickeln könnte ( wie bei Access geschehen ) ist es
die schlechteste aller Möglichkeiten.
Wenn man Multiuserzugriff benötigt dan benötigt man einen dedizierten SqlServer,
egal von welcher Firma.

Ich bin mir darüber im klaren, dass das nicht die ideale Lösung ist. ein dedizierter SqlServer o.Ä. ist innert nützlicher Frist wohl nicht zu organisieren. Also muss ich es irgendwie hinfrickeln 😉

EF benutzt genauso wie jeder ORMapper die Fähigkeiten der DB.
Und bei SqlCompact gibt es eine Identity Spalte, die EF auch unterstützt.

Schau dir mal den Beitrag an:
http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/48984bd4-0921-4637-bd8f-8aa1ae9514ab

No, auto-generated keys are NOT supported when SQLCE is used via EF.

16.02.2010 - 22:27 Uhr

Wie Bernd schon sagte, SqlCE und networkshare ist eine ganz böse sache
und Multiuser bei Filebasierten Datenbank erst recht.

SqlCe ist laut Microsoft für bis zu 100 Benutzer gleichzeitig konzipiert 😉

Wenn dir die XML Sachen von NHibernate nciht gefallen, schonmal FlientNHibernate angeschaut?

Ich bin mir darüber im Klaren, das es da Alternativen gibt (gibt ja auch was mit Attributen). Mir scheint NH einfach vom Initialaufwand und der Einführungsarbeit her zu gross.

Und wieso sollte EF keine automatischen ID's beherrschen?

Wenn ich das nur wüsste. Es scheint aber so zu sein, dass EF unter SqlCe keine automatischen IDs o.Ä. unterstützt.

16.02.2010 - 16:33 Uhr

verwendetes Datenbanksystem: SqlCe3.5Sp1

Hallo Zusammen, ich bin auf der Suche nach einem vernünftigen O/R Mapper für den Zugriff auf Sql Ce Datenbanken.

Ich habe schon das Entity Framework und NHibernate ausprobiert:
EF fällt weg, weil es nichtmal automatische IDs generieren kann und NHibernate scheint mir ein Overkill zu sein. Ausserdem gefallen mir die XML Mappings nicht.

Der Mapper sollte wie erwähnt SqlCe unterstützen und auch mit Datenbanken, die auf einem Netzwerkshare liegen umgehen können (Auch Mehruserzugriff). Weiter wäre die ein oder andere Join Abfrage wohl nötig.

Ich bin für alle Anregungen und Vorschläge dankbar.

Gruss

15.02.2010 - 11:09 Uhr

Hallo meisteralex

Ab .NET 4.0 sollte dieses Problem AFAIK über Ko/Kontravarianz lösbar sein, aber bei Allem darunter sehe ich auch nur die von Dir genannte Lösung.

Gruss

11.02.2010 - 20:46 Uhr

Hallo herbivore

Auf das läuft es wohl heraus. Ich dachte zuerst, dass mir nur ein Repository zur Verfügung steht. Durch die Tatsache, dass ich aber File Zugriff auf das Repo habe, konnte ich das dortige Repository löschen und jeweils in Unterordnern neue Erstellen, also einfach eine Stufe tiefer.

Gruss

11.02.2010 - 08:43 Uhr

Ich würde auch wenn immer möglich WPF verwenden:

  1. Sind viele Sachen einfacher zu lösen als mit Winforms. Man versuche nurmal ein Label auf dem Form zu zentrieren; In WPF ist das relativ leicht.
  2. Hat man beim DataBinding mehr Möglichkeiten als bei Winforms, ohne etwas selbst zu implementieren.
  3. Hat man mit dem MVVM-Muster ein leicht verständliches und konsequentes Mittel um auch kompliziertere GUIs einfach zu erstellen und trotzdem die Trennung von GUI und Code bei zu behalten. MVVM ist imo auch nicht so schwammig definiert wie MVP, MVC, wo es gefühlte 1000 verschiedene Möglichkeiten gibt, diese Muster umzusetzen.

Gruss

10.02.2010 - 18:49 Uhr

Hallo

Also kann ich mehrere Projekte managen, aber diese teilen sich dann sozusagen die Revisionsnummern?

10.02.2010 - 18:33 Uhr

Hallo Zusammen

Kann man in einen SVN-Repository mehrere Projekte managen?
Damit meine ich z.b. das ich pro Projekt einen Ordner habe, für welchen dann auch die Revisionsnummern verschieden sind?

ATM ist es so, dass wenn ich an einem Projekt etwas mache wird die Revision z.b. auf 21 erhöht: Wenn ich nun ein neues Projekt mache wird dessen Revisionsnummer direkt auf 22, statt auf 1 gesetzt. Kann man das irgendwie umgehen?

Vielen Dank & Gruss

10.02.2010 - 10:43 Uhr

Hallo Zusammen

Spätestens, wenn man in einem Methodenaufruf ein Komma setzen will, da aber immer ein Semikolon steht und man nach 10 Minuten Kopfkratzen merkt, dass da nur ein 'kleiner Dreck' auf dem Bildschirm war, der das Komma in ein Semikolon verwandelt hat, ists so weit. 😉

Gruss

09.02.2010 - 09:38 Uhr

Hallo

Natürlich:

Das geht ja dann nach dem Prinzip behandle nur das, was du auch behandeln kannst. Wenn ein unbekannter Fehler auftritt, darf das Programm nicht mehr weiter arbeiten. Fehler die man nicht behandeln kann oder eben unbekannt sind kann man natürlich global fangen. Trotzdem würde ich im Falle des XML Files zuerst die XmlException fangen, um danach eine ApplicationException o.Ä. weiter zu werfen.

Gruss

08.02.2010 - 08:15 Uhr

Wie kreativ 😉

Kuchendiagramm zum selbstzweck so zu sagen 😄

08.02.2010 - 08:04 Uhr

Hallo t-master

Grundsätzlich sollte man die Ausnahmen dort behandeln, wo man sie auch behandeln kann! (Und auch nur diese Behandeln, die man auch behandeln kann)
Was nützt es dir, wenn du global eine Exception fängst, die besagt, dass es einen Syntaxerror im XML-File gegeben hat? Du kannst danach einzig eine eigene Fehlermeldung anzeigen lassen und das Programm beenden. Wenn du diese Exception aber am richtigen Ort fängst, kannst du ggf. den Benutzer dazu auffordern ein anderes File zu wählen o.Ä. Wenn du die Exception aber global fängst, ist es dafür wohl zu spät.
Auch sollte man immer auf spezifische Fehlertypen catchen und nicht auf Exception, da man z.b. je nach Fehler verschieden reagieren muss. Auch wenn Du letztendlich überall gleich reagierst, solltest Du trotzdem nicht einfach auf Exception catchen, um Dir Schreibarbeit zu sparen.

Gruss

06.02.2010 - 12:23 Uhr

Hallo herbivore

Du hast natürlich recht, allerdings denke ich spielt es für die Beschreibung des Problems keine Rolle ob lokale Variable oder Parameter. 😉

Gruss

05.02.2010 - 22:39 Uhr

Hallo nodesperado

Eigentlich macht es gar keinen Unterschied. Brauchen tut man this nur, wenn eine lokale Variable mit demselben Namen wie eine Membervariable definiert wurde und man zwischen den beiden unterscheiden möchte. Oder bei deinem Beispiel ist im Konstruktor eine lokale Variable name definiert, wenn du nun auf diese Variable blendet sozusagen die Membervariable name aus. Um trotzdem auf die Membervariable zugreifen zu können, benutzt man eben this. Ob man this grundsätzlich immer benutzen soll oder nur wenn es nötig ist, muss jeder für sich selbst wissen. Tatsache ist, dass Dir Intellisense direkt alle Member und Methoden der aktuellen Klasse anzeigt, wenn du this. eingibst.

Gruss

04.02.2010 - 21:39 Uhr

When we import the model, we get two entities MusicalShow and Sponsors.

hmm EF Einführung 😉

Gruss

02.02.2010 - 11:51 Uhr

Hallo

Für was benötigst du denn eine solche Karte? In welches Mainboard soll die denn reinpassen?

Gruss

02.02.2010 - 10:06 Uhr

Hallo Second Sun

Bei solchen Problemen kann man beispielsweise eine synchronisierte Queue verwenden.

Der Listener schreibt alle Empfangenen Daten in die Queue und 2 und 3 verarbeiten diese. Man könnte zusätzlich noch mit einer weiteren Synchronisierung arbeiten, so dass die beiden Verbraucher Threads in einen wartenden Zustand o.Ä. versetzt werden, wenn die Queue leer ist und der Listener diese Threads jeweils anstupst, wenn er wieder Daten in die Queue geschrieben hat. Eine solche zusätzliche Synchronisierung könnte man z.B. mit einem AutoResetEvent realisieren.

zwischen 2,3 und 4 ist es wieder genau dasselbe, nur das du in diesem Fall zwei Erzeuger hast.

Siehe:
Erzeuger Verbraucher Problem
SyncQueue <T> - Eine praktische Job-Queue
AutoResetEvent Class

Gruss

28.01.2010 - 15:03 Uhr

Hallo

Siehe Anhang 😉

Ist jetzt vielleicht nicht so professionell wie es aussehen könnte aber geht in die Richtung. So sieht man die Farben dann im Kontrast zu Schwarz und Weiss. Man sieht also z.B. bereits wie es aussehen könnte, wenn man die Farbe als Hintergrund verwendet und den Inhalt mit schwarzem Text füllt.

Gruss

28.01.2010 - 13:11 Uhr

Farbschemen Generierung:

  1. Bild auswählen
  2. Mosaic Tiles (Bild verpixeln) mit wählbarer Grösse
  3. Auswahl der entstandenen Tiles durch den Benutzer
  4. Darstellung dieser Farben im Kontrast zu Schwarz und Weiss

Ist mir gerade so eingefallen 😉

28.01.2010 - 11:05 Uhr

Erzeuge ich diese Objekte nun direkt in der Klasse TextFileLoad oder nutze ich auch hier den Container

Der Grund warum man Interfaces und Kernel einsetzt ist ja, dass man später an genau dieser Stelle Änderungen erwartet und diese dann leichter implementieren kann. Nun stellt sich lediglich die Frage wie wahrscheinlich es ist, dass sich diese erzeugten Objekte in Zukunft ändern.

Gruss

26.01.2010 - 13:50 Uhr

Man könnte ja auch mit mehreren Hashs arbeiten.
Einmal Md5 und einmal z.B. CRC32. Die Wahrscheinlichkeit das zwei **verschiedene **Dateien denselben Md5 und denselben CRC32-Hash haben wäre ja dementsprechend minim.

Gruss

25.01.2010 - 17:23 Uhr

Hm, bei WPF wird ja teilweise auch das ViewModel an das Control gebunden, von da her müsste das POCO nicht unbedingt INotifyPropertyChanged implementieren.

Für mich sind POCOs einfache Datenobjekte, wo man auch leicht an die Daten rankommt bzw. ein Objekt einer Zeile in der Datenbank entspricht.

Gruss

25.01.2010 - 17:12 Uhr

Hm, wohl gar nicht!

Was du aber versuchen könntest ist folgendes:
In dem Objekt, das du Serialisieren willst, ISerializable implementieren und dann wenn es um die Serialisierung von Model3DGroup geht, kannst du versuchen, die Informationen die Du serialisieren musst, von Hand aus dem entsprechenden Objekt rauszuholen.

Am besten schaust du in der MSDN wie man ISerializable sauber implementiert. (Würde hier gerne eine Link posten aber die Seite ist irgendwie down)

Gruss

22.01.2010 - 11:43 Uhr

Ich bezweifle, dass du schon länger programmierst, da du sonst den Debugger bedienen könntest und relativ schnell gemerkt hättest, das die Funktion nicht ausgeführt wird, also der Thread nicht gestartet wurde. Danach hättest du uns auch ein Fehlerbeschreibung geben und nicht einfach den Quelltext vor die Nase knallen und nach der Zeile, wo der Fehler liegt fragen können.

Es ist nur logisch, dass zuerst ein paar Tutoriallinks kommen, wenn Du sagst, dass die Verbindung nicht funktioniert. Man sieht nunmal nicht auf anhieb, wo das Problem liegen könnte. Hättest du aber wie beschrieben den Debugger benutzt und nach dem Grund für das Nichtausführen der Methode gefragt, wäre wohl schneller eine Antwort gekommen.

Mein Senf dazu...

22.01.2010 - 08:52 Uhr

(number & (number - 1)) == 0

Neue Aufgabe

Eine Implementierung des erweiterten euklidischen Algorithmus
(Rekursiv oder Iterativ)

21.01.2010 - 16:14 Uhr

Imo läuft diese Diskussion auf die Frage heraus ob sich Objekte selbst speichern sollten oder das Speichern von Service-Klassen übernommen wird. Was mich schlussendlich wiederum an folgenden Thread erinnert.

3-Schichten-Design?? [harte vs. weiche (Daten-)Objekte / OOP vs. ActiveRecods]

21.01.2010 - 13:53 Uhr

Naja, bist du dir da sicher? Bist du eher vom Namen begeistert?
Alleine der Overhead kann dir da einen Strich durch die Rechnung machen.

Was meinst Du genau mit Overhead? sonst sagt man ja meistens den höheren Sprachen einen Overhead nach.

Stabil, schnell, sehr kleiner Code!

Assembler ist zwar in der Theorie stabil. In der Praxis denke ich wird der Code auch schon bei kleineren Probleme so kompliziert, dass Fehler schwer zu finden und zu beheben sind. Persönlich habe ich den Eindruck je "low-leveliger" (schönes Wort 😃) desto schwieriger wirklich stabilen Code zu schreiben.

Die Schnelligkeit macht aber meistens nichts mehr aus. Mir fallen da gerade nur TrueCrypt und ein alter Virenscanner ein, wo Assembler tatsächlich eingesetzt wurde und in diesem Sinne schneller war.

Und das mit dem "kleinen" Code spielt auf heutigen Windows Maschinen nun wirklich keine Rolle mehr.

Aber lassen wir das, sonst artet dieser Thread noch in einem Glaubenskrieg aus 😉

21.01.2010 - 10:36 Uhr

Also es ist definitiv so, dass wenn ich in der "FrauImpl"-Klasse die base.Save-Methode aufrufe, die Save-Methode aus der "LebewesenImpl"-Klasse angesprochen und danach mit der Methode in "FrauImpl" fortgefahren wird. Die Save-Methode in der "MenschImpl" wird einfach nicht beachtet.


public class LebewesenImpl
  {
    public virtual void Save(Lebewesen lebewesen)
    {
      Console.WriteLine("Lebewesen Save");
    }
  }

  public class MenschImpl : LebewesenImpl
  {
    public void Save(Mensch mensch)
    {
      base.Save(mensch);
      Console.WriteLine("Mensch Save");    
    }
  }

  public class FrauImpl : MenschImpl
  {
    public void Save(Frau frau)
    {
      base.Save(frau);
      Console.WriteLine("Frau Save");    
    }
  }

  public class Lebewesen { }
  public class Mensch : Lebewesen { }
  public class Frau : Mensch { }

Das ist ungefähr dein Code..


class Program
  {
    static void Main(string[] args)
    {
      FrauImpl m = new FrauImpl();
      m.Save(new Frau());
      Console.ReadKey();
    }
  }

ergibt dann die Ausgabe:


Lebewesen Save
Mensch Save
Frau Save

Also wird die Mensch Save Methode ausgeführt. Wie bemerkst Du ob die Methode ausgeführt wird?

Gruss

[EDIT:]
ErfinderDesRades:
POCO