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 Powerslave
Thema: TcpClient + Networkstream empfängt nach 30 Sekunden Leerlauf keine Daten mehr
Am im Forum: Netzwerktechnologien

Ok, es ist wirklich ein "Port Timeout = 30 seconds" am Gerät eingestellt.

Dann krieg ich das hin, danke.

Thema: TcpClient + Networkstream empfängt nach 30 Sekunden Leerlauf keine Daten mehr
Am im Forum: Netzwerktechnologien

Danke,
Möglich ist es bestimmt. Hab leider so gut wie keine Schnittstellenbeschreibung vom Gerät. Kann mir aber morgen nochmal die Konfiguration anschauen, ob ich dort was von nem Timeout finde.

Falls es so wäre, wie könnte ich denn darauf reagieren, da meine Applikation ja die Verbindung aufbaut und der Scanner nichts von meiner App weiß?
TcpListener kann ich in diesem Fall ja nicht verwenden, TcpClient ist schon die richtige Komponente oder?

Thema: TcpClient + Networkstream empfängt nach 30 Sekunden Leerlauf keine Daten mehr
Am im Forum: Netzwerktechnologien

Hallo,

ich connecte mich über TCP mit einem Ethernet-Barcodeleser, der eine IP-Adresse hat.

Dazu verwende ich folgenden (vereinfachten) Code:


using (TcpClient client = new TcpClient("192.168.20.41", 1002))
{
    using (NetworkStream stream = client.GetStream())
    {
        while (true)
        {
            int readCount;
            byte[] data = new byte[client.ReceiveBufferSize];

            while (stream.DataAvailable && (readCount = stream.Read(data, 0, client.ReceiveBufferSize)) != 0)
            {
                strData += Encoding.UTF8.GetString(data, 0, readCount);
            }

            if (!string.IsNullOrWhiteSpace(strData) && strData.EndsWith(endOfLine))
            {
                OnRead(strData);
                strData = "";
            }

            //Thread.Sleep(200);
        }
    }
}

Wenn ich die Applikation starte und Barcodes einscanne erhalte ich die richtigen Werte vom Gerät. Wenn ich allerdings 30 Sekunden im Leerlauf bin, also 30 Sekunden lang seit dem Start der Applikation oder seit dem letzten gescannten Barcode vergangen sind, werden keine Daten vom Gerät mehr empfangen. Networkstream.DataAvailable bleibt immer false, TcpClient.Available bleibt immer 0, aber TcpClient.Connected ist immernoch true. Wenn ich die Applikation neustarte, geht es wieder.

Muss ich die Verbindung irgendwie am Leben halten? Was könnte dafür sonst die Ursache sein?
Vielleicht hat jemand eine Idee.

Danke im Voraus!

Thema: Business und Persistence Methoden wie implementieren? (Aufteilung Business/Service/DAO/NHibernate)
Am im Forum: Rund um die Programmierung

Ja, ich möchte gerne Linq mit NHibernate verwenden.

Kann gut sein, dass ich es noch nicht ganz verstanden habe.

Heißt das, das die Linq-Queries nicht ins Dao gehören, sondern eher in ein Repository bzw. direkt in den ServiceLayer (wenn ich IQueryable verwende)?

Thema: Business und Persistence Methoden wie implementieren? (Aufteilung Business/Service/DAO/NHibernate)
Am im Forum: Rund um die Programmierung

Danke für dein Beispiel,

vielleicht war das "StartsWith"-Beispiel ein schlechtes, da man wie du es eben gezeigt hast, die Einschränkung auch über den Code implementieren kann.

Sagen wir, ich müsste die Einschränkung über ein Query machen, dann wäre es ja (auch in deinem Fall) wieder nur ein Delegieren zum DataLayer.

Thema: Business und Persistence Methoden wie implementieren? (Aufteilung Business/Service/DAO/NHibernate)
Am im Forum: Rund um die Programmierung

Hallo,

das heißt du hättest deinen Datenzugriff direkt im ServiceLayer? Dieser sollte eigentlich nicht wissen, wie die Daten geholt werden.

Thema: Business und Persistence Methoden wie implementieren? (Aufteilung Business/Service/DAO/NHibernate)
Am im Forum: Rund um die Programmierung

Moin,

kurze Frage weil ich hier immer darüber stolpere.

Meine Persistenzschicht besteht aus einem GenericDao<T> und konkreten Dao's die davon ableiten.

Nehmen wir mal an, im UI habe ich die Möglichkeit nach Mitarbeitern zu suchen die mit einem bestimmten Buchstaben anfangen.

Was ist hier nun Best Practise? Ich benötige ja sowohl eine Service als auch eine Dao-Methode.

Natürlich könnte z.B. _employeeService.GetEmployeesStartsWith("A") intern nur _employeeDao.GetEmployeesStartsWith("A") aufrufen die wiederrum per NHibernate den Query absetzt.

Aber das ist doch unschön.

Wie löst ihr sowas?

Danke.

Thema: CultureNotFoundException beim Debuggen
Am im Forum: Web-Technologien

Guten Morgen,

da ich nun "leicht" genervt bin, habe ich mich durchgerungen hier mal dieses komische Verhalten darzustellen.

Ausgangspunkt:
- ASP.NET 4.0 WebSite mit vielen Pages und Controls
- Zu jeder WebSite und jedem Control gibt es eine .resx sowie eine .en.resx Datei
- Die .resx soll der Fallback sein (in meinem Fall deutsch)

Erstmal vorne weg, die Anwendung läuft ohne Probleme, auch das Umschalten zwischen deutsch und englisch funktioniert.

Nun zum Problem:
Beim Starten / Attachen des Debuggers kommen ca. 8000 Zeilen der Meldung 'A first chance exception of type 'System.Globalization.CultureNotFoundException' occurred in mscorlib.dll'.
Das beeinträchtigt den Debug-Start enorm! (ca. 3 Minuten)

Je größer die Seite (je mehr Resources), desto mehr dieser Fehler treten auf.

Die CurrentUICulture ist de-DE.


Danke im Voraus!

Thema: Equals einer Klasse überschrieben, wie auf List<T>-Gleichheit prüfen?
Am im Forum: Rund um die Programmierung

Guten Morgen,

es geht um folgende Klasse:


    public class ClientGroup : DomainObject
    {
        public string Name { get; set; }
        public UniqueList<Client> Clients { get; private set; }

        public ClientGroup( string name )
        {
            Name = name;
            Clients = new UniqueList<Client>();
        }

        public override bool Equals( object obj )
        {
            if( base.Equals( obj ) ) // Hier wird DomainObject.Equals() aufgerufen, die einen Typ-Vergleich macht
            {
                if( ReferenceEquals( this, obj ) )
                {
                    return true;
                }

                ClientGroup clientGroup = obj as ClientGroup;

                return Name.Equals( clientGroup.Name ) && ... // Was nun?
            }

            return false;
        }

        public override int GetHashCode()
        {
            // Und hier?
            return Name.GetHashCode() ^ Clients.Count;
        }
    }

Ich möchte gerne den Namen sowie die Listenelemente vergleichen.
Wenn ich aber Clients.Equals(clientGroup.Clients) prüfe, wird ja object.Equals() und damit nur ReferenceEquals aufgerufen, aber KEIN Wertevergleich der Listenelemente.

Hat jemand von euch eine Idee wie man auf Gleichheit der Listenelemente prüft?
Sonst müsste ich mir ne Helper-Methode schreiben, was ich in diesem Fall eigentlich umgehen möchte.

PS: Wer oberes gelöst hat, darf mir auch gleich noch verraten, wie man dazu noch GetHashCode implementiert ;-)

Dankeschön!

Thema: Persistence und DomainModel korrekt trennen
Am im Forum: Rund um die Programmierung

Weder noch, es handelt sich um eine ASP.NET Anwendung. (Aber sollte das nicht irrelevant sein?)

Businesslogik sollte am besten in die Domain oder nicht?

Wie würde es denn in der Praxis aussehen?


// Aufruf aus einer ASPX-Page?
gridView.DataSource = Repository<Customer>.GetAll();

// Oder aus dem Domänenobjekt?
gridView.DataSource = Customer.GetAll();

public IList GetAll()
{
  return Repository<Customer>.GetAll();
}

Wenn ich es so wie oben mache, würde das UI quasi direkt auf die Persistence zugreifen, was vermutlich nicht sinnvoll ist.

Im zweiten Fall wäre die Domain schlechter testbar, weil das Repository nicht mehr so einfach zu mocken ist.

Wie löst du sowas?

Thema: Persistence und DomainModel korrekt trennen
Am im Forum: Rund um die Programmierung

Moin!

Erstmal vielen Dank für eure Antworten.

Eine Art von ActiveRecord mache ich momentan (ungewollt, wusste nicht, dass man das so nennt).

Repository gefällt mir ganz gut, habe mich etwas eingelesen und noch ein paar Fragen dazu:

- Wenn ich es richtig verstanden habe, würde ja das Objekt sich nicht mehr selbst speichern können, sondern das Repository hat eine Save(T)-Methode.
Würde ich dann im UI direkt Repository.Save(Customer) aufrufen? Oder sollte das UI das Repository auch nicht kennen?

- Wo würdet ihr die Repositories ablegen? Bei der Persistenzschicht? Oder in eine extra Assembly?

- Repository<T> würde ja die Standard-Datenzugriffs-Logik implementieren. Wenn ich für ein Domänenobjekt nun eigene Logik (bestimmtes HQL-Statement) benötige, mache ich dafür dann ein spezifisches Repository (z.B. CustomerRepository)?


Vielen Dank schonmal ;-)

Thema: Persistence und DomainModel korrekt trennen
Am im Forum: Rund um die Programmierung

Moin!

Danke für eure Antworten.

Ich verwende ja NHibernate zum Speichern der Entities am Ende.

Allerdings muss ich doch das Objekt speichern können, indem ich z.B. Save() darauf aufrufe.

Da ich jedoch nicht die NHibernate-Logik (session.SaveOrUpdate(),..) innerhalb jeder Save()-Methode verwenden kann/will (weil Domain die Persistance nicht kennt!), frage ich mich wie sich die Verbindung herstellt?

Thema: Persistence und DomainModel korrekt trennen
Am im Forum: Rund um die Programmierung

Guten Abend,

ich zerbreche mir gerade den Kopf wie man die Persistenzschicht und das Domänenmodell einer Anwendung am besten trennt.

Ich habe mir folgende Gedanken gemacht, komme aber nicht wirklich weiter:

'Domain'
Customer
- Save()
- Delete()
- GetById()
Employee

'Persistence'
Repository<T>
- Save()
- Delete()
- GetById()


Gemäß dem Repository Pattern würde die Persistenzschicht eine Klasse für den Datenzugriff bereitstellen, die wiederrum mit oder ohne eines ORM auf die Datenbank zugreift.

Was ich bisher gelesen habe sollte ja die Domain NICHT auf die Persistenzschicht zugreifen, wie würde ich aber dann z.B. ein Domänenobjekt abspeichern?

Pseudocode:


Customer c = new Customer("Foo");
c.Save(); // Wie ist hierfür die Implementierung wenn das Objekt die Persistenzschicht nicht kennt?

Ich hoffe ihr wisst ungefähr was ich möchte ;-)

Vielen Dank schonmal.

Thema: HttpSessionState im WebService
Am im Forum: Web-Technologien

Guten Morgen und danke für die vielen Antworten!

momentan ist es so, dass nicht die HttpSession (das wäre böse) sondern die Hibernate-Session (nicht weniger böse) als Singleton gehalten wird, was bei hohem Traffic natürlich Probleme verursacht (habe ich gestern abend noch nachgestellt).

Die Hibernate-Session für jeden Benutzer in der HttpSession zu halten funktioniert und es werden keine Exceptions mehr geschmissen auch bei 100 ausführenden Threads gleichzeitig.

Ich werde jetzt noch ein paar Szenarien durchspielen, aber ich vermute, dass nun alles passt.

Vielen Dank für eure Hilfe

Thema: HttpSessionState im WebService
Am im Forum: Web-Technologien

Hallo,

ich verwende NHibernate 3.0 als O/R-Mapper.

Auf meiner WebSite bekommt jeder Benutzer sein eigenes ISession-Objekt (NHibernate Verbindung zur Datenbank), welches in einer ASP.NET Session gespeichert wird.


Jetzt habe ich aber auch noch einen WebService, der auch auf die Datenbank zugreifen muss.
Zum Testen habe ich erstmal das ISession-Objekt in einem Singleton verkleidet.
Wenn aber nun viele Anfragen gleichzeitig kommen, fliegen willkürliche NHibernate Fehler (z.B. DataReader already open, usw.)

Nun meine Frage, ob ich auch im WebService auf die HttpSession des aufrufenden Benutzers zugreifen kann um sich so, wie im Web, die ISession separat zu halten?

Vielleicht gibt es auch Dinge zu beachten?

Schönen Dank schonmal im Voraus.

Thema: MSSQL Server 2005 - Wann wird der Cache geleert?
Am im Forum: Datentechnologien

Hallo Tom,

ich habe ein SQL-Statement, dass nach dem manuellem Leeren des Caches (DBCC DROPCLEANBUFFERS) ca. 10 Sekunden dauert und bis zum nächsten Leeren natürlich gecacht wird. (< 0 Sek)

Beim Kunden treten ab und an SQL-Timeouts zu ganz willkürlichen Zeiten auf, auch teilweise nachts um 4 Uhr, wenn fast niemand mehr arbeitet.

Daher die Vermutung, dass der Cache auch geleert wird, wenn nichts getan wird.

Im Netz finde ich leider keine gute Erklärung.

Thema: MSSQL Server 2005 - Wann wird der Cache geleert?
Am im Forum: Datentechnologien

verwendetes Datenbanksystem: MSSQL Server 2005 Enterprise Edition


Hallo,

kann mir jemand erklären, wann der Cache des SQL Servers 2005 geleert wird?

Also zum Beispiel, wenn seit einem gewissen Zeitraum keine Transaktion stattgefunden hat oder wenn der Cache überläufen würde.

Gibts da Grenzen oder ist das willkürlich?

Thema: Kleine Frage zum Remoting
Am im Forum: Netzwerktechnologien

Guten Abend,

ich habe einen Windows Service der mit einer GUI kommunizieren soll.

Die GUI ist eine Konfigurations-Oberfläche für den Service, sie soll Einstellungen am Server (XML-Datei) ändern können und ihn benachrichtigen, falls eben Änderungen an der Konfiguration gespeichert wurden.
Zudem hat die GUI noch einen Monitor, der Server-Arbeiten loggen soll.

Für den ersten Punkt verwende ich momentan eine Singleton-ApplicationSettings Klasse, mit Read() und Write()-Methoden zum Lesen und Speichern der XML-Datei, die sowohl am Client als auch am Server bekannt ist.
Die Klasse wird als SingletonCall veröffentlicht.

Das funktioniert zwar, aber ich bin mir keineswegs sicher, ob das eine elegante geschweige denn eine gute Lösung ist. Habt ihr dazu eine Meinung, wie könnte es besser gehen?

Zu Punkt zwei (Monitoring) habe ich noch keine Idee, da der Client immer hören müsste, ob er eine Benachrichtigung vom Server bekommt.
Klappt das mittels Remoting überhaupt (z.B. mit Events)?

Wäre schön, wenn jemand ein paar Tipps auf Lager hätte. Danke!

Thema: Page OnError Problematik
Am im Forum: Web-Technologien

Habe alles weggelassen, und dennoch erscheint die Yellow Page mit den Exception-Details.

Ich möchte einfach das der Request trotzdem fortgeführt wird, damit ich dann dynamisch ein ExceptionControl anzeigen kann.

Thema: Page OnError Problematik
Am im Forum: Web-Technologien

Hallo,

ich habe eine kleine Webanwendung in der ich alle unhandled Exceptions die auf einer Seite auftreten mit der überschriebenen OnError Methode der Page-Klasse abfange.


protected override void OnError( EventArgs e )
{
  Exception ex = Server.GetLastError().GetBaseException();

  Context.ClearError();

  base.OnError(e);
}


Allerdings wird dann hinterher immer eine YellowPage mit dem Fehler angezeigt.

Was ich möchte ist aber, erstmal nichts zu tun. D.h. der Fehler soll ignoriert werden und die Seite soll ganz normal weitergeladen (also auch gerendert) werden, soweit möglich.

Danke im Voraus.

Thema: Papierfächer der Drucker abfragen
Am im Forum: Rund um die Programmierung

Siehe PaperSource

Thema: CustomControls, Enum-Attribure und der Designer
Am im Forum: Web-Technologien

Benutzt du irgendwo ne ControlCollection, worauf er versucht zu mappen...?

Oder versuch mal von WebControl abzuleiten.

Hatte eigentl. bisher noch nie Probleme mit Enums und dem Designer.

Thema: WebService: Datenaustausch / Threads
Am im Forum: Web-Technologien

Ein WebService ist nicht selbstständig lauffähig. Man baut mit einem Client eine Verbindung auf und diese Verbindung trennt sich dann automatisch, wenn die Methode abgearbeitet wurde oder ein Timeout aufgetreten ist (Standard 30 Sekunden glaube ich).

Thema: CustomControls, Enum-Attribure und der Designer
Am im Forum: Web-Technologien

Hast du die Assembly und den Namespace für die CustomControls registriert? (Web.config oder Page direkt)

Beispiel web.config:


<system.web>
    <pages>
      <controls>
        <add assembly="MyAssembly" namespace="MyControls.CustomControls" tagPrefix="cc1" />
      </controls>
    </pages>
</system.web>

Thema: Zugriff auf MasterPage von Basisklasse der ContentPage nicht möglich?
Am im Forum: Web-Technologien

Keiner ne Idee oder?

Denke dass es die OOP nicht erlaubt, da ja die Masterpage ein Member der Contentpage ist und die Basisklasse ja nicht auf die Member der abgeleiteten Klasse zugreifen darf.

Thema: Zugriff auf MasterPage von Basisklasse der ContentPage nicht möglich?
Am im Forum: Web-Technologien

Alles im gleichen Projekt.

Also keine Namespace oder Assembly-Probleme.

Thema: Zugriff auf MasterPage von Basisklasse der ContentPage nicht möglich?
Am im Forum: Web-Technologien

Hallo,

ich habe folgendes Problem festgestellt:

- MasterPage.master mit öffentliche Methode public void Foo()
- ContentPage1.aspx (Inhaltsseite von der MasterPage)
- Abstrakte Basisklasse 'ContentPage' von der alle Inhaltsseiten (also auch ContentPage1.aspx) abgeleitet sind

Innerhalb der ContentPage1.aspx kann ich via ((MasterPage)this.Master).Foo() die Methode aufrufen.

In der Basisklasse geht das allerdings nicht, weil er darin nicht meine MasterPage-Klasse kennt, sondern nur die System.Web.UI.MasterPage-Klasse

Gibt es dafür ne Lösung?

Thema: Eine Windows Form mit Weiter/Zurück Buttons
Am im Forum: GUI: Windows-Forms

Moin,

jeder kennt doch sicherlich Setup-Applikationen wo man entweder "Weiter" oder "Zurück" klicken kann, und sich lediglich der Inhalt ändert. Wie als würde man in einem Buch blättern.

So etwas brauche ich auch, wenn es geht nur mit einer Form.
Und ohne tausendfachem Controls ein und ausblenden.

Ist das möglich, bzw. gibt es da schon ein .NET Steuerelement vordefiniert?

Thema: ClickOnce - SecurityException
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi,

habe eine ClickOnce-Anwendung für unseren Kunden entwickelt. Die Dateien liegen auf einem WebServer im Intranet.

Der Benutzer (allgemein wenig Rechte) kann sich die Anwendung ohne Probleme vom WebServer herunterladen und installieren.

Beim Starten erhält er aber eine SecurityException mit UIPermission.


Laut meinem Kollegen hat man die .NET Framework Konfiguration in der Systemsteuerung nur, wenn man Visual Studio installiert hat. Ist das richtig?

Falls ja, wie könnte man am einfachsten einem Benutzer vollen Zugriff auf die Anwendung erlauben?

Vielen Dank im Voraus.

Thema: Formular per E-Mail senden
Am im Forum: Netzwerktechnologien

Oha!

Es kommt tatsächlich keine störende Sicherheits-Warnung von Outlook wenn man aus dem PDF-Formular sendto macht!

Vielen Dank schonmal!