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 Diräkt
Thema: Ordner auf (FTP-)Server überwachen
Am im Forum: Netzwerktechnologien

Hallo c#-Hacker

Ich würde ein Windows-Service schreiben und diesen auf dem Server installieren.

Mit der Klasse "FileSystemWatcher" lässt sich der Ordner relativ einfach überwachen..


Natürlich kannst du es auch über "WebRequestMethods.Ftp.ListDirectoryDetails" realisieren und dann Datum etc. prüfen...

Je nach interval verursacht dies relativ viel Traffic und so manche FTP Server haben Ihre Eigenheiten (geben die Details anderst zurück, parsen.....)


Beste Grüsse

Diräkt

Thema: WebClient unterschied Windows und Windows Phone (Encoding)
Am im Forum: Web-Technologien

Hallo MysticEmpires

Beide haben die selbe Version Nummer des .Net Frameworks als Target ? (z.B. 4.5 ?)



Ich weiss das für die DownloadString Methode kein StreamReader etc. benötigt wird (was ja das Umsetzen so einfach / schön macht :-))

Dennoch versuch mal sowas :


    string result=string.Empty;
     
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.google.de");
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    [B]Encoding responseEncoding = Encoding.GetEncoding(response.CharacterSet);[/B]
     
    using (StreamReader sr = new StreamReader(response.GetResponseStream(), responseEncoding))
    {
    result = sr.ReadToEnd();
    }


Beste Grüsse

Diräkt

Thema: myCSharp.de ist 10 Jahre jung
Am im Forum: Ankündigungen

GZ mycsharp :-)

Thema: WebClient unterschied Windows und Windows Phone (Encoding)
Am im Forum: Web-Technologien

Hallo MysticEmpires

Für micht klingt es dennoch nach einem Encoding/Decoding Problem.

Du hast also schon folgendes versucht ?

Zitat
Webclient.Encoding = System.Text.Encoding.UTF8

Ist die Antwort wirklich UTF8 ?

Du kannst sonst auch
Zitat
WebClient.DownloadData
verwenden, dann bekommst das byte[] mit etwas debuggen, solltest du so zum Resultat kommen.



Beste Grüsse

Diräkt

Thema: [erledigt] String Compress: Welche Variante ist perfomanter/besser?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo unconnected,
Hallo Sarc

Besten Dank für Eure Mitteilungen.

Zitat
Mach nen Performance test, wenn es dir um die Performance geht.

Damit ich nicht Äpfel mit Birnen vergleiche habe ich beides getestet :

=> Test 1:

Beide Compress methoden geben ein String zurück, 10'000 Compress ; Decompress:

Variante 1 :

10'000 Tests => 00:00:00.3196391

Variante 2 :

10'000 Tests => 00:00:00.4225765

=> Test 2:

Beide Compress methoden geben ein byte[] zurück, 10'000 Compress ; Decompress:

Variante 1 :

10'000 Tests => 00:00:00.3111186

Variante 2 :

10'000 Tests => 00:00:00.4206573


Somit werde ich wohl Variante 1 benutzen :-) (die mit byte[] so aussieht:)


private byte[] CompressString(string inputString)
        {
            byte[] outputBytes = null;
            byte[] inputBytes = AsciiEncoding.GetBytes(inputString);

            using (var ms = new MemoryStream())
            {
                using (var zipStream = new GZipStream(ms, CompressionMode.Compress))
                {
                    zipStream.Write(inputBytes, 0, inputBytes.Length);
                }
                outputBytes = ms.ToArray();
            }

            return outputBytes;
        }

        private string DecompressString(byte[] inputBytes)
        {
            string outputString = String.Empty;
            Int32 lengthDataArray = BitConverter.ToInt32(inputBytes, inputBytes.Length - LengthDataByteCount);
            var outputBytes = new byte[lengthDataArray];

            using (var ms = new MemoryStream(inputBytes))
            {
                using (var zipStream = new GZipStream(ms, CompressionMode.Decompress))
                {
                    zipStream.Read(outputBytes, 0, outputBytes.Length);
                }
                outputString = AsciiEncoding.GetString(outputBytes);
            }

            return outputString;
        }

Beste Grüsse

Diräkt

Thema: [erledigt] String Compress: Welche Variante ist perfomanter/besser?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Leute :)


Kann mir jemand sagen was perfomanter/besser ist ?
(Man nehme an beide Varianten geben Base65 oder UTF8 zurück (irrelevant))

Variante 1 :



 private string CompressString(string inputString)
        {
            byte[] outputBytes = null;
            byte[] inputBytes = AsciiEncoding.GetBytes(inputString);

            using (var ms = new MemoryStream())
            {
                using (var zipStream = new GZipStream(ms, CompressionMode.Compress))
                {
                    zipStream.Write(inputBytes, 0, inputBytes.Length);
                }
                outputBytes = ms.ToArray();
            }

            return Convert.ToBase64String(AddDataCount(outputBytes, inputBytes.Length));
        }

        private string DecompressString(string inputString)
        {
            string outputString = String.Empty;
            byte[] inputBytes = Convert.FromBase64String(inputString);
            Int32 lengthDataArray = BitConverter.ToInt32(inputBytes, inputBytes.Length - LengthDataByteCount);
            var outputBytes = new byte[lengthDataArray];

            using (var ms = new MemoryStream(RemoveDataCount(inputBytes)))
            {
                using (var zipStream = new GZipStream(ms, CompressionMode.Decompress))
                {
                    zipStream.Read(outputBytes, 0, outputBytes.Length);
                }
                outputString = AsciiEncoding.GetString(outputBytes);
            }

            return outputString;
        }

Variante 2 :

 public static byte[] Zip(string str)
        {
            var bytes = Encoding.UTF8.GetBytes(str);

            using (var msi = new MemoryStream(bytes))
            using (var mso = new MemoryStream())
            {
                using (var gs = new GZipStream(mso, CompressionMode.Compress))
                {
                    msi.CopyTo(gs);
                }

                return mso.ToArray();
            }
        }

        public static string Unzip(byte[] bytes)
        {
            using (var msi = new MemoryStream(bytes))
            using (var mso = new MemoryStream())
            {
                using (var gs = new GZipStream(msi, CompressionMode.Decompress))
                {
                    gs.CopyTo(mso);
                }

                return Encoding.UTF8.GetString(mso.ToArray());
            }
        }

Besten Dank und beste Grüsse

Diräkt

Thema: ListView eine Progressbar anhängen - Exception One-Way / Two-Way
Am im Forum: GUI: WPF und XAML

Hallo Diablo

Mit

new {
                        Images = videoList[i].videoThumbnailUrl,
                        Title = videoList[i].videoTitle,
                        Length = videoList[i].videoLength,
                        Progress = 91,
                        Status = "",
                    }

Erstellst du ein anonymer Typ weil kein expliziter Typ angegeben.
Dein Typ wäre also etwa string,string,int,int,string.
Zitat
Habe ich mit der "OneWay" Methode denn irgendwelche Nachteile?

OneWay bedeutet "readonly".

Wenn du kein anonymer Typ willst kannst eine Klasse erstellen und diese dann verwenden :

new [B]MyClass [/B]{
                        Images = videoList[i].videoThumbnailUrl,
                        Title = videoList[i].videoTitle,
                        Length = videoList[i].videoLength,
                        Progress = 91,
                        Status = "",
                    }


Dies gehört aber zu den Grundlagen und wird hier eigentlich voraussgesetzt ;)

Beste Grüsse

Diräkt

Thema: GetPropertyInfo eines List Elementes
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Dijon

Zitat
Den Aufwand würde ich mir gerne ersparen
Ja gerade schön ist es nicht, das stimmt, obwohl Aufwand ist übertrieben, das ist ein 3-4 Zeiler.

Wenn ich mir Deine Struktur anschaue :


public class Person
    {
        public string Name { get; set; }
        public List<string> Hobbies { get; set; }
    }

Ist das für mich :

Main Table:
Name
Detail Table:
Hobbies

Daher würde ich das auch so anzeigen, oder ich versteh wirklich nicht was du meinst. Ist dein Ziel:
Hans   Schwimmen   Super gut
Hans   Rennen      Nicht sehr gut
Reto   Laufen      Perfekt
Reto   Schlafen    Schlecht

Oder was genau willst du erreichen ?



Beste Grüsse

Diräkt

Thema: ASP.NET Web-Api + 2 Parameter in Post
Am im Forum: Web-Technologien

Hallo Campy

Hier hast du sonst ein Beispiel :

Calling Web API from .NET Client


Beste Grüsse

Diräkt

Thema: kein Performancegewinn nach Umstellung auf Win7 und 16GB RAM
Am im Forum: Rund um die Programmierung

Hallo T-Virus

Um die Geschwindigkeit drastisch zu optimieren (für Bulk Inserts) ohne grossen Aufwand kannst du folgendes tun :

=> SaveChanges() selten aufrufen (z.B. alle 100 Records)
=> Ab und zu neuer Context erstellen ( attachet Entities, DetectChanges ... wegen..)
=> Wenn du den Context erstellst, AutoDetect Changes deaktivieren


context = new MyContext();
context.Configuration.AutoDetectChangesEnabled = false;
context.Configuration.ValidateOnSaveEnabled = false;

Beste Grüsse

Diräkt

Thema: ASP.NET Web-Api + 2 Parameter in Post
Am im Forum: Web-Technologien

Hallo Campy

Das hätte dir auch Google gesagt :-)

data: {"name": "Campy", "age": "00"}


Beste Grüsse

Diräkt

Thema: GetPropertyInfo eines List Elementes
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Dijon

Deinem gefundenen "Control" konnte ich entnehmen das es sich wohl um WPF handelt.

Zitat
Ich brauche ein DataGrid bei dem die letzten beiden Zeilen nicht bei der Sortierung berücksichtigt werden. So ein DataGrid hab ich auch gefunden

Du kannst doch einfach das default Grid benutzen und sowas machen :



var sortedData = myData.OrderBy(d=>d.Hallo).ThenBy(d=>d.Welt);
sortedData.Add(myLastItem1);
sotedData.Add(myLastItem2);

myGrid.ItemSource=sortedData;



Beste Grüsse

Diräkt

Edit :

Ich kenne Dein Control nicht, wenn du dieses aber verwenden willst, könntest ja mal folgendes testen:
Zitat
Hobbies[0]
sieht nach einem Array aus, kannst ja versuchen Deine Liste als Array zu deklarieren :-)

Oder du kannst auch sowas versuchen


public string this[this key]
 get { return dictionary[key]; }
    set { dictionary[key] = value; }

Thema: So was Delphi Intraweb Standalone auch in ASP.NET vorhanden ?
Am im Forum: Web-Technologien

Hallo egamer

Du kannst ein WebSetup Projekt erstellen. Ein Setup also, welches deine WebApp installiert, diese im IIS registriert, danach ist sie unter localhost/mywebapp aufrufbar.

Ich denke der "Target" Pc muss aber den IIS vorher installiert haben. Hier hab ich eine Anleitung gefunden, ob das unter VS2012 noch so funktioniert kann ich Dir nicht sagen, ( wurde einiges geänder bezüglich Setup Projects )


Beste Grüsse

Diräkt

Edit :

Schau Dir sonst mal das an : Hosting wihtout IIS

(Ich glaube mit vernünftigem Aufwand wirst es nicht hinbekommen wirklich KEINE Abhängigkeit zum IIS zu haben, somit bleib ich dabei, nicht möglich)

Edit 2:

Was natürlich theoretisch möglich wäre:
=> Mono Framework
=> Apache

Ich halte das eher für ein "Bastel", der Test-Aufwand wird relativ gross sein :)

Thema: So was Delphi Intraweb Standalone auch in ASP.NET vorhanden ?
Am im Forum: Web-Technologien

Hallo egamer

Das ist so nicht möglich. Die einzelnen Pages ( Views etc..) werden in der angelegten Struktur published (plain text html), und der Codebehind wird compiled und in Form von dlls abgelegt.

Beste Grüsse

Diräkt

Thema: VS-XAML-Editor (Cider?): Formatierung erzwingen wie im CodeEditor (CTRL+K+D)?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo MillonsterNutzer

Prüfe ob "Dokument formatieren" wirklich CTRL + K + D entspricht. Je nach Einstellung kann das anderst sein ( Vb, C# ..... )

Hier noch ein Link bezüglich Auto formatting the XAML.

Beste Grüsse

Diräkt

Thema: Regular Expression Alle Zahlen
Am im Forum: Datentechnologien

Hallo Taladan


Ich benutze Regex auch relativ selten, daher bin ich darin auch nicht so bewandert.
Als kleine Hilfe benutze ich Expresso.

Diese App macht das Erstellen und Testen von Regex ausdrücken zum Kinderspiel ;)

Beste Grüsse

Diräkt

Thema: Große Menge an Werten einer Excel Tabelle schnell und effektiv auswerten
Am im Forum: Office-Technologien

Hallo __fabi

Anstatt Excel zu automatisieren kannst du direkt auf das XML des Office Dokuments zugreifen via OPEN XML.

Dies ist zwar nicht ganz so "konfortabel" aber dürfte enorm viel schneller sein.
Es gibt auch C# Libs welche das Arbeiten mit Open XML erleichtern... ( z.B. GemBox Document )

Beste Grüsse

Diräkt

Edit:
=> Ein weiterer Vorteil ist natürlich die Unabhängigkeit ein Office installiert haben zu müssen....

Thema: RichTextBox: Text aktualisieren statt anhängen
Am im Forum: GUI: Windows-Forms

Hallo Caiden

Verzeih mir, aber Deine Frage lässt darauf schliessen das du nicht wirklich vestehst was deine 3 Zeilen tun.

Gegebenfalls solltest du mal nachschlagen was Append bedeuted.


Beste Grüsse

Diräkt

Thema: [erledigt] ByteArray mit UTF-8-Codes in String umwandeln, aber nur bis zum ersten Nullzeichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo hakbak

Du könntest Trim verwenden, oder versteh ich die Frage nicht ?

Beste Grüsse

Diräkt

Thema: Buttons in Abhängigkeit von Aktionen bei früherem Programmstart verändern
Am im Forum: GUI: Windows-Forms

Hallo cybermicha

Ich glaub du musst erst mal unterscheiden zwischen :

=> Live Aktualisierung
( Wenn Peter in Afrika Button1 rot einfärbt (z.B durch ein Klick) muss bei Hans in Deutschland dieser auch rot werden. )

=> Aktualisierung bei App Start
( Wenn die App startet, muss der Status geladen werden )


Nur wie bekomme ich diese Liste zur Laufzeit immer aktualisiert? oder meinst du eine Liste pro Button?

Du könntest bspw. deine Controls einer List<Controls> übergeben. Dazu eine Method schreiben welche sowas tut:


var result = new  List<MySerializableClass>();
 foreach (var item in MyRegistredControlCollection)
            {
               result.Add(new MySerializableClass(){Id=item.Id,Enabled=item.Enabled .....});
            }

Nun kannst du result serializieren und in die DB speichern. Wann du es speicherst und lädst ist "dir überlassen". Bei "Aktualisierung bei App Start" natürlich beim starten der App. Bei Live Aktualisierung, müsstest du über ein Callback bei Änderungen informiert werden. Da ist es ein wenig komplizierter... Stichwörter dazu wären : "WCF;Dublex;Signal R" ....

Beste Grüsse

Diräkt

Thema: Buttons in Abhängigkeit von Aktionen bei früherem Programmstart verändern
Am im Forum: GUI: Windows-Forms

Hallo Cybermicha

Da es sich um Controls-Zustände handelt würde ich das wie folgt lösen:

Erstell eine Klasse àlà



public string ControlId{get;set;}
public bool Enabled{get;set;}
public string Color {get;set;} ***


(*** da Color nicht serializable ist, würde ich es in HEX convertieren, daher String).

Nun erstellst eine List<DeineKlasse> mit allen Informationen welche du gespeichert haben willst. Serializierst diese Liste und speicherst sie in die DB. Beim App_Start kannst du diese Liste auslesen und die Control Zustände von der DB setzen lassen...


Beste Grüsse

Diräkt

Thema: [erledigt] Ef to Sql
Am im Forum: Datentechnologien

Hallo Cannon

Danke für Deine Antwort.

Zitat
Das Model nicht aus der Datenbank generieren, sondern die Datenbank aus dem Model generieren.
Wir haben den Ansatz DB-First gewählt, daher ist dies keine Option.

Es geht "lediglich" darum keine SQL Scripts mehr zu haben um "Template" (Initial) Daten zu laden. Bei Spalten-Namen Änderung (als Beispiel) haben wir somit keine Compiler Prüfung etc. Daher sollen die Datensätze via EntityObjects in die DB gespeichert werden.

Wir lösen es nun mit Reseed:

db.Database.ExecuteSqlCommand("DBCC CHECKIDENT('Role',RESEED,1000);");

Ist meiner Meinung nach nicht ganz schön, somit können wir aber die ID's festlegen für die Initial (template) Daten.


Beste Grüsse

Diräkt

Thema: [erledigt] Ef to Sql
Am im Forum: Datentechnologien

Nachtrag:

=> Per Reflection hab ich es hingekriegt das SQL Statement rauszuholen das SaveChanges() absetzen würde.***

Leider bleibt das grundsätzliche Problem bestehen:

=> StoreGeneratedPattern=identity

Es scheint sobald dies gesetzt ist (edmx...), kann man da nicht wirklich viel machen nachträglich :-(.
2 Models zu haben ist für mich auch keine Lösung.


***
"=============== BEGIN COMMAND ===============\r\n\r\ninsert [dbo].[Role]([Name], [HtmlRemarks], [LastModified], [LastModifiedUserId])\r\nvalues (@0, null, @1, @2)\r\nselect [RoleId]\r\nfrom [dbo].[Role]\r\nwhere @@ROWCOUNT > 0 and [RoleId] = scope_identity()\r\[email protected] = test\r\[email protected] = 13.05.2013 06:00:03\r\[email protected] = 0\r\n\r\n=============== END COMMAND ===============\r\n"

Jemand noch eine Idee ?

Beste Grüsse

Diräkt

Edit:

Was klappen würde ist:
db.Database.ExecuteSqlCommand("DBCC CHECKIDENT('Role',RESEED,1000);");

Aber das ist echt etwas gammlig... :-(

Thema: Vergleichsoperatoren: Ergebnis eines Vergleichs in einer (bool)-Variable speichern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo R3alAvenger

Das gehört zu den absoluten Grundlagen...

C# ist eine Typsichere Sprache :


bool Foo;
labelanzeige.Text = Foo;

label.Text ist vom Typ "String". Foo ist ein boolean. Du musst also erst dein boolean zu einem String "casten". Da Object die Methode "ToString()" implementiert könntest du diese bspw. benutzen ;-)


Beste Grüsse

Diräkt

Thema: wie beim Aufruf einer Methode die Checkbox deaktivieren (Silverlight)?
Am im Forum: GUI: WPF und XAML

Hallo gustavmega

Die Checkbox ist ja warsch. im ViewModel an ein bool Property gebunden.
Wenn dem so ist, kannst das Property prüfen und ggf. verändern.

Alternativ kannst auch der Checkbox ein X:Name verpassen und diese damit im Code ansprechen. Die Eigenschaft heisst Checkbox.Checked=bool.

Beste Grüsse

Diräkt

Thema: [erledigt] Ef to Sql
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: SQL + EF (DB-First)

Hallo Leute :-)

Ziel:
=> Diverse "Template" Scripts welche heute als SQL Scripts existieren sollen gecoded werden in c#.
( Damit Spaltennamens-Änderungen etc. durch compilerfehler schneller gefunden werden usw...)

Problem:
Die Tabellen haben ein PK (auto increment) für diese Templates (werden geladen beim Aufsetzen der Software), muss dieses Feature ausgeschalten werden.

Sowas hier:

 using (var myDB = new newDB())
            {
                //turn off the identity column 
                myDB.ExecuteStoreCommand("SET IDENTITY_INSERT [MyDataTable] OFF");
               
                 //insert template data

               // turn on the identity column
               myDB.ExecuteStoreCommand("SET IDENTITY_INSERT [MyDataTable] ON");
            }

funktioniert leider nur nicht. (oder nur bedingt). Man müsste im EF Model einiges anpassen (StoreGeneratedPattern) ... was bei jedem Model Update wieder überschrieben werden würde (also keine Lösung)

Idee:

Nun kam ich auf folgende Idee:

 using (var myDB = new newDB())
            {
                db.DummyData.Add(new DummyData(){Id=1,Name="HalloWelt"});
                db.DummyData.Add(new DummyData(){Id=1,Name="HalloWelt"});
            }

Anstatt das ich nun db.SaveChanges() aufrufen würde, möchte ich sowas haben:
db.GenerateSaveChangesSqlScript().

Kennt jemand eine solche Möglichkeit oder hat eine Lösung für das Problem?


Beste Grüsse

Diräkt

Thema: Hintergrundbild langsam ausblenden
Am im Forum: GUI: Windows-Forms

Hallo Chazon

Was hast du diesbezüglich schon probiert ? Wo genau liegt das Problem ?

Mir würde spontan folgendes einfallen :
=> Timer welcher im Tick_Event die Transparentz des Bildes erhöht


Beste Grüsse

Diräkt

Thema: Mehrere Projekte In Projektmappe
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo ThoHei

Struktur:

>Solution
->>Projekt 1
->>Projekt 2


Wenn du für ein "Gesamtprojekt" mehrere Solutions nutzt, würde ich ein Ordner z.B "LIB" anlegen und der Release Output der Projekte von Solution 1 darauf festlegen.
Von Solution 2 kannst die Assemblys dann vom LIB Ordner referenzieren.


Beste Grüsse

Diräkt

Thema: Charting.Series Threadsicher aufrufen
Am im Forum: GUI: Windows-Forms

Hallo herrfuchs

Genau versteh ich Dein Vorhaben nicht, aber schau Dir mal lock an.


Beste Grüsse

Diräkt

Thema: Menü bzw. TabControl benutzerabhängig gestalten
Am im Forum: GUI: Windows-Forms

Hallo Stony17

Das geht mit allen Controls. Es gibt da Eingenschaften wie Visible oder Enable die sich dafür eignen könnten.

Theoretisch kannst du auch ein Plugin System erstellen um dein Ziel zu erreichen.


Beste Grüsse

Diräkt