Laden...

Forenbeiträge von Max1809 Ingesamt 67 Beiträge

16.05.2018 - 16:23 Uhr

Reicht da nicht ein Post?

>

Gut erkannt. Ich wüsste jedoch nicht, dass dies untersagt ist 8o

Ja, tatsächlich habe ich auch dort gefragt und bisher keine Rückmeldung bekommen. Deswegen wollte ich meine Chancen erhöhen und die Frage in einem deutschsprachigen Forum, dass zunächst mit Stackoverflow nichts zutun hat, posten.

16.05.2018 - 16:00 Uhr

verwendetes Datenbanksystem: <EF 5>

Hallo zusammen,

ich möchte in meinem zentralen Repository, welches das EF gegen die Geschäftslogik kapselt, folgendes erreichen: Vor dem Aufruf der tatsächlichen SaveChanges() Methode vom DbContext, würde ich gerne die aufgetretenen Änderungen (Changes) die nun persistiert werden müssen durchlaufen um festzustellen, ob ggf. weitere Änderungen automatisch durch das Repository gemacht werden müssen.

Grund dafür ist, dass in meinem Fall in der Datenbank Werte-Paare vorhanden sind, also Spalten, die im Prinzip den selben Wert speichern nur in einem anderen Format. Nun möchte ich verhindern, dass nur ein Wertepaar angepasst und das andere vergessen wurde.

Dazu habe ich mal folgenden Algorithmus entwickelt:



// --- Ermittlung aller Änderungen die nun persistiert werden sollen ---
var changes = from e in this.Context.ChangeTracker.Entries()
                     where e.State != System.Data.EntityState.Unchanged
                     select e;

foreach (var change in changes)
{
    var item = change.Cast<T>().Entity;

    if (change.State == System.Data.EntityState.Modified)
    {
        var originalValues = this.Context.Entry(item).OriginalValues;
        var currentValues = this.Context.Entry(item).CurrentValues;

        foreach (string changedProperty in currentValues.PropertyNames)
        {
            PropertyInfo propertyInfo = this._properties.Find(pi => pi.Name == changedProperty);

            // Check it is a value-pair-field 
            if (propertyInfo.PropertyType.Name.Contains("SPECIAL_CHAR"))
            {
                // Check if the pair was also edited 
                // First get the name of the pair field ...

                string pairPropertyName = this._FindPropperUsualPropertyToUnicodeProperty(propertyInfo.PropertyType.Name);

                // Check if the field was edited 
                if (currentValues.PropertyNames.First(pi => pi == pairPropertyName) == null)
                {
                    // Not editied -> have to edited it here automatically 
                    originalValues[pairPropertyName] = currentValues[changedProperty]; // I KNOW -> cannot work like this ...
                }
            }
        }
    }
}

// SaveChanges() hier dann aufrufen ...

Mir ist bewusst, dass folgende Zeile nicht funktionieren kann:


originalValues[pairPropertyName] = currentValues[changedProperty]; // I KNOW -> cannot work like this ...

Aber welche Möglichkeit habe ich hier?

13.05.2018 - 17:30 Uhr

Hallo Abt,

vielen Dank für die Antwort. Ja, das was Du sagst macht absolut Sinn. Sowohl in der Uni als auch auf der Arbeit haben wir diesen Stil gepflegt. Zugegebenermaßen wurde da aber noch nicht mit Visual Studio entwickelt.

Danke für den Denkanstoß. In Verbindung mit einem VCS macht dies wohl wirklich weniger Sinn ...

13.05.2018 - 16:25 Uhr

Hallo zusammen,

ich würde gerne die automatisch generierten Klassen- und Methodenkommentare ändern (siehe Bild, so ist es gewünscht). Gerne würde ich "@author" und "@date" hinzufügen und automatisch befüllen lassen.

Also die Kommentare, die bei "///" automatisch hinzugefügt werden.

Ich habe bereits folgenden Link gefunden, aber leider konnte ich damit nicht weiter kommen:

https://stackoverflow.com/questions/429452/auto-generate-function-documentation-in-visual-studio/37136970

Wie kann ich da vorgehen? Ich weiß, dass es in Eclipse relativ einfach geht.

22.02.2018 - 16:48 Uhr

Hallo csoifert,

habt ihr das Projekt mittlerweile abgeschlossen? Oder hat jemand anderes eventuell hier Literaturempfehlungen etc. für mich?

07.03.2017 - 14:04 Uhr

Hi und vielen Dank dir,

ist zwar leider nicht 100% das, was ich mir vorgestellt habe - ein WPF Control dafür wäre schon ganz cool, also ich meine, welches eine Toolbar bietet usw. (wie eben dieses JS-Control) und es ermöglicht, dass man dann Markdown-Text zurückbekommt. Markdown als Stichwort war aber schon sehr gut, wusste ich gar nicht, dass es sowas gibt. 😉

Theoretisch könnte ich aber doch dieses JavaScript Control (Simple MDE) in einem kleinen CefSharp Webbrowser in unserer WPF Applikation laufen lassen und die Nutzer so die Inhalte editieren lassen? 😃

03.03.2017 - 12:48 Uhr

Hallo zusammen,

ich brauche Anregungen und ein paar Leute, die sich mit der Thematik vielleicht bereits beschäftigt haben.

Wir haben ein Content-Management-System womit unsere User eine App mehr oder weniger mit Inhalt befüllen können. Das klappt auch ganz gut, nur sind alle Texte etc. nur als reiner Text gespeichert (Webserver mit MySQL Datenbank).

Jetzt gibt es die Wünsche, dass man die Texte im CMS auch formatieren kann - also Listen, Fettschrift, Kursiv, Unterstrichen etc. - für den Anfang würden die einfachsten Elemente reichen.

Wie löst man nun das Problem? In der App nutzen wir TextViews zur Darstellung der Inhalte. Im Prinzip könnte man nun doch die Inhalte im CMS als HTML speichern/bearbeiten lassen - den HTML-String in der MySQL Tabelle speichern und dann diesen HTML-String in die TextViews von iOS und Android packen und darstellen lassen. Dass das unter Android und iOS geht weiß ich, nur weiß ich nicht ob das ein guter Weg ist und hoffe auf Erfahrungen oder Anregungen. 😃

Besten Dank!

21.02.2017 - 08:46 Uhr

Vielen Dank für deine Antwort. Den Webserver betreiben wir nicht selbst, sondern ein Hoster. Entsprechend sollten wir uns bei ihm informieren?

Im Grunde müssen wir ja an unseren Requests etc. (C# WebClient) kaum was umstellen, lediglich "https" in die URL aufnehmen und ein Flag setzen?

21.02.2017 - 08:21 Uhr

Hallo zusammen,

wir wollen ein SSL Zertifikat auf unserem Webserver installieren um HTTPS zu unterstützen.

Leider ist unsere ganze Software so ausgelegt, dass sie unseren Webserver per HTTP anspricht (http:\ URLs ...). Sollten wir nun ein Zertifikat installieren, ist es dann nicht mehr möglich, normale Anfragen per HTTP zu starten? Schon klar, dass diese dann nicht verschlüsselt sind.

Wir würden die Software Schritt für Schritt auf HTTPS umstellen, deswegen wäre es gut, wenn HTTP (ohne S) weiterhin funktioniert. 😃

Leider habe ich dazu im Internet nichts gefunden.

Vielen Dank! 😉

15.09.2014 - 22:44 Uhr

Hallo zusammen,

ich entwickle mittlerweile auch ungefähr ein halbes Jahr mit Xamarin und habe es lieben gelernt.

Von hybride Lösungen mittels HTML5, JavaScript, Bootstrap oder Intel App Framework halte ich nichts - ich brauche die wirklich nativen Controls und schätze das in jeder App. Die Performance von solchen Lösungen kommt an die native Lösungen ebenfalls nicht ran. Glücklicherweise kann ich dieses Verständnis meinen Kunden sehr gut verkaufen, wodurch ich meine (App-)Projekte mit Xamarin entwickeln darf.

Aktuell entwickle ich eine iOS App und portiere nebenbei eine bestehende, native Android nach Xamarin.

Wenn Du Xamarin nur für Windows Phone und Android einsetzen willst, dann brauchst Du keinen Mac. Wenn Du allerdings auch für iOS entwickeln willst, brauchst Du zwingend irgendwo einen Mac. Entweder Du entwickelst das iOS Projekt direkt auf einem Mac oder MacBook (so mache ich das) oder Du verbindest Dein Visual Studio mit einem Mac, der als Build-Host fungiert. Somit kannst Du die komplette App unter Windows entwickeln (samt iOS Designer) und brauchst nur das kompilieren auf einem Mac ausführen - natürlich startet dann auch der Debugger auf dem Mac - bedeutet: wäre hilfreich, wenn der Build-Host-Mac in Deiner Nähe steht.

Eine andere Möglichkeit ist, Du installiert auf einem Mac in einer virtuellen Umgebung (z.B. Parallels) ein Windows und kannst dann auf dem selben Gerät alle Varianten Deiner App entwickeln.

Xamarin ist mittlerweile erwachsen geworden. Das Team ist groß, die Investoren pumpen immer mehr Geld rein und das Ergebnis ist eine immer besser werdende Plattform! Die Dokumentation ist perfekt, denn diese fast alles wichtige, was Android oder iOS in ihren offiziellen Dokumentationen bereits niedergeschrieben haben, auf das nötigste zusammen und erklärt gewisse Sachverhalte nochmal speziell.

Mit Xamarin.Forms ist es jetzt sogar möglich, sogar das GUI-Design nur einmal zu schreiben und auf jeder Plattform zu verwenden. Allerdings ist Xamarin.Forms noch nicht sehr ausgereift und ich setze es noch nicht produktiv ein. Es wird sich allerdings hier etwas tun. Ganz sicher. 😃

PS: XCode war schon immer kostenlos!

18.03.2014 - 21:20 Uhr

Schönen guten Abend zusammen,

ich bin aktuell auf der Suche nach einem neuen Windows Notebook. Mein aktuelles ist bereits veraltet (Lifebook AH530) und nicht mehr wirklich toll für das Entwickeln geeignet.

Ich entwickle gerne mit dem Notebook und trage das immer von Zuhause mit auf die Arbeit und arbeite da weiter bzw. genau andersrum.

Sehr mobil muss es aber auch nicht sein. Im Zug oder ähnlichem arbeite ich nicht ...

Aktuelle Spiele sollten allerdings auch darauf laufen, da ich gerne ab und zu spiele. Das bedeutet, gute Leistung!

FullHD sollte es unbedingt sein, um alle Entwicklungstools unterzukriegen und ein 15 Zoll Gerät. Man sollte natürlich auch lange damit arbeiten können. Damit meine ich nicht die Akkulaufzeit, da ich sowieso immer nur dort arbeite, wo ich das Notebook auch an das Stromnetz anschließen kann, sondern die Ergonomie und die Tastatur.

Eine SSD wäre ebenfalls toll.

Budget liegt bei max 1.000€.

Hat hier jemand konkrete Empfehlungen?

Welche Notebooks habt ihr für das Entwickeln?

Meine bisherigen Favoriten:

Lenovo IdeaPad Y510P

http://www.amazon.de/Lenovo-IdeaPad-ANTI-GLARE-Notebook-GeForce/dp/B00FBGI34I/ref=sr_1_1?ie=UTF8&qid=1395172897&sr=8-1&keywords=lenovo+y510p (Empfehlung von einem Freund)

Lenovo ThinkPad E540
http://www.notebooksbilliger.de/notebooks/lenovo+notebooks/lenovo+business/thinkpad+edge+serie/lenovo+thinkpad+edge+e540+20c60044ge

Ich freue mich auf eure Tipps!

08.03.2014 - 14:45 Uhr

Serverseitige Programmierung mit .NET ist mir noch unbekannter als PHP und MySQL.

Damit habe ich mich noch nie beschäftigt ... was sind Schlüsselwörter, wonach ich suchen könnte? 😃

08.03.2014 - 13:13 Uhr

Hallo zusammen,

in der aktuellen Form meines Projekts übermitteln X beliebige Clients Informationen in Form von XML-Dateien auf einen FTP - Server.

Hier liegen die XML-Dateien einfach als tatsächliche Dateien auf dem Server.

Nun gibt es X beliebige Clients in Form von App-Usern, die ebenfalls über den FTP-Server die publizierten Daten herunterladen (XML) und verarbeiten.

Das Problem ist, dass FTP relativ unsicher ist, eher langsam und vor allem: Ich immer pro Nutzer einen neuen FTP-Nutzer anlegen muss. Das ist recht doof.

Das ist der aktuelle Standpunkt!

Um diese ganze Sache performanter zu machen, habe ich mir zwei Möglichkeiten angeschaut:

    • die ganze Sache über einen echten Webserver laufen zu lassen und auf diesem WebDAV zu installieren. Damit kann ich die Dateien weiterhin als "Datei" ansehen und diese über HTTP übertragen. Kann hier jemand eine gute, freie C# Library empfehlen?
    • die Sache nicht mehr über Dateien laufen zu lassen, sondern ebenfalls einen echten Webserver zu installieren und auf diesem mittels PHP und MySQL die Daten in Tabellen halten. Problem ist aktuell, dass ich wenig Erfahrung in PHP und MySQL habe. Dürfte aber nicht so schwer sein, eine bestimmte PHP Methode aufzurufen, die als Parameter die Daten empfängt und in eine MySQL Tabelle schreibt? Müsste dann auch eine Löschen und Bearbeiten-Methode geben ...
      Die App würde dann eine "gibMirInfos" Methode aufrufen.

Was sagt ihr dazu?

Falls noch offene Fragen im Raum stehen, freue ich mich, diese beantworten zu können.

PS: Schönes - sonniges - Wochenende!

23.12.2013 - 15:27 Uhr

Hallo zusammen,

kann mir evtl. jemand eine kostenlose Projektmanagement-Software empfehlen, wo ein paar Leute gleichzeitig an einem Projekt (Datei?) arbeiten und ihre eigenen Steps und Erfolge eintragen können?

Diese Lösung muss also aus dem Internet aufrufbar sein.

05.12.2013 - 12:24 Uhr

Danke für die Antworten.

Tatsächlich bin ich hier noch bei alten dBase wo man die .dbfs ganz einfach im Netz haben konnte und jeder Client mit einem ADS ausgestattet war.

Ich werde mir jetzt mittels VMWare einen virtuellen SQL Server 2008 aufsetzen und dann damit arbeiten.

Hatte bisher immer nur mit SQL CE oder dBase gearbeitet und von daher fehlt mir hier ein wenig Erfahrung und Wissen.

Danke für die Klarstellungen. 😃

04.12.2013 - 22:41 Uhr

verwendetes Datenbanksystem: <SQL>

Guten Abend zusammen,

wieso ist es eigentlich nicht möglich, dass ich eine SQL Datenbank auf einem Netzlaufwerk erstelle und dann alle Clients darauf zugreifen?

Wieso muss die Datenbank tatsächlich auf einem Server erstellt werden? (wo dann tatsächlich SQL Server als DBMS läuft)

Wie kann ich z.B. folgendes realisieren:

Mein eigener PC soll als eine Art "Server" dienen. Hier läuft SQL Server 2008 und auf der lokalen Platte liegt die Datenbank (.mdf).

Nun habe ich den Speicherort freigegeben und auf dem Notebook als "Netzlaufwerk" hinzugefügt.

Wenn ich nun meine Applikation auf dem Laptop und auf diesen Speicherort laufen lasse (Connectionstring angepasst) kommt folgende Exception:

Die Datei 'z:\app\Database.mdf' befindet sich in einem Netzwerkpfad, der für Datenbankdateien nicht unterstützt wird.
Fehler beim Anfügen einer automatisch benannten Datenbank für die Datei z:\app\Database.mdf. Eine Datenbank mit diesem Namen ist bereits vorhanden, die angegebene Datei kann nicht geöffnet werden, oder sie befindet sich in der UNC-Freigabe.

06.09.2013 - 00:27 Uhr

Lösung:

Ich habe nun eine Lösung für mein Problem!

Die ListView kriegt von mir nun nicht mehr einen Pfad des Bildes, sondern nur noch ein Bitmap übergeben.

Dadurch wird auf der eigentlichen Datei kein Handle aufgemacht und das Löschen funktioniert problemlos. 😁

Folgender Code enthält also nicht mehr "vollerPfad", sondern "bitmap" als Binding-Eigenschaft:

Alt:

 <Image Source="{Binding vollerPfad}" Stretch="Fill" HorizontalAlignment="Center" Height="200" Width="200"></Image>

Neu:

  <Image Source="{Binding bitmap}" Stretch="Fill" HorizontalAlignment="Center" Height="200" Width="250"></Image>

Beim Hinzufügen baue ich mir das Bitmap folgendermaßen auf:

dtoBild.vollerPfad = Pfade.gebenPfad(Pfade.PfadeEnum.LOKAL_PFAD_BILDER) + bild_server;

                            Uri src = new Uri(Pfade.gebenPfad(Pfade.PfadeEnum.LOKAL_PFAD_BILDER) + bild_server, UriKind.RelativeOrAbsolute);
                            BitmapImage small_image_bmp = new BitmapImage();
                   
                            small_image_bmp.BeginInit();
                            small_image_bmp.CacheOption = BitmapCacheOption.OnLoad;
                            small_image_bmp.UriSource = src;
                            small_image_bmp.EndInit();
                            small_image_bmp.Freeze();
                            dtoBild.bitmap = small_image_bmp;

                            this.listeBilder.Add(dtoBild);

Wichtig damit ist das "Freeze()" - damit gebe ich das Bitmap anderen Threads frei.

05.09.2013 - 18:42 Uhr

Guten Abend zusammen,

ich komme nicht mehr weiter ... 🙁

Bitte um Hilfe!

In meiner Applikation habe ich eine "Bilderverwaltung" wo Bilder hinzugefügt und gelöscht werden können.

Dies habe ich als ListView deklariert und folgendermaßen sieht das XAML aus:

  <Window.Resources>

        <DataTemplate x:Key="ImageGalleryDataTemplate">
            <Grid>
                <Border BorderBrush="#FF3B332C" BorderThickness="3"  Width="100" Height="100" Padding="10" Margin="15" CornerRadius="10">
                    <!--Bind Image Path in Image Control-->
                    <Image Source="{Binding vollerPfad}" Stretch="Fill"  HorizontalAlignment="Center">
                        <!--View Large Image on Image Control Tooltip-->
                        <Image.ToolTip>
                            <Grid>
                                <Image Source="{Binding vollerPfad}" Stretch="Fill" HorizontalAlignment="Center" Height="200" Width="200"></Image>
                            </Grid>
                        </Image.ToolTip>
                    </Image>
                </Border>
            </Grid>
        </DataTemplate>

        <ItemsPanelTemplate x:Key="ImageGalleryItemsPanelTemplate">
            <!--Display Images on UniformGrid Panel-->
            <UniformGrid Columns="4" HorizontalAlignment="Left" VerticalAlignment="Top"/>
        </ItemsPanelTemplate>
    </Window.Resources>

    <Grid>
        <ListBox SelectionMode="Multiple" x:Name="lbImageGallery"  ItemsSource="{Binding BilderCollection}" ItemsPanel="{DynamicResource ImageGalleryItemsPanelTemplate}" ItemTemplate="{StaticResource ImageGalleryDataTemplate}" Margin="0,0,0,59"  IsHitTestVisible="True" SelectionChanged="lbImageGallery_SelectionChanged" Background="#FFFFE692">
...
        </ListBox>

Wie ihr seht, hole ich mir die einzelnen Bilder in der ListView über folgendes "Binding" her:

 <Image Source="{Binding vollerPfad}" Stretch="Fill" HorizontalAlignment="Center" Height="200" Width="200"></Image>

Das Problem ist, dass hier wohl ein FileHandle aufgemacht wird.

Wenn ich nun die Datei folgendermaßen löschen lassen will, kriege ich die Meldung, dass diese von einem anderen Prozess verwendet wird:

Zuerst entferne ich das Bild aus der ListView:

(this.lbImageGallery.ItemsSource as List<DTOBild>).Remove(ausgewaehltesItem);

                    this.lbImageGallery.Items.Refresh();

Und möchte dann eigentlich die Datei löschen:

// --- Prüfung ob Datei exisitiert ---
         if (File.Exists(Pfade.gebenPfad(Pfade.PfadeEnum.LOKAL_PFAD_BILDER) + file.Name ))
         {
             try
             {
                 File.Delete(Pfade.gebenPfad(Pfade.PfadeEnum.LOKAL_PFAD_BILDER) + file.Name);
                 lReturn = true;
             }
             catch (Exception ex)
             {
                 lReturn = false;
             }
         }
         else
         {
             lReturn = false; // datei nicht vorhanden
         }

Könntet ihr mir evtl. einen Rat geben?

PS: Folgende Fehlermeldung:

Fehlermeldung:
Der Prozess kann nicht auf die Datei "C:\ProgramData\app\cms\Bilder\Bild_Aussen.jpg" zugreifen, da sie von einem anderen Prozess verwendet wird.

20.08.2013 - 16:25 Uhr

Hallo zusammen,

ich stehe aktuell vor einem Problem und bräuchte dazu Hilfe. 😃

Ich entwickle gerade eine App, die der jeweilige Benutzer für sich selbst konfigurieren kann. Dies geschieht über eine eigenständige Anwendung die auf C#, WPF basiert.

Nun kann der Anwender bei bestimmten Sachen Bilder hinterlegen. Diese können jedoch relativ groß werden und mein Problem ist, dass die App diese vom Server herunterladen muss um damit weiterarbeiten zu können. Das bedeutet, wenn da mal größere Bilder hochgeladen werden, die App relativ lange braucht um so ein Bild herunterzuladen.

Gibt es eine Möglichkeit, ein Bild (ob JPEG oder PNG) so zu komprimieren, dass es perfekt für mobile Endgeräte geeignet ist? Sprich, eine hohe Auflösung brauch ich da ja nicht.

Achja: Die Bilder codiere ich in einen Base64 String und verschicke diesen dann in einer XML-Datei.

Kann man evtl. den Base64 String nochmal codieren, sodass dies nochmal kleiner wird?

30.05.2013 - 22:05 Uhr

Hallo zusammen,

ich möchte in einem kleinen Control (Webbrowser) eine bestimmten Kartenausschnitt anzeigen.

Dazu baue ich mir die URL dynmaisch anhand meiner vorhanden GPS Informationen auf.

Folgendermaßen sieht es dann z.B. aus:

https://maps.google.de/maps?q=48.7813279,11.4080073&t=k&z=19

Code sieht folgendermaßen aus:

his.webBrowser.Source = new Uri("http://maps.google.de/maps?q=" + dtoMeldung.GPS_BreitenGrade + "," + dtoMeldung.GPS_LaengenGrade + "&t=k&z=19");

Leider zeigt er mir (wie erwartet ... ) die komplette Seite an! Ich möchte aber nur die Karte.

Wisst ihr, wie man das macht?

01.04.2013 - 15:58 Uhr

Hallo Max,

kann denn deine Android App überhaupt das RTF Format darstellen?

Wenn ja, dann vermute ich (Code zeigst du ja keinen) dass du aktuell deinen Inhalt aus der Eigenschaft Text der RichTextBox ausliest. Diese enthält aber die Steuerzeichen für die Formattierung nicht.
Die RichTextBox hat die Eigenschaft Rtf. Lies die aus und speichere das in dein XML.
Siehe auch hier:
>

Das funktioniert aber wie gesagt nur, wenn deine App das RTF-Format auch darstellen kann.

Gruß
Thomas

Hallo Thomas,

ja richtig, ich verwende dazu die Eigenschaft "Text".

Leider kann Android bzw. Java das RTF Format nicht ohne weiteres lesen ...

Wäre es möglich, den Inhalt als HTML exportieren zu lassen und dies dann in der Android App anzuzeigen?

Folgendes Szenario ist vorhanden: Ich habe eine Windows Applikation die als CMS (Content Management System) fungiert - hier erstellt man Nachrichten - diese werden als XML Datei gespeichert und landen auf einem Server.

Die "App" bezieht die Nachrichten vom Server und stellt sie dar. Das funktioniert auch ...

Nun ... da ich jetzt Formatierungen als zusätzliches Feature einbauen will, stoße ich an das Problem, dass die Formatierungen irgendwie über die XML Datei an die Android-App weitergeleitet werden müssen.

31.03.2013 - 21:26 Uhr

Sehr allgemeine Frage. Wo liegt das Problem?
Als erstes stellt sich doch die Frage, um welche Geräte handelt es sich? Was erwarten diese für eine Datei? Wie muss diese Datei aussehen?

Das Problem ist, dass in der XML Datei die Formatierungen wie "Bold", "Italic" und Font Family verloren gehen. 😦

Die Nachrichten werden von einer Android-App gelesen.

Eine Nachrichten wird, wie bereits erwähnt, in Form einer XML-Datei gespeichert - diese enthält dann Titel, Bezeichnung, Erstellungszeit und Inhalt. Beim Inhalt kann man nun über die RichTextBox verschiedenste Formatierungen einstellen - doch diese Formatierungen gehen eben beim Parsen in die XML Datei verloren.

31.03.2013 - 19:25 Uhr

Hallo zusammen,

ich bin gerade dabei eine kleinere Applikation zu schreiben.

Zuvor hatte ich nur eine einfache TextBox, um meine "Nachrichten" zu erstellen. Nun habe ich mich mit dem "RichTextBox" Control beschäftigt.

Ich habe bereits verschiedene Toolbars implementiert, mit denen man den Text nach seinen Wünschen formatieren kann. Schön! 😃

Ich speichere diese "Nachrichten" in einer XML Datei (da diese dann von anderen Geräten gelesen werden müssen). Wie kriege ich es denn hin, diesen formatieren Text auch so in der XML zu speichern damit dieser auf dem anderen Gerät genau so angezeigt wird? 😃

Also inklusive aller Formatierungen etc. 😦

27.12.2012 - 22:59 Uhr

ich bin gerade dabei, eine XML Datei auszulesen und die enthaltenene Werte in ein DTO zu speichern. [...]
Kann mir evtl. jemand auch zugleich eine gute Möglichkeit empfehlen, eine XML Datei auszulesen?
Kennst du den
>
?

Grob.

Ich dachte nur, dass es bei meinen Informationen nicht nötig wäre, diese Art zu wählen.

Ebenso wollte ich das Grobkonzept erstmal realisieren und mich dann um Details kümmern - dies wäre sowas z.B. 😃

27.12.2012 - 18:32 Uhr

Danke sehr! Habe es gerade auch herausgefunden, dass er damit nicht den Dateinamen meint, sondern bereits Bestandteile der XML. 😃

Dies wurde entfernt und ich kann weiterarbeiten. Danke!

27.12.2012 - 17:43 Uhr

verwendetes Datenbanksystem: <XML>

Hallo zusammen,

ich bin gerade dabei, eine XML Datei auszulesen und die enthaltenene Werte in ein DTO zu speichern.

Leider kriege ich bei folgendem Code:

 XDocument doc = XDocument.Load(vollerPfadDerXMLDatei);

... ein Problem -> folgende Exception:

Ein Name darf nicht mit dem Zeichen '-', hexadezimaler Wert 0x2D, beginnen.

Der Name ist aber einfach "Text.xml". Kennt ihr evtl. das Problem?

Kann mir evtl. jemand auch zugleich eine gute Möglichkeit empfehlen, eine XML Datei auszulesen?

EDIT:

Das hier ist die XML Datei:

<Nachricht>
  <Grundlegende_Informationen>
    <Erstellungszeit>27.12.2012 12:47:59</Erstellungszeit>
  </Grundlegende_Informationen>
  <--- />
  <Informationen_zur_Nachricht>
    <Titel>Titel</Titel>
    <Bezeichnung>Titel</Bezeichnung>
    <Inhalt>TEST</Inhalt>
  </Informationen_zur_Nachricht>
</Nachricht>
26.12.2012 - 23:19 Uhr

Hallo und guten Abend liebe Community,

nun ich möchte folgendes realisieren: Ein kleines Fenster (WPF) bauen, welches ich immer aufrufen kann wenn gerade ein Prozess etwas länger dauert -> dieses Fenster sollte Modal geöffnet werden (damit kann der Anwender im Hintergrund nichts mehr machen ... ) und - das ist wichtig - den weiteren Code nicht aufhalten.

Dieses Fenster würde dann eine erstmal unwichtige Meldung enthalten.

Ich möchte nur das ich sowas machen kann:

WarteFenster() warteFenster = new WarteFenster();
warteFenster.ShowDialog()
[... hier kommt dann die Geschäftslogik die etwas länger braucht ... ]
warteFenster.Close()

Ich habe keine Ahnung wie ich das machen soll. Ich dachte evtl. daran, das Fenster in einem zweiten Thread laufen zu lassen. Ich wäre für Hilfe sehr sehr dankbar! 😉

11.11.2012 - 16:53 Uhr

Alles klar - es half den MySQL Server neu einzurichten und zu installieren.

11.11.2012 - 16:35 Uhr

verwendetes Datenbanksystem: <MySQL 5.2>

Hallo zusammen,

ich wollte mich ein bisschen in MySQL einarbeiten.

Ich kriege es leider nicht hin, eine lokale Serverinstanz einzurichten, um auf diese ein paar SQL Scripts (Create Database, Create Table usw. -> Übungsaufgaben) laufen zu lassen.

Im Hauptmenü klicke ich auf [New Server Instance] und dann auf "localhost". "Database connection values" lasse ich so, wie sie sind und klicke dann auf [Next]. Hier kriege ich folgenden Fehler:

Connecting to MySQL server localhost...

Can't connect to MySQL server on '127.0.0.1' (10061)

Wenn ich dann trotzdem auf [Next] klicke, wird mir gesagt: "No MySQL Service found".

Hier ein Bild: http://s1.directupload.net/file/d/3071/qbza8cr4_jpg.htm

Kann mir jemand bitte helfen? Ich arbeite zum ersten mal mit MySQL.

03.10.2012 - 14:44 Uhr

Es funktioniert! 😃 Die vorherige Antwort zeigt "meine Lösung" (inspiriert durch deine Antwort).

03.10.2012 - 11:42 Uhr

Hallo Max1809

Versuchs mal hiermit:

  
protected DeleteButton...(object sender, EventArgs e)  
{  
     int selectedIndex = itemsListBox.SelectedIndex;  
     itemsListBox.SelectedIndex = 0;  
     DeleteFunction();  
     itemsListBox.Focus();  
     itemsListBox.SelectedIndex = selectedIndex;  
}  
  

Sollte das nicht klappen, bitte zeige wie genau du es bewerkstelligen möchtest.. (Dein Anasatz...)

Beste Grüsse

Diräkt

Hallo Diräkt,

danke für deine Anregung. 😃

Löschen habe ich folgendermaßen realisiert:

            // Löschen Kunden
            dtoKunde ausgewaehltesItem = (dtoKunde)this.listView1.SelectedItem;
            if (ausgewaehltesItem != null)
            {
                int selectedIndex = this.listView1.SelectedIndex;

                this.conKunde.loeschenKunde(ausgewaehltesItem); // Aus Datenbank löschen

                this.kunden.RemoveAt(selectedIndex); // nun aus der ListView löschen
                // Positionierung auf dem letzten Item der ListView
                this.listView1.Items.Refresh();
                this.listView1.Focus();
                this.listView1.SelectedIndex = this.kunden.Count - 1;
            }

Positioniert sich nun immer auf das letzte Element in der ListView.

Neuanlage sieht folgendermaßen aus:

          // Neuanlage eines Kunden 
            this.conKunde.neuerKunde();
            // Daten neu reinholen
            this._aktualisieren();

            this.listView1.Focus();
            this.listView1.SelectedIndex = this.kunden.Count -1;
02.10.2012 - 22:38 Uhr

Hi,

ich habe das Problem das ich nach den Aktionen wie "Löschen" oder "Neuanlage", das letzte Element der ListView tatsächlich selektieren will, dies aber nicht funktioniert.

Hintergrund: Man könnte dann den z.B. "Löschen" Button einfach drücken, ohne die immer wieder ein Item zu selektieren.

Den Index des letzten Elements habe ich.

11.09.2012 - 12:37 Uhr

Nun tut mir Leid das ich mich schlecht ausgedrückt habe. 😃

Es ist so, das ein bestimmtes Label (die Überschrift) zu weit nach rechts ausgerichtet ist und somit ein Teil nicht sicherbar (bzw. außerhalb des Fensters liegt) ist.

Was ich mit "fest" meine ist, das wir keine Berechnung der Position durchführen und ebenso lässt sich dieses bestimmte Fenster nicht in der Größe ändern.

Display DPI sollte bei uns eigentlich keine Rolle spielen. Bei uns ist das Fenster so klein, dass es auch bei 800X600 passt.

Aber in dem Fall sind beides 19 Zoll Monitore mit der selben Auflösung.

11.09.2012 - 10:36 Uhr

Hallo zusammen,

wir haben eine WPF Anwendung die unter Vista und Win7 problemslos funktioniert.

Nun haben wir sie das erste mal auf einem XP Rechner installiert und schon gibt es Probleme.

Rein "technisch" funktioniert alles. Nur die Darstellung ist etwas "komisch".

Bestimmte Labels sind falsch ausgerichtet. Diese Labels sind aber fest - d.h. keinerlei Berechnung der Position etc.

Hat jemand evtl. einen Tipp, wo ich nachschauen könnte?

22.08.2012 - 15:04 Uhr

Hi,

ich möchte unter bestimmten Umständen, eine "Border" (tatsächlich das WPF Control Border) blinken lassen.

Ich habe mich an das Tutorial gehalten: WPF: Animations in XAML and code-behind

Nur leider schlägt mein:

 Storyboard storyboard = (Storyboard)TryFindResource("test");

... immer fehl. Storyboard ist immer null.

Folgendes habe ich in meinem Fenster stehen:

 <Grid.Resources>
            <Storyboard x:Key="test" >
                <DoubleAnimation Storyboard.TargetName="borderStrassen"
                     Storyboard.TargetProperty="Opacity"
                     From="0"
                     To="1"
                     RepeatBehavior="10x"
                     AutoReverse="True"
                     Duration="0:0:0.1"/>
            </Storyboard>
...

Ich komme nicht an dieses hinterlegte Storyboard. 😦

22.08.2012 - 14:53 Uhr

Oh, aber natürlich. 🙁

Danke dir, darauf hätte ich selbst kommen können. 👍

22.08.2012 - 14:33 Uhr

Klingt logisch. Ich hab es versucht.

In der App.xaml habe ich nichts verändert.

In meiner ListView sieht es nun so aus:

  <Style TargetType="{x:Type ListViewItem}" BasedOn="{x:Type ListViewItem}" >
                    <EventSetter Event="MouseDoubleClick" Handler="OrtsteileListViewDoppelklick" />
                    <EventSetter Event="MouseLeftButtonUp" Handler="OrtsteileListViewKlick" />
                    <!--<Style.Triggers>
                        <Trigger Property="ListViewItem.IsMouseOver" Value="True">
                            <Setter Property="Background" Value="Orange"></Setter>
                        </Trigger>                       
                    </Style.Triggers>-->
                </Style>

Leider bekomme ich folgende Fehlermeldung:> Fehlermeldung:

'Set property 'System.Windows.Style.BasedOn' threw an exception.' Line number '42' and line position '24'.

Und dazu die Innerexpection:

{"Unable to cast object of type 'System.RuntimeType' to type 'System.Windows.Style'."}

21.08.2012 - 13:13 Uhr

Danke für deine schnelle Antwort.

Leider funktioniert auch das nicht. 😦

21.08.2012 - 13:06 Uhr

Ich kann euch das Programm "Compact View" sehr ans Herz legen.

Funktioniert super und ist schnell. 😉

CompactView 1.3.5

21.08.2012 - 12:41 Uhr

Hi,

ich möchte in meinen ListViews die Farbe eines Items ändern, wenn der Anwender ein Item auswählt bzw. auch wenn er nur mit der Maus drüber geht.

Nun dachte ich, ich mach das über die Application Resources in meiner App.xaml. Nun ja ... irgendwie tut sich da nichts.

Erst wenn ich den Code direkt in jeder einzelnen ListView habe, passiert das, was ich will.

So siehst bei mir in der App.xaml aus:

        <Style TargetType="{x:Type ListViewItem}">
            <Style.Triggers>
                <Trigger Property="ListViewItem.IsMouseOver" Value="True">
                    <Setter Property="Foreground" Value="Orange"></Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
        

Das funktioniert leider nicht.

Das hingegen schon:

 <ListView.Resources>
                <Style TargetType="{x:Type ListViewItem}">
                    <EventSetter Event="MouseDoubleClick" Handler="OrtsteileListViewDoppelklick" />
                    <EventSetter Event="MouseLeftButtonUp"  Handler="OrtsteileListViewKlick" />

                    <Style.Triggers>
                        <Trigger Property="ListViewItem.IsMouseOver" Value="True">
                            <Setter Property="Background" Value="Orange"></Setter>
                        </Trigger>
                    </Style.Triggers>
                    
                </Style>
                
            </ListView.Resources>

Ich habe in jeder meiner ListViews solche EventSetter drin.

Kann es sein, dass wenn ich einen eigenen Style in meinen ListViews habe (also in jedem Fenster einzeln, da die EventSetter immer verschiedene Handler haben), der Style aus der App.xaml garnicht mehr verwendet wird? 😦

Ich danke euch schonmal.

08.08.2012 - 11:21 Uhr
foreach (DataRow rw in dt.Rows)
    if (colname == rw["ColumnName"].ToString()) fieldexists = true;

Das trifft bei mir immer zu (also filedExsists bleibt False und er versucht die Spalte anzulegen), da unter rw["ColumnName"] keine "Namen" von Spalten stehen, sondern folgendes:

08.08.2012 11:16:30;DEBUG;TABLE_CATALOG
08.08.2012 11:16:30;DEBUG;TABLE_SCHEMA
08.08.2012 11:16:30;DEBUG;TABLE_NAME
08.08.2012 11:16:30;DEBUG;COLUMN_NAME
08.08.2012 11:16:30;DEBUG;COLUMN_GUID
08.08.2012 11:16:30;DEBUG;COLUMN_PROPID
08.08.2012 11:16:30;DEBUG;ORDINAL_POSITION
08.08.2012 11:16:30;DEBUG;COLUMN_HASDEFAULT
08.08.2012 11:16:30;DEBUG;COLUMN_DEFAULT
08.08.2012 11:16:30;DEBUG;COLUMN_FLAGS
08.08.2012 11:16:30;DEBUG;IS_NULLABLE
08.08.2012 11:16:30;DEBUG;DATA_TYPE
08.08.2012 11:16:30;DEBUG;TYPE_GUID
usw .

07.08.2012 - 16:45 Uhr

verwendetes Datenbanksystem: <SQL Lite>

Hallo,

die Überschrift sagt alles. Ich würde gerne, wenn die Spalte nicht existiert, diese hinzufügen.

Wie mache ich das am besten?

Ich arbeite mit einem "DatenContainer" - also eine Klasse die von meinem Datenmodell erbt und den ConnectionString beim instanziieren befüllt.

So hab ich es gelöst:

  DatenContainer dmc = new DatenContainer();
            dmc.Connection.Open();

            dmc.ExecuteStoreCommand("ALTER TABLE dbZaehler ADD COLUMN test nVarChar");

            dmc.Connection.Close();

Das funktioniert soweit auch, allerdings nur solange diese Spalte tatsächlich nicht vorhanden war. Wenn diese Spalte bereits existierte, bekomme ich hier eine Exception.

07.08.2012 - 12:46 Uhr

Super. Das mache ich.

😃

Danke sehr! 😉

07.08.2012 - 11:20 Uhr

Hallo,

ich möchte einen Ordner erstellen und diesem sagen, das jeder Benutzer Schreibrechte bzw. Vollen Zugriff auf die Dateien in dem Ordner hat.

Da in diesem Ordner Backups angelegt werden und diese evtl. von einem anderen Benutzer des Rechners geladen bzw. gelöscht werden (und nicht nur vom Ersteller).

Jetzt wollte ich mit Directory.SetAccessControl() arbeiten.

Habe mir ein DirectorySecurity Objekt gebaut und versuche nun per "AddAccessRule" Recht hinzuzufügen.

Nun erwartet er als ersten Parameter einen "Benutzer" .
" // The name of a user account. "

Wie kann ich ihm hier mitteilen, das jeder drauf Zugriff haben soll.

Oder noch besser: Wenn die Dateien alle schreibgeschützt wären, aber ich aus dem Programm heraus diese löschen könnte.

Somit kann niemand "ausversehen" die Backups löschen.

07.08.2012 - 09:51 Uhr

Inwiefern "Versionierung" ?

Ich habe in einer Einstellungsdatei (letzendlich eine .ini Datei) einen Eintrag, der die Version der Datenbank enthält, dieses wird mit der aktuellen Version der Applikation gegen geprüft.

Falls nun die aktuelle Version größer (neuer) ist als die gespeicherte Version in der .ini Datei, wird die Datenbank gelöscht und durch die neue ersetzt.

Deswegen das "Backup". Damit man seine Dateien vor der Installation einer neuen Version wegsichern kann und dann in die "neue", aktuelle Datenbank laden kann.

07.08.2012 - 09:12 Uhr

verwendetes Datenbanksystem: <SQL Server Compact>

Hallo,

ich möchte von meiner .sdf Datei (die mit Daten befüllt ist) ein Backup machen. Dieses kann man manuell erstellen und manuell reinladen.

Ich habe mir anfangs überlegt, einfach mit File.Copy() in ein bestimmtes Verzeichnis die verwendete .sdf Datei zu kopieren und beim Laden, die "Backup" - sdf Datei ins Verzeichnis, auf welches die Connection geht, rein zu kopieren.

Nun stellt sich mir die Frage: Was passiert, wenn neue Felder hinzukommen?

Das heißt: Ich liefere eine Datenbank aus, die mehr Felder enthält, also die Datenbanken im Backupverzeichnis? Kümmert sich das .NET automatisch (anhand des Datenmodells) um das hinzufügen der neuen Felder?

Ich danke schonmal sehr! 😃 Würde mich freuen, zu hören, wie Ihr das mit dem "Backup" macht.

05.07.2012 - 14:18 Uhr

Ich habe den Fehler gefunden.

Die ausgelieferte .sdf Datei hatte falsche Berechtigungen gesetzt.

Die Benutzer durften nur "Lesen".

Berechtigungen geändert -> es geht.

Wie krieg ich es nun hin, das die Datei mit dem "Vollzugriff" auch vom Setup so installiert/ausgeliefert wird?

EDIT: Hier die Antwort für alle die evtl. das selbe Problem haben:
Setup-Projekt: Problem mit Dateirechten unter Win7

05.07.2012 - 13:30 Uhr

verwendetes Datenbanksystem: <SQL Server Compact 3.5>

Hallo liebe Community,

ich habe ein Problem: Ich habe ein Programm, welches bei Debuggen garkeine Probleme macht (bezoggen auf den Fehler). 😃

Sobald ich allerdings das Setup (über das normale SetupProject im Visual Studio 10) erstelle und auf einer VM installiere, bekomme ich die oben genannte Meldung wenn ich per LINQ eine Abfrage mache.

Die Connection ist eig. aufgebaut, jedenfalls ist mein DatenContainer Objekt (leitet von dem Datenmodell ab und liefert mir den Connectionstring) instanziiert. (Nur die einzelnen Tabellen sind "null")

Die Datenbank liegt unter C:\ProgramData*firmenname**projektname*\ . Sie wird vom Setupprojekt da reinkopiert.

In meiner Logdatei steht dann noch die InnerException Meldung: Access to the database file is not allowed.

Kann mir jemand helfen? Falls Ihr mehr Informationen braucht, gebe ich diese gerne.

PS: ReadOnly ist die .sdf natürlich nicht.

21.09.2011 - 10:51 Uhr

Hi liebe C#-Gemeinde,

habe folgendes Problem: Ich hab ein Projekt, und dieses ist (eigentlich) komplett im TFS drinnen.

Jetzt holt sich ein Kollege dieses Projekt aus dem TFS, will es kompilieren und kriegt Fehler. WEIL: Ihm fehlt eine externe DLL, die ich benutzt habe.

Nur, diese ist irgendwie nicht im Source Control drin.

Wie kriege ich diese rein? Ist bei mir ganz einfach unter "References" drin.

29.08.2011 - 15:29 Uhr

Hallo,

dazu musst du den CursorType ändern

Guckst du hier:
>

Gruß
Michael

Danke für deine Antwort.

Daraus werd ich aber nicht klüger. Die Klasse Cursors bietet mir ja keinen ZoomIn und ZoomOut Cursor, stimmts?