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 Paschulke
Thema: Best Practice zur Erstellung eines einfachen Abfrageeditors
Am im Forum: Rund um die Programmierung

Danke für den Vorschlag! Ich habe mir gerade mal ein paar Demos dazu angesehen. Das scheint leider auch nichts zu sein, um einen unbedarften Anwender damit arbeiten zu lassen.
So etwas ist evtl. eine Lösung, um in einer späteren Ausbaustufe ein Produkt für "Experten"-Benutzer anzubieten.

Ich glaube ein externes Tool kommt nicht in Frage. Ich wollte das im Grunde nur noch einmal bestätigt haben ;-)

Hat jemand vielleicht noch eine Idee zu meiner zweiten Frage?

Thema: Best Practice zur Erstellung eines einfachen Abfrageeditors
Am im Forum: Rund um die Programmierung

Hallo,

ich habe mal eine grundlegende Frage:

Hintergrund (die wichtigsten Anforderungen):
- Unsere Kunden möchten eigene Auswertungen ihres Datenbestandes erstellen. Das Tool zur Erstellung der Auswertungen soll möglichst von jedem einfachen Sachbearbeiter bedienbar sein. Hinsichtlich der Flexibilität müssen die Anwender aus diesem Grund einige Einschränkungen in Kauf nehmen.
- Jeder Anwender hat Rechte, die definieren, welche Datensätze er sehen und bearbeiten darf. Diese Rechte müssen berücksichtigt werden.

Fragen:
- Seht ihr es auch so, dass wir nicht darum herum kommen, einen eigenen Abfrageeditor zu basteln, der die Anforderungen erfüllt? Oder gibt es auf dem Markt Lösungen, die man einem einfachen Sachbearbeiter zumuten kann und die die Rechteproblematik berücksichtigen? Wir haben uns List & Labels sowie die Reporting Services angesehen. Beide scheinen nicht einfach genug bedienbar zu sein. Ob sie hinsichtlich der Rechteproblematik ok wären, haben wir noch nicht genauer untersucht.
- Wenn wir eine eigene Lösung basteln: Gibt es eine empfohlene Lösung zur Persistierung der vom Anwender zusammengeklickten Abfrage? Ich kann einfach ein SQL-Statement generieren. Das hat aber den Nachteil, dass das Statement bei nachträglichen DB-Änderungen ggf. angepasst werden muss. Wie geht man mit dieser Problematik sinnvollerweise um? Wir nutzen Entity Framework. Kann uns das dabei irgendwie helfen?

Ich würde mich freuen, wenn Ihr mir ein paar Tipps geben könntet.

VG, Paschulke

Thema: asynchrone Programmierung: Task vs. Threads, async vs. parallel, in welchem Thread läuft was?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Vielen Dank für die interessanten Antworten!
Ich werde sie mir in Ruhe ansehen. Ich denke sie bringen mich ein großes Stück weiter :-)

Thema: asynchrone Programmierung: Task vs. Threads, async vs. parallel, in welchem Thread läuft was?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

die asynchrone Programmierung bereitet mir Probleme. Irgendwie läuft mein (WPF) Programm, dann rausche ich aber immer wieder in Probleme mit der Aktualisierung der GUI, da ich mich plötzlich mal wieder nicht im STA Thread befinde.
Ich fürchte, dass ich auf einem gefährlichen Halbwissen entwickle...

Meine erste Frage:
Wenn ich mit Hilfe von Task.Factory.StartNew einen neuen asynchronen Prozess starte, wird dann immer ein neuer Thread erzeugt? Irgendein "Experte" hatte mir mal erklärt, dass asynchron nicht gleich multithreaded ist und es wichtig ist, das zu verstehen. Offensichtlich habe ich es nicht verstanden. Kann mir das nochmal jemand erklären - sofern die Aussage stimmt?

Zweitens:
Wenn ich mit await auf die Fertigstellung eines asynchronen Prozesses warte, kehre ich dann immer in den aufrufenden Thread zurück? Davon bin ich bisher ausgegangen.

Drittens (erledigt sich evtl. mit Frage 1):
Besteht ein Unterschied zwischen einem asynchronen Prozess aus dem .NET-Framework (z.B. Stream.ReadAsync) und einem von mir erzeugten Prozess mit Task.Factory.StartNew?

Viertens:
Ich entwickle eine Client-Server-Application mit WPF und WCF. Die Erzeugung der Services übernimmt der IoC-Container Castle.Windsor. Um die Services asynchron aufzurufen nutze ich eine im folgenden Thread beschriebene Erweiterungsmethode: Stackoverflow (1. Antwort): Using Client-Side Task-Based Operations with WCFFacility in Castle.Windsor. Ist das sauber?

So das sollten erst einmal genug Fragen sein...

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Alles was Du siehst steht in der Vorgangstabelle. Sie ist eine Tabelle, die redundante Daten der Detailtabellen enthält. Sinn der Vorgangstabelle ist wie gesagt ein performanter Aufbau des Vorgangsbaums.
Erst beim Doppelklick auf einen Eintrag (z. B. 01.01.2008 - 14.01.2008) werden die Daten aus der Detailtabelle gelesen (also hier aus der Tabelle Fortbildung).

Ich schließe das Thema jetzt ab. Obwohl alles sehr konfus war, habe ich doch ein paar gute Ideen erhalten. Ich fürchte, dass ich Diräkt doch einmal gekränkt habe. Das war nicht meine Absicht. Sorry! Der Fehler lag wohl offensichtlich eindeutig an mir bzw. meiner schlechten Erklärung.

Vielen Dank für Eure Hilfe!

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Wenn ich Dich jetzt richtig verstehe möchtest du eine View erstellen in der ich alle 90 Detailtabellen einbeziehe.
Technisch würde das sicherlich funktionieren. Aber ist das performant? Ich hatte das bisher für so abwegig gehalten, dass ich nicht wirklich darüber nachgedacht hatte.

Aber vielleicht sollte ich das doch einmal tun... ;-)

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Der Thread ist langsam zu unübersichtlich. Spricht etwas dagegen, dass ich noch einmal von vorne anfange? Oder wird das hier nicht gerne gesehen?

Das Problem scheint zu sein, dass mein Problem falsch verstanden wird. Nicht die Detailtabellen haben eine 1:1 Beziehung zur Person sondern die Vorgangstabelle zu den Detailtabellen (und auch zur Personentabellen aber das ist ein Sonderfall, den ich erst einmal ausklammern würde)...

Ich würde versuchen aus meinen Beschreibungsfehlern zu lernen und in einem neuen Thread einen neuen Versuch starten. Wäre das ok?

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Zitat von Diräkt
Zitat
Nein, sind sie nicht. Eine Person kann mehrere Adressen haben.
Zitat
Jede Tabelle (also hier Person und Anschrift) hat eine 1:1 Beziehung zu einer "Vorgangstabelle"

Diese zwei Zitate wiedersprechen sich irgendwie ?!
Warum? 1 Person, n Detailtabelle und jede Detailtabelle hat 1 Vorgangsdatensatz.

Ich bin Dir dankbar für Deine Mühe, habe aber das Gefühl, dass Du Dich zu sehr auf einzelne Details fixierst und dabei nicht richtig versuchst, meine Beschreibung des fachlichen Zusammenhangs zu verstehen. Vielleicht würde es dann klarer. Nicht falsch verstehen! Ich bin dankbar für jeden, der sich die Mühe macht hier zu helfen. Ich habe nur das Gefühl wir drehen uns im Kreis...
Zitat von Khalid
Schau dir mal das EAV Datenbankmodell an. Damit kann man sowas von der Datenbank Seite her recht einfach abbilden, von der Reporting Seite her wird es allerdings komplizierter.

Bist du auf den SQL Server angewiesen, oder kannst du ggf. umstellen? Wenn ja, ist dies ein typischer Fall für NoSQL (z.B. MobgoDB).
Interessante Idee. Leider ist die Anwendung bereits zu groß und komplex um noch an den Fundamenten zu rütteln. Aber ich glaube EAV würde auch nicht in die richtige Richtung gehen, wenn ich es richtig verstehe. Es ist nicht nur ein Attribute-Value-Pair, das jeweils in einer Detailtabelle steht... Ich verfluche gerade meine angebrachten Beispiele ;-)

Wie gesagt: In den meisten Fällen (mind. 80 der 90 Detailtabellen) geht es um die historische Speicherung von Anwendungsfällen zu einer Person. Von wann bis wann war sie krank. Hat sie Atteste zur Krankheit vorgelegt? Wann hat sie die Krankheit gemeldet?...
Soll nur ein Beispiel dafür sein, dass in den Detailtabellen richtig "Leben" steckt.

Ist die Konstellation wirklich so ungewöhnlich, dass ihr mich davon abbringen wollt? Ich hatte sie immer für vollkommen alltäglich gehalten. Wahrscheinlich war mein Beispiel einfach irreführend.

Wenn man sich nochmal die Problembeschreibung (mein 3. Beitrag hier) ansieht: Ist die Einführung einer 1:1 verknüpften Vorgangstabelle wirklich keine gute Idee?

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Zitat von san-software
Adressdaten und Kommunikationsdaten sind pro Person nur einmal vorhanden, und gehören daher in die Personentabelle.
Nein, sind sie nicht. Eine Person kann mehrere Adressen haben. Ich ahne worauf Du hinaus willst. Ich soll eine Spalte "Postanschrift", eine Spalte "Hausanschrift"... erstellen. Und eine Spalte "E-Mail", eine Spalte "Mobil" usw. Ok, bei diesen beiden Tabellen ginge das. Vielleicht waren sie als Beispiel nicht gut. Ich hatte sie gewählt, weil sie auch für nicht im der Fachlichkeit steckende Personen leicht verständlich sind. Dachte ich...

In den meisten Fällen geht es um solche Dinge wie Fortbildungen, Krankheiten usw. Sie haben i. d. R. ein Beginn und ein Ende und sind beliebig oft vorhanden. Ich kann sie nicht in die Personentabelle integrieren. Zumindest wüsste ich nicht wie...?

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Eine 1:1-Beziehung in eine m:n-Beziehung umwandeln...? Klingt nicht gerade vernünftig. Aber ich muss zugeben, dass mir zumindest der Gedanke auch schon einmal kam... Sinnvoll ist das aber denke ich nicht.

Ich versuche einmal ganz grundsätzlich das Problem zu schildern:
Der Anwender wählt über eine Suchmaske eine Person aus. Es öffnet sich ein Fenster zur Bearbeitung dieser Person. Hier wird auf der linken Seite ein Vorgangsbaum angezeigt, der dem Benutzer die Möglichkeit gibt, Detaildaten zur gewählten Person zu berabeiten.

Das sieht in etwas wie folgt aus:
- Adressen
-- Postanschrift
-- Hauptanschrift
- Kommunikationsdaten
-- E-Mail
-- Telefon
- Dienstverhältnisse
-- 01.01.2008 - 31.12.2009
-- 01.01.2010 - offen
- Fortbildungen
-- 01.01.2008 - 14.01.2008
-- ...

Nach diesem Beispiel gäbe es die Tabellen "Adresse", Kommunikation", "Dienstverhältnis", "Fortbildung". Jede Tabelle enthält also Detaildaten zu einer Person.
Insgesamt gibt es ca. 90 solcher Detailtabellen!

Wenn das Personenfenster geöffnet wird, muss der Vorgangsbaum erstellt werden. WIE?
Ich müsste jede Detailtabelle nach Einträgen zu der Person durchsuchen und die entsprechenden Daten zum Baum hinzufügen. Das ist erstens nicht performant und zweitens schlecht wartbar.
Deshalb die Idee eine "Vorgangstabelle" zu erstellen. Beim Speichern eines Datensatzes wird ein Eintrag in dieser Tabelle erzeugt. Wesentliche Spalten: PersId, Vorgangsbaumbeschriftung, IdentifierDerDetailtabelle

Ein Doppelklick auf einen Eintrag soll den Datensatz zur Bearbeitung öffnen. Deshalb müsste evtl. (falls EF das nicht anders liefert) die Id des "Stammdatensatzes" zusätzlich abgespeichert werden.

Macht das den Sinn vielleicht etwas deutlicher? Ich hoffe... ;-)

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

Zitat von Diräkt
... Ich habe eigentlich noch nie ein vernünftigen Grund gesehen, wesshalb man nicht gleich auf 1:1 Relations verzichtet und die Spalten direkt in die Tabelle packt ....
Genau diesen Kommentar hatte ich erwartet und deshalb den Sinn der Vorgangstabelle erläutert.
Wie baust Du dann den Vorgangsbaum performant und wartbar auf?

Thema: 1:1 Beziehung von einer Tabelle zu mehreren anderen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL Server

Hallo,

ich arbeite an einer Anwendung zur Verwaltung von Personendaten.
- Darin gibt es eine zentrale Tabelle namens "Person"
- Zur Personen-Tabelle existieren eine Reihe von Detailtabellen mit PersonId als Fremdschlüssel (z. B. Anschrift)
- Jede Tabelle (also hier Person und Anschrift) hat eine 1:1 Beziehung zu einer "Vorgangstabelle"

Zum Sinn der Vorgangstabelle:
Beim Öffnen einer Person soll ein "Vorgangsbaum" angezeigt werden, der dem Benutzer eine schnelle Übersicht der Daten zu dieser Person gibt. Aus diesem Grund haben wir die "Vorgangstabelle" erstellt, die im Wesentlichen aus der PersonId, und einer Caption für den Vorgangsbaum besteht. So kann der Baum mit einem Select auf einer Tabelle erzeugt werden. Ich muss allerdings über die Vorgangstabelle auch an die Id des verbundenen Datensatzes kommen, damit ein Doppelklick den Datensatz zur Bearbeitung öffnet. Das könnte mir denke ich das EF durch das Mapping liefern, oder?

Fragen:
1. Wie löst man eine solche 1:1 Beziehung am Besten, wenn man möglichst auch die referentielle Integrität sicher stellen möchte. Geht das überhaupt? Oder kann man gar nicht gewährleisten, dass ein Vorgangsdatensatz irgendwann z. B. ohne zugehörigen Personendatensatz existiert?
2. Wie würde das Mapping im Entity Framework aussehen?
3. Die Vorgangstabelle hat ja auch eine PersonId. Wenn ich eine Person anlege, bekomme ich spätestens hier Schwierigkeiten, weil ein Zirkelbezug existiert. Kann man so etwas auch irgendwie geschickter lösen? Notfalls müsste ich nachträglich ein Update auf das dann notwendigerweise "nullable" Feld PersonId machen...

Viele Grüße
Paschulke

Thema: Entity Framework in verteilter Anwendung
Am im Forum: Datentechnologien

Da hatte ich offensichtlich ein Brett vor dem Kopf.
Für mich war es selbstverständlich, dass ich immer alle Daten einer Entität hin- und her schicke. Mit verteilten Anwendungen hatte ich bisher nicht gearbeitet und deshalb die Probleme noch nicht so richtig "gefühlt".
Ich hatte offensichtlich zu kompliziert gedacht. Das Argument leuchtet mir jedenfalls endlich ein

Thema: Entity Framework in verteilter Anwendung
Am im Forum: Datentechnologien

Zitat von LatinChriz
Für gewöhnlich sendet man ungern die Entitäten aus dem Entity Framework direkt per WCF an den Client. Hier setzt man gern das Konzept der POCOs ein - das heißt klar definierte kleinere Klassen die nur aus den Daten bestehen.
Hier stoße ich wieder auf eine meiner grundlegenden Fragen: Warum sendet man ungern die Entitäten aus dem Entity Framework direkt per WCF an den Client?
Ich lese meistens nur "Das macht man nicht!" Aber warum genau, das habe ich noch nicht herausgefunden.
Ich sehe nicht den Grund, warum man sich nicht seine eigene Änderungsnachverfolgung (siehe o. g. Links) bauen sollte.
Der Service ist dann davon abhängig, dass der Client ihm die angefallenen Änderungen mitteilt. Diese Abhängigkeit des Services vom Client ist sicherlich nicht gut. Wäre das der Hauptgrund, der gegen diese Lösung spricht? Damit könnte ich leben...

Thema: TFS Build Berechtigung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Nur nochmal der Vollständigkeit halber: Das Problem mit der Zugriffsberechtigung ist gelöst.
Das Berechtigungssystem in unserem Netz ist doch etwas undurchsichtiger, als ich dachte. In meiner "Naivität" dachte ich, dass ich Schreibzugriff habe, wenn mir der Windows Explorer anzeigt, dass ich Vollzugriff habe. Offensichtlich ist dem nicht immer so...

Thema: Entity Framework in verteilter Anwendung
Am im Forum: Datentechnologien

So, ich habe mich jetzt mal intensiver mit OData befasst.

Die Technik ist sehr interessant. Aber ich denke, dass ich nicht auf eine Business-Schicht auf dem Server verzichten kann. Vielleicht werde ich für bestimmte Anwendungsfälle OData nutzen aber in der Regel werde ich "normale" Services bauen.

Somit bin ich wieder beim alten Problem. Ich habe mich dann noch einmal intensiver mit der Frage beschäftigt, wo das Problem der STEs liegt. Wenn ich es richtig verstehe, wird der Overhead und die fehlende Interoperabilität kritisiert. Wenn ich nun aber eine Lösung wie im oben beschriebenen Link wähle (hier ein weiterer: Trackable Entities: N-Tier Support for Entity Framework), würden m. E. diese Probleme nicht entstehen: Ich hätte Entitäten mit nur sehr geringem Overhead und eine für andere Clients relativ leicht zu implementierende Schnittstelle. Die Interoperabilität zu anderen Sprachen spielt bei mir ohnehin eher eine theoretische Rolle. Verbauen möchte ich sie mir aber dennoch nicht, wenn möglich.

Denke ich "richtig"? Oder verstehe ich etwas falsch?

Ansonsten: Wie würde man den Service schreiben, wenn man reine POCO-Klassen benutzt. Gibt es dazu ein Entwurfsmuster o. ä.?

Thema: Entity Framework in verteilter Anwendung
Am im Forum: Datentechnologien

Vielen Dank für die schnelle Antwort :-)
Dann werde mich mal man intensiv mit dem Thema WCF DataServices und OData befassen.

Viele Grüße
Paschulke

Thema: Entity Framework in verteilter Anwendung
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL Server 2012

Hallo,
ich möchte eine Client-Server-Anwendung mit Entity Framework als OR-Mapper erstellen. Der Client soll eine Click-Once-Applikation werden. Die Kommunikation soll über WCF erfolgen. So der derzeitige Stand der Planung.

Ich habe wegen einer Empfehlung zur besten Vorgehensweise hinsichtlich der Change-Tracking-Problematik in verteilten Anwendungen nun schon einige Zeit gegoogelt und bin verwirrt:
Spontan dachte ich mir, dass eine Lösung mit Self Tracking Entities (z. B. Trackable Entities) sicher sinnvoll ist. Bei der Recherche stoße ich aber immer wieder auf Hinweise, dass die Anwendung von Self Tracking Entities die Arbeit verkomplizieren kann. Ich verstehe aber die i. d. R. sehr knappen Begründungen nicht (ich muss dazu sagen, dass mein Englisch nicht das allerbeste ist ;-)). Microsoft selbst empfiehlt seinen eigenen Ansatz ja auch schon nicht mehr, was mich ebenfalls misstrauisch macht...
Ab und zu taucht ODATA als Lösungsidee auf. Aber auch ODATA scheint seine Nachteile zu besitzen...

Ich frage mich:

  • Welche Alternativen gibt es zu diesen beiden Lösungsideen?
  • Kann mir jemand möglichst kurz und verständlich die Probleme hinsichtlich Self Tracking bzw. ODATA erläutern?
  • Kann man Kriterien definieren, die mir den Weg zur "für mich besten" Lösung zeigen können?

Thema: TFS Build Berechtigung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

wir wollen auf den TFS 2012 umziehen. Ich experimentiere gerade ein bisschen herum, ob alles funktioniert. Tut's nicht... ;-)

Wenn ich versuche den Build für ein Beispielprojekt (Name: HelloTFS2012) auszuführen, bricht dieser immer mit folgenden Fehlermeldungen ab:

Fehler
Andere Fehler und Warnungen
4 Fehler, 0 Warnung(en)
Ausnahmemeldung: TF201077: Der Arbeitsaufgabentyp "Fehler" wurde nicht gefunden. Möglicherweise wurde er umbenannt oder zerstört. (Typ WorkItemTypeDeniedOrNotExistException)
Ausnahmestapelüberwachung: bei System.Activities.Statements.Throw.Execute(CodeActivityContext context)
bei System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
bei System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)
Die Workflow-Instanz wurde abgebrochen. (Grund: Die Aktivität '"Kompilieren", "Testen" und "Changesets und Arbeitsaufgaben zuordnen" versuchen' mit der ID 222 hat während des Abbrechens eine Ausnahme ausgelöst oder propagiert.)
Beim Kopieren der diagnostischen Aktivitätsprotokolle an den Ablageort ist ein Fehler aufgetreten. Details: Der Zugriff auf den Pfad "\\server1\BuildResults\HelloTFS2012BuildDefinition\HelloTFS2012BuildDefinition_20130815.12\Logs" wurde verweigert.
Beim Kopieren der diagnostischen Aktivitätsprotokolle an den Ablageort ist ein Fehler aufgetreten. Details: Der Zugriff auf den Pfad "\\server1\BuildResults\HelloTFS2012BuildDefinition\HelloTFS2012BuildDefinition_20130815.12\Logs" wurde verweigert.

Es sieht so aus, als ob der Benutzer keinen Zugriff auf den Build-Ablageordner hat. Ich habe dem Konto des Build-Services Vollzugriff auf den in der Build-Definition unter "Stagingort" angegebenen Ordner (\\server1\BuildResults) gegeben. Ich selbst, als derjenige, der den Build manuell angestoßen hat, habe auch Vollzugriff. Fehlt noch etwas? Suche ich an der vollkommen falschen Stelle?

Die Meldung "Der Arbeitsaufgabentyp "Fehler" wurde nicht gefunden." sagt mir gar nichts...?

Thema: Lizenzen in zu verteilenden VMs
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielen Dank!

Es ist zwar nicht so ganz das, was ich mir vorgestellt hatte aber wenigstens bin ich beruhigt, dass es offensichtlich wirklich nicht so einfach ist.
Die Office-Version benötigt zur Installation ebenfalls einen Key und ist somit nicht anders, als die, die ich besitze. Das mit der Fummelei am Windows-Image kommt mir nicht ganz geheuer vor.

Dann werde ich wohl die VM mit meinen Produkt-Keys verteilen (zumindest für Windows und Office) und darauf achten, dass jeder anschließend von Hand einen neuen Key einträgt. Das scheint lt. Google nicht schwierig zu sein.
Visual Studio werde ich als Testversion installieren. Ich hoffe das funktioniert dann wirklich ohne Eingabe eines Schlüssels.

Vielen Dank für die Hilfe!

Thema: Lizenzen in zu verteilenden VMs
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Karill Endusa
Ich hoffe, du meinst damit, dass du die virtuelle Festplatte als Datei verteilst bzw. die VM als Datei und sich jeder Entwickler diese auf seinem eigenen System "installiert"?
Ja.
Zitat von Karill Endusa
z.B. die Visual Studio 2012 Produktseite
Das sollte funktionieren. Danke.

Ich habe aber Probleme Testversionen zu Win 7 Ultimate und Office 2010 zu finden (nach Testversionen dazu hatte ich auch schon heute Morgen vor meiner Frage gesucht), da beides nicht mehr die aktuellen Versionen sind. Entweder ich stelle mich dämlich an, oder Microsoft stellt keine Testversionen mehr zur Verfügung. Kann das sein?

Thema: Lizenzen in zu verteilenden VMs
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich will eine Entwicklungsumgebung in einer virtuellen Maschine erstellen.
Das heißt, ich möchte Win 7, Office 2010, Visual Studio 2012 und einige andere Kleinigkeiten installieren.

Diese VM soll anschließend an das gesamte Entwicklungsteam verteilt werden.

Problem: In den Produkten meines MSDN-Accounts ist der Lizenz-Schlüssel entweder bereits enthalten (VS) oder ohne Schlüssel kann ich das Produkt gar nicht erst installieren (Office) (Win 7 weiß ich gerade gar nicht). Ich möchte jedoch, dass jeder Anwender seinen eigenen Lizenz-Schlüssel eingeben muss.

Wie kann ich vorgehen? Kann ich die Schlüssel irgendwie entfernen? Oder gibt es irgendwo freie Versionen ohne Schlüssel?

Viele Grüße
Paschulke

Thema: EF - CodeFirst: Mehr als 2 one-to-one-Beziehungen
Am im Forum: Datentechnologien

OK, ich gebe mich geschlagen.

Aber eins würde mich noch interessieren:
Habe ich komplett falsch gedacht? Oder funktioniert meine Lösung lediglich wegen des "Multiple Cascade Path"-Problems des SQL Servers nicht (darauf wird in dem von mir genannten Artikel ebenfalls hingewiesen)?

Auf alle Fälle schon einmal: Vielen Dank für die Hilfe und die Mühe

Thema: EF - CodeFirst: Mehr als 2 one-to-one-Beziehungen
Am im Forum: Datentechnologien

Abt, kurz zur Klarstellung, damit Du nicht von falschem Code ausgehst:
Dein Zitat entspricht nicht meinem Code! Bei mir heißt es jeweils: "HasRequired(r => r.Matchday).WithOptional(...)".

Die Verbindung zum genannten Beispiel:
In dem Beispiel hat ein User 2 Adressen (BillingAddress und DeliveryAddress).
In meinem Beispiel habe ich dieselbe Art von Relation zwischen Matchday und Ranking. Also anstatt BillingAdress und DeliveryAdress habe ich CompleteRanking, HomeRanking und AwayRanking).

Das Ergebnis sollte in der DB wie folgt aussehen:
Tabelle Rankings:
- Id (PS, bigint, NICHT NULL)
- KindOfRanking (int, NICHT NULL) <-- In der Entität ist das eine Enumeration (Complete, Home, Away).
- Matchday_id (bigint, NICHT NULL) <-- Das scheint das Problem zu sein, wenn ich es wie im Beispiel mache. EF legt hier immer einen FS an. Ich will aber lediglich die Information speichern.)

Tabelle Matchdays:
- Id (PS, bigint, NICHT NULL)
- Number (int, NICHT NULL)
- CompleteRanking_Id(FS, bigint, NULL)
- HomeRanking_Id(FS, bigint, NULL)
- AwayRanking_Id(FS, bigint, NULL) <-- Fehlt bei mir!
- League_Id (FS, bigint, NOT NULL)

Es sieht bei mir auch genau so aus. Lediglich die Spalte AwayRanking wird von EF nicht angelegt.

Thema: EF - CodeFirst: Mehr als 2 one-to-one-Beziehungen
Am im Forum: Datentechnologien

Sicher, dass das nicht geht? Möglicherweise heißt das nicht mehr "one-to-one". Das will ich nicht bestreiten. Aber dass ich auch in der Ranking-Entität 3 Properties benötige, kann ich nicht glauben.

Ich bin gerade bei der Suche nach einer Lösung auf folgenden Artikel gestoßen:
Associations in EF Code First: Part 5 – One-to-One Foreign Key Associations

Die dort beschriebene Lösung funktioniert bei mir allerdings auch (noch) nicht.

Dennoch: Es sieht demnach so aus, als wäre mein Ansatz prinzipiell nicht verkehrt!?

Thema: EF - CodeFirst: Mehr als 2 one-to-one-Beziehungen
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL Server 2008 R2

Hallo,

ich baue gerade ein Beispielprojekt, um CodeFirst kennen zu lernen.

Das Beispielprojekt verwaltet u. a. die Spieltage einer Bundesligasaison. Zu jedem Spieltag sollen 3 Tabellen gespeichert werden: Heimtabelle, Auswärtstabelle und Gesamttabelle.

Ich habe also eine Entität Matchday mit (u. a.) den 3 folgenden Properties:


public virtual Ranking CompleteRanking { get; set; }
public virtual Ranking HomeRanking { get; set; }
public virtual Ranking AwayRanking { get; set; }

Ranking (u. a.) sieht so aus:

public virtual Matchday Matchday { get; set; }

RankingConfiguration sieht (u. a.) so aus:


HasRequired(r => r.Matchday).WithOptional(md => md.CompleteRanking);
HasRequired(r => r.Matchday).WithOptional(md => md.HomeRanking);
HasRequired(r => r.Matchday).WithOptional(md => md.AwayRanking);


Folgendes Problem:
Das EntityFramework legt eine Matchdays-Tabelle mit den Fremdschlüsseln "CompleteRanking_Id" und "HomeRanking_Id" an.
Der dritte Fremdschlüssel ("AwayRanking_Id") wird nicht angelegt. Tausche ich in der Konfiguration die Reihenfolge (z. B. Home vor Away), wird jeweils die zuletzt konfigurierte Beziehung ignoriert.

Es scheint so, als könne das EntityFramework lediglich 2 one-to-one Beziehungen zu einer Tabelle verwalten. Kann das sein? Oder muss ich irgend etwas beachten?

Viele Grüße
Uli

Thema: SQLServer-Abfrage ausgehend vom Dataset
Am im Forum: Datentechnologien

Ich habe es mittlerweile über Reflection gelöst. Ist natürlich unschön, funktioniert für meinen Anwendungsfall aber erst einmal:



... //Ermittlung dataSetNamespace (auch über Reflection)

foreach (DataTable table in dataSet.Tables)
{
    string typeName = dataSetNamespace + "." + dataSet.DataSetName + "TableAdapters." + table.TableName + "TableAdapter";
    object objAdapter = assembly.CreateInstance(typeName);
    SqlDataAdapter dataAdapter = RetrieveValueFromInstanceProperty<SqlDataAdapter>(objAdapter, "Adapter"); //Hilfsmethode
    SqlCommand[] commandCollection = RetrieveValueFromInstanceProperty<SqlCommand[]>(objAdapter, "CommandCollection"); //Hilfsmethode
    dataAdapter.SelectCommand = commandCollection[0];
    dataAdapter.Fill(dataSet);
}

Falls jemand eine bessere Lösung hat, her damit!

Thema: SQLServer-Abfrage ausgehend vom Dataset
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQLServer

Hallo zusammen,

ich habe folgendes Problem:
Ich möchte ein Dataset validieren. Das heißt, ich möchte prüfen, ob das Dataset noch zu der aktuellen Datenbank-Version passt. Wenn sich beispielsweise ein Tabellenname ändert, soll mir die Methode mitteilen, dass ich das Dataset anpassen muss (natürlich etwas dataillierter).

Frage dazu:
Gibt es eine Möglichkeit vom DataSet auf die zugehörigen TableAdapter zu kommen? Oder kann ich sonst irgendwie ausgehend von den Informationen eines DataSets eine Abfrage auf die Datenbank ausführen?

Konkretes Beispiel:
Ich möchte schreiben:

string.Format("Select * from {0}.{1}", sqServerSchemaName, sqlServerTableName);

Ich habe zur Verfügung: Das DataSet (und damit die DataTable).

Kann mir jemand helfen?

Thema: [erledigt] Datenbindung des SelectedItems funktioniert nicht.
Am im Forum: GUI: WPF und XAML

Geil, das war's. Danke!!!

Thema: [erledigt] Datenbindung des SelectedItems funktioniert nicht.
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich habe ein sehr merkwürdiges Verhalten in einer WPF ListView (genauso wenn ich eine ComboBox oder ListBox verwende).

Folgender XAML-Code:


<ListView ItemsSource="{Binding Path=Catalogs.Ortsteile}" 
          SelectedItem="{Binding Path=Schueler.Ortsteil}" 
          DisplayMemberPath="Bezeichnung"
          ToolTip="{Binding Path=Schueler.Ortsteil.Bezeichnung}" 
          SelectionMode="Single" 
          Height="80">
</ListView>

Dem DataContext des beinhaltenden UserControls ist ein ViewModel zugeordnet, das (u .a.) die Properties Catalogs und Schueler beinhaltet.

Ergebnis:
1. Alle Ortsteile werden - dargestellt durch die Bezeichnung - in der Liste angezeigt.
2. Im ToolTip (dient lediglich der Fehlersuche) wird der zu selektierende Ortsteil korrekt angezeigt. Das heißt also: Im ViewModel ist der Wert korrekt gesetzt worden und die Binding-Syntax stimmt prinzipiell..
3. Der Fehler: Es wird kein Item selektiert.

Ich habe die identische Vorgehensweise schon häufig erfolgreich angewandt. Ich stehe vollkommen auf dem Schlauch, warum das hier nicht funktionieren soll.

Vielleicht noch der Zusammenhang:
Ich habe in einem übergeordneten UserControl eine Liste von Schuelern. Wenn ich dort einen Schüler selektiere, wird über ein SelectionChangedCommand die Schueler-Property des im DataContext gebundenen ViewModels gesetzt. NotifyPropertyChanged wird aufgerufen.


Hat evtl. jemand einen Tipp, was ich noch kontrollieren kann?