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: Menü bzw. TabControl benutzerabhängig gestalten
Am im Forum: GUI: Windows-Forms

Hallo Stony17

Genereller gesagt, brauchst du nicht einmal ein Login, sondern nur eine Konfiguration.
Du kannst ein config.xml erstellen und darin alles gewünschte definieren.

Beim Start deiner Applikation wird dieses eingelesen und als Einstellungen verwendet.
Wenn das Bedürfniss da ist, kannst für das config.xml ja sogar noch ein GUI machen um es benutzerfreundlich anpassen zu können.....

(z.B. "Screenshot" der Applikation, wo man sich zusammenklicken kann was man gerne möchte..)


Beste Grüsse

Diräkt

Thema: Worte aus Text herausfiltern und in anderen Text einsetzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo DatMilu

Ganz verstehe ich nicht was du möchtest...

Dein gewünschtes Resultat erhältst du mit:

var result = php.Replace("function","void");

Wenn du ein Converter schreiben willst, brauchst natürlich noch ein paar Zeilen mehr ;-)
( Auch wäre dann mein Statement nicht korrekt, weil wenn die function ein return benutzt ist es nicht mehr void ... )

Beste Grüsse

Diräkt

Thema: gebundene DropDown Combobox, falsche Eingabe abfangen
Am im Forum: GUI: Windows-Forms

Hallo ill_son

Du kannst die Liste einfach Filtern nach dem Text. Wird etwas nicht vorhandenes eingegeben, ist die Auswahl in der ComboBox leer.

Beste Grüsse

Diräkt

Thema: Ständig ändernde Daten wo Speichern?
Am im Forum: Datentechnologien

Hallo GeneralKampfKeks

Ehrlich gesagt würde ich den Kontostand nicht ausgerechnet abspeichern, ausser du hast Millionen von Datensätzen.

Vorgeschlagene Möglichkeiten:

1.
Tabelle Einnahmen, Tabelle Ausgaben.

2.
Boolean Flag ob Einnahme oder Ausgabe....

3.
Ausgaben mit einem (-) versehen.


Du hättest dann den Vorteil, den Betrag dynamisch auszurechnen :
Du kannst dann sowas machen wie Sum(Einnahmen)-Sum(Ausgaben).


Beste Grüsse

Diräkt

Thema: welches cms empfehlenswert - visual studio 2012
Am im Forum: Smalltalk

Hallo

Ein auf asp basierendes CMS wäre z.b. DOT NET NUKE !
Grundsätzlich empfehlenswert, aber wie ABT schon gesagt hat, die PHP Community ist was CMS betrifft einiges grösser....


Beste Grüsse

Diräkt

Thema: Aufbau einer Anwendung, Tipps für einen ASP.Net Neuling
Am im Forum: Web-Technologien

Zitat
Zitat von Diräkt:
Du kannst deine BL Methoden über ein Web-Service "freigeben".
Somit können Web+Console Anwendung die Selbe Logik teilen. ( Wartung etc... )

Könntest du das villeicht etwas genauer ausführen?


Du wirst ja eine BL haben. Um keinen Code zweimal zu schreiben ( never repeat your self ), kannst du ein WebService erstellen (WCF) und die relevanten BL Methoden zur Verfügung stellen :


public List<T> GetData()
{
var bl = new Bl();
return bl.GetData();
}
Zitat
Das hatte ich mir auch schon als "Notlösung" überlegt, wenn die beiden Anwendungsteile (Service + Web) sonst nicht miteinander kommunizieren könnten. Da die Hardware auf der das Ganze läuft/laufen soll etwas schwachbrüstig ist wollte ich eine DB wenn möglich umgehen.

Wenn du die alten Daten (Hisotry) nicht brauchst, sondern nur das Aktuelle, ist eine DB der falsche Ansatz, richtig.

Du kannst von deinem WebService oder von der Web-Applikation oder von beidem aus, auch auf dein Windows Dienst zugreifen, damit sollte dein Vorhaben gut umsetzbar sein.

Stichwörter dafür wären z.B. :
.Net Remoting
Service Controller


Beste Grüsse

Diräkt

Thema: Aufbau einer Anwendung, Tipps für einen ASP.Net Neuling
Am im Forum: Web-Technologien

Hallo Phatdaro

Du kannst deine BL Methoden über ein Web-Service "freigeben".
Somit können Web+Console Anwendung die Selbe Logik teilen. ( Wartung etc... )

Zitat
- Über die Website möchte ich die Anwendung starten und stoppen können
Hat jeder User eine Instanz der Anwendung ?! Wenn ja sollte die Architektur überarbeitet werden :-)
Grundsätzlich ist das Starten und Stoppen kein Problem, sinnvoll wäre dann z.B. ein Windows Service..
Zitat
Die bestehende Anwendung gibt kontinuierlich Rückmeldung, diese würde ich gerne auf der Website in einer Textbox anzeigen.

Die Daten kannst du in eine DB speichern. Und für die WebSite liest einfach wieder aus und stellt wie gewünscht dar...
Zitat
Die bestehende Anwendung soll, auch wenn die Website durch den Browser(Benutzer) geschlossen wird weiterlaufen, öffnet der Benutzer die Website wieder soll er die aktuellen Stand sehen
Siehe Windows-Dienst...
Zitat
- Kann ich das prinzipiell in einer WebAnwendung hinbekommen?
Es gibt eigentlich fast keine Grenzen, was man mit WebAnwendungen hinbekommt, also ja.



Beste Grüsse

Diräkt

Thema: EF DBSet : AddObject() oder Add()?
Am im Forum: Datentechnologien

Hallo CoderboyPB

Wenn man den ObjectContext verwendet heisst es :

Context.AddObject();

wenn du den DbContext verwendest hesist es :

Context.Person.Add(...);


Beste Grüsse

Diräkt

Thema: Session Timeout
Am im Forum: Web-Technologien

Hallo Abt

Danke werde ich testen! Gerne würde ich noch Deine Frage beantworten und dazu Deine (oder Eure) Meinung wissen.

Ich habe mir überlegt anstatt den Timeout auf z.B 8 Stunden zu stellen, lieber alle 30 Minuten ein Post ( sieher erster Thread ) abzusetzen, um die Applikation aktiv zu halten.

=> Ja , das ist Overhead und Dein Einwand ist berechtigt

ABER:

=> Wenn ich es richtig verstehe würde ein Timeout von 8 Stunden bedeuten :
==> User loggt sich ein
==> User schliesst Browser ( ohne sich abzumelden )
==> Session bleibt 8 Stunde in den Ram des Servers
-----------------------------------------------------
Mein Control würde also erlauben :

=> Timeout auf 1 Stunde
==> User loggt sich ein
==> Alle z.B. 30 Minuten ein Post => session refresh ( damit auch 8 Stunden gehen .... )
==> User schliesst Browser (ohne sich abzumelden)
==> Session bleibt max 1 Stunde in den Ram des Servers


Ist mein Verständniss falsch ? Oder gibts dafür ne bessere Lösung ?


[OFF]
Ich persönlich halte es nicht für sinnvoll eine Session solange am leben lassen zu wollen. Das "neu" Anmelden dauert ja 2-3 Sekunden.... Nur was Entwickler denken interessiert ja niemand :-)
[/OFF]

Beste Grüsse

Diräkt

Thema: Session Timeout
Am im Forum: Web-Technologien

Hallo Abt

Danke für Deine Antwort.

Es gibt doch 2 Einstellungen nicht ?
=> APP - Pool
===> (screenshot => ist das diese Einstellung)?
=> Web.Config
===> <sessionState timeout="60" />

Mit diesen beiden Einstellungen müsste die WebApp also nach einloggen, 60 minuten aktiv bleiben ?


Beste Grüsse

Diräkt

Thema: Session Timeout
Am im Forum: Web-Technologien

Hallo Leute :-)


Ich habe ein Control, welches alle X Sekunden ein Post absetzt um die Session zu verlängern. Das geschieht per Javascript, etwa so :

 $.ajax({
                timeout: options.AJAXTimeout,
                url: options.keepAliveURL,
                error: function () {
                    self.failedRequests--;
                },
                success: function (response) {
                    if ($.trim(response) !== options.serverResponseEquals) {
                        self.failedRequests--;
                    }
                },
                complete: function () {
                    if (recurse) {
                        self._startTimer();
                    }
                }
            });

Die Keep-Alive Seite sieht so aus :


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
   OK
    </form>
</body>
</html>


 protected void Page_Load(object sender, EventArgs e)
        {
            Session["KeepSessionAlive"] = DateTime.Now;
        }

Auch wenn der Post abgesetzt wird, wird dadurch die Session-Zeit nicht wieder zurück-gesetzt.

Sprich:
=> Wenn im IIS 20 minuten konfiguriert sind, flieg ich nach 20 minuten raus, trotz des Controls, warum, was mach ich falsch ?

Beste Grüsse

Diräkt

Thema: Fehler 501 bei FTP Webrequest Schreibversuch
Am im Forum: Netzwerktechnologien

...

es gibt noch so schöne Methoden wie string.Format und Path.Combine

...


Beste Grüsse

Diräkt

Thema: Fehler 501 bei FTP Webrequest Schreibversuch
Am im Forum: Netzwerktechnologien

Hallo Skywalker

Dies ist ggf. nicht gewünschte Antwort, jedoch eine mögliche Lösung :-)

Ich würde ein Ordner im FTP Pfad erstellen. Genau genommen nicht ein "normalen Ordner" sondern ein hard Link auf dein F:\bla Verzeichniss.

mklink


Beste Grüsse

Diräkt

Thema: [gelöst]Referenz auf Boolean Objekt
Am im Forum: GUI: WPF und XAML

Hallo Asimon

Zitat
generell will ich damit eine "wenn false da speichern" Abfrage umsetzen.



irgendwas neues = new irgendwas(false);



class irgendwas

{
public bool Flag{get;set;}

public irgendwas (boolean flag)
{
Flag = flag
doWork();
}

private void doWork()
{
if(Flag)
{
}else
{
}

}
}



So könnte das etwa aussehen...

Beste Grüsse

Diräkt

Thema: Möglichkeiten für automatischen Windows Neustart, wenn der Rechner eingefroren ist
Am im Forum: Rund um die Programmierung

@Cat

Und dies ist "witzigerweise" die Standard-Einstellung :-)

Thema: [erledigt] Ajax Update Traffic minimize
Am im Forum: Web-Technologien

Hallo Abt

Perfekt! Danke für den Tipp !

Null Value ignore:

string ignored = JsonConvert.SerializeObject(movie,Formatting.Indented,new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });


"Custom Mapping"
[JsonProperty("name")]
public string Name { get; set; }


Scheint als würde alles abgedeckt werden !!!

Danke !


Beste Grüsse

Diräkt

Thema: [erledigt] Ajax Update Traffic minimize
Am im Forum: Web-Technologien

Danke Abt für Deine Antwort.

Letzte Nachfrage :

=> Gibts eine Möglichkeit die Kürzung per Attribute zu lösen ?
(damit es dann automatisch wieder gemappt wird)

sowas in dieser Art:

public class X
{

[Json-Attribute:A]
public string Abcdefgh{get;set;}

}


Beste Grüsse

Diräkt

Thema: [erledigt] Ajax Update Traffic minimize
Am im Forum: Web-Technologien

Hallo Abt

Danke für Deine Antwort.

Ich habe den Overhead wirklich nur im Response. Der Rest wird ja nur einmal geladen. Ob es hier ein paar bytes mehr oder weniger sind, ist nicht match-entscheidend.

Wenn die spezifische Seite jedoch 24/7 läuft, und alle 3 Sekunden ein Update erfährt, spielen die paar bytes (des Respones) eine entscheidende Rolle...

Es geht darum, das sehr viele Werte updated werden müssen. Als Veranschaulichung, wenn ich 4 Controls auf der Page habe (in real sind es im Schnitt etwa 20), sieht die Response etwa so aus :


{"d":[{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":1,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"12","AlarmValue":"11","AvailableValue":"11","OccupiedValue":"16","ProductionValue":"14","OPercent":1,"CPercent":10,"Signal":"efefef","DockPosition":"","ClientInformation":{"OeeValueClientId":"1_C_ctl01_lblOPct","CapacityValueClientId":"1_C_ctl01_lblCpct","TitleTextClientId":"1_C_ctl01_lblTitle","MembersValueClientId":"1_C_ctl01_lblMembersValue","AvailableValueClientId":"1_C_ctl01_lblAvailableValue","OccupiedValueClientId":"1_C_ctl01_lblOccupiedValue","SignalColorClientId":"1_C_ctl01_signal","GaugeOeeClientId":"1_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"1_C_ctl01_RadLinearGauge1","ProductionValueClientId":"1_C_ctl01_lblProductiveValue","WidgetClientId":"1_C_ctl00"}},{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":2,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"11","AlarmValue":"112","AvailableValue":"113","OccupiedValue":"614","ProductionValue":"915","OPercent":1,"CPercent":6,"Signal":"dedede","DockPosition":"","ClientInformation":{"OeeValueClientId":"2_C_ctl01_lblOPct","CapacityValueClientId":"2_C_ctl01_lblCpct","TitleTextClientId":"2_C_ctl01_lblTitle","MembersValueClientId":"2_C_ctl01_lblMembersValue","AvailableValueClientId":"2_C_ctl01_lblAvailableValue","OccupiedValueClientId":"2_C_ctl01_lblOccupiedValue","SignalColorClientId":"2_C_ctl01_signal","GaugeOeeClientId":"2_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"2_C_ctl01_RadLinearGauge1","ProductionValueClientId":"2_C_ctl01_lblProductiveValue","WidgetClientId":"2_C_ctl00"}},{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":3,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"172","AlarmValue":"171","AvailableValue":"100","OccupiedValue":"176","ProductionValue":"174","OPercent":90,"CPercent":2,"Signal":"ababab","DockPosition":"","ClientInformation":{"OeeValueClientId":"3_C_ctl01_lblOPct","CapacityValueClientId":"3_C_ctl01_lblCpct","TitleTextClientId":"3_C_ctl01_lblTitle","MembersValueClientId":"3_C_ctl01_lblMembersValue","AvailableValueClientId":"3_C_ctl01_lblAvailableValue","OccupiedValueClientId":"3_C_ctl01_lblOccupiedValue","SignalColorClientId":"3_C_ctl01_signal","GaugeOeeClientId":"3_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"3_C_ctl01_RadLinearGauge1","ProductionValueClientId":"3_C_ctl01_lblProductiveValue","WidgetClientId":"3_C_ctl00"}},{"__type":"WebControls.SharedClasses.AdGroupDockingItem","Id":4,"TilePositionId":0,"Title":"Activity Group","MemberText":"Members","AlarmText":"Alarm","AvailableText":"Availabel","OccupiedText":"Occupied","ProductiveText":"Productive","MembersValue":"1112","AlarmValue":"1111","AvailableValue":"1101","OccupiedValue":"1161","ProductionValue":"1141","OPercent":51,"CPercent":49,"Signal":"fff","DockPosition":"","ClientInformation":{"OeeValueClientId":"4_C_ctl01_lblOPct","CapacityValueClientId":"4_C_ctl01_lblCpct","TitleTextClientId":"4_C_ctl01_lblTitle","MembersValueClientId":"4_C_ctl01_lblMembersValue","AvailableValueClientId":"4_C_ctl01_lblAvailableValue","OccupiedValueClientId":"4_C_ctl01_lblOccupiedValue","SignalColorClientId":"4_C_ctl01_signal","GaugeOeeClientId":"4_C_ctl01_RadLinearGauge2","GaugeCapacityClientId":"4_C_ctl01_RadLinearGauge1","ProductionValueClientId":"4_C_ctl01_lblProductiveValue","WidgetClientId":"4_C_ctl00"}}]}

Daher die Frage, wie ich dies optimiere.
Zitat
=> das Aktivieren der dynamischen Komprimierung vom IIS.
Ok werde ich gleich testen ! Danke !

Dann blieben noch die Fragen :
=> Kann ich ein Wert "NULL" setzen und dieser wird dann GAR NICHT in JSON serialisiert?
=> Kann ich die VariablenNamen irgendwie "einfach" drastisch kürzen, (nur für die Übertragung)


Beste Grüsse

Diräkt

Thema: [erledigt] Ajax Update Traffic minimize
Am im Forum: Web-Technologien

Hallo Abt

Danke für Deine Antwort.


Ich bekomme die Daten als JSON, das Problem aber ist dabei auch folgendes:

TitleTextValue = "1";
TitleTextValue = null;

{TitleTextValue:1;} 
{TitleTextValue:;}

Wie man sieht benötigt der Variablen-Namen einiges mehr an bytes als der Wert. Selbst wenn der Wert nicht vorhanden ist, wird das Property mitgegeben.

Eigentlich geht es mir ja nur darum, diesen "overhead" irgendwie einsparen zu können.


Gibts dafür eine Lösung ?

Beste Grüsse

Diräkt

Thema: [erledigt] Ajax Update Traffic minimize
Am im Forum: Web-Technologien

Hallo

Verwendete Technologien:

=> ASP WebForms
=> Jquery
=> EF
=> Ajax

Scenario:

Ich habe UserControls, diese werden zuerst serverseitig erstellt und gerendert. Danach werden diese alle 3 Sekunden updated, etwa so :


window.setInterval(update, 10000);

function update()
{
  PageMethods.GetList(onsuccess);

  function onsuccess(data)
  {
     $('#' + data[i].ClientInformation.TitleTextClientId).text(data[i].TitleText);
  }
}


Das funktioniert auch wunderbar nur :

=>1. Wie kann ich nur die veränderten Eigenschaften updaten, um den Post zu minimieren ?
=>2. Gibt es eine sinvollere Möglichkeit also meine Überlegung zu Punkt 1 ?


( 1.

Überlegung :
=> Ich cache das Entity und gebe dieses dem BL mit. Dieser vergleicht auf "veränderte Properties" und gibt nur dieses zurück, die andern mit dem Wert NULL. ( nicht veränderten )

=> Problem bei der Überlegung:
Die Daten gehen dennoch an den Client ( {TitleText=null;....}
Wie kann ich den Traffic minimieren ?
)


( 2.

Muss ich jetzt wirklich eine Art eigenes Protokoll (oder Parser) schreiben, um den Traffic zu minimieren ? Das ich im Request z.B. erhalte : "T="Title", und ich dann weiss T = TitleText ?!

)



Herzlichen Dank für Anregungen und Ideen

Beste Grüsse

Diräkt

Thema: Suche Bibliothek für Sha512
Am im Forum: Rund um die Programmierung

Hallo csofti

Schau Dir mal das Snippet an :

Passwort Hash

Beste Grüsse

Diräkt

Thema: Datenbindung mit Checkboxen: Maximal eine soll "Checked" sein
Am im Forum: GUI: Windows-Forms

Hallo ill_son


Hatte mal eine ähnliche Anforderung. Nicht ganz konventionell, aber hab sie so gelöst :

=> RadioButton so überschreiben, dass z.B ein Doppelklick oder ein weiteres selektieren eines bereits aktiven RadioButton's, zum de-selektieren führt :-)


Beste Grüsse

Diräkt

Thema: Effiziente Suche in Liste von eigener Klasse
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Comand

Zitat
Mittlerweile sind es über 1000 Filme
Zitat
Ich verwende das im Zusammenhang mit einem DataGridView


Ich bezweifle das ein Mensch mehr als (sind wir grosszügig) 100 Datensätze miteinander verarbeiten kann. Daher wäre da wohl Paging angebracht mit SKIP und TAKE. Deine 2 Sekunden werden dann wohl zu 2 milisekunden ;)

Beste Grüsse

Diräkt

Thema: WebBrowser und übergabe der Anmeldedaten zum Proxy
Am im Forum: Web-Technologien

Hallo *neo*

Der Proxy hat doch eine IP ..?!


request.Proxy = New WebProxy(proxyAddress) { UseDefaultCredentials = true };


Beste Grüsse

Diräkt

Thema: lange Zeiten bei Deserialisierung bei Binaryformatter
Am im Forum: GUI: WPF und XAML

Hallo Asimon


Ich zumindest weiss nicht wie du es perfomanter gestalten könntest.
Empfehlen würde ich bei diesem Daten-Volumen eine Datenbank (z.B Sql Express).

Der Vorteil wäre natürlich das du dann die Möglichkeit hast nur die benötigten Daten zu selektieren, und ggf. gleich Aggregations-Funktion dem SQL Server überlassen kannst.


Beste Grüsse

Diräkt

Thema: Welche SQLServer Express Version für Windows 8 Pro
Am im Forum: Datentechnologien

OFFTOPIC
[QUOTE]das lässt sich nämlich nur schwierig nachträglich installieren[/QUOTE]

Habs schon etwa 7-10 mal nachträglicher installiert. Jedes mal ein Theater ... :-)


Beste Grüsse

Diräkt

Thema: Welche SQLServer Express Version für Windows 8 Pro
Am im Forum: Datentechnologien

Hallo CoderboyPB

Link : MS SQL EXPRESS

DEU\x64\SQLEXPR_x64_DEU.exe => 64 bit
DEU\x86\SQLEXPR_x86_DEU.exe => 32 bit

Die weiteren Angebote sind :
=> Advanced (Reporting Servies ...)
=> SQL Management Studio ....


Beste Grüsse

Diräkt

Thema: In der ListBox markierte Felder einem Label zuweisen
Am im Forum: GUI: Windows-Forms

Hallo Poldi45354

Herzliche Willkommen im Forum.


Die Listbox hat ein Event Selected_IndexChanged(object sender, EventArgs e).
Abonier dieses Event und reagiere entsprechend darauf.

Beste Grüsse

Diräkt

Thema: ASP.net Datagrid-ButtonColumn
Am im Forum: Web-Technologien

Hallo Da_Flo

Du kannst im Grid DATAKEYNAMES definieren. Auf dieses kannst du zugreifen, etwa so :


 protected void grid1_ItemCommand(object source, DataGridCommandEventArgs e)
        {
            var id=int.Parse(((GridDataItem)e.Item).GetDataKeyValue("AuftragID").ToString();
         }

(Natürlich solltest du TryParse verwenden etc...)


Beste Grüsse

Diräkt

Thema: Subselect mit Linq
Am im Forum: Datentechnologien

Hallo Schaffi

Das könnte etwa so aussehen:


var query = DeineDaten
    .GroupBy(x => x.Id,
             (k, g) => g.Aggregate((a, x) => (x.TimeStamp > a.TimeStamp ) ? x : a));

Es gibt ein cooles Tool namens LINQ PAD, schau es Dir doch mal an, damit kann man spielend zum Ergebniss finden ;)


Beste Grüsse

Diräkt


Edit :

ggf. einfacher wäre (ohne Aggregate):


var result= yourData.GroupBy(x => x.Id)
           .Select(y => y.OrderByDescending(z => z.TimeStamp).First()).ToList();