Laden...
Avatar #avatar-3402.jpg
7.e.Q myCSharp.de - Member
Student Mechatronik Scheeßel Dabei seit 06.10.2004 925 Beiträge
Benutzerbeschreibung

Forenbeiträge von 7.e.Q Ingesamt 925 Beiträge

09.04.2010 - 10:18 Uhr

Hallo Lector,

ein solches Verhalten ist mir bekannt, jedoch in einem anderen Zusammenhang. Vor längerer Zeit habe ich an
>
den Fehler gemeldet, jedoch keine richtige Antwort auf meinen Fehler erhalten. Vielleicht hilft dir das weiter.

zero_x

Microsoft hat dir doch geantwortet, dass der Converter unter Umständen eine null-Referenz übergeben bekommt, wenn er ein Item konvertieren soll, das nicht mehr existiert, weil es aus optischen Gründen aus dem TreeView entfernt wurde. Du musst also nur den null-Referenz-Fall in deinem Converter abfangen, um die Exception zu umgehen.

Übrigens finde ich es bewundernswert von Microsoft, dass sie überhaupt verstanden haben, was du zu beschreiben versucht hast. Nichts für ungut, nur eine Feststellung, aber dein Englisch ist grauenhaft. 😁

04.04.2010 - 23:50 Uhr

Hmm, daran hab ich noch gar nicht gedacht. Die Idee ist nicht schlecht. Aktuell hab ich das mit zwei MultiDataTriggers gelöst. Einen für unmarkiert IsMouseOver und einen für markiert IsMouseOver. Unschön, wenn da später noch mehr unterschiedliche States dazu kommen sollten. Da wäre deine Lösung wesentlich praktischer.

👍

04.04.2010 - 13:29 Uhr

Hallo Leute,

ich hab mal 'ne Frage zu WPF und Animationen: angenommen ich habe ein Control mit einem MouseEnter und einem MouseLeave getriggerten Storyboard. Das MouseEnter Storyboard ändert in einer Animation den Hintergrund des Controls, das MouseLeave Storyboard fährt ihn wieder auf die Ursprungsfarbe zurück. Allerdings hardcoded. Soll heißen, der Hintergrund-Brush des Controls und der Ziel-Brush des MouseLeave Storyboards sind unterschiedliche Brushes, haben nur die gleichen Füllwerte.

Nun hab ich aber eine ganze Reihe Controls (genauer gesagt TabItems), von denen einer über einen DataTrigger farblich markiert ist (anderer Hintergrundfarbe).

Jetzt möchte ich, dass die Animation bei MouseLeave bei allen Controls zur ursprünglichen Hintergrundfarbe läuft. Auch bei dem markierten Control.

Das heißt beispielsweise, dass alle Controls urprünglich einen weißen Hintergrund hatten. Das markierte Control ist rot. Fahre ich mit der Mouse darüber, wird das entsprechende Control hübsch animiert blau. Verlasse ich das Control, soll es wieder weiß oder halt rot werden.

Momentan wird aber auch das vormals rot markierte Control durch MouseLeave hernach weiß.

Lange Rede, kurzer Sinn: wie kriegt man das hin, dass die Zielfarbe des eines Storyboards automatisch die ursprüngliche Hintergrundfarbe des Controls ist?

Danke!

Grüße,
Hendrik

19.03.2010 - 10:29 Uhr

Ich habe herbivores Vorschlag mal ausprobiert und übergebe nun also einen Type:

  
openForm(typeof(FormCreateGallery));  
  

Sieht schonmal gut aus.

meine Methode sieht nun so aus:

  
openForm(Form form)  
{  
    object myInstance = Activator.CreateInstance(type);  
}  
  

Emm, du musst statt Form form hier natürlich Type type machen.

Wie greife ich nun z.B. auf die Property MdiParent zu?
myInstance.MdiParent geht nicht. myInstance hat keine auszuwählenden Properties, nur die Standardmethoden...

... und das zurückgegebene Objekt nach Form casten:


  Form myInstance = (Form)Activator.CreateInstance(type);

19.03.2010 - 10:16 Uhr

Kann er auch nicht, da form ein Objekt der Klasse Form ist. Eine Möglichkeit wäre es, die Funktion generisch zu machen:


openForm<T>() where T: new(), Form
{
  T childForm = new T();
  childForm.MdiParent = FormMain();
}

15.03.2010 - 22:49 Uhr

Da würde ich mal das Stichwort BackgroundWorker in den Raum werfen.

23.02.2010 - 20:45 Uhr

Hi Leute,

bin auf der Suche nach 'nem Algorithmus oder eventuell schon 'ner fertigen Bibliothek, die mir die Möglichkeit gibt, aus einer Liste von Knoten und Kanten ein Netzwerk zu zeichnen. Das wichtige dabei ist, dass die Knoten so sortiert und platziert werden sollen, dass sich möglichst wenige Kanten kreuzen.

Jemand 'ne Idee?

Danke!

Grüße,
Hendrik

14.02.2010 - 16:32 Uhr

hrhr... zu dem btw: das bin ich. 😃

Zur Einstellung: hab's auch mal aktiviert. VS.2010 verhält sich noch immer wie beschrieben.

Unter VS.2008 konnte ich's nicht aktivieren. Es gibt mir daraufhin beim Starten die Fehlermeldung, dass auf dieser Plattform nicht gleichzeitig managed und native code gedebuggt werden können.

14.02.2010 - 12:34 Uhr

//edit 3 nach weiteren Recherchen: es scheint ganz allgemein um das "Window.Loaded"-Event zu gehen... Exceptions darin stoppen bei mir weder den Debugger in VS.2008 noch in VS.2010RC.

13.02.2010 - 12:12 Uhr

Hi Leute,

ich hab dieses Phänomen schon in VS.2008 häufiger mal beobachtet, aber im RC vom VS.2010 fällt es mir gerade besonders auf: an manchen Stellen im Code bricht der Debugger die Ausführung nicht mit einer Fehlermeldung ab, wenn eine Exception auftritt. Das Programm bricht lediglich die Methode ab, in der die Exception auftrat.

Möglicherweise betrifft dies Exceptions, die innerhalb des .NET Basis-Frameworks auftreten.

Beispielsweise hab ich an einer Stelle einen XmlSerializer, der ein Objekt nicht serialisieren mag. Statt mir dies aber per Debugger/Exceptionmeldung mitzuteilen, läuft das Programm einfach weiter. Es wird lediglich der Code der Methode, in der ich den Serializer aufrufe, nach diesem Aufruf nicht mehr ausgeführt.

Ist etwas lästig, weil man so ohne weiteres nicht feststellt, dass überhaupt was schief läuft; nur eben anhand des Verhaltens des Programms.

Kann dieses Phänomen jemand bestätigen, oder mir eventuell sagen, dass dies bloß eine falsche (Werks-)Einstellung im Studio ist?

Danke!

Grüße,
Hendrik

// edit: Titel des Threads geändert
// edit 2: Titel des Threads nochmal geändert; Verhalten weiter eingeschränkt

09.02.2010 - 12:45 Uhr

Hmm, okay... schade schade. Muss ich mich solange mit der beta2 begnügen. Is ja nicht so, dass ich damit gleich "semi-kommerzielle" Anwendungen (bei der die Zielgruppe nicht nur ich selbst bin) loshacken will. Das muss sowieso bis zum offiziellen Release warten.

09.02.2010 - 12:24 Uhr

Weil ich ja ein so ungeduldiger Mensch und noch dazu entsprechend ausgestatteter Student bin... gibt es eine Möglichkeit, den Kram auch mit einem MSDNAA-Account herunterzuladen, wenn's direkt auf dem MSDNAA Portal noch nicht zur Verfügung steht?

06.02.2010 - 11:14 Uhr

du meinst sowas, wie folgendes aus PHP?



$name = "Liste";
$$name = array();


Ich glaube, sowas geht in C# nicht.

06.02.2010 - 11:12 Uhr

Parameter und lokale Variablen sollte man schon sauber von einander trennen. 😃

Sollte man das? Im Falle von Call by Value verhalten sich diese doch absolut identisch.

04.02.2010 - 23:54 Uhr

Hi Leute,

ich hab 'nen REST Service auf 'nem Apache laufen, der in PHP realisiert ist. Funktioniert wunderbar soweit, doch würde ich gern über die reine Funktionalität des Services noch WCF konform Metadaten über den Service ausliefern lassen. Das muss ich irgendwie in PHP coden.

Gibt's irgendwo 'ne Doku dazu, wie diese Metadaten auszusehen haben, sodass ich sie durch PHP konstruieren lassen kann?

Danke!

Grüße,
Hendrik

04.02.2010 - 14:52 Uhr

... der nunmehr abgelehnt ist. 😃

Okay.

Das richtet sich aber nicht gegen dich.

Keine Sorge, ich nehm sowas nicht persönlich. Das ist halt Demokratie.

04.02.2010 - 13:27 Uhr

Hmm, naja, war ja auch nur 'n Vorschlag... 😃

04.02.2010 - 12:39 Uhr

Die Szene-Event-News sind neben den Buchempfehlungen die einzigen Beiträge (abgesehen von Einzelnem im Smalltalk-Forum), die nichts direkt mit der aktiven Entwicklung am Gerät zutun haben, sondern nur über weitere Diskussions-"Foren" (im eigentlichen Sinne) informieren.

Aus dem Grunde finde ich persönlich, man sollte sie vom Rest abkoppeln. Die Buchempfehlungen sind ja auch abgekoppelt, obwohl man diese ebenso in die Szene-News-Box packen könnte: "Buch XY veröffentlicht". Die Bücher gehören ja auch eindeutig zur Szene und auch da gibt es nicht jeden Tag 10 neue Beiträge.

@Peter Bucher:
schon, klar. Aber ich bin grundsätzlich nicht der Mensch, der für ein Hobby, das am PC stattfindet, meilenweit fahren muss, um mich mit Gleichgesinnten zu unterhalten. Für ein Hobby am PC informiere und unterhalte ich mich am PC. Bei meinem anderen Hobby (ich nenn's mal Motorsport) ist das was anderes. Das findet draußen statt, also trifft man sich auch draußen.

04.02.2010 - 10:48 Uhr

Nee, dabei handelt es sich ja um das selbe Thema: Datenbanken.

Ich meine eine Aufteilung in Events im wirklichen Leben, wo man hinfahren muss, um dran teilzunehmen und eben den Rest.

04.02.2010 - 10:29 Uhr

Hi Leute,

ich würde gern einen Vorschlag einbringen bzgl. der Portalseite:

mich persönlich interessieren die Treffen unterschiedlicher Gruppen relativ wenig, viel mehr aber die meisten anderen Szene-News (Release-Termine etc.)

Also hab ich mir gedacht, es wäre eventuell eine gute Idee, die Box mit den Szene-News zu teilen, zwei daraus zu machen, eine für die Treffen irgendwelcher Gruppen um .NET (auch Messen und so weiter, lokale Events halt) und eine für die sämtlichen anderen News, die nichts mit irgendwelchen Veranstaltungen zutun haben.

Ich vermute mal, dass ich nicht der einzige bin, der als primärer Hobby-Entwickler Szene-News zu solchen Events gar nicht liest.

Was haltet ihr also von dem Vorschlag?

Grüße,
Hendrik

04.02.2010 - 10:24 Uhr

Schau dir mal BinarySerializer an!

01.02.2010 - 11:24 Uhr

Ich hätte allein deine Frage schon nicht verstanden (jedenfalls wahrscheinlich nicht ohne den Code zu lesen)... Ist nicht der letzte Tag der letzten x Monate auch der letzte Tag des letzten 1 Monat?

//edit: Okay, ich glaub, jetzt hab ich's... nachdem ich den Code gelesen hab.

01.02.2010 - 00:18 Uhr

Lesen lernt man ja auch Buchstabe für Buchstabe und nicht in kompletten Worten.

Ehrlich? Ich konnte zuerst einzelne bestimmte Worte lesen. Mein erstes Wort, das ich lesen konnte, war "Auto".

31.01.2010 - 23:48 Uhr

Ich muss zu meiner Schande gestehen, dass ich den Thread jetzt dank der fortgeschrittenen Stunde nicht ganz gelesen, sondern lediglich den Startbeitrag vollständig und einige andere Beiträge überflogen habe.

Leider musste ich nun während meines ersten Semesters im Studiengang Mechatronik, der auch das Fach Programmiertechniken beinhaltet, feststellen, dass diese Unterrichtsmethoden nicht auf Oberstufe Gymnasium beschränkt sind. Unsere Vorlesungen und Praktika laufen ähnlich ab. Es wird zwar weniger Wert auf Optik gelegt, aber auch nicht mehr auf schönen Programmierstil. Auch hier gilt weiterhin: hauptsache es funktioniert am Ende.

Da schmerzt es mich als Entwickler mit jahrelanger Erfahrung ein wenig hinter den Augen, wenn ich mir Code von Kommilitonen anschaue. Nichts gegen die Kollegen, es is nicht deren Verschulden. Viel mehr obliegt es eigentlich unserer Professorin, den unerfahrenen Studierenden saubere Codierung ebenso nahezulegen, wie die Bedeutung dessen, was man denn da genau tut.

Die Frage, die zu beantworten der Unterrichtende eigentlich dort vorne steht, lautet doch prinzipiell: "Wie löse ich dieses oder jenes Problem auf eine Weise, dass andere Entwickler meine Lösung verstehen, warten und erweitern können?" und nicht "Wie schreibe ich möglichst schnell ein Programm, das besagtes Problem löst?"

Aber das ist eine Problematik, die sich durch viele Branchen zu ziehen scheint. Qualität ist halt nicht mehr gefragt. Es geht nur noch um das, was unterm Strich herauskommt. Dass der Strich aus "unterm Strich" noch lange nicht der letzte Strich gewesen sein muss, daran mag kein Unternehmer denken, solange alles zumindest annähernd wie gewünscht läuft.

Aber wehe, es tritt irgendwann ein Problem mit der Software auf und der entsprechende Entwickler ist nicht mehr greifbar, weil auf die eine oder andere Art wegrationalisiert. Ich kann aus eigener Erfahrung sagen, dass es in solchen Fällen teils produktiver und effizienter ist, den Bockmist des (ökonomisch) verblichenen Kollegen einfach in der virtuellen Ablage P zu entsorgen und von vorn anzufangen, anstatt sich in den Kot hereinarbeiten zu müssen. Frei nach dem Motto: it was hard to write, it should be hard to read.

Von daher halte ich Informatik-Unterricht wie er heute Usus ist, nur für bedingt sinnvoll und tauglich, wenn überhaupt. Man zieht damit nichts anderes als Junk-Coder heran.

24.01.2010 - 16:32 Uhr

kann ich verstehen, der WPF Editor ist nicht wirklich toll. Die Suppe hat sich MS aber selber eingebrockt. WPF ist Spielkram, aber nicht Massen tauglich.

Das unterschreibe ich so nicht... es steckt einfach noch in den Kinderschuhen. Ich finde es wesentlich angenehmer mit WPF GUIs zu produzieren als mit Windows Forms. Allein des Bindings wegen schon.

20.01.2010 - 09:09 Uhr

Die paar Tage lassen sich verschmerzen.

18.01.2010 - 07:13 Uhr

Naja, man hat immerhin 'ne zweite Meinung. Wie bei 'ner unangenehmen Diagnose beim Arzt. Ich vermute mal, unter der Vielzahl an Webseiten wird's noch weitere solcher Dienste geben.

17.01.2010 - 13:07 Uhr

Das musst du mir mal genauer erklären.

Warum sollte ich call by reference machen, wenn ich in der Methode den tatsächlichen Parameter nicht ändern will? In so einem Fall reicht auch call by value.

11.01.2010 - 06:34 Uhr

Genial. Sowas suche ich auch schon länger! Danke!

Ich wär für'n Sticky!

05.01.2010 - 07:58 Uhr

Was ist denn an seiner Frage so schwer zu verstehen? Er möchte nur wissen, wie SVN die Code-Files im Repository ablegt.

Detailiert beantworten kann ich die Frage auch nicht, aber du kannst mal bei der Wikipedia lesen (wenn's noch nicht gelöscht wurde scnr) http://de.wikipedia.org/wiki/Subversion_%28Software%29 oder auf der Homepage von Subversion, http://subversion.tigris.org/. Eventuell findest du dort die genauen Informationen darüber, wie SVN seine Daten ablegt.

Eines kann ich jedoch mit Bestimmtheit sagen: es legt die Änderungen an einem Repositorie in einer Datenbank ab.

02.01.2010 - 12:10 Uhr

Just for Info:

ich hab das ganze jetzt als REST Service in PHP mit MySQL auf einem eigenen Server im Web realisiert. Momentan nur lesend, da ich mir noch keine Gedanken über Sicherheitsmechanismen zwischen dem Programm und dem Dienst gemacht habe. Das Einpflegen der Daten passiert also zur Zeit noch per Hand über phpMyAdmin.

Die Informationen selbst sind öffentlich zugänglich. Ich glaube nicht, dass es irgendwen mit finsteren Hintergründen interessiert, wann bei uns wo die Vorlesungen sind.

31.12.2009 - 09:15 Uhr

Im übrigen scheint es normal zu sein, dass CheckAccess von Intellisense nicht angezeigt wird... Ist bei mir auch so. Warum? Keine Ahnung...

31.12.2009 - 09:08 Uhr

Mal abgesehen davon, dass mir dein Ansatz nicht ganz klar ist... hast du's mal mit 'nem stinknormalen Cast versucht?

24.12.2009 - 10:47 Uhr

Nach langer Zeit grabe ich dieses Ding mal wieder aus. Ein Leser dieses Beitrags hat mich angeschrieben, dass er dieses Control gern für seinen Selbstbau-"Segway" verwenden möchte. Daraufhin hab ich mich des Controls noch einmal an- und eine leichte Überarbeitung des Renderings vorgenommen, da es ein paar Fehler enthielt.

Anbei für alle das kompelette Control als OpenSource. Ich bitte bei Verwendung allerdings um Erwähnung dieses Threads, bzw. meines Namens.

21.12.2009 - 23:11 Uhr

Hi Leute,

kann mir jemand sagen, wie ich Expression Blend beibringe, dass es eine DependencyProperty des Typs "Double" eines CustomControls als Prozent-Slider darstellen soll (genau so wie beispielsweise Opacity)? Ich vermute mal, dass es dafür ein Attribute gibt, oder? Ich finde es nur nicht.

Danke!

Grüße,
Hendrik

20.12.2009 - 16:59 Uhr

Bei Left und Top ruckelt es in Windows grundsätzlich immer, egal ob Xp, Vista, Win7. Das ist ein Windows-Problem 😉

Haha, stimmt! Das ist mir noch nie vorher aufgefallen... Da arbeitet man seit Windows 95 mit Fenstern, deren Inhalt beim Ziehen dargestellt wird und nie fällt einem sowas auf... tztztz... 👅

Okay, alles klar, danke nochmal für die großartige Hilfe! 🙂 👍 👍 👍

20.12.2009 - 16:39 Uhr

Vielleicht hilft dir
>
weiter.

MfG
Tonka

Japp! Volltreffer! Ein riesen Schritt auf jeden Fall.

Einzig beim Vergrößern und Verkleinern an Top und Left (wie im Artikel erwähnt) ruckelt's noch etwas. Aber das scheint ein WPF spezifisches Problem zu sein. Right und Bottom sind nun wesentlich sauberer.

Danke dafür!

20.12.2009 - 11:59 Uhr

Das müsste eventuell mit 'nem Popup funktionieren... aber schön ist das trotzdem nicht.

Irgendwas muss da ja auch dafür sorgen, dass es ruckelt. An meinem PC (Core2Quad Q6700, GeForce 8800GTS/512, 8GB RAM) dürfte es eigentlich nicht liegen. Der sollte schnell genug sein.

Ich muss mir nochmal genau anschauen, welche Methoden da während des Resize aufgerufen werden, welche davon so viel Performance schlucken.

Möglicherweise ist es PostSharp 1.5, das ich einsetze, um in einer meiner Daten-Klassen ein automatisches OnPropertyChanged zu haben; aus purer Faulheit, weil ich nicht in jeder Setter-Methode den Aufruf der OnPropertyChanged Methode drin haben will. Eventuell zieht das Ding so enorm Performance... dürfte aber eigentlich nicht, wenn ich das auf der Entwickler-Homepage richtig verstanden habe. Ich schau mir das nochmal an... in der Zwischenzeit werd ich damit wohl leben müssen.

//edit 1:

An PostSharp liegt's wohl nicht. Die Methoden werden während des Resize gar nicht aufgerufen. Auch tritt keine Änderung des Verhaltens ein, wenn ich PostSharp weglasse.

Stelle ich WindowStyle auf SingleBorder, AllowTransparency auf False und verändere die Größe des Fensters mit dem Windows-eigenen Border, dann tritt dieses Verhalten nicht auf. Dann verändert das Fenster sehr viel fließender seine Größe.

Benutze ich in diesem Zustand den von mir selbst eingezogenen Rahmen, ruckelt es trotzdem. An AllowTransparency oder WindowStyle kann's also auch nicht liegen.

Gibt es nicht irgendwie einen Weg, wie ich das Resize-Verhalten des normalen Fensterrahmens auf einen eigenen Rahmen abbilden kann?

19.12.2009 - 13:24 Uhr

Danke, würde ich gerne tun, wäre ich im Windows Forms Kontext. In WPF funktioniert das nicht. Window hat keine Methode SetStyle.

19.12.2009 - 12:36 Uhr

Hi Leute,

mal wieder Project-Hopping; mein liebstes Hobby... 😄

Ich bin am basteln mit einem rahmenlosen Fenster, dem ich einen eigenen Resize-Rahmen verpassen möchte (acht Rectangles als Resize-Grips entsprechend angeordnet). Die acht Rectangles haben alle ihrer Position um das Fenster herum entsprechend ein Tag N, NE, E, SE, ..., NW.

Im Grunde funktioniert das auch soweit, es ist aber optisch sehr unschön. Es ruckelt wie die Sau (schulligung). Am saubersten funktionieren die Resize-Grips E und S, da diese nur Width und Height verändern. SE führt bei schnellen Bewegungen zu einer treppenartigen Veränderung der Größe (wohl, weil erst Height und dann Width gesetzt wird).

Ich vermute, dass dieses Ruckeln damit zusammenhängt, dass zwischen den einzelnen Anweisungen zum Setzen von Top, Left, Width und Height Verzögerungen auftreten. Diese muss ich irgendwie wegbekommen, also dafür sorgen, dass WPF das Form erst wieder rendert, nachdem alle vier Eigenschaften auf ihre neuen Werte gesetzt sind.

Gibt's da 'ne Möglichkeit? Oder hat jemand 'ne andere Idee?

Danke!

Grüße,
Hendrik

Hier mal die zugehörigen Code-Schanipsel


        #region Window Resize

        string sResizeTag = "";
        double dInitWidth = 0.0D, dMouseStartX = 0.0D;
        double dInitHeight = 0.0D, dMouseStartY = 0.0D;

// MouseMove Event aller acht Rectangles

        private void Resize_Window(object sender, MouseEventArgs e)
        {
            Rectangle rect = sender as Rectangle;
            if (sResizeTag == "" || rect == null) return;

            double width = e.GetPosition(this).X - dMouseStartX;
            double height = e.GetPosition(this).Y - dMouseStartY;

            double tTop = this.Top, tLeft = this.Left, tWidth = this.Width, tHeight = this.Height;

            if (sResizeTag.Contains('N'))
            {
                //Console.WriteLine("Resize north {0}", height);
                tTop += height;
                tHeight -= height;
            }

            if (sResizeTag.Contains('S'))
            {
                //Console.WriteLine("Resize south {0}", height);
                tHeight = dInitHeight + height;
            }

            if (sResizeTag.Contains('W'))
            {
                //Console.WriteLine("Resize east {0}", width);
                tLeft += width;
                tWidth -= width;
            }

            if (sResizeTag.Contains('E'))
            {
                //Console.WriteLine("Resize west {0}", width);
                tWidth = dInitWidth + width;
            }

            this.Height = tHeight; this.Width = tWidth; this.Top = tTop; this.Left = tLeft;
        }

// LeftMouseButtonUp Event aller acht Rectangles

        private void Resize_End(object sender, MouseButtonEventArgs e)
        {
            Rectangle rect = sender as Rectangle;

            dMouseStartX = dMouseStartY = 0;

            if (rect != null)
            {
                sResizeTag = "";
                rect.ReleaseMouseCapture();
            }
        }

// LeftMouseButtonDown Event aller acht Rectangles

        private void Resize_Init(object sender, MouseButtonEventArgs e)
        {
            Rectangle rect = sender as Rectangle;

            dMouseStartX = e.GetPosition(this).X;
            dMouseStartY = e.GetPosition(this).Y;

            dInitWidth = this.Width;
            dInitHeight = this.Height;

            if (rect != null)
            {
                sResizeTag = rect.Tag.ToString();
                rect.CaptureMouse();
            }
        }

        #endregion


17.12.2009 - 10:32 Uhr

Ja, stimmt. Jetzt wo ihr das sagt... ich hab mal vor einiger Zeit versucht gehabt, Mono direkt aus den Sourcen zu übersetzen, was fehlschlug. Ich gehe davon aus, dass der /usr/local GAC also trotz der fehlgeschlagenen Übersetzung daher rührt.

Dennoch ist mir schleierhaft, warum in dem regulären GAC bei mir so viel fehlt.

16.12.2009 - 22:26 Uhr

Die Distro ist Debian Lenny. Symlink werd ich mal probieren... 👍

16.12.2009 - 16:07 Uhr

Okay, ich hab das Problem gefunden, weiß aber noch nicht, wie ich es gelöst bekomme:

Ich habe 2 (!) GACs:

  1. /usr/lib/mono/gac
  2. /usr/local/lib/mono/gac

gacutil[2] greift dabei per default auf /usr/local/lib/mono/gac zurück, wohingegen der Apache und sein Mono-Anhängsel anscheinend mit /usr/lib/mono/gac arbeitet. Ich konnte die DLL per gacutil uminstallieren. Aber das kann ja nicht der Sinn der Sache sein, oder?

Frage ist nun: welcher Pfad ist der richtige und wie bringe ich entweder gacutil oder apache bei, dass es automatisch den richtigen Pfad verwenden soll?

Danke!

Grüße,
Hendrik

16.12.2009 - 15:19 Uhr

Hi Leute,

aus purer Langeweile versuche ich gerade mal wieder, auf meinem Linux Server ASP.NET mit Mono zum Laufen zu bekommen. Erste Schritte schlagen grandios fehl. Ich erhalte beim Aufruf der frisch erstellten Website folgende Fehlermeldung:

Parser Error

Description: Error parsing a resource required to service this request. Review your source file and modify it to fix this error.

Parser Error Message: Assembly System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35 not found

Folgende Pakete mit dem Begriff "mono" drin sind auf meinem Server installiert:

ii libapache2-mod-mono 1.9-1 Apache module for running ASP.NET applicatio
ii libmono-accessibility2.0-cil 1.2.2.1-1etch1 Mono Accessibility library
ii libmono-corlib1.0-cil 1.9.1+dfsg-6 Mono core library (1.0)
ii libmono-corlib2.0-cil 1.9.1+dfsg-6 Mono core library (2.0)
ii libmono-data-tds1.0-cil 1.9.1+dfsg-6 Mono Data library
ii libmono-data-tds2.0-cil 1.9.1+dfsg-6 Mono Data Library
ii libmono-dev 1.9.1+dfsg-6 libraries for the Mono JIT - Development fil
ii libmono-i18n1.0-cil 1.9.1+dfsg-6 Mono I18N libraries (1.0)
ii libmono-i18n2.0-cil 1.9.1+dfsg-6 Mono I18N libraries (2.0)
ii libmono-microsoft-build2.0-cil 1.2.2.1-1etch1 Mono Microsoft.Build libraries
ii libmono-mozilla0.2-cil 1.9.1+dfsg-6 Mono Mozilla library
ii libmono-peapi1.0-cil 1.2.2.1-1etch1 Mono PEAPI library
ii libmono-peapi2.0-cil 1.2.2.1-1etch1 Mono PEAPI library
ii libmono-relaxng1.0-cil 1.2.2.1-1etch1 Mono Relaxng library
ii libmono-security1.0-cil 1.9.1+dfsg-6 Mono Security library
ii libmono-security2.0-cil 1.9.1+dfsg-6 Mono Security library
ii libmono-sharpzip0.84-cil 1.9.1+dfsg-6 Mono SharpZipLib library
ii libmono-sharpzip2.84-cil 1.9.1+dfsg-6 Mono SharpZipLib library
ii libmono-sqlite2.0-cil 1.9.1+dfsg-6 Mono Sqlite library
ii libmono-system-data1.0-cil 1.9.1+dfsg-6 Mono System.Data library
ii libmono-system-data2.0-cil 1.9.1+dfsg-6 Mono System.Data Library
ii libmono-system-runtime1.0-cil 1.2.2.1-1etch1 Mono System.Runtime library
ii libmono-system-web1.0-cil 1.9.1+dfsg-6 Mono System.Web library
ii libmono-system-web2.0-cil 1.9.1+dfsg-6 Mono System.Web Library
ii libmono-system1.0-cil 1.9.1+dfsg-6 Mono System libraries (1.0)
ii libmono-system2.0-cil 1.9.1+dfsg-6 Mono System libraries (2.0)
ii libmono-winforms2.0-cil 1.2.2.1-1etch1 Mono System.Windows.Forms library
ii libmono0 1.9.1+dfsg-6 libraries for the Mono JIT
ii libmono1.0-cil 1.9.1+dfsg-6 Mono libraries (1.0)
ii libmono2.0-cil 1.9.1+dfsg-6 Mono libraries (2.0)
ii mono-2.0-devel 1.9.1+dfsg-6 Mono development tools for CLI 2.0
ii mono-apache-server 1.9.1-3 ASP.NET backend for mod_mono Apache module
ii mono-apache-server2 1.9.1-3 ASP.NET backend for mod_mono2 Apache module
ii mono-common 1.9.1+dfsg-6 common files for Mono
ii mono-gac 1.9.1+dfsg-6 Mono GAC tool
ii mono-gmcs 1.9.1+dfsg-6 Mono C# 2.0 and C# 3.0 compiler for CLI 2.0
ii mono-jit 1.9.1+dfsg-6 fast CLI JIT/AOT compiler for Mono
ii mono-mcs 1.9.1+dfsg-6 Mono C# compiler for CLI 1.1
ii mono-runtime 1.9.1+dfsg-6 Mono runtime
ii mono-xsp-base 1.9.1-3 base libraries for XSP 1.1
ii mono-xsp2 1.9.1-3 simple web server to run ASP.NET application
ii mono-xsp2-base 1.9.1-3 base libraries for XSP 2.0

Ein Aufruf von gacutil2 -l erzeugt folgende Ausgabe (gekürzt):

[...]
System.ServiceProcess, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
System.Web.Services, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Web.Services, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
[...]

Wie man sieht, ist die angemeckerte System.Web.Extensions Assembly durchaus vorhanden. Auch gacutil (ohne 2) -l liefert mir dieses Ergebnis zurück. Der PublicKeyToken stimmt bei beiden mit dem aus der Fehlermeldung überein.

Kann mir jemand verraten, wieso Mono den/die/das Assembly System.Web.Extensions so nicht findet?

Danke

Grüße,
Hendrik

02.11.2009 - 11:40 Uhr

Jetzt kriege ich das nicht mehr nachgestellt.

Eine schnell mal eben zusammen gehackte Methode, die das Verhalten eigentlich abbilden sollte, lässt sich nun wunderbar debuggen. Und die Methode, die der Auslöser für diesen Thread war, existiert nun in dieser Form nicht mehr.

Merkwürdig. Alles sehr merkwürdig. Naja... wenn's nochmal auftritt, dann geb ich umgehend bescheid (inkl. Code).

🤔

02.11.2009 - 11:13 Uhr

Uuuahhh, ich glaub, dann verzichte ich in Zukunft lieber auf yield return... Zumindest während des Debuggings.

Danke für die Erklärung!

02.11.2009 - 10:27 Uhr

Hallo Leute,

ich hab hier gerade ein Problem beim Debugging: ich kann mir keine lokalen Variablen mehr in den Watch packen. Der Debugger sagt mir immer, die Variable würde im aktuellen Kontext nicht existieren. Ist natürlich grober Unfug, da die Variable eine Zeile über der aktuellen Ausführungsmarke definiert wird.

Ich kann auch nicht mehr mit der Maus über der Variable deren Inhalt betrachten. Es passiert einfach nichts mehr.

Übrigens gilt das für alle lokalen Variablen innerhalb dieser einen Methode. Bei anderen Methoden funktioniert das normal.

Kann das eventuell mit dem yield return bzw. yield break in der Methode zusammen hängen? Das ist jetzt so der einzige logische Unterschied, der mir zwischen den zwei von mir auf dieses Verhalten getesteten Methoden auffällt.

Danke

Grüße,
Hendrik

**// Update: **okay, scheint an dem yield return zu liegen. Aber warum? Kann mir das jemand erklären? Danke!

30.10.2009 - 11:57 Uhr

Der Client wird nicht permanent verbunden sein, sondern nur einmal nachsehen, ob's was neues gibt und die Verbindung dann wieder kappen. Kann sich also nur um wenige Sekunden handeln. Dann schreib ich da 'ne Retry-Routine zu. Kann so schlimm ja nicht sein.

Google Mail schau ich mir dahingehend mal an.