Praktikum im Bereich Informatik Softwareentwicklung (Stellenangebotsnummer: 140004FA)[/color]
Beschreibung
Perspektiven sind es, die uns als Unternehmen antreiben, jeden Tag für mehr Lebensqualität
unserer Kunden einzutreten. Und Perspektiven sind es, die Sie motivieren, Ihren Beruf auszufüllen.
Willkommen im Unternehmen Lebensqualität. Wir bieten die besten Voraussetzungen, um Ihre beruflichen Vorstellungen über Werte und Ziele gemeinsam zu verwirklichen. Stellen Sie sich vor,
welche Chancen und Möglichkeiten Ihnen Nestlé bietet. Und dann: Stellen Sie sich vor als
Praktikant (m/w) im Bereich Informatik Softwareentwicklung
für die Zentrale in Frankfurt am Main (ab sofort für 3 Monate).
Ihre Aufgaben:
In Ihrem Praktikum arbeiten Sie an Projekten in dem Bereich Softwareentwicklung
Sie leisten wichtige Arbeit in laufenden Entwicklungsprojekten
Selbstständig erarbeiten Sie Testszenarien für Endanwenderprogramme und setzen diese in automatische Tests um
Sie sind zuständig für die Dokumentation der Tests, deren Auswertung und die Ergebniskommunikation gegenüber den Entwicklern
Sie helfen den Entwicklern bei der Fehlerbeseitigung als Teil eines „pair programming“ Teams
Ihr Profil:
Sie studieren seit mind. 2 Semestern Informatik oder Studiengänge mit Schwerpunkt Informatik
Sie begeistern sich für Themen rund um das Thema IT Softwareentwicklung im Microsoft-Umfeld
Sie verfügen über sehr gute Deutsch- und Englischkenntnisse, die sie im internationalen Kontakt anwenden können
Sie sind offen, kommunikativ und ein engagierter Teamplayer
Anvertraute Aufgaben erledigen Sie stets selbstständig und verantwortungsvoll
Werden auch Sie einer von mehr als 300.000 Mitarbeitern weltweit und sorgen Sie dafür,
dass Nestlé mit seinen zahlreichen Marken im Bereich Ernährung, Gesundheit
und Wohlbefinden weiterhin führend in über 80 Ländern bleibt.
Die monatliche Vergütung beträgt 800-1000€.
Ihr Ansprechpartner für diese Position ist Victoria Tornau.
Bitte bewerben Sie sich unter Angabe des Zeitraums sowie aller relevanter Zeugnisse.
Primärer Standort: Germany-Hessen-Frankfurt Tätigkeit: IT Organisation: Nestlé Deutschland AG Beschäftigungsart: Vollzeit Stellenangebot: 17.07.2014, 14:44:42
verwendetes Datenbanksystem: MS SQL Server 2008 R2
Guten Morgen liebe myCSharp Community.
Ich habe aktuell ein Problem mit einer, aus meiner Sicht, sehr simpen Code-Stelle, welche eigentlich nur Relations aus einem DataSet entfernen soll.
Hierfür nutze ich die Remove(DataRelation) Methode des DataSets. Leider hängt sich das Programm hierbei teilweise einfach auf (bzw. es braucht extrem lange, bis eine Relation entfernt wird). [Anm.: Mit "lange" meine ich hier ca. 11 Minuten für eine Relation]
Feststellen konnte ich bisher folgendes:
- es sind nicht alle Relations davon betroffen
- es sind bei jedem Durchlauf mit gleichen Eingangsvorraussetzungen die gleichen Relations betroffen
Das gleiche Phänoment hats auch bei DataSet.Relations.RemoveAt(int) (mit vorhergehendem IndexOf(DataRelation), wobei dieser selbst recht schnell durch läuft) und auch bei DataSet.Relations.Clear().
Folgend der Code:
int x = -1;
foreach(DataRelation drel in dsRelationsToRemove)
{
x = ds.Relations.IndexOf(drel);
if(x ≥ 0)
{
ds.Relations.RemoveAt(x);
}
//ds.Relations.Remove(drel)
}
Ich hoffe, jemand hier hat eine Idee, woher diese lange Laufzeit kommen könnte?!
//EDIT
Nach einer sehr intensiven Debug-Session wurde der Übeltäter gefunden:
Das DataSet ist als DataSource über eine BindingSource an ein UltraGrid (UltraWinGrid) (Infragistics) gebunden... beim Entfernen vom Relationen werden einige Events des Grids gefeuert, welche in einer anderen Komponente abgehandelt werden. Hier scheint es letztens zu einer Änderung gekommen zu sein, welche dieses Problem hervorruft.
Vielen Dank an alle, die sich bis jetzt schon Gedanken zu dem Thema gemacht haben. Asche auf mein Haupt, das hätte ich rausfinden sollen ohne hier nachzufragen :(
Wahnsinn aber wahr:
Es scheint mit der ausgewählten Farbe zu tun zu haben...
Nehme ich Control als BackColor und TransparencyKey geht es, nehme ich LightPink für beides geht es nicht...
Ich werde hier noch ein wenig herumprobieren, aber logisch ist das für mich nicht mehr.
Danke für die bisher geleistete Hilfe... dann muss ich mal gucken, ob ich eine Farbe finde, mit der das geht, was ich vorhabe, welche ich sonst in der Form nicht brauche :/
danke für deine Anregungen, aber ein entsprechendes Testprojekt habe ich schon angelegt ... das Problem bleibt bestehen.
Ich habe in dem Testprojekt nur BackColor, TransparencyKey und TopMost gesetzt.
Es könnte natürlich jetzt an der Kombination mit TopMost liegen, da durch die Metro-Oberfläche, soweit ich gehört hab, eine (unsichtbare) Schicht dazu gekommen sein soll.
Ich habe hier eine Windows Forms Anwendung, welche mir auf dem Bildschirm verschiedene Informationen anzeigt.
Damit ich diese Informationen (fast) immer im Blick habe, ist das Fenster dafür TopMost = true.
Damit es mich möglichst wenig stört, habe ich über den Trick TransparencyKey = BackColor den Hintergrund entfernt (Form ist eh BorderStyle.None).
Bis vor einiger Zeit hatte ich noch Windows 7, mitlerweile nutze ich aber auch Windows 8.
Seit dieser Umstellung habe ich nun das nervige Problem, dass ich nicht mehr durch den durchsichtigen Hintergrund hindurch klicken kann, was insofern schlecht ist, wenn sich dort hinter Objekte befinden (z.B. Desktop Icons), an welche ich beizeiten heran muss... aktuell behelfe ich mir hier mit TAB + Enter, aber das kann ja schlecht die Lösung sein :)
Ich hatte es schon mit SetWindowLong und WS_EX_LAYERED | WS_EX_TRANSPARENT probiert, aber dann verschwinden die in der Form enthaltenen Controls ja leider auch :/
Meine Frage nun:
Gibt es auch unter Windows 8 eine Möglichkeit, dieses Verhalten zu erreichen? (Transparenter Hintergrund + hindurch klicken) (Und wenn ja, wie geht das?)
Ich muss hier FZelle zustimmen... was C# angeht, habe ich bisher nur schlechte Erfahrungen mit Galileo Computing gemacht.
Nicht nur, dass hier zu gern Anfängerfehler (mit voller Absicht) gemacht werden... einige Male bin ich dort auch schon auf Quelltext gestoßen, bei dem mir schon direkt beim Ansehen klar war, dass entweder der Compiler meckert oder eine Exception geworfen wird (je nach Beispiel halt).
Interessanterweise begeistern sich gerade Anfänger sehr stark für eben diese Bücher von Galileo Computing...
Womit ich jedoch gute Erfahrungen gemacht habe, sind die O'Reilly Bücher der "Heads First" / "Von Kopf bis Fuß" - Reihe.
Sowohl das OOP als auch das C# Buch haben mich von der Aufmachung her sehr begeistert... dass dann bei C# als 3. Projekt ein Spiel entwickelt werden soll auf Basis von Windows Forms Controls (Picturebox etc.) ist leider ein Manko :/
man kann (und darf) in der .Designer.cs schon Änderungen vornehmen, sollte sich aber darüber im Klaren sein, welches Ergebnis eine Aktion hat... mitunter meckert sonst der Designer rum, dass er die Form nicht mehr darstellen kann ;) (oder sie funktioniert gar nicht mehr... je nach gemachtem Fehler)
In diesem Fall sollte das aber keinen unterschied machen, du änderst ja nur den "Parent Container" (wenn man so will ^^)
P.S.:
Der Designer soll den Anwender nur bei der Entwicklung unterstützen.
Man muss ihn nicht zwingend nutzen.
Du müsstest in deiner Form 2 eine Membervariable bereit halten, in welcher du dein Custom Objekt speicherst.
Auf diese kannst du dann aus dem normalen Click-EventHandler wieder zugreifen und so Änderungen an deinem Objekt vornehmen.
Da dein Objekt, wenn kein Struct sondern eine Class, automatisch ein Referenztyp ist, kannst du auf das ref-Schlüsselwort übrigens verzichten ;)
Zusätzlich: MrSparke hat noch ein paar sehr gute Links zu dem Thema dagelassen :)
Antworten und Lösungen oder sogar fertiges Quizgame wäre hilfreich.
Bitte keine unverschämten und freche Antworten von euch.
Hallo free7umper,
zusätzlich zum Hinweis von ujr, welchem ich voll und ganz zustimme, nochmal ein Hinweis:
Ich persönlich, aber sicher nicht nur ich, empfinde es als eine Unverschämtheit (da du selbst darum bittest, dass es nicht zu unverschämten Antworten kommt), wie du hier dein Anliegen darbringst.
Zuerst einmal ist myC# kein Code-Generator, also um ein "fertiges Quizgame" zu bitten ist hier fehl am Platz.
Eigentlich helfen wir recht gerne bei Problemlösungen... aber selbst lösen wir deine Probleme eher ungern für dich, wenn du kein Eigenengagement zeigst. Schon gar nicht, wenn hier das gesamte Projekt (? ich nehme an es ist das Projekt, ich werde sicher bei Mega nichts runterladen) uns einfach so vor die Füße geworfen wird mit den (implizierten) Worten: "hier Projekt, hat Fehler, macht mal!"
Ich hoffe auf dein Verständnis und bedanke mich im Voraus schon einmal dafür.
Kleine Anmerkung, da ich öfter selbst mit diesem oder ähnlichen "Problemen" zu tun habe:
Ist der Button selbst auf der gesamten Webseite nicht eindeutig, so ist er es meist innerhalb seines Blocks (also Form, Div oder Ähnlichem) ... wenn diese eindeutig identifizierbar ist, findet man dann auch den Button...
Der Gedankengang dahinter:
Man arbeitet ähnlich einem XPath und sucht sozusagen den ersten eindeutigen nicht variablen Pfad zum Button selbst :)
Neben der Variante, diese Methoden für Intellisense zu verbergen, würde ich die einzelnen Methoden auch noch mit dem Obsolete-Attribut versehen, am ehesten sogar mit Fehlermeldung (also [Obsolete("COM only!", true)])
Ich weiß jetzt nicht, inwieweit sich das mit COM beißt... aber da die Attribute afaik nur für .NET gültig sind, spricht da nix gegen...
hat halt den Charme, dass, sollte der Programmierer trotz nicht vorhandenem Intellisense es schaffen, auf die Methode zuzugreifen, der Compiler eine Fehlermeldung ausspucken würde und er das Projekt nicht kompilieren könnte.
P.S.: Reflection lässt sich von Attributen übrigens nicht aufhalten ;)
ob es sowas für ganze Namespaces gibt, kann ich nicht sagen... spontan würde ich aber eher zu nein tendieren.
Wie hier zu entnehmen -> MSDN: Formatierung von Typen würde ich es mal mit "0/00000/00" probieren (angelehnt an die Position deiner Slashes bei "x/xxxxx/xx")
Es handelt sich hier einfach um ganz normale Format-Strings (wie sie auch für String.Format hergenommen werden können oder bei einigen .ToString() Überladungen verschiedener Klassen)
if (moving == true /* ursprünglich if(moving)*/) // Wenn bool moving gleich true ist
Ich kann es mir nicht verkneifen, hier eine Anmerkung zu machen: Wieso wurde hier das, vom Kommentar ausgehend, "richtigere" if(moving) zu einem if(moving == true) entgegen jedem Sinn umgeändert? (siehe auch [Tipp] Anfängerfehler == true / == false)
Zitat von falsecode
startpb.Left += e.Location.X - startLocation.X; /* Nimmt den Abstand des visuellen Komponenten zur linken und zieht
die Startposition von der aktuellen Position ab, das ganze in der X-Koordinate. */
startpb.Top += e.Location.Y - startLocation.Y; /* Nimmt den Abstand des visuellen Komponenten zur rechten und zieht
die Startposition von der aktuellen Position ab, das ganze in der Y-Koordinate. */
Hier liegt der Hase im Pfeffer begraben... zumindest zum Teil: Beim Klicken speicherst du dir die startLocation, beim Ziehen ziehst du von aktueller Location die Startlocation ab... bewegst du die Maus nur um einen einzigen Pixel (in X und Y Richtung), und führst diese Berechnung im Kopf durch, kommst du auf eine neue Location von ... ??? (und setzt dahin dann auch noch die linke obere Ecke des Controls selbst, anstatt von da aus wieder die Differenz zur startLocation umzurechnen) ... hier spielen mehrere logische Fehler zusammen...
Durch ClickOnce-Veröffentlichung erstellst du ein Setup...
Wenn die Anwendung installiert ist, sollten die Kommandozeilen-Parameter, z.B. über eine Verknüpfung, wieder funktionieren (jedoch nur auf die installierte Anwendung, sprich "exe" bezogen)!
Wenn du kein Setup benötigst, verweise ich mal dezent auf den Beitrag von Scavanger :)
Hallo Peter Bucher (hah, ein Namensvetter im Nachnamen, cool)...
Es gibt nicht viele Klassen, welche bei mir eine Größe jenseits der 200-300 Zeilen erreichen...
konkret könnte es, wenn ich mir meine bisherigen Projekte mal so in Erinnerung hole, nur eine Klassen-Art sein, welche weitaus größer werden könnte: WinForms Controls ... ja, ich entwickel für mein Leben gern eigene Controls :) und die werden mitunter nun mal ab und an ein klein wenig größer, besonders wenn ich an all die Events, Properties und die interne Logik denke
Ich halte das ähnlich wie Abt und gfoidl:
- Event Declerations
- Private Fields
- Properties
- Constructors
- Public Methods
- Private Methods
Je nachdem, wie groß die Klasse wird (was eigentlich eher selten vorkommt, weil ich mir sonst denke ich hab den Code nicht sauber genug getrennt) kann es vorkommen, dass ich die Fields, Properties, Public Methods und Private Methods intern nochmals in Static und Instance unterteile
(...), kann also nicht für alles Bitmaps erstellen)(...)
Nur um das klarzustellen: Ich denke nicht, dass gemeint war, die Bitmaps vorher per Hand zu erstellen, sondern dynamisch im Code (ähnlich dem Ansatz von t0ms3n)
Nichtsdestotrotz ist aus meiner Sicht die Lösung von t0ms3n besser geeignet (da man eh lieber direkt auf die Form zeichnen sollte statt die PictureBox zu nutzen)
Ah ich muss mich entschuldigen...
ja, gemeint war die keybd_event aus der user32.dll :)
Ich hatte mich selbst gewundert, da ich mir schon vorher sicher war, dass keybd_event in der user32 steht... da ich aber in Eile war, hab ich dem ersten Vorschlag von pinvoke.net vertraut ohne auf die Details zu achten :/
hast du auch schon einmal probiert, ob keybd_event (via P/Invoke) funktioniert?
Informationen zur Nutzung findest du hier: keybd_event (coredll) auf pinvoke.net
Ein Ping würde ausreichen, um zu prüfen, ob der Server erreichbar wäre... dabei ist jedoch zu beachten, dass es sich hierbei nur um die "physische Instanz" des Servers handelt, also den eigentlichen Rechner.
Um zu prüfen, ob ein HTTP(S) Server erreichbar ist, müsste man auch auf entsprechenden Ports anfragen... es besteht immerhin die Möglichkeit, dass die entsprechende Server-Software gerade nicht läuft oder nicht reagiert.
Ich würde daher dem Ansatz von T-Virus folgen.
Der HttpWebRequest mag hier eine Möglichkeit sein, kann aber u.U. auf den Traffic gehen (und somit mehr Zeit in Anspruch nehmen als nötig), wenn die Seite viel zurücksendet. Verringern ließe sich die Antwort des Servers, wenn man anstatt eines GET ein HEAD Request sendet.
if( t[index].Equals(new TestA())
Das kann nicht funktionieren denn ein Objekt ist nicht gleich einem anderen Objekt.
Das könnte unter Umständen schon funktionieren, wenn er seine Objekte IEquatable implementieren lässt und die Equals-Methode überschreibt...
Diese Vorgehensweise ist zwar für diesen Zweck unter keinen Umständen anzuraten, würde jedoch auch zum Ziel führen...
Bei den Methoden Form.Show und Form.ShowDialog (hier wohl eher .Show) gibt es den owner-Parameter... einfach an der Stelle innerhalb der Main Form ein "this" übergeben...
jedoch nichts, was nicht auch ohne Weiteres in der MSDN oder Google nachgelesen werden könnte... wenn man nicht sogar mal von selbst drauf stößt, wenn man Form.Show aufruft!
man, selbst ich nicht, mag es kaum glauben, aber ich habe doch tatsächlich den Feiertag mit arbeiten verbracht :)
Damit meine ich nicht etwa Gartenarbeit oder dergleichen, sondern ich hab mich doch tatsächlich an den Rechner gesetzt und den Großteil des Tages programmiert...
Wenngleich es kein (soweit mir bekannt) Standard-Control mit dieser Funktion gibt und die verschiedenen "Hersteller" es teilweise anders nennen, denke ich, trifft die Bezeichnung "Dock Panel" es am besten.
Auch wenn ich erst letztens Etwas zum Kaffee-Versorgungszustand in meiner Firma geschrieben habe, komme ich nicht umhin, wieder Etwas zu schreiben...
nein, ich habe nicht die Firma gewechselt, im bin nur im Projekt beim Kunden ;) und auch hier ist die Versorgung gewährleistet.
Nicht nur, dass hier auf jeder Etage (11 Stockwerke) mindestens 2 Nescafé-Großautomaten stehen... aus denen kommt nicht nur normaler Kaffee, sondern auch Cappucino, Latte Macchiato und sogar, besonders mein aktueller Liebling, Schokomilch... es handelt sich bei Allem zwar "nur" um Instant-Pulver Getränke, aber schmecken tuts trotzdem...
darüber hinaus befinden sich auf allen Stockwerken auch Wasserspender...
Man kann also nicht behaupten, man würde hier verdursten (geschweige denn an Kaffeemangel zugrunde gehen) ;)
Ganz verrückter Ansatz, aber könnte u.U. funktionieren:
Du könntest versuchen, die GUI von Thunderbird via P/Invoke Calls anzusprechend/zu steuern.
Im simpelsten Fall würde ich die einzelnen Schritte über die Tastatur simulieren (keybd_event), aber es ist vllt. auch möglich, Maus-Klicks an die Controls zu senden (wenn du an die Control-IDs kommst (und es sich, soweit mir bekannt, um standard Windows Controls handelt)).
Meine HardStyle-Phase habe ich schon hinter mir ;)
Danach bin ich zu Dubstep gekommen, welches ich noch immer gerne höre...
Hauptsächlich schallern mir grad jedoch Glitch Hop, Trap, Moombahton und Moombahcore in die Birne...
(P.S.: Umso weniger Vocals, desto besser geeignet zum Coden ^^)