Laden...

Forenbeiträge von ProgrammierTroll Ingesamt 107 Beiträge

06.01.2012 - 14:22 Uhr

Hm, das ist doch in Java auch nicht anders. Da Swing nicht threadsicher ist, kann man also auch dort nicht einfach auf die UI-Komponenten zugreifen und arbeitet z.B. mit InvokeLater:

     
SwingUtilities.invokeLater( new Runnable(){
  public void run() {
   }
});

(Das nur mal am Rande)

05.01.2012 - 15:59 Uhr

LightSwitch ist eher ein Anwendungsgenerator. Aus einer bestehenden Datenbank generiert dieses Tool eine Business Anwendung mit 3-Schichten-Architektur. Die UI basiert auf SilverLight und die Datenzugriffsschicht auf dem Entity Framework. Zusätzliche Geschäftslogik kann man dann in C# hinzuprogrammieren.

Ich kenne Entwickler, die darauf schwören. Ein befreundeter Entwickler erzählte mir mal, dass sie mit LightSwitch eine Software, für die 1 Jahr Aufwand geplant war, innerhalb von 2-3 Monaten zurechtgeschustert und dem Kunden ausgeliefert haben.

05.01.2012 - 14:57 Uhr

Was ist denn mit LightSwitch? Das kann doch auch aus einer Datenbank eine Anwendung generieren und arbeitet mit dem Entity Framework.

05.01.2012 - 10:08 Uhr

Die eigentliche Frage war m.E., ob man einen Delegatentyp, der zwar mit einer Klasse in (enger) Beziehung steht, den man aber auch außerhalb der Klasse benötigt, in der Klasse geschachtelt (und public) oder auf gleicher Ebene wie die Klasse deklarieren soll. Auf letzteres bezog sich ganz überwiegend die Argumentation in diesem Thread.

Ok, dann sind wir diesbezüglich einer Meinung. 👍

05.01.2012 - 09:04 Uhr

Ok, die Argumentation kann ich nachvollziehen und akzeptieren.

Meine Interpretation war tatsächlich eine andere (dachte, es ginge um den Zugriff der Klasse auf den inneren Delegaten):

    public partial class Form1 : Form
    {
        private delegate void SetProgressBar(int value);

        public Form1()
        {
            InitializeComponent();
        }
    }

Wenn ich den Delegaten an dieser Stelle deklariere, dann schränke ich den Zugriff ein. Ich habe also nur Zugriff auf diesen innerhalb der partiellen Klassen.

    
        public delegate void SetProgressBar(int value);

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
    }

Hier ist der Delegat im gesamten Namespace zugreifbar. Es stellt sich also die Frage, ob die globale Verfügbarkeit gewünscht ist. Ich könnte mir durchaus Fälle vorstellen, wo man das nicht möchte und sich dann das "Wegkapseln" anbietet.

04.01.2012 - 12:47 Uhr

Interessant.

Wenn ich mir das erste Kriterium anschaue:

Verwenden Sie geschachtelte Typen, wenn sich aufgrund der Beziehung zwischen dem geschachtelten Typ und seinem äußeren Typ eine Semantik für den Memberzugriff empfiehlt.

und dann überlege, dass ich im Rahmen des Threadings z.B. Delegaten zum Aktualisieren eines Progressbars verwende, würde ich meinen, dass schon eine Beziehung zwischen der UI-Klasse und dem entsprechenden Delegaten besteht.

Wie seht ihr das?

20.12.2011 - 14:06 Uhr

Hallo herbivore,

vielen Dank! Ich werde das evaluieren.

Gruß
PT

19.12.2011 - 16:57 Uhr

Hallo Leute,

vielleicht hat sich schon einmal jemand damit beschäftigt. Ich möchte das Bugzilla Inbound Interface nutzen, um Bugs per Mail empfangen zu können.

http://www.bugzilla.org/docs/3.0/html/api/email_in.html

Meine Frage ist, was der einfachste Weg ist, dies zu bewerkstelligen. Irgendwo las ich Folgendes:

  1. Make sure all of the optional E-mail/MIME perl modules are installed per bugzilla/checksetup.pl
  2. Make sure procmail is installed and the MTA of your choice.
  3. Create a user to manage the processing of bugmail (ie, adduser bug-submit).
  4. Add that user to a group that has can access the files in your bugzilla directory (ie, adduser bug-submit www-data [or bugzilla, if you've set up a special bugzilla group, etc]).
  5. Add a .procmailrc to your user's account that includes:

LOGFILE=/home/bugmail/procmail_log

:0:
* ^To:.*bug-submit@.*yourdomain.com
|/path/to/bugzilla/email_in.pl -vvv

Da ich ne Windows-Kiste am Laufen habe, weiß ich nicht, weilchen MTA ich nutzen soll und wie ich den procmail richtig einstelle. Bin für jeden Tipp dankbar.

Gruß
ProgrammierTroll

14.12.2011 - 13:19 Uhr

Doofe Aufgaben kenne ich auch. Software-Wartung oder auch Software-Testen - damit meine ich keine Unit-Tests, sondern manuelle Integrationstests - nerven mich auch ungemein. Normalerweise versuche ich, dafür Werkstudenten oder Praktikanten ranzubekommen. Wenn ich es selbst machen muss, geh ich davor erstmal gemütlich mit einem Kaffee kacken und bereite mich erinnerlich darauf vor. Danach geht es meistens. 😉

14.12.2011 - 12:45 Uhr

Zwei Dinge sollte man dazu sagen:

  1. Es gibt in Deutschland faktisch keinen Fachkräftemangel im MINT-Bereich (in letzter Zeit gab es dazu häufiger auch Artikel im Spiegel). Das sagen sowohl die Zahlen des DIW sowieo auch der Bundesagentur für Arbeit. Der Fachkräftemangel wird meistens von Unternehmen und wirtschaftsnahen Verbänden propagiert, um die Zahl der MINT-Akademiker auf einem hohen Niveau zu halten. Denn, wie richtig gesagt wurde, wird der Lohn durch Arbeitsangebot und Arbeitsnachfrage bestimmt. Je größer das Arbeitsangebot, umso niedriger auch der Lohn. Darum steigen die Gehälter bei Informatikern und Ingenieuren in Deutschland nur minimal.

  2. Erscheinen die gegenannten Gehälter zwar auf dem ersten Blick als sehr hoch. Beachten werden muss jedoch, dass die Lebenskosten in den USA weitaus höher sind als in Deutschland. Die Miete für ne einfach Wohnung in den USA ist z.B. deutlich höher. Da werden locker mal 2000-3000 Dollar im Monat fällig.

19.09.2011 - 19:45 Uhr

Was die Kunst angeht, ist es die Idee der Piraten, Künstler mit einer Kulturflatrate für ihre Arbeit zu entlohnen. Natürlich könnte man auch über eine Entwickler-Flatrate nachdenken.

Was ich mit industrieller Fertigung meinte, ist, ist z.B. ein Unternehmen wie Toyata, das z.B. auf dem Gebiet der Hybrid-Motoren technischen Vorsprung erlangt hat. Diese Vorsprung resultiert aus der Arbeit der FuE-Abteilung dieses Unternehmens. Deutsche Hersteller hinken hinterher, weil sie diese FuE-Arbeit nicht geleistet haben.
Es kann nun niemand einfach zu Toyata gehen und die CAD-Pläne oder sonstige Informationen bezüglich der Motoren, Speicherzellen oder was auch immer herausfordern. Im Gegenteil, die Unternehmen versuchen nach Kräften, sich gegen solche "Industrie-Spionage" zu wehren, um ihren technischen Vorsprung aufrecht zu erhalten.

Ich kann verstehen, dass einigen das nicht gefällt. Aber aus meiner Sicht es far, dass der Innovativerer auch belohnt wird.

19.09.2011 - 18:25 Uhr

Das ist richtig. Ich wollte auch gar nicht so sehr auf der Partei an sich herumreiten. Bei den Grünen hat es ja auch 30 Jahre gedauert, bis sie tatsächlich selbst Gestaltungsmöglichkeiten erlangte.
Mir ging es eher um die Ideologie der Bewegung, die da hinter steht. Nämlich, dass Dinge - sei es nun Software oder Musik - die aus einem geistig/schöpferischen Prozess enstanden sind, auch für jeden frei zugänglich zu sein haben.

19.09.2011 - 17:27 Uhr

Dass OpenSource, Open Innovation oder "Wisdom of the Crowds" tolle Dinge sind, von denen wir alle profitieren, will hier sicher niemand bestreiten. Die Frage ist doch, wie man in Zukunft mit geistiger Tätigkeit umgeht und sie wertschätzt.

In der industriellen Fertigung fordert auch niemand die Ingenieure auf, ihre Konzepte und Ideen, die ihren technischen Fortschritt begründen, einfach offen zu legen. Warum so ein massiver Unterschied zwischen matriellen und immatriellen Produkten gemacht wird, habe ich nicht verstanden. Ein Wettbewerb braucht immer Differenzierungsmöglichkeiten, auf denen sich der Erfolg eines Unternehmens begründet.

19.09.2011 - 16:36 Uhr

Was Standardsoftware angeht, würde ich zustimmen. Die betriebswirtschaftlichen Funktionen bilden rein administrative Prozesse ohne besonderen strategischen Nutzen ab. Interessant wird es dort erst beim Business Blueprint und dem Customizing.

19.09.2011 - 13:40 Uhr

Bzgl Förderung von Open Source - ich finde auch, Open Source sollte gefördert werden, wie zB Mono, was aber nicht heisst, dass ich oder Microsoft gezwungen wird, alle Software zu "opensourcen". Förderung heisst eben Förderung, und ggf rechtlichen Schutz von Opensource-Software, nicht Zwang.

Dem würde ich mich anschließen, wenn es so wäre. Tatsächlich ist es aber so, dass die Community genau diesen Offenlegung von Source z.B. bei Betriebsystemen fordert. Das ist eben eine typisch linke Bewegung, die als Feindbild die "bösen Softwarehersteller" - allen voran natürlich Microsoft - auserkoren hat. Ich empfinde das als existenzbedrohend.

Ein Argument, das ein Überzeugter mir entegenwarf war: "Man compiliert einfach und das kostet nichts, das solltest du als Informatiker wissen, gut es gibt neue Entwicklungen und Updates aber das muss dann die Firma gebacken kriegen."

19.09.2011 - 13:23 Uhr

Dann verstehe ich nich, was sie mit "Systeme kollektiv und demokratisch weiter zu entwickeln” meinen, wenn niemand anderes Zugriff auf den Source hat, würde das nicht funktionieren.

19.09.2011 - 11:56 Uhr

Kommt sicher auch auf die Software an.

Wir entwickeln Individualsoftware, die strategische Kernprozesse von Kunden abbildet. Da kann ich den Source nicht offenlegen. Wir hatten schon massiven Ärger mit Kunden, weil wir ein Projekt für einen Kunden aus der selben Branche aufziehen wollten. Die hatten einfach Angst um ihre fachlichen Modelle, was ich verstehen kann.

19.09.2011 - 11:42 Uhr

Hier geht gerät man natürlich in eine länderspezifische Diskussion. Klar, wenn man - wie in den USA - jeden Furz anmelden kann, ist das sicher nicht zuträglich.

Freie Software zu fördern heißt ja nicht, kommerzielle Software abzuschaffen.

Die Piraten formulieren das erst einmal nicht so offen, aber ich bin mir ziemlich sicher, dass die Reise in eine solche Richtung gehen wird. Vielleicht nicht in den Parteienführungen selbst, aber in der Basisbewegung wünscht man sich, dass es so kommt in jedem Fall.

19.09.2011 - 11:31 Uhr

Die Piraten stehen **nicht **für die Abschaffung des Urheber- und anderer Schutzrechte. Sie setzen sich für eine Reform des Urheberrechts ein, so daß z.B. Privatkopien legal werden sollen.

Ob die Legalisierung von Tauschbörsen dazu ein adäquates Mittel ist, bezweifle ich aber.
Es hat ja bereits ein Umdenken in der Musik- und Filmindustrie gegeben. Sie müssen wieder versuchen, mehr Geld durch reale Konzerte und Kinovorstellungen einzunehmen (weil jeder Kopierschutz irgendwan geknackt wird), was prinzipiell gar nicht so schlecht ist.

Wie das aber mit Software funktionieren soll, erschließt sich mir nicht.

19.09.2011 - 11:17 Uhr

In welcher Hinsicht?
Ich hätte da eher Angst dass die großen sich Dinge wie Scrollbalken oder "Ok"-Buttons oder so patentieren lassen und ich somit meinen Job verliere, sofern ich nicht bei einem dieser Riesen angestellt bin.

Damit liegst du richtig. Das mit den Buttons ist natürlich arg grenzwertig.

Software ist immatriell und damit ein Produkt, das sich aus Informationen zusammensetzt. Die Piraten stehen für Freiheit der Information. Das betrifft z.B. auch Musik und deren Weitergabe. Ich frage mich, wie ich es einem Kunden erklären soll, dass ich das entwickelte System mit offenem Code ausliefere und die Informationen bezügl. seiner strategischen Kernprozesse für die Konkurrenz und den Rest der Welt offen zugänglich ist.

19.09.2011 - 10:30 Uhr

Hallo,

ich weiß nicht, ob solche Diskussionen hier hingehören. Da wir ein internationales Forum sind, möchte ich auch gar keine spezifisch deutsche Politikdiskussion starten (Anlass: In Berlin zogen die Piraten mit 8% ins Abgeordnetenhaus), sondern vielmehr einige allgemeine, uns betreffende Punkte dieser Bewegung zur Diskussion stellen.

Was die Punkte "geistiges Eigentum" oder "Patentrecht" angeht, bekomme ich als Informatiker natürlich große Angst. Kollegen von mir scheint das aber anders zu gehen. In meinem Bekanntenkreis kenn ich viele, die mit dieser Bewegung sympathisieren.

Ich möchte kurz ein paar Punkte darstellen:

  • Eine demokratisch kontrollierte technische Infrastruktur.

  • Die Förderung Offenen Standards, um bessere Zusammenarbeit verschiedener technischer Systeme zu ermöglichen.

  • Die Sicherung von Innovation im Software-Bereich durch Verhinderung von Software-Patenten

  • Förderung von freiem Informationfluss und daher die Verhinderung von Digitalen Restriktionsmaßnahmen.

  • Die Förderung von Freier Software, um “die Kontrolle über ihre technischen Systeme selbst zu übernehmen und diese gegebenenfalls kollektiv und demokratisch weiter zu entwickeln”.

Das klingt erst einmal gar nicht so schlimm. Im Prinzip geht es aber darum, dass Software langfristig konstenlos, frei und open source sein soll.

Freie Software
Wir setzen uns für die Förderung von Software ein, die von allen uneingeschränkt benutzt, untersucht, verbreitet und verändert werden kann. Diese sogenannte "freie Software" garantiert ihren Nutzerinnen alle wesentlichen Freiheiten, die notwendig sind, um die Kontrolle über ihre technischen Systeme selbst zu übernehmen und diese gegebenenfalls kollektiv und demokratisch weiter zu entwickeln. Dadurch leistet sie einen wesentlichen Beitrag zur Stärkung von Autonomie und Privatsphäre aller Nutzer. Insbesondere Bildungseinrichtungen und die gesamte öffentliche Verwaltung sollen schrittweise darauf hinarbeiten ihre gesamte technische Infrastruktur auf freie Software umzustellen, um so langfristig Kosten für die öffentlichen Haushalte und die Abhängigkeit von einzelnen Herstellern zu reduzieren.

Aus einem Kommentar:

Sie tun ja so, als könnte eine Software von einer Hand voll Hobbyprogrammierern an einem Wochenende geschrieben werden. Dem ist nicht so. In einer komplexen Software wie z.B. ein Videobearbeitungsprogramm stecken 2-3 Jahre an Entwicklungsarbeit. Jemand steckt in dieser Zeit mehrere Millionen Dollar in diese Softwareentwicklung. Da ist es doch nur logisch, dass man so eine Software nicht kostenlos unter die Leute schmeißt, sondern das eingebrachte Geld und etwas Rendite erwirtschaften will. Die breite Masse der Anwender zahlt eben nicht freiwillig. Daher bedarf es Mechanismen, um die Bezahlung der Software sicherzustellen. Das wiederum erfordert proprietäre Software.

Ich sehe das genauso. Jemand, der Software entwickelt und programmiert, muss auch dafür angemessen entlohnt werden. Genauso dienen Patente und Gebrauchsmuster in erste Linie dazu, Unternehmen vor "Piraterie" zu schützen. Wenn ich mir als Unternehmen nicht sicher sein kann, dass meine Innovationen ausreichend geschützt werden, dann entfällt doch die Motivation für neue Innovationen.

Wie steht ihr dazu?

11.09.2011 - 21:30 Uhr

Hallo Yellow,

danke für deine ausführlichen Antworten. Mir - und ich denke auch vielen anderen, die das hier lesen - hat das sicher viel gebracht.

Eine weitere Frage ist wie hoch der prozentuale Anteil derjenigen ist, die später auf spezielle mathematische/algorithmische Kenntnisse zurückgreifen müssen, die sie ausschließlich bei der universitären Studienform erwerben konnten. Ich denke dieser ist gering

Sowas wie Korrektheitsbeweise von Code erstellen, Aufwandsklassen bestimmen oder komplexe Algorithmen verstehen/umsetzen, sind eigentlich Dinge, die man als Entwickler doch mal häufiger macht. Aber das ist wieder ne andere Diskussion...

11.09.2011 - 13:21 Uhr

Meine Fragen bitte nicht falsch verstehen. Ich will keine Grabenkämpfe oder sinnloses Bashing anheizen.

Es ist nur so, dass ich im Bekannten-/Freundeskreis immer mal wieder gefragt werde, was ich von dem oder jenem Studiengang halte oder empfehle. Bisher habe ich Leuten, die sich ein praxisorientiertes Studium wünschen, immer zur FH geraten. Das wird sich aber wohl ändern, denn ganz offensichtlich scheint so ein BA-Studium ein durchaus gute Alternative zu sein.

Als ich studierte, war es auch noch so, dass die Abschlüsse, die eine BA verlieh, keine akademischen Grade waren. Das bedeutete, dass man mit einem Bachelor von der BA keinen Master mehr an einer FH oder Uni machen konnte. Auch das scheint sich nun geändert zu haben, da einige BAs ja jetzt Hochschulrang haben.

Mit Wissen nachholen meinte ich auch was anderes. Ich kenne einige Absolventen von FHs, die nach ihrem Abschluss Defizite im mathematisch/algorithmischen Bereich hatten und deshalb gezwungen waren, solche Kenntnisse in Eigenregie neben der Arbeit am Wochenende zu erwerben. Gerade solche elementaren Grundlagen, die eine hohe Komplexität besitzen, sind IMHO einfacher im Rahmen eines Studium zur erlernen als autodidaktisch.

09.09.2011 - 12:01 Uhr

Danke, das habe ich schon befürchtet.

Gibt es denn eine "Brechstangen-Methode"? Damit meine ich so etwas wie einen Befehl "DrawImage", wo ich das Handle der Form angeben kann und dieser Befehl zeichnet dann einfach dort hinein?

09.09.2011 - 11:52 Uhr

Hallo,

ich muss in einem fremden Fenster, wo Bilder angezeigt werden, eines dieser Bilder entladen oder zumindest überladen.

Bisher habe ich solche "schönen" Sachen nicht gemacht. Mit Spy++ komme ich nicht ans Handle dieser Controls, sondern nur an das der übergeordneten Form. Mit pInvoke kann ich also schon einmal auf diese Form zugreifen.

Wie aber komme ich an die Controls und wie kann ich das entladen/überladen dann durchführen?

Gruß
ProgrammierTroll

09.09.2011 - 10:53 Uhr

Hallo Yellow,

zur Ausbildung einer BA hätte ich mal einige Fragen:

  • Ich selbst hatte in meiner Studienzeit einen Dozenten, der sowohl bei uns als auch an einer BA lehrte. Er sagte, erkönne nur 2/3 des Stoffes, den er bei uns lehrte an der BA vermitteln und das Niveau sei eher gehobenes Abitur-Niveau.

Konntest du dich trotzdem gut in der Praxis zurechtfinden, musstest du Wissen nachholen?

  • Ist die Ausbildung eine spezielle zum Software-Entwickler oder m.aW., ist die Informatik-Ausbildung bei einem BA-Studium so flexibel, dass man auch in andere Bereiche der Informatik neben der Software-Entwicklung wie Datenbanken, Systemanalyse etc. problemlos einsteigen kann?

  • Wie stark ist die Ausbildung auf das kooperierende Unternehmen ausgerichtet? Lernt man dort spezielle Dinge, die man so nur in diesem Betrieb vorfindet? Ich hab nämlich gehört, dass es oft schwieriger ist, in ein anderes Unternehmen zu wechseln, bei dem man selbst nicht ausbildet wurde.

Gruß
ProgrammierTroll

05.09.2011 - 11:55 Uhr

Hier bieten sich die Properties ThreadState oder IsAlive an.

03.09.2011 - 17:48 Uhr

Mathematik ist in der Tat das A und O in einem Informatik-Studium. Allerdings solltest du dich nicht zu sehr verunsichern lassen. An der Uni wird bei 0 angefangen und wenn du von Anfang mitarbeitest, Übungen besuchst, in einer Lerngruppe aktiv bist etc. wirst du auch durchkommen.

30.08.2011 - 20:42 Uhr

Hallo Florian,

der Kunde möchte, dass mittels dieser XML-Files ein Datenaustausch der beiden Anwendungssysteme stattfindet. D.h., die beiden Anwendungen produzieren und konsumieren XML-Files, die die jeweils andere Anwendung verarbeiten kann.

Die XSDs dienen dabei als Spezifikationsgrundlage. Ich muss sicherstellen, dass ich XML-Files produziere, die valide sind. Da Änderungen vorkommen können, wollte ich eine zusätzliche Abstraktionsschicht einführen, damit ich etwas flexibler reagieren kann.

Das, was Golo Roden programmiert hat, war in etwa das, was ich mir auch in der Form etwa überlegt habe. Bis dahin, wusste ich allerdings nicht, dass man mit den VS-Tools so einfach Serialisieren/Deserialisieren kann. Skeptisch bin ich in der Tat bei der Frage, wie "zukunftssicher" ich mit dieser Lösung fahre.

Gruß
ProgrammierTroll

30.08.2011 - 13:24 Uhr

Scheint, als ich hätte ich das zu voreilig verworfen.
Es klingt schon sehr attraktiv. Ich denke, ich werde das Risiko einfach mal eingehen.

Danke 😁 👍

30.08.2011 - 13:11 Uhr

Ja, an Serialisierung habe ich auch schon gedacht. So wie ich das kenne, bedeutet das, dass ich nicht mehr mit normalen POJOS arbeiten kann und die Serialisierungslogik in den Businnes Objekten habe?

30.08.2011 - 12:30 Uhr

verwendetes Datenbanksystem: <XML-Files>

Hallo,

ich bekomme von einem Kundensystem Daten in Form von XML-Files, welche gegen ein Schema validiert werden. Die XML-Files sind also Grundlage meiner DAC und ich möchte deshalb eine Art O(XML)Mapper anwenden.

Da ich leider wenig Erfahrung auf dem Gebiet habe, weiß ich nicht, ob es sowas bereits gibt. Die klassischen ORMs sind ja - wie der Name sagt - für relationale Datenbanken bestimmt. Natürlich könnte man auch die XML-Files in eine relationale Datenbank transformieren. Die Idee habe aber erst einmal als Unfug beiseite geschoben.

Meine erste Idee war, das Ganze mit "Linq to XML" zu Fuß zu programmieren. Allerdings würde ich mir die Arbeit auch gern ersparen, wenn es solche Tools bereits gibt.

Vielen Dank

30.08.2011 - 12:20 Uhr

Ansonsten würde sich vielleicht ein Singleton anbieten.

26.08.2011 - 22:15 Uhr

Ja, das Background-Property musst du explizit setzen.

26.08.2011 - 19:42 Uhr

Schau dir auch mal Günnis StopWatch an.

26.08.2011 - 19:11 Uhr

Ja, aber nur solange der Wertbereich gleich bzw. in b größer als in a ist.

25.08.2011 - 09:31 Uhr

Das mit dem Gehalt ist natürlich richtig. Bei der Freizeit bin ich allerdings schon bereit, Abstriche zu machen, da ich ohnehin nicht beruhigt schlafen kann, wenn ich ein Problem nicht gelöst habe.

25.08.2011 - 08:36 Uhr

Ich meinte damit auch eher das Verweigern der Weiterentwicklung der eigenen Fähigkeiten.

25.08.2011 - 08:27 Uhr

Hier haben tatsächlich einige mit Einstein abgestimmt. 😁 👍

Ich frage mich eher, ob man als Programmierer heute überhaupt noch wie "Mort" arbeiten kann. Zumindest habe ich noch nie jemanden gesehen, der so arbeitet.

23.08.2011 - 16:43 Uhr

Du kannst dir mit GetResponse() eine WebResponse zurückgeben lassen.

22.08.2011 - 18:29 Uhr

Ja, und es zeigt, wie die Aufgabe des Ladens der aufwendigeren Ressource abgwickelt werden kann (nämlich einem separaten Thread). Gut, es ist in dem Fall wohl nicht von einer Netzwerk-Ressource die Rede, aber das sollte man nicht so dogmatisch sehen.

Wenn es schon so ein Pattern gibt, dann sehe ich eigentlich keinen Grund, es nicht für sich zu nutzen.

22.08.2011 - 17:14 Uhr

Es ist ein virtueller Proxy, der einen Stellvertreter anzeigt, bis das richtige Bild geladen ist. Dazu wird ein Thread eröffnet und das Bild nach Abschluss des Ladens an eine entsprechende Zeichenmethode deligiert. Image-Proxy

Ich dachte, das wäre, was er sucht.

22.08.2011 - 16:51 Uhr

Das, was du vor hast, bezeichnet man auch als "Image-Proxy-Pattern".

21.08.2011 - 21:20 Uhr

Wie funktionieren denn diese "File-Crawler"?

20.08.2011 - 17:45 Uhr

Oder um den nicht-rekursiven Ansatz von Günni weiterzuverfolgen:


  public void getDirectories(String path, List<String> dirList)
        {
            directoryStack.Push(path);
            
            while (directoryStack.Count > 0)
            {
                String  currentDirectory = directoryStack.Pop();

                foreach (String successorDirectory in Directory.GetDirectories(currentDirectory))
                {
                    directoryStack.Push(successorDirectory);
                }

                if (Directory.GetFiles(currentDirectory).Length == 0 
                    && Directory.GetDirectories(currentDirectory).Length == 0)
                 {

                     dirList.Add(currentDirectory);

                    String predecessorDirectory = currentDirectory;
                    bool validParent = true;

                    while (Directory.GetFiles(predecessorDirectory).Length == 0 && validParent)
                    {
                        dirList.Add(predecessorDirectory);

                        List<DirectoryInfo> nextParent = Directory.GetParent(predecessorDirectory).GetDirectories().ToList();
                        
                        int i = nextParent.FindAll((x) =>
                        {
                            if (dirList.Contains(x.FullName) | x.GetFiles().Length == 0)
                            {
                                return true;
                            }
                            else
                            {
                                return false;
                            }
                        }
                        ).Count;

                        if (i == nextParent.Count)
                        {
                            predecessorDirectory = Directory.GetParent(predecessorDirectory).FullName;
                        }
                        else
                        {
                            validParent = false;
                        }
                    }
                }
            }
        }

Der Hauptvorteil von nicht-rekursiven Methoden ist, dass sie oft deutlich inituitiver sind als ihre rekursiven Pendants.
Ich versuche eigentlich immer, alle rekursiven Methoden sofort in iterative Methoden umzubauen, damit andere Entwickler den Code leichter verstehen.

17.08.2011 - 18:00 Uhr

Du könntest auch einfach eine abstrakte Methode/Property verwenden.

Ansonsten bitte auch das berücksichtigen: Mapper

14.08.2011 - 18:21 Uhr

Wir arbeiten auch so und ich sehe dabei auch kein Problem.

14.08.2011 - 12:31 Uhr

Ich kann auch nur das Buch von Martin Fowler empfehlen, welches jeder Entwickler mindestens einmal in seinem Leben durchgearbeitet haben sollte.

Außerdem bin ich der Meinung, dass jeder ruhig mal einen OR-Mapper zu Fuß programmiert haben sollte, um zu verstehen, was da eigentlich passiert. Das Buch von Fowler bietet dazu den richtigen Start.

13.08.2011 - 17:20 Uhr

Was du brauchst, ist wohl ein Objekt einer Klasse, die das entsprechende Interface implementiert.

Auf jeden Fall solltest du dir mal ein OOP-Grundlagenbuch durchlesen.

Glückschwunsch aber, dass du mit diesem Kenntnisstand einen Job in der Entwicklung gefunden hast. 👍

11.08.2011 - 13:09 Uhr

Du speicherst immer die gleiche Datei in die Queue. Wenn die Queue versucht, sich ein Element zum Abarbeiten zu holen, weiß sie dies aber nicht. Während noch in die Log-Datei geschrieben wird, wird versucht auf die Datei lesend zu zugreifen, was natürlich nicht funktioniert.