Laden...

Forenbeiträge von robmir Ingesamt 155 Beiträge

29.01.2015 - 19:33 Uhr

Hallo,

also ich habe neuheiten zu meinem Thema. Schaut so aus, dass zu 95% Wahrscheinlichkeit IT Abteilung dasSystem umsetzen wird. Ich wusste nicht, dass unsere IT so ausgebaut ist. Ich dachte immer, sie supporten Netzwerke, Computer, Software, Firewalls etc. aber es gibt IT-Bereiche z.B. auch für Application Software usw.
Ich soll Requirements zusammenschreiben, GUI Masken definieren etc. Aber ich bin etwas mit meinem Chef skeptisch. Das ganze wird nicht mehr flexibel sein, wenn wir eine Änderung brauchen werden, kann sein dass es u.U. Monate dauern wird, bis es umgesetzt wird. Unseres Geschäft bzw unsere Prozesse sind sehr dynamisch, und wir werden hin und wieder eine Erweiterung brauchen. Ich frage mich wie sollen wir so eine flexibilität schaffen. Vielleicht, dass sie auch so ein Admin-Tool zur Verfügung stellen, um auch Rechte Vergeben zu können, oder auch direkt in der DB Sachen updaten, Spalten hinzufügen...
Habt Ihr schon mit so eine Art Entwicklung Erfahrungen? Wie könnte man eine flexibilität schaffen, um nicht von der IT ganz abhämgig zu werden? Hätte ich es gemacht, wäre es kein Problem, dafür wäre ich unter Druck 😭

Grüße

19.01.2015 - 19:21 Uhr

@malignate: DB-Schema steht schon fest und von einem "Experten" ist gereviewed. DB-Entwicklung ist eigentlich nicht das Problem. Mini-Lösung habe ich mit SQL Server und .NET innerhalb von 3-4Wochen aufgebaut und hat sich gut durchgesetzt. Problem ist/war eigentlich Presentation Layer basierend auf Web-Interface. Wobei, wir werden doch richtung standalone Presentation Layer gehen d.h. .NET und WinForms bzw. Java
Requirements stehen auch schon länger fest. Als middleware werden wir webservice einsetzen, da ich schon die Erfahrung habe, und es sprachunabhängig ist. Appl-Server hab ich heute erfahren wird und muss sogar unsere IT-Abteilung übernehmen. Zweitens wir werden doch einen Consulter nehmen, und ich werde die Arbeit koordinieren 😃 also viele entscheidungen sind heute gefallen.

Meine Erfahrung von früher ist, so ein System (Client-Server) für Halbleiter Industrie zu entwickeln für Waferverwaltung, Tracking, inking, Layout ausrechnen, optimieren alles GUI basierend, weltweit basierend auf .NET 2.0, SQL Server 2005 und yoda als middleware. O/R Layer wurde bei uns auch entwwickelt. Ich war damals für Client-Layer zuständig. Die Entwicklung dauerte 2 Jahre mit 5 Personen 😉 nachher habe ich Manufacturing Execution System (MES) entwickelt basierend auf Java und kooperation mit der Firma Eyelit 😉 Also an Erfahrung sollte nicht fehlen, ausser an Web-Entwicklung wie ich schon geschrieben habe.

18.01.2015 - 18:18 Uhr

Danke MrSparkle 👍
Genau das ist was ich meinte, obwohl ich die Schichten bei Client weggelassen habe.

Das Forum hier ist einfach spitze 😉

18.01.2015 - 17:38 Uhr

Hallo,

gut, so wie ich verstanden habe, Web-Interface wäre zu komplex und ohne Web-Wissen nicht machbar.
Dann was sagt Ihr zu einer einfachen Lösung:

Layer-1 DB auf dem Application Server
Layer-1a O/R (Hibernate) auf dem Application Server
Layer 2 Business logic => auch Rollen Rechten Verwaltung, Validierungen etc. auf dem Application Server
Webservice
Layer 3 Client (GUI Application z.B. auf Basis von Winforms), der via Webservice mit dem Server kommuniziert.

Die Lösung wäre die einfachste, oder? Dann in Zukunft könnte man leicht auf Webinterface umsteigen.

17.01.2015 - 20:46 Uhr

@Abt: Seit Ewigkeit haben wir mit jetziger Lösung Probleme, bis jetzt hat sich niemand gewagt daran etwas zu ändern, da erstens das Wissen nicht vorhanden war (laute Maschinenbau Ings. und Elektrotechnik Ings.) und zweitens keiner traut sich.
Ich kämpfe schon seit 2 Jahren, um eine „Data Management System“ letztendlich DB einzuführen (wir leben doch in 21 Jh.). So ein System bring uns nur Vorteile, wir können mit so einem System etwa 30-40% Arbeit sparen. Problem ist, dass jegliche Entwicklung billig sein muss, und Tools sowieso 😉 Das ist für uns die einzige Gelegenheit es zu tun, da mir endlich gelungen ist, das Management davon zu überzeugen.
DB, Logik und O/R kann ich mit meinem Wissen umsetzen (bestimmt wird es nicht sehr saubere Lösung sein), aber mit Web-Server und Web-Interface werde ich Probleme bekommen, das weiß ich jetzt schon. Zweitens ich muss mich an den internen Prozessen halten, z.B. Ich werde einen Review-Partner (der sich mit der Materie auskennt) brauchen, der die Entwicklung auch überwacht und notfalls gegensteuert.

Ps. was meinst Du mit

PS: Webservice und Infopath; das kannst Du hier nicht vergleichen.

17.01.2015 - 20:13 Uhr

Danke für die Antworten.
Ich werde es doch bei uns mit IT klären, inwieweit sie mich unterstützen können. Damit meine ich, dass ich einen konfigurierten Webserver zu Verfügung bekomme. Leider sehe ich keine andere Möglichkeit, da DB trotzdem auf einem Server laufen muss. Vielleicht am Anfang werde ich webservices nutzen, um die Daten/Anfragen zwischen Client-Server auszutauschen. Und auf Client Seite Infopath nutzen. Das habe ich zumindest schon mal gemacht (d.h. Webservices und Infopath).

Meine Absicht ist, um zu zeigen dass es mit einer DB-Lösung die tägliche Arbeit viel effizienter, sicherer und qualitativ besser gestaltet werden kann. Mit jetziger Excel-Lösung kann nicht mehr vernünftig gearbeitet werden (Files überall verteilt, niemand weiß, ob er mit master File arbeitet, Daten falsch ausgefüllt, keine Vergleiche möglich, keine reuse zwischen Excel Files möglich etc. 8o).
Ich muss die anfangs Probleme in Kauf nehmen. Ich weiß, dass es am Anfang weh tun wird.

17.01.2015 - 13:20 Uhr

Wir werden eigenen Rechner als Server nehmen.
Da würde ich aufpassen oder das zumindest mit der IT abklären; auch, da Du dazu in den meisten Fällen bzgl. Unternehmensrichtlinien verpflichtet bist.
Einen Webserver darfst Du nicht in jedem Unternehmen einfach so in Betrieb nehmen.

Ja, das werden wir schon klären müssen. Da hoffe ich auf Tooling-Abt. dass die uns dabei beraten

Die ganze Entwicklung habe ich auf 120 MT abgeschätzt (d.h. ½ Jahr). Ich weiß, dass es sehr knapp sein wird, aber ansonsten würde ich dafür kein Budget bekommen.
Das ist nicht nur knapp; das ist ohne Vorkenntnisse im Web-Bereich nichts.
Solange dauert in den meisten Fällen allein die Basis-Schulung für moderne Web-Technologien.
Die Komplexität, die Du da beschreibst; da bezweifle ich bei einem Einsteiger in diesen Bereich den geschätzten Zeitaufwand massiv 😉

Tja, was habe ich da für Alternativen? Freiberufler nur für Web-Anwendung? und den Rest mach ich alleine. Wie wäre es am Anfang mit einer einfachen WEB-Lösung, dann den Rest lasse ich von Tooling machen. D.h. innerhalb 120 MT einfache Lösung?

17.01.2015 - 12:19 Uhr

Hallo,

vielen vielen Dank für Eure Antworten, schon diese Hinweise bringen mich weiter 😉

Die Sache ist die, ich habe diese Idee gehabt und will sie auch selber bzw. teilweise selber umsetzen. Das hat auch politische Aspekte bei uns in der Firma.

Von der IT werde ich nicht all zu viel Support bekommen (ich weiß nicht mal wo sie sitzen). Wir werden eigenen Rechner als Server nehmen. Höchstens von der Tooling-Abteilung werden wir etwas Support bekommen, da aber Tooling-Abteilung schon zu 100% für nächste 24 Monate ausgebucht ist, muss ich es alleine umsetzen (höchstens kann ich einen Studenten einstellen).
Welche Technologie ich nutzen soll, wird sich herausstellen. Ich weiß nur, dass fast alle Tools bei uns mit Java entwickelt werden und auf Eclipse-Basis. Ich persönlich würde .NET bevorzugen, aber das muss ich noch klären. Erfahrung habe ich in beiden Technologien.
Inzwischen habe ich dafür eine schnellen Demonstrator mit WIN-Forms und MS Server 2008 gemacht. DB-Schema somit steht schon fest.
Also Erfahrungen habe ich mit DB (jetzt egal ob MS Server oder Oracle), .NET, Java. Eher weniger Erfahrung mit Hibernet, und kaum mit Webserver (Webinterface außer einfache Webseiten).Die ganze Entwicklung habe ich auf 120 MT abgeschätzt (d.h. ½ Jahr). Ich weiß, dass es sehr knapp sein wird, aber ansonsten würde ich dafür kein Budget bekommen. Ich werde es auch interativ-entwickeln (iterativer Prozess ), d.h. Nach erster Iteration werden wir erkennen, ob es was taugt, auch von der Zeit her 😉
Nach der Entwicklung zur Support werde ich es an Tooling-Abteilung abgeben.

Ps. für Demostrator habe ich etwa 2-3 Wochen gebraucht, aber wie gesagt ohne O/R und Webserver, also quick and dirty 😉

Ich werde doch Richtung Webserver tendieren, da wenn es klappen sollte, wird das System Weltweit ausgerollt.
Um es kurz zu beschreiben was es sein sollte. Wir werden dort Informationen aus und Requirements pflegen (Automobilindustrie). Mit dem System sollen wir die Requirements zwischen Projekten reusen können etc. und draus 100% Code, Specs etc generieren. Generatoren existieren schon. Als input für so ein Generator muss man aus dem System XML Files erzeugen. Deswegen diese DB-System wird auch als Sternkonverter betrachtet. Die Daten sind es Signalen was zwischen -ECUs über BUS ausgetauscht werden. Ein Projekt hat etwa über 1000 Signalen pro Signal 50 Attributen. Und wir haben sagen wir hunderte von Projekten.
Bis jetzt haben wir die Daten im Excel verwaltet, aber aus Excel kann doch kein Mensch was vernünftiges generieren (nicht mal ISO26262 taugliches), für mehr Nutzer ist es auch nicht tauglich, und die kritische Masse an Daten ist schon längst überschritten.....

Ich hoffe, dass ich es schaffen werde. Vielleicht soll ich mich doch jetzt schon mit Webserver auseinander setzen, d.h. Wissen aneignen und ein paar Sachen ausprobieren.......

Für jegliche Hilfe, Tipps bin ich dankbar 🙂

Grüße

17.01.2015 - 10:00 Uhr

Hallo zusammen,

ich soll bzw. möchte eine Daten Management System bei uns in Firma aufbauen. Es sollen Daten im Bereich von 2-3 millionen Datensätzen verwltet werden. Es werden am Anfang etwa 10 Personen damit arbeiten (auch parallel). Es kann sein, dass es in Zukunf viel mehr Personen nutzen sollen. Die Geschwindigkeit spielt nicht so große Rolle, aber dafür Verfügbarkeit und Sichercheit.

Ich habe mir es überlegt mit 3-Schichten Architektur zu lösen: 1.DB-Layer (mit O/R Mapping z.B. Hibernate) 1.Logik-Layer 1.Client-Layer (z.B. Webinterface)

Meine Fragen:1.Soll ich standalone application oder doch mich für Webserver mit Web-Interface entscheiden? 1.Welchen Webserver soll ich aus eurer Erfahrung wählen? 1.Logik-Layer sollte man auf dem Server Laufen lassen, oder?

Danke für Antworten

Grüße

23.11.2014 - 17:06 Uhr

verwendetes Datenbanksystem: MS Access 2007 <bitte immer angeben>

Hallo miteinander,

ich bin auf der Suche nach einem guten ORM-Framework fuer C#, also etwas aehnliches wie Hibernate in der Java-Welt. Kann mir jemand einen solchen empfehlen? Der Framework sollte auch in der Lage sein, Klassen aus einer vorhandenen DB-Struktur zu generieren.
Ich wollte es versuchen mit L2S, aber scheint nicht so zu funktionieren.

Danke!

10.09.2014 - 20:03 Uhr

verwendetes Datenbanksystem: <ACCESS 2007>

Hallo zusammen,

ich habe ein paar Fragen zu DB Design. Ich möchte Euch um Rat fragen, wie Ihr es lösen würdet.

Hier die Aufbau:
Ein Packet beinhaltet verschiedene Botschaften, Botschaften beinhalten verschiedene Signalen, welche wieder verschiedene Attributen haben.

Beispiel Aufbau:

Packet A beinhaltet
Botschaft_1
Botschaft_2
Botschaft_3
Botschaft_xx

Botschaft_1 beinhaltet:
Signal_1_1
Signal_1_2
Signal_1_xxx

Botschaft_2 beinhaltet:
Signal_2_1
Signal_2_2
Signal_2_xxx

usw

Es kann mehrere Versionen von Packeten geben z.B. Packet(n), welche viele gleiche Botschaften beinhalten wie Packet(n-1) aber es sind einige neue Botschaften dazugekommen bzw. welche gelöscht worden. Das gleiche kann mit Signalen passieren, die können einer Botschaft dazukommen bzw. entfallen.

Ich möchte z.B. viele Vergleiche machen z.B. Unterschiede zwischen Packet(n) und Packet(n-1) und Packet(n-2). Ach nochwas, ein Packet beinhaltet ca. 200 Botschaften und eine Botschaft ca. 10 Signalen --> ein Packet wird 2000 Signalen haben. Ich habe z.B. etwa 100 Packeten --> 100*2000 = 200000 Signalen. Es kann aber viel mehr werden.

Hier meine Vorschläge, was meint Ihr?

viele grüße

26.06.2013 - 22:23 Uhr

Halllo zusammen,

ich habe eine Frage zu Anwendungsbereitstellung von Microsoft. Ich habe bei mir Microsoft Visual Studio Express 2012 für Windows Phone installiert und gleich erstes App programmiert. Ich wollte das App via Anwendungsbereitstellung auf mein Handy (Nokia Lumia 800, Windows Phone 7.8) draufladen, aber mein Handy wird nicht erkannt (siehe Bild unten). Was mache ich da falsch?

BTW. Zune läuft, Handy ist via USB mit dem Rechner verbunden und von Zuna auch erkannt.

grüße

16.09.2012 - 14:56 Uhr

danke an Euch alle. Es klappt nicht so. Ich habe eine andere Lösung, in dem C Modul gebe ich nicht pointer aber unsigned short zurück. So ist es einfacher zu verarbeiten im C#. Der Vorteil ist, dass ich C beliebig anpasse kann, d.h. Wrapper Funktionen schreiben.

15.09.2012 - 16:58 Uhr

Hallo zusammen,

ich habe großes Problem ein Array von ANSI C (Code als DLL) an C# zu übergeben. Ich habe schon vieles versucht aber ohne Erfolg. Ich poste den Code (C und C#) unten, vielleicht kann mir jemand helfen. Ich habe schon Forum durchgeschaut aber nichts passendes gefunden.
Das Problem: > Fehlermeldung:

Der Einstiegspunkt "getBuff1" wurde nicht in der DLL "xyz.dll" gefunden.

unsigned short buf[22];
unsigned short* WINAPI __declspec(dllexport) getBuff1(unsigned char handle)
{
     return buf;
}
[DllImport(@"xyz.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr getBuff1(byte handle);
		
public void funz1()
{
        int counter = 1;
        unsafe 
	{
		IntPtr arrayValue = IntPtr.Zero;

		arrayValue = getBuff1((byte)counter); 
		
	}
}

01.04.2012 - 09:36 Uhr

Hallo,

der Thread istalt aber immer noch aktuell. Ich habe auch vor, so einen XML diff zu entwickeln aber es generisch zu machen d.h. ohne zu wissen wie das XML aufgebaut ist, ist seht schwer.
Vielleicht habt ihr schon etwas gutes gefunden bzw.habt ihr ein paar Tips wie man es anpacken soll.

Problem habe ich, wenn XML automatisch generiert wird und damit viele Knoten verschoben werden bzw. anders sortiert. So zeigen alle diff Applikationen, dass sich vieles geändert hat, obwohl letztendlich ein Eintrag hinzugekommen ist.

Grüße

03.03.2012 - 17:15 Uhr

du solltest auf jeden Fall das Erzeugen des TreeViews mittels BeginUpdate() und EndUpdate() umrahmen.

Danke, es funktioniert 👍 so einfach ist es.

03.03.2012 - 16:51 Uhr

Hallo,

kann mir jemand vielleicht helfen und einen Tipp geben, um große XML Dateien in die Treeview einzulesen. Ich mache es wie unten aber für große XML Dateien (z.b. 1,5 MB) ist es nicht geeignet, es dauert einfach zu lange.


treeView1.Nodes.Clear();
treeView1.Nodes.Add(new TreeNode(doc.DocumentElement.Name));
TreeNode tNode = new TreeNode();
tNode = treeView1.Nodes[0];
AddNode(doc.DocumentElement, tNode);


private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode)
        {
            XmlNode xNode;
            TreeNode tNode;
            XmlNodeList nodeList;
            int i;

            // Loop through the XML nodes until the leaf is reached.
            // Add the nodes to the TreeView during the looping process.
            if (inXmlNode.HasChildNodes)
            {
                nodeList = inXmlNode.ChildNodes;
                for (i = 0; i <= nodeList.Count - 1; i++)
                {
                    xNode = inXmlNode.ChildNodes[i];
                    inTreeNode.Nodes.Add(new TreeNode(xNode.Name));
                    tNode = inTreeNode.Nodes[i];
                    AddNode(xNode, tNode);
                }
            }
            else
            {
                // Here you need to pull the data from the XmlNode based on the
                // type of node, whether attribute values are required, and so forth.
                inTreeNode.Text = (inXmlNode.OuterXml).Trim();
            }
        }

28.11.2010 - 18:36 Uhr

Hallo Zusammen,

eine einfache Frage, wie kann ich so einen Text ( im RichTextBox) formatieren?

this.richTextBox2.Rtf = @"{\rtf1\ansi This text is in \b bold\b0, " +
@"\r\n this is in \i italics\i0, " +
@"and this is \ul underlined\ul0.}";

ich habe Probleme mit Zeilenumbuch, weil es nicht funktioniert und zweitens

This text is in wird auch fett geschrieben was nicht gewollt ist.

Vielleicht kann mir jemand einen Tipp geben. Danke!

14.12.2009 - 18:51 Uhr

Danke für Eure Hilfe. Ich habe MSSQL 2005 deinstalliert und dafür MSSQL Server 2008 installiert und jetzt läuft alles bestens.

13.12.2009 - 18:35 Uhr

Hallo,

danke für die Antwort.

du hast geschrieben, dass im Management Studio kein Server aufgelistet wird, hast du denn auch schon einfach mal ._Instanzname_ eingegeben und verbunden? Denn wenn der Dienst gestartet ist, sollte der Server eigentlich laufen.

kommt drauf an wo ich das eingeben soll aber ich habe versucht mit ".\SQLEXPRESS" und damit konnte keine Verbindung hergestellt werden.

Ansonsten könntest du ja auch mal versuchen an der UAC etwas zu drehen, vielleicht gibt 7 der Oberflächenkonfiguration nicht genügend Rechte.

Habe probiert aber ohne Erfolg.

Außerdem, hast du die Servicepacks installiert? Sogar SQL Server 2008 braucht unter 7 SP1, damit es läuft.

Ich habe MSSQL Server 2005 vor 3-4 Tagen runtergeladen (von Microsoft) und frisch installiert. Ich gehe davon aus, dass alles dabei war....
Mei, das kann doch nicht so kompliziert sein....

12.12.2009 - 15:21 Uhr

Hallo,

ich habe sql server 2005 express unter windows 7 installiert und wollte via Microsoft sql server management studio express db anlegen, tja aber man muss sich zuerst anmelden und einen Server auswählen (Servername), aber kein Server wird aufgelistet dann dachte ich mir, dass ich sql server 2005 Oberflächenkonfiguration starte und auf Oberflächenkonfiguration für dienste und verbindungen gehe und dann kann ich es konfigurieren aber leider bekomme ich folgende Meldung:

Auf dem angegebenen Computer wurden keine SQL Server 2005-Komponenten gefunden. Entweder keine Komponenten installiert oder Sie sind kein Administrator auf diesem Computer. (SQLSAC)

kann mir vielleicht jemand helfen und sagen was mache ich falsch bzw. wie kann ich den sql server zum laufen bringen.

Acha, unter Dienste ist der SQL Server (SQLEXPRESS) gestartet und unter SQL Configuration Manager habe ich Shared memory, Named pipes und tcp/ip aktiviert.

06.12.2009 - 16:30 Uhr

Über WCF wäre sowas relativ einfach über einen Duplexchannel realisierbar. Da du aber von einer Java Middleware redest, fällt das wohl für dich aus. Falls du den Server aber auch auf .NET unter Windows portieren kannst, wäre WCF über diese Callbackcontracts sicherlich eine Überlegung wert.

klar, das wäre schön. Aber leider die Middleware muss mit java und C# arbeiten können. Ich glaube da bleibt nur Socket-Lösung.
Wie ist es mit Sockets, der Client requestet den Server und der Server antwortet, aber um events von server an client zu schicken muss wieder der client sich als server anbieten?? hmmm.....irgendwie komisch.

05.12.2009 - 16:52 Uhr

Joa, ganz normal Client/Server Kommunikation über TCP oder UDP.

tja, das habe ich mir auch schon überlegt, da habe ich sowieso Abstraktionsebene zwischen Middleware und BL. Später soll es keine Probleme geben, wenn Middleware ausgetauscht wird.

Aber ich denke auch, wenn schon sowas wie Webservice gibt, könnte man es doch für andere zwecke auch missbrauchen....

und habt ihr damit Erfahrungen gemacht?
Creating Asynchronous XML Web Service Method
Web Services Listener

05.12.2009 - 16:13 Uhr

Hallo Zusammen,

danke für die Antworten. Eigentlich brächte ich Middleware wie Tibco, ActiveMQ oder Corba. Das alles ist entweder kostenpflichtig oder zu Komplex. Da dachte ich an Webservice, weil es rel. einfach zu handhaben ist.
Ich habe eine Verteilte Anwendung d.h. auf dem Server läuft Java (wegen Linux Maschine) und auf den Clients eine .Net Anwendung (Windows Maschinen).

Hmmm.gibt es vielleicht eine Alternative, um die requests von Client an Server zu schicken und mit der Möglichkeit, dass der Server die Events an Clients senden kann?

05.12.2009 - 10:47 Uhr

Hallo an alle Webservice Experten,

ist es möglich, dass ein webservice an Client ein Event schickt? Wenn ja, wie kann man es realisieren? Wenn nein, welche Alternativen gibt es, um Daten auszutauschen (aber nicht zwischen C# <-> C# sondern Java <-> C#).

Danke im Voraus für die Infos

17.10.2009 - 15:43 Uhr

Wer behauptet das kleine Firmen weniger zahlen?

Statistiken

Aber in kleineren Firmen kann man nach Leistung bezahlt werden, und das kann u.U. dann doch besser sein.

Ich glaube nicht, dass man wie ein AT-ler ca. 80000-90000 EUR/Jahr verdienen kann. Nach 3 Jahren Berufserfahrung kann man schon etwa 60000 EUR/Jahr verdienen. Bis jetzt hat mir keine Firma (bis 200 Mitarbeiter) soviel angeboten.

17.10.2009 - 15:06 Uhr

@GarlandGreene:
Ich denke man soll schon ein bisschen opportunistisch sein. Die Industrie hat viele IT-Sachen ausgelagert, alles was bleibt gehört zum Kerngeschäft unter anderem Hardware-Entwicklung was auch Embedded Systems bedeutet.

Mich wundert warum die kleinen Firmen viel weniger Gehalt als die großen Konzerne zahlen, haben die tatsächlich weniger Geld zur Verfügung oder wollen sie es einfach nicht machen.

17.10.2009 - 11:01 Uhr

Hallo Zusammen,

ich möchte fragen (soll eine Diskussion anregen), wo man die besten Berufschancen als Softwareentwickler hat, d.h. in welchem Bereich.
Ich habe solche Bereiche aufgezählt:

  • .NET
  • Java
  • C++
  • Embedded Systems
    Java: Client-Server Anwendungen, eingebettete Systeme wie Handys, Netzwerke
    .NET: windows Anwendungen
    C++: OS, Spiele, Compiler...
    Embedded Systems: in Geräten der Medizintechnik, Waschmaschinen, Flugzeugen, Kraftfahrzeugen, Kühlschränken, Fernsehern, DVD-Playern, Mobiltelefonen oder allgemein in Geräten der Unterhaltungselektronik. Meistens wird mit ANSII C und Assembler programmiert.

Ich bin schon ein paar Jahre als Softwareentwickler tätig und habe feststellen müssen, dass Embedded Systems die größten Chancen bieten. Vor allem in Deutschland Firmen aus dem Maschinenbau, Fahrzeugbau und Luft und Raumfahrtechnik Bereich.

Was ist mit Open-Source-Entwickler, womit verdienen sie das Geld?

01.04.2009 - 12:22 Uhr

What is a ClassLoader?
Among commercially popular programming languages, the Java language distinguishes itself by running on a Java virtual machine (JVM). This means that compiled programs are expressed in a special, platform-independent format, rather than in the format of the machine they are running on. This format differs from traditional executable program formats in a number of important ways.

In particular, a Java program, unlike one written in C or C++, isn't a single executable file, but instead is composed of many individual class files, each of which corresponds to a single Java class.
Additionally, these class files are not loaded into memory all at once, but rather are loaded on demand, as needed by the program. The ClassLoader is the part of the JVM that loads classes into memory.
The Java ClassLoader, furthermore, is written in the Java language itself. This means that it's easy to create your own ClassLoader without having to understand the finer details of the JVM.

01.04.2009 - 10:42 Uhr

Hallo,

gibt es einen classloader in c# analog zu Java? Soweit ich weiß, arbeitet der classloader in Java hierarchisch wie funktionert es in C#.

In Java ist die *.jar Reihenfolge von Bedeutung in c# (für die dll's) nicht mehr. Welcher Ansatz hat mehr Vorteile in Java oder in C#?

Grüße

01.03.2009 - 11:04 Uhr

Hallo *,

bei jedem Projekt bin ich am Überlegen wie ich RuleEngine implementieren soll. Klar, es gibt auch Frameworks dazu aber ich habe mal selber versucht.
Die Vorteile von der Implementierung:

  • Einheitliche Verwaltung von rules.
  • Bei einer Verletzung können mehrere Objekte darüber benachritigt werden

Zuerst lege ich neues ClassLibrary-Projekt an z.B. RuleEngineManager

Das Interface: IRule. Bei Execute wird ein Object übergeben. Da habe ich überlegt, wie kann ich die Evaluierungsdaten zu übergeben. Das Problem ist, dass der jeweilige Rule das Objekt dementschprechend kasten muss.


namespace RuleEngineManager
{
    public delegate void    RuleViolationEventHandler(RuleEngineManager.RuleEngine.Result result);
        
    public interface IRule
    {
        event RuleViolationEventHandler RuleImpactEvent;

        RuleEngineManager.RuleEngine.eRESULT Execute(object o);
        RuleEngineManager.RuleEngine.LEVEL RuleLevel
        {
            get;
        }
    }
}

RuleEngineManager liegt auch in ClassLibrary-Projekt. Wird als Singleton ausgeführt.


namespace RuleEngineManager
{
    public class RuleEngine
    {
        private static RuleEngine ruleEngine = new RuleEngine();

        public enum eRESULT
        {
            SUCCEED,
            FAILED
        }

        public struct Result
        {
            public string message;
            public eRESULT result;
        }

        public enum LEVEL
        {
            LEVEL_1,
            LEVEL_2,
            LEVEL_3,
            LEVEL_4,
            LEVEL_5
        };

        private Dictionary<string, IRule> rules = new Dictionary<string, IRule>();
        public IRule this[string index]
        {
            get
            {
                return rules[index];
            }
        }

        public static RuleEngine GetInstance()
        {
            return ruleEngine;
        }

        public void SetRule(string ruleName, IRule rule)
        {
            rules.Add(ruleName, rule);
        }

        public void ExecuteRulesWithName(string ruleName, object o)
        {
            rules[ruleName].Execute(o);
        }
     
    }
}

hier ist die Implementierung von so einem Rule, liegt dann eigentlich in Businesslogik bzw. woanders. Da habe ich ein dummes Beispiel genommen (zu viel overhead), normalerweise so etwas löst man mit einer if-Abfrage.


namespace ThreeTier.Service
{
    public class Rule1 : IRule
    {
        #region IRule Member

        public event RuleViolationEventHandler RuleViolationEvent;
        private RuleEngine.LEVEL level = RuleEngine.LEVEL.LEVEL_1;

        public Rule1()
        {

        }

        public RuleEngineManager.RuleEngine.eRESULT Execute(object o)
        {
            Dictionary<string, string> dic = o as Dictionary<string, string>;

            if (dic["userLogin"] == dic["login"] && dic["userPassword"] == dic["password"])
            {
                return RuleEngineManager.RuleEngine.eRESULT.SUCCEED;
            }
            else
            {
                RuleEngineManager.RuleEngine.Result res;
                res.message = "The password or the login name is wrong!";
                res.result = RuleEngine.eRESULT.FAILED;
                if (RuleViolationEvent != null)
                {
                    RuleViolationEvent(res);
                }

                return RuleEngineManager.RuleEngine.eRESULT.FAILED;
            }
        }

        public RuleEngine.LEVEL RuleLevel
        {
            get
            {
                return level;
            }
            
        }

        #endregion
    }
}

Was sagt Ihr dazu?

Grüße

28.02.2009 - 13:37 Uhr

ich frage mich auch warum Sun (also Java) Konzepte wie z.B. delegates nicht eingeführt bzw. nicht einführen möchte. Lambda, WPF...und andere Neuerungen da ist Microsoft doch schneller.

28.02.2009 - 09:10 Uhr

sehr plumper vergleich... genauso plump wie die allermeisten direkten .net vs java vergleiche im internet... unabhängig davon wer da gerade die nase vorne hatte.

ja da hast Du recht, ich habe ein dummes Beispiel gepostet. Aber immer hin, bei der Performance Messung muss man mit irgendwelchen Indikatoren arbeiten. Am anfang wollte ich das Problem mit Java lösen aber es hat nicht geklappt dann habe ich deswegen VS 2005 runtergeladet und erst dann gelöst. Das gleiche Problem habe ich mal mit Delphi gehabt. Delphi hat standardmäßig keine HashTable implementierung und da habe ich eine Open-Source Impl. eingesetzt. Trotzdem war Hashtable von C# um Fakto 5 schneller als Hashtable (klar, nicht original von Borland) von Delphi, wobei Delphi native code erzeugt. Das sind Sachen, die auch bei der Entwicklung eine Rolle spielen. Damit möchte ich sagen, dass Microsoft impl. von Hashtable (Dictionary..) clever gelöst hat

im forum hatten wir dieses thema schon des öfteren und das fazit war immer das gleiche: beide haben ihre daseinsberechtigung und werde auch in zukunft nebeneinander existieren.

Dass die beide ihre daseinsberechtigung haben ist mir schon klar, ich wollte eigentlich fragen, wo die Stärken von Java bzw. C# liegen oder anders ausgedrückt wo und für was werden die Sprachen eingesetzt z.B. C# für GUI und Windows-Anwendungen, weil...., Java für Enterprise bereich, weil....

Grüße

27.02.2009 - 11:46 Uhr

@mabo: ich bin mit 100% einverstanden.

27.02.2009 - 08:21 Uhr

@marco.b: tja, schau aber die Beispiele was ich aufgelistet habe, das sind alles riesige Projekte und die basieren auch auf Client-Server-Modell aber wie gesagt alles unter Windows.
Ich habe mal eine Datei mit über 13000000 Nummern auslesen müssen und überprüfen, ob alle Nummern eindeutig sind. Das habe ich mit Hashtable gelöst. Einmal habe ich die Nummern unter C# in die Dictionary geladet und dann habe ich das gleiche mit Java versucht, rate wer war performanter.

27.02.2009 - 07:50 Uhr

Es bietet in jedem Falle bessere Berufschancen.

bist Du dir sicher, dass es so ist? mag sein heute noch aber in 10 Jahren....hmmm...Die meisten Programme werden doch für Windows geschrieben. Fast überall ist man auf UI/GUI angewiesen, und da kann C# punkten. Man kann doch Anwendungen effizienter und schneller schreiben und das ist auch ein wichtiger wirtschaftlicher Aspekt. Schau die viele Firmen, die versuchen alles was bis jetzt mit C++, Delphi geschrieben worden ist auf .NET/C# migrieren. Beispiele: Infineon wird die ganze Tool-Suite mit .NET entwickelt, von Vector-Informatik werden die neue Tools auch mit C# entwickelt, bei Siemens Medical Solution das Software wird auch mit C# gemacht bzw von C++ nach C# migriert, das gleiche bei Siemens A&D STEP7 Projekt für über 100 Softwareentwickler für über 2 Jahre (riesiges Projekt) wird auch mit C# gemacht....und, und, und

Ich denke, da kann Java einfach nicht mithalten. Wie oft braucht man Plattformunabhängiges Software?

Mit .NET wird man noch eine Weile Client-Anwendungen machen, ein bißchen Web- und Mittelstandssoftware. Dann stirbt der Client und damit MS und .NET.

Sehr interessante Theorie, kannst Du die begründen?

26.02.2009 - 22:11 Uhr

es gibt auch Sachen, die ich in Java vermisse z.B. Delegates, Indexer, Properties...
Was mich noch stört in Java, ist die Konvention public-Methoden klein zu schreiben. Ach habe ich noch vergessen Attributes und unsafe code.

26.02.2009 - 21:28 Uhr

hmmm...da habt ih recht, in Java muss man X Objekte anlegen um damit arbeiten zu können. Das ist wirklich nicht konfortabel. Ich bin auch der Meinung, dass man mit C# schneller eine komplexe Anwendung entwickeln kann. Falls sich Mono durchsetzen wird, dann sehe ich für Java schwarz.
Eine reine Windows Anwendung würde ich nie mit Java programmieren und die meisten Anwendungen werden doch für Windows geschrieben. Ich frage mich warum in der Industrie immer noch so viel mit Java gearbeitet wird.

26.02.2009 - 20:45 Uhr

Hey,

letzte Zeit muss ich in Java entwickeln. Meine Frage wäre wo sieht ihr die Vor / Nachteile von Java gegenüber .Net und C#?
Bei Java habe ich immer Probleme mit GUI Entwicklung, keine gute Unterstützung von IDE und zweitens die GUI ist sehr träge.

Grüße

19.02.2009 - 17:26 Uhr

Danke an allen, ich habe nicht erwartet, dass ich so viele Vorschläge bekommen werde.
Ich werde noch ein paar Ansätze ausprobieren, die Ergebnisse/Erkenntnisse werde ich klar auch hier mitteilen.

19.02.2009 - 13:32 Uhr

@JAck30lena: klar, aber ich möchte mir die Zahlen nur auf meinem Rechner überprüfen und es funktioniert wunderbar...ca. 15 sec. dauert es 😃

19.02.2009 - 12:31 Uhr

ja die Zahlen sind schon erlaubt, wichtig ist, dass das erste zeichen keine Zahl ist.

Mit Dictionary geht es auch, einfach so:

Dictionary<string, string> dic = new Dictionary<string, string>(13000000);
19.02.2009 - 09:47 Uhr

@kleines_eichhoernchen: ich glaube, dass es doch an Dictionary liegt. Speicher habe ich genug.

@JAck30lena: na ja, die strings haben immer die gleiche Länge d.h. die haben immer 5 zeichen bspl. "PKZBH" und das sollen eindeutige nummer sein.

Allg. schade, dass es nicht geht, weil mit HashTable kann ich schnell überprüfen, ob so ein Key schon existiert 😦

19.02.2009 - 09:21 Uhr

Hallo zusammen,

ich möchte über 13000000 strings in das Dictionary hinzufügen aber nach ca. 10000000 bekomme ich outOfMemoryException Exception. Kann ich für Dictionary mehr Speicher allokieren bzw. dafür eine andere HashTable benutzen oä.?

Der Grund: Ich möchte die strings einfach überprüfen, ob alle Eindeutig sind. Der einfache Weg ist doch das Problem mit hashTable bzw. Dictionary zu lösen, da der Schlüssel eindeutifg sein muss. Ich könnte es auch mit DB (Primärschlüssel) lösen aber ich will diesen Weg umgehen.

Grüße

05.10.2008 - 17:39 Uhr

@winSharp93: genau es geht um das erste d.h.

also benachrichtigt werden, wenn der Benutzer z.B. einen Button in einer fremden Anwendung anklickt

Also mit UIAutomation kann ich fremde Applikationen, die in c++ oder delphi geschrieben sind, ansteuern? hmmm...sehr interessant das muss ich ausprobieren. Hast Du vielleicht schon mit UI Automation was zu tun gehabt??

Grüße und danke für das Info

05.10.2008 - 12:36 Uhr

Hallo *,

ich habe einen Handler von einer GUI (externe Applikation) und möchte einen delegate durchreichen, so dass bei jedem Ereignis (z.b. mausklick, tastaturklick usw.) die WndProc Funktion von der GUI die Daten an mich weiter delegiert.

Bsp.

ich habe einen Handler von Notepad und ich möchte benachrichtigt werden, wenn z.b. menu->new gedrück wird oder wenn ein Controler angeklickt wird.

Grüße

25.09.2008 - 17:08 Uhr

Hej,

danke das ist sehr hilfreich 🙂

25.09.2008 - 14:49 Uhr

Hallo,

kann ich über API in einer fremden Applikation buttons anklicken usw.

ich habe es so probiert aber ohne erfolg:


const uint WM_MOUSEMOVE = 0x0200;
const uint downCode = 0x201;
const uint upCode = 0x202;

IntPtr handle = FindWindowEx(IntPtr.Zero, IntPtr.Zero, "XYZ", "XYZ");

IntPtr wParam = IntPtr.Zero;
IntPtr lParam = (IntPtr)((24 << 16) | 0);

bool returnValue = PostMessage(childHandle, downCode, wParam, lParam);
returnValue = PostMessage(childHandle, upCode, wParam, lParam);

alo handle passt, was aber schieft geht ist es mit PostMessage. Ich habe das gleiche mit SendMessage probiert aber wie gesagt ohne erfolg. Die "XYZ" Applikation ist mit Delphi geschrieben worden.
Vielleicht kann mir jemand helfen.

Grüße

18.07.2008 - 11:12 Uhr

noch mal danke an herbivore. Ich habe es versucht von Unmanaged Code in Managed Code umzuschreiben mit einem schlechten Ergebnis., d.h. ab 10 wiederholen sich die hashcodes. Vielleicht kann mir jemand helfen wie ich das gleiche ohne Zeigerarithmetik umschreiben kann.

Hier ist mein Versuch, was Probleme macht ist die Variable str1:

public unsafe int GetMyHashCode(string str1)
        {
            
            int index = 0;
            int num = 0x15051505;
            int num2 = num;

            for (int i = str1.Length; i > 0; i -= 4)
            {
                num = (((num << 5) + num) + (num >> 0x1b)) ^ str1[index];
                if (i <= 2)
                {
                    break;
                }
                num2 = (((num2 << 5) + num2) + (num2 >> 0x1b)) ^ str1[index + 1];

                index += 2;
            }
            return (num + (num2 * 0x5d588b65));
        }
16.07.2008 - 08:54 Uhr

Vielen Dank herbivore. Aber noch eine dumme Frage: Woher hast Du diese Implementierung?