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 Mallett
Thema: Übliches Einstiegsgehalt für FIAE
Am im Forum: Smalltalk

Ich habe bisher FIAEs nach der Ausbildung mit 2000€ übernommen (Saarland).

Thema: [gelöst] Generics: Abstrakte Klassen und IEnumerable
Am im Forum: Rund um die Programmierung

Falls ich Dich richtig verstanden habe (bin nicht ganz sicher) - ist es das was Du suchst ?


 public abstract class MyAbstractBaseClass : IEnumerable
    {
        public IEnumerator GetEnumerator()
        {
            //Implementierung
            return null;
        }
    }

    public abstract class MyAbstractBaseClass<T> : MyAbstractBaseClass, IEnumerable<T>
    {
        IEnumerator IEnumerable.GetEnumerator()
        {
            return this.GetEnumerator();
        }

        public new abstract IEnumerator<T> GetEnumerator();        
    }

Thema: Welche Datenbank ist die sinnvollste für ein Lagerverwaltungsprogramm?
Am im Forum: Datentechnologien

Also, nicht, dass es falsch rüber kommt. Ich halte MSSQL durchaus für eine gute Datenbank und würde auch für die durchschnittliche Anwendung oder für Privatnutzer aus Gründen der Einfachheit dazu raten.

Speziell bei großen Datenmengen, um die es hier zu gehen scheint, oder bei kommerziellen Projekten, bei denen es verstärkt um Performance geht, würde ich heute überwiegend auf Oracle setzen. Quelle sind hier (teils schmerzliche) Erfahrungswerte.

Das hat auch nichts mit Maximallösung zu tun, die Lizenzkosten einer SQL Server Enterprise oder Business Edition dürften sicher auch um die 10.000 € liegen. Für die allermeisten Standardanwendungen sind aber ohnehin die Express-Versionen von Microsoft oder Oracle ausreichend.

Zu MySQL und dergleichen kann ich nichts sagen, würde ich mir aber für eine Anwendung, für die ich später Support leisten und vor einem Kunden meinen Kopf hin halten muss, erst recht nicht antun.

Thema: Welche Datenbank ist die sinnvollste für ein Lagerverwaltungsprogramm?
Am im Forum: Datentechnologien

Sowohl SQL Server als auch Oracle sind nur in den kostenlosen Express-Versionen limitiert.
Die Limitierungen der Oracle XE (kostenlos) Version findest Du hier:

Oracle XE Licensing Limitations

Thema: Welche Datenbank ist die sinnvollste für ein Lagerverwaltungsprogramm?
Am im Forum: Datentechnologien

Aus der Liste, die oben gepostet wurde, würde ich bei großen Datenmengen unbedingt zu Oracle raten. Der SQL Server ist zwar einfacher/intuitiver in der Handhabung, hat aber gerade wenn die Tabellen sehr groß werden, häufiger mal Performanceprobleme (Stichwort Indexierung).

@Abt: Oracle als "keine echte Datenbank" zu bezeichnen ist wirklich daneben...

Thema: Wie per SQL neue Artikelnummer generieren?
Am im Forum: Datentechnologien

Ich glaube der Hinweis, der hier entscheidender ist, ist der von Abt, mit einem Int-Schlüssel + AutoIncrement zu arbeiten. Dann kannst Du Dir die Procedure komplett sparen.

Thema: Select Ereignisse from Verlauf Where Datum = @selecteddate
Am im Forum: Datentechnologien

Du überschreibst ja auch das Kommando des SQLAdapters wieder wenn Du ihm später ein neues zuweist.


SqlDataAdapter sda = new SqlDataAdapter("select Ereignisse from Verlauf WHERE Datum = @Datum", cn);

und anschließend


sda.SelectCommand = cmd; 

=> Effekt: dein erstes Command wurde überschrieben.

Stattdessen:





SqlDataAdapter sda = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand("select Ereignisse from Verlauf WHERE Datum = @Datum");
cmd.Parameters.AddWithValue("Datum", Kalender.DateSelected);
cmd.Connection = new SqlConnection(global::WindowsFormsApplication1.Properties.Settings.Default.TestConnectionString);
sda.SelectCommand = cmd;
DataTable dt = new DataTable();
sda.Fill(dt);
dataGridView1.DataSource = dt;

Thema: Daten aus dem Netzwerk runterladen
Am im Forum: Netzwerktechnologien

Google mal nach File.Copy, LogonUser, Impersonate, da wirst Du schnell fündig.

Thema: MVVM - Netzwerk-Kommunikationsschicht unterhalb des Model ?
Am im Forum: GUI: WPF und XAML

Hi,

folgende Sachlage: Das Projekt besteht aus mehreren Views (Usercontrols) zwischen denen über ein Nav-Menü hin und her geschaltet werden kann. Jedes View zeigt bestimmte Daten an und erlaubt auch eine Änderung dieser Daten durch Benutzereingaben. Die Datenquelle ist dabei eine Server-Applikation, die auf einem anderen Rechner läuft.

D.h. Jede Aktion des Benutzers im Client resultiert in einem Befehl, der über das Netzwerk an die Serverapplikation geschickt wird, und von dieser ggf. eine Antwort zurück erhält.

Die ganze Kommunikation läuft über einen TcpClient / TcpListener, über den serialisierte NetPackage-Objekte gesendet werden. Das ist über eine Netzwerk-Komponente gekapselt. Ich kann das Ganze also in etwa so ansteuern:


NetApp clientApp = new NetApp(ip, port, appID);
clientApp.AsyncReceiveEvent += new NetCommunicationHandler(OnNetPackageReceived);

int clientID = clientApp.Connect(timeout);

if(clientID > 0)
{
  int commandID = 0; //0=GetInitialState
  List<NetCommandParam> parameters = new List<CommandParams>();
  parameters.Add(new NetCommandParam("mode", 0)); //complete state

  //Beispiel zum Senden eines Befehls
  NetPackage np = new NetPackage(commandID, parameters);
  clientApp.AsyncSend(-1, np);
}
else
 throw new ApplicationException("Connection to server failed...");

Da ich das Ganze nach dem MVVM Muster umsetzen will, hab ich mich nun gefragt, wo diese Netzwerk-Comm Schicht eigentlich hin gehört. Letztendlich ist es ja nicht so, dass jedes Model auf seiner eigenen Datenquelle (z.B. xml-Datei) arbeitet, sondern jede Model-Klasse kriegt seine Daten ja aus dieser einen Netzwerkverbindung.

Von meinem Verständnis her sehe ich die NetApp Instanz als "Entity" welche als Ressource von allen Model-Klassen der Anwendung genutzt werden soll. Wie würdet ihr das modellieren, und was wäre dann noch MVVM-konform ? Umsetzen als Singleton und dann von allen Models darauf zugreifen ? Wäre dass dann nicht schon MVVMX ? Als statischen Member irgendwo anlegen worauf jedes Model zugreifen kann ? Klingt nach "globaler Variable" für mich ... bääh

Danke für jeden Vorschlag.

Thema: CodeDomProvider: FileNotFoundException bei Ordnerstruktur
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich glaube Du verwechselst Da was. Mit using referenzierst Du keine Ordner, sondern namespaces.

Thema: Warum funktioniert das TemplateBinding in meinem ControlTemplate nicht?
Am im Forum: GUI: WPF und XAML

Hallo Astrix,

ich bin jetzt auch noch relativ neu bei WPF, aber ich vermute mal, dass das TemplateBinding sich immer auf das unmittelbare Element bezieht, in dem es verwendet wird.

In Deinem Fall würde sich das TemplateBinding dann auf ein (nicht vorhandenes) Template für einen ContentPresenter beziehen. Aber da wird sich sicher noch jemand hier finden, der das sicherer erklären kann.

Thema: TCP-Keepalive und Erkennen des Disconnect
Am im Forum: Netzwerktechnologien

Wenn Du die Möglichkeit hast, die Gerätesoftware zu manipulieren, sende einfach in regelmäßigen Zeitabständen vom Gerät aus ein definiertes Signal zu deiner Windows-Anwendung. Wenn das Signal ausbleibt kannst Du auf Seite Deiner Applikation schließen, dass das Gerät weg ist.

Ich hab sowas vor einiger Zeit auch mal gemacht, nachdem ich ewig nach einer API-internen Lösung gesucht habe und nicht fündig geworden bin.

Thema: Panel => einmal dynamisch mit Controls befüllen und dann wiederverwenden
Am im Forum: GUI: Windows-Forms

Zitat
Ich finde hier keinen Bezug zu meiner Frage. Die Form-Instanz existiert ja nach der Beendigung des Moduls nicht mehr. Vielleicht habe ich micht nicht verständlich genug ausgedrückt.

Warum sorgst Du nicht einfach dafür, dass die Form-Instanz weiter existiert ? Es zwingt Dich doch keiner, die Form zu zerstören, halte Dir die Instanz doch in einem Member.

Ich glaube auch, dass es hier an Grundlagen hapert...

Thema: User Control mit Referenz auf statische Klasse
Am im Forum: GUI: Windows-Forms

Wäre das nicht eher was, was man als Plugin realisieren könnte (falls ich richtig verstanden habe, was Du haben willst - bin nicht sicher) ?

Du willst doch zur Designzeit angeben können, woher Deine Applikation bestimmte Infos nehmen soll, wobei es sich bei der Quelle um irgendein Klassenobjekt handeln soll, welches aber von Anwendung zu Anwendung austauschbar ist, ja ?

Kannst Du dann nicht die Werte, wie CurrentUserLevel usw. (die sind ja meinem Verständis nach immer dieselben) in einem Interface definieren und dann eine jeweilige anwendungsspezifische Implementierung des Interface beim Design vorgeben ?

Dann bräuchtest Du im Designer nur zwei String-Variablen

AppDataAssemblyPath
AppDataImplementationType

Mit diesen Angaben kann Deine Anwendung dann zur Laufzeit eine Instanz von dem Typ mittels Activator erzeugen, und dieser Typ gibt dann eben konstante Werte zurück.

Wobei sich mir da ehrlich gesagt die Frage stellt, warum man das nicht gleich über eine Konfigurationsdatei macht, in der man dann für jede Anwendung eben die Werte entsprechend vorgibt.

Thema: Panel => einmal dynamisch mit Controls befüllen und dann wiederverwenden
Am im Forum: GUI: Windows-Forms

Dann lege doch nur eine Instanz von dem Form an und halte es Dir als Member, statt immer ein neues Form anzulegen.

Thema: Metro Theme Behavior
Am im Forum: GUI: WPF und XAML

Was willst Du denn jetzt wissen ? Eine Alternative, die Du mit WPF4 benutzen kannst ?

Thema: Methode zum Ausgeben aller Elemente in List<> und einzelne Elemente in List<>
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Also ich bin nicht sicher ob ich richtig verstehe, was Dein Problem ist. Die Methode so wie Du sie umgesetzt hast, hat schonmal einen Mangel. Wenn die SectionID nicht als Parameter übergeben wird, wird der Wert 0 gesetzt, und es werden zu dem gefundenen Mitarbeiter immer die Infos zu Section 0 mit ausgegeben.

Ich schätze mal, da würde es mehr Sinn machen, die Section ganz aus der Ausgabe weg zu lassen, wenn sie nicht angegeben wurde.


if(sectionID != 0)
Ausgabe += "Nr. " + employee.EmployeeID + ", " + employee.Name + ", Kürzel: " + employee.EmployeeToken + ", Abteilung: " + sec.SectionName + "\nAdresse:\n" + employee.Street + " " + employee.Housenumber + "\n" + employee.Postcode + " " + employee.Country;
else
Ausgabe += "Nr. " + employee.EmployeeID + ", " + employee.Name + ", Kürzel: " + employee.EmployeeToken + ", Abteilung: " + "\nAdresse:\n" + employee.Street + " " + employee.Housenumber + "\n" + employee.Postcode + " " + employee.Country;

Wenn ich richtig erahne, was Du da machen willst, würde ich das Ganze aber von vornherein ganz anders aufbauen:

employeelist scheint eine Liste zu sein, in der alle Mitarbeiter stecken, egal aus welcher Abteilung sie kommen. Warum hältst Du nicht in jeder Section eine eigene List<Employee> in der nur die Mitarbeiter der jeweiligen Abteilung stehen ?

Dann kannst Du, wenn Abteilung und Mitarbeiter ID bekannt sind, erst die Abteilung suchen

Section sec = sectionManagement.getSection(sectionId);

und dann in dieser Abteilung nach dem Mitarbeiter suchen


Employee emp = sec.getEmployee(employeeID);

Wenn die Abteilung nicht bekannt ist, musst Du dann eben alle Sections nacheinander durchsuchen.



Employee emp = null;
foreach(Section sec in SectionList)
{
emp = sec.getEmployee(employeeID);
if(emp != null)
break;
}

Thema: Inhalt einer DataTable an eine Combobox binden
Am im Forum: Datentechnologien


year = ((System.Data.DataRow)cmbYear.SelectedItem)[<Spaltenname>].ToString();

Thema: an SQL Server 2012 anmelden
Am im Forum: Datentechnologien

Selbst wenn Du den Server auf dem lokalen Rechner ansprechen willst, wenn bei den Verbindungsoptionen TCP/IP ausgewählt ist (meines Wissens nach ist das der Default) müssen die Punkte, die BerndFfm angesprochen hat, erfüllt sein.

Firewall aus und TCP/IP und am Besten auch NamedPipes in der Konfigurationskonsole aktivieren, tuts in den meisten Fällen. Ansonsten könnte es noch sein, dass Du SQL-Authentifizierung deaktiviert hast.

Thema: Eine implizite Konvertierung vom Typ "System.Data.SqlClient.SqlCommand" in "string" [...]
Am im Forum: Datentechnologien

Schonmal versucht, ToString() an dein SqlCommand zu hängen ? :-)

Thema: [erledigt] Binding auf mein Hauptfenster
Am im Forum: GUI: WPF und XAML

Hallo m.grauber,

wenn Du im Designer im Eigenschaftenfenster des Objekts die Eigenschaft suchst, die das Ziel Deines Bindings ist (also das, was bei Dir ... ist), dann gibt es daneben ein kleines Quadrat. Wenn Du da drauf klickst, geht ein neues Fenster auf, in dem Du MeineForm und davon das DependencyProperty auswählen kannst. Der XAML-Code für das Binding wird dann automatisch erzeugt.

Viel Erfolg...

Thema: Welche Ausbildung/Zertifizierung ist nötig, um beruflich von ABAP/SAP zu C#./NET wechseln zu können?
Am im Forum: Smalltalk

Accenture kenne ich vom Hörensagen, eine Bekannte arbeitet da. Das soll der letzte Ausbeuterladen sein. Heute München, übermorgen Köln und wenn Du kein Bock drauf hast - verp*** dich.

Unabhängig davon hast Du schon Recht, die meisten Firmen in Deutschland gehen hauptsächlich nach Papier. Das liegt aber auch bei den großen Firmen (hatte viel mit Siemens zu tun) daran, dass die garnicht selbst ihre Leute suchen, sondern Personalvermittler dran setzen. Die haben meist null technischen Hintergrund und denen bleibt nichts weiter übrig als Profilpunkte abzuhaken.

Gerade in diesen Großkonzernen ist es aber dann meist so, dass in einer Abteilung 1-2 "Brains" sitzen, die alles leiten und lenken, und der Rest wird mitgeschleift. Bei großen Projekten kauft man sich dann externe Hilfe ein.

Thema: GridView in Gruppen anzeigen
Am im Forum: GUI: WPF und XAML

Klingt so als wäre das Listview, das was Du suchst.

Thema: Welche Ausbildung/Zertifizierung ist nötig, um beruflich von ABAP/SAP zu C#./NET wechseln zu können?
Am im Forum: Smalltalk

Also mit Zertifikaten / Abschlüssen ist das so eine Sache. Wir sind in unserem Betrieb mittlerweile völlig davon abgerückt, nach Studien- / Berufsabschlüssen oder Zertifikaten zu filtern, viel wichtiger sind die Referenzen und früheren Projekte.

Wir haben einfach die Erfahrung gemacht, dass insbesondere Universitätsabsolventen sich in der Praxis oft sehr schwer tun und nicht eigenständig zu Problemlösungen fähig sind. Das gilt natürlich nicht pauschal aber eine Tendenz ist erkennbar.

Wenn ich Bewerbungen bekomme, ist mir mittlerweile ein ungelernter, der mir selbst entwickelte Anwendungen zeigen kann lieber, als ein Uni-Absolvent, der keinerlei Erfahrung mitbringt.

Bei uns ist alles vertreten von Diplom, FH, Bachelors, Fachinformatiker und Quereinsteiger ohne Abschluss im Informatik-Bereich - die Qualifikation sagt jetzt über die Leistung und Befähigung überhaupt nichts aus.

Thema: B-Baum Indexstruktur erstellen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hier dürftest Du schon ziemlich konkrete Tipps zur Implementierng finden:
Binärbaum

Thema: B-Baum Indexstruktur erstellen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du brauchst doch nur eine Klasse Node, die zwei weitere Nodes hat. Dann die üblichen Funktionen zum Anhängen von Knoten (mit Sortierung beim Binärbaum). Dann vielleicht noch ein paar rekursive Methoden zum Abfragen der Tiefe eines Knotens, oder der Anzahl der Blätter vom aktuellen Knoten aus gesehn, was Du halt so brauchst.

Thema: UDP Client dispose funktioniert nicht
Am im Forum: Netzwerktechnologien

Bist Du ganz sicher, dass "doConnect finished" ausgegeben wird, oder siehst Du in der Konsole eine Augabe von einem vorherigen Durchlauf ?

Wenn "doConnect finished" kommt, ist der Thread beendet und Join muss zurück kommen.

Ich vermute, dass Dein Thread irgendwo in einem Receive hängt. Wahrscheinlich läuft beim Reconnect etwas schief, so dass der Timeout nicht gesetzt wird. Wenn in der Zeile


udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 500);

eine Exception geworfen wird, hast Du beispielsweise eine Endlosschleife. Dann steht this.IsConnected auf true, der udpClient wird im Catch geschlossen und beim nächsten Durchlauf kommt er in den else Fall. Dort fliegt eine Exception beim Receive, woraufhin this.IsConnected wieder auf false gesetzt wird usw. Das ist jetzt nur mal auf den ersten Blick ins Blaue getippt, kann auch an anderer Stelle "falsch abbiegen".

Ich würde in jedem Fall mal in die Catches und an den Stellen wo der udpClient geschlossen wird noch jeweils eine Konsolenausgabe einbauen, dann dürftest Du dem Problem vielleicht schon näher kommen.

Thema: UML und Offshoring: Was ist wahr, was ist Legende?
Am im Forum: Rund um die Programmierung

Aus meiner Erfahrung kann ich sagen, dass UML ein sehr gutes Hilfsmittel sein kann, wenn man es richtig einsetzt und es auch ernst nimmt. Beispielsweise ist es deutlich einfacher, potentielle Probleme bei der Umsetzung von großen Projekten zu identifizieren, wenn man sich wirklich die Arbeit macht, und während der Konzeptionsphase neue Erkenntnisse in ein UML Modell einpflegt. Man erspart sich so nie alle Detail-Probleme, die bei der Realisierung auftreten, aber man geht im besten Fall bereits mit einer sehr konkreten Vorstellung an die Umsetzung heran und vermeidet so konzeptionelle Fehler von vorneherein.

Ich hab mir zur Anfangszeit meines Studiums nie richtig den Sinn von UML vorstellen können, da hat mir eine Vorlesung an der Fernuni Hagen "Software Engineering II" (ich weiß nicht, ob es die heute noch unter diesem Namen gibt) wirklich die Augen geöffnet. Dort wird im Skript über ein paar hundert Seiten eine systematische Vorgehensweise von der ersten Problembeschreibung eines Kunden bis zum vollständigen UML-Modell hin zu der direkt daraus abgeleiteten Implementierung beschrieben.
Gut, da ist wohl ein sehr idealisierter Fall beschrieben, aber ich konnte Einiges aus dieser Vorgehensweise bereits in zwei Großprojekten (> 2 Jahre) adaptieren und kann die Lektüre nur empfehlen.

Zum Thema Offshore - bisher haben alle Auftraggeber für die ich gearbeitet habe, damit ausnahmslos schlechte Erfahrungen gemacht. Ich denke, das liegt nicht daran, dass Inder oder Chinesen "dümmer" oder "weniger ernsthaft" sind, sondern eher an der Kommunikationshürde, die dabei zu Tage tritt. Es ist schon schwierig, wenn Personen im selben Raum ihre Sichten auf eine Problemstellung austauschen wollen, und am Ende alle mit demselben Kenntnisstand heraus gehen sollen ("vom Selben reden"). Wenn die Personen aus verschiedenen kulturellen Kreisen stammen und sich nur über elektronische Hilfsmittel austauschen können, wird es natürlich nicht einfacher. Da hilft auch kein noch so ausgefeiltes UML-Modell, denn dieses kann nie vollständig den Kommunikationsbedarf ersetzen.

Thema: Output von .NET-Programm A als Input für .NET Programm B nutzen
Am im Forum: Rund um die Programmierung

Hab ich verstanden, mich htte nur interessiert, wie so eine Situation aussehen könnte, in der es einen Vorteil htte. Die von Dir genannten meinte ich entkräftigt zu haben.

Thema: Suche Tool zur Protokollierung der Abläufe während der Ausführung des Codes
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Schildkröte,

wenn Du eine Möglichkeit zur automatisierten Protokollierung des Codes während der Ausführung suchst, wirst Du um die Installation eines Tools nur dann herum kommen, wenn Du - wie Du sagst - in mühsamer Arbeit - alle relevanten Codestellen selbst in eine Textdatei schreibst.

Ansonsten bieten sich evtl. einige Profiling Tools an. Diese ermöglichen die Überwachung eines ausgeführten Programms und liefern Informationen wie Callstack, Statistiken welche Methoden wie oft aufgerufen wurden usw. - Solche Tools gibts in verschiedenster Ausprägung, und in verschiedenster Preiskategorie.

Mit Blackbox- / oder Whitebox Test hat all das aber, wie schon gesagt wurde, nichts zu tun.