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

20.02.2011 - 16:48 Uhr

Hmm... hab mir das WAF jetzt mal angesehen. Grob. Interessant klingt es. Verwendest du das Managed Extensibility Framework für deine Anwendung? Oder wie hast du die aufgebaut und mit WAF verdrahtet?

18.02.2011 - 18:04 Uhr

Hmm... ich weiß nicht, ob ich das verstehe.

Meine aktuelle Konstruktion sieht folgendermaßen aus. Im XAML des MainWindow in Window.Resources:


        <local:buecherdbEntities x:Key="BuecherDB" />

        <CollectionViewSource x:Key="BuecherView"  Source="{Binding Source={StaticResource BuecherDB}, Path='Buecher'}"    />
        <CollectionViewSource x:Key="AutorenView"  Source="{Binding Source={StaticResource BuecherDB}, Path='Autoren'}"    />
        <CollectionViewSource x:Key="VerlageView"  Source="{Binding Source={StaticResource BuecherDB}, Path='Verlage'}"    />
        <CollectionViewSource x:Key="ReihenView"   Source="{Binding Source={StaticResource BuecherDB}, Path='Reihen'}"     />
        <CollectionViewSource x:Key="BesitzerView"  Source="{Binding Source={StaticResource BuecherDB}, Path='Besitzer'}"  />

Ich binde dann die gewünschten Controls direkt an diese Resourcen. local:buecherdbEntities ist das Entity Model, welches direkt aus der MySQL Datenbank generiert wird.

Im CodeBehind mache ich bezüglich des Bindings nichts.

Sollte ich obige Resourcen lieber in den CodeBehind verlagern und die Bindung an die Controls dort vornehmen?

18.02.2011 - 17:29 Uhr

Hmm, klingt gut. Wie würde das denn syntaktisch in XAML aussehen? Und kann die ObservableCollection so Sachen wie AddNew?

18.02.2011 - 16:55 Uhr

Ja, das hab ich jetzt auch gemacht. So funktioniert das. Aber...

Ich erweitere das ganze aber jetzt mal für die Frage: was, wenn ich nach mehreren Kriterien filtern will? Nicht nur nach dem Autor, sondern beispielsweise auch nach einem bestimmten Titel oder nach einer bestimmten ISBN (Stichwort: Suchfunktion).

18.02.2011 - 16:10 Uhr

verwendetes Datenbanksystem: MySQL (Connector.NET 6.3.6)

Hi Leute,

manchmal kriege ich echt 'ne Krise, wenn es um Anwendungen in C# geht. Heute: filtern von Datensätzen aus einer MySQL Datenbank, geholt über das Entity Framework.

In meinem WPF/XAML Window in den Resourcen lege ich mehrere CollectionViewSources an, die alle auf die selbe Source zeigen: eine Instanz eines Entity Models, das per Connector.NET 6.3.6 einen MySQL Server anspricht und von dort mehrere Tabellen holt.

Da ich diese Daten gern an diverse Steuerelemente wie unter anderem ein ListView binde, ist der CollectionViewType bei allen CollectionViewSources wohl BindingListCollectionView.

Ich möchte nun gerne aus einer Liste nur diejenigen Einträge im entsprechenden ListView angezeigt bekommen, die der Auswahl eines bestimmten Eintrags aus einer anderen Liste zugeordnet sind. Konkret heißt das folgendes:

Liste 1 ist eine Liste von Büchern. Liste 2 ist eine Liste von Autoren. Beide daran gebundenen ListViews sind IsSynchronizedWithCurrent=True. Ich möchte in Liste 1 nur die Bücher sehen, die von dem in Liste 2 ausgewählten Autor geschrieben wurden. Eine entsprechende Foreign Key Relation existiert sowohl in der MySQL Datenbank als auch automatisiert im EF-Model.

Normalerweise würde ich denken, dafür verwendet man die Eigenschaft Filter des entsprechenden Views. Pustekuchen, denn: CanFilter=False bei allen Views.

Dann dachte ich, okay, vielleicht geht's mit CustomFilter. Pustekuchen, denn: CanCustomFilter=False bei allen Views.

Also wie filtert man solche Daten dann, wenn die eigentlich dafür vorgesehenen Filtermechanismen beide aus mir absolut unerfindlichen nicht funktionieren? Und warum zum Geier funktionieren sie nicht? Was reitet die Entwickler bei Microsoft, solche essenziellen Features an zentraler Stelle einfach nicht zu unterstützen? 😜

Danke!

Grüße,
Hendrik

17.02.2011 - 22:55 Uhr

Hi Leute,

merkwürdiges, hartnäckiges, lästiges kleines Problem... grrr

Ich hab eine Instanz eines Entity Models im Resources Bereich meines WPF Windows angelegt. Der Designer vom Visual Studio 2010 mäkelt darüber aber herum, dass er die Instanz nicht anlegen kann, da... siehe Bild im Anhang.

Die Verbindung zur MySQL Datenbank wird über den MySQL Connector.NET 6.3.6 hergestellt.

Hat eventuell jemand 'ne Idee, woran das liegen kann? Ich wäre für jeden sachdienlichen Hinweis äußerst dankbar.

Viele Grüße,
Hendrik

17.02.2011 - 09:30 Uhr

Das hoffe ich auch, mangels einer funktionierenden Alternative. Wenigstens kommt der MySQL Connector.NET seine Aufgabe in diesem Zusammenhang gut nach; wenn's auch 'ne extra Server-Applikation dafür braucht, auf die ich gerne verzichtet hätte. Eine dateibasierte DB lässt sich im Desktop-/Workstationbereich immer noch leichter rechtfertigen.

14.02.2011 - 02:30 Uhr

verwendetes Datenbanksystem: WCF zu REST mit JSON

Hi Leute,

experimentiere ein wenig herum.

Folgende Problemstellung: auf einem Server läuft eine Datenbank mit mehreren Tabellen, die untereinander einige n:m und 1:n Beziehungen haben. Diese Datenbank gebe ich abstrahiert über einen RESTful Service an eine Client-Applikation durch.

Das schöne an solch einem WCF basierten Client-Server-Konstrukt ist ja, dass man sich um die Kommunikationsschicht, abgesehen von einer leichten Konfiguration in der app.config, nicht zu kümmern braucht. Ich baue mir meine Klassen auf Clientseite mit DataContract- und DataMember-Attributen zusammen und auf Serverseite werden sie einfach über eine kleine PHP Klasse (jupp, PHP) in ein JSON Objekt gegossen. Auf Clientseite wird automatisch aus dem JSON Objekt eine Instanz der entsprechenden Klasse. Das ist echt klasse (no pun intended) und funktioniert 1A mit einfachen relationslosen Tabellen.

Aber...

Die Frage, die sich mir stellt: wie steht's um relationale Daten? Was ist der Königsweg, diese Daten gebündelt in die Client-Applikation zu bekommen? Werden sie bereits auf dem RESTful Server zusammengefügt und dergestalt an die Client-App geliefert? Oder muss ich die Relationen in der Client-App zusammenfummeln? Wie geht man da regulär am besten vor?

Danke!

Grüße,
Hendrik

12.02.2011 - 16:17 Uhr

So... Holzhammer ist done.

Was mir jetzt noch fehlt, sind wohl die Tools für den SQL Server Compact Edition 4.0 für Visual Studio 2010. Jedenfalls kann ich aus dem EF-Designer raus nur Verbindungen zu Datenbanken bis Compact Edition 3.5 aufbauen. 4.0 wird nicht angeboten.

Google spuckt mir da nichts brauchbares aus. Nur irgendwelche nicht mehr existenten Downloads für das 4.0 CTP.

Gibt es die Tools dafür noch nicht? Bin ich zu doof zum Suchen? Gehe ich falsch vor? Ich stehe vor einem Rätsel...

Falls jemand da 'nen guten Link hat, evtl. sogar den Download der notwendigen Tools, wäre ich sehr dankbar.

//update: okay, wie es aussieht, funktioniert EF mit CE 4.0 wohl nur in Web-Projekten. Workarounds sollen wohl zum Beispiel Erstellung des EDMX in einem Web-Projekt und umkopieren ins Windows-Projekt sein. Wieso diese Einschränkungen, kein Plan...

//update: Ah, Workaround funktioniert. 😃

10.02.2011 - 14:57 Uhr

Muhaha, vergiss es... es tut echt mal not. Ich war ja schon einige Zeit lang auf der Suche nach einer Gelegenheit, bzw. einem Grund. Den hab ich hiermit nun endlich gefunden. 😃

10.02.2011 - 13:00 Uhr

Hmm... ich habe jetzt alles, was mit dem SQL Server zusammen hing, von meinem System runtergeworfen und versuche nun den SQL Server Compact Edition 4.0 zu installieren. Aber selbst das will nicht klappen. Die SSCERuntime_x64.exe startet zwar, ein bisschen Aktivität ist zu sehen (Mauspfeil mit grünem Kreis), und weiter passiert nichts. Der Prozess ist im Taskmanager noch zu sehen, tut aber nichts. Das selbe passiert mit der x86 Version.

Selbst zusammen mit WebMatrix lässt sich der Compact 4.0 nicht mehr installieren. Die Installation bleibt einfach stehen...

Ich kriege hier 'ne Vollkrise! Irgendwas ist da gewaltig kaputt. Verdammte Scheiße. (sorry)

**//update: **Okay... das schreit förmlich nach einer Neuinstallation meines Windows. Wird auch mal wieder Zeit. Das Ding läuft ja schon seit zwei Jahren und ist dermaßen vermüllt...

10.02.2011 - 00:34 Uhr

verwendetes Datenbanksystem: Tja, diverse...

Ich glaub's nicht. Ich kann einfach nicht glauben, dass es so dermaßen kompliziert sein soll, eine einfache Client-Anwendung zu schreiben, die auf eine kleine lokale, dateibasierte Datenbank zugreift.

Folgendes habe ich soeben bisher erfolglos versucht: unter Zuhilfenahme es Entity Framework mit einem Model First Approach eine Datenbankanwendung für eine Büchersammlung zu erstellen. Die Anwendung soll möglichst klein sein, weshalb ich mich im ersten Anlauf für SQLite erwärmen wollte.

Zwei ADO.NET Provider hab ich dazu in Augenschein nehmen wollen:

System.Data.SQLite von phxsoftware
Todesurteil: unterstützt kein Model First Approach (DatabaseExists und CreateDatabase nicht unterstützt)

devart dotConnect for SQLite 3.10 Free
Todesurteil: unterstützt kein Model... siehe erster Provider

Dann habe ich gedacht, eventuell funktioniert das ja mit dem MSSQL Compact Edition. Todesurteil: Tja... siehe SQLite.

Dann war ich zeitweise am Überlegen, ob ich es mit MSSQL Express realisiere, aber der ist mir schon wieder zu oversized für die Größe der Anwendung. Was soll ich mit einem Standalone Server auf der Maschine, auf der die Anwendung laufen soll, wenn es doch eigentlich gute dateibasierte Datenbanken gibt? Mehr will ich doch gar nicht.

Dann hab ich mir gedacht, zäumst du das Pferd doch von hinten auf. Also erst die Datenbank erstellen, dann darauf basierend das Model generieren. Aber glaubt ihr, ich finde einen vernünftigen Manager, mit dem ich eine MSSQL Compact Edition Datenbank erstellen kann? Das SQL Server Management Studio soll das können, doch weigert es sich auf meinem Windows 7 64bit System mit Händen und Füßen, sich installieren zu lassen. Es will unbedingt einen schon vorhandenen SQL Express Server 2008 installieren.

Jetzt bin ich inzwischen soweit, dass ich für den Database First Approach sogar MSSQL Express akzeptieren würde. Doch da stellt sich mir das selbe Problem in den Weg, wie bei MSSQL Compact Edition: kein brauchbares Management Tool.

ADO.NET Provider für XML-Dateien? Unsinn, XML ist ja nicht relational. Wozu also das Entity Framework für XML benutzen wollen?

ADO.NET für Access Datenbank? Nicht vorhanden, wahrscheinlich wegen 64bit (das .NET Projekt ist auf x86 eingestellt).

Ich frage mich, ist das immer so kompliziert, wenn's ums EF geht? Boar! So viele Knüppel hatte ich ja schon lange nicht mehr unter den Füßen...

Danke für's Zuhören!

Grüße,
Hendrik

06.12.2010 - 23:33 Uhr

Was heißt denn bei dir "erste Anfrage"? Nur nach Änderungen am Code? Dann muss nämlich, soweit ich das weiß, der Code serverseitig erstmal neu kompiliert werden, bevor er eine Antwort senden kann. Das macht der einmal, danach sollte Ruhe sein, solange du nix am Code änderst.

Ist aber nur 'ne Vermutung...

01.11.2010 - 06:19 Uhr

IFRAMEs sind böse!

Kannst du die PHP Datei nicht auf dem Server über das CLI von PHP oder so durch ASP.NET rendern lassen und die HTML Ausgabe einfach direkt einbinden?

IFRAME ist zwar einfacher, aber leider auch ein sicherheitskritischer Aspekt.

10.10.2010 - 19:32 Uhr

Das ist die Byte Order Mark von UTF8. Das liegt also an dem von dir gewählten Encoding. Siehe http://de.wikipedia.org/wiki/Byte_Order_Mark

03.10.2010 - 10:56 Uhr

Ich höre... dIRE sTRAITS. Allerdings recht selten beim Coden, weil ich mich dann zu sehr auf deren Texte konzentriere und nur noch Mist zusammencode.

25.09.2010 - 15:16 Uhr

Ach verdammt, dann liegt's wohl echt an den Rechten. Mal untersuchen...

Danke!

25.09.2010 - 13:58 Uhr

Hi Leute,

ganz blöde Frage, stehe gerade etwas auf'm Schlauch.

Sollte nicht AllowDrop="True" allein schon ausreichen, um aus dem Halteverbot-Cursor (not allowed) einen Drop-Cursor zu machen, wenn ich was über das entsprechende Control ziehe?

Beispiel:


<Window x:Class="DropTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ListView AllowDrop="True"></ListView>
    </Grid>
</Window>

Damit sollte sich der Mousecursor beim Drüberdraggen doch entsprechend verwandeln oder nicht?

Oder auch nicht... Jedenfalls nicht bei mir. Und ich verstehe gerade nicht warum. Selbst wenn ich die entsprechenden Preview Events (PreviewDragOver, PreviewDragEnter, PreviewDrop) implementiere, passiert nichts. Der Cursor bleibt "not allowed".

Muss ich, um mein Programm als Drag&Drop Dateisenke zu verwenden, irgendwas noch explizit erlauben?

Was kann das sein? Kann das unter Umständen was mit unterschiedlichen Rechten zutun haben, unter denen Quelle (normal) und Ziel (admin) des Drag&Drop-Vorgangs laufen? Eigentlich nicht, oder? Ich hab das gerade mal ausprobiert, indem ich meinen Explorer aus Admin gestartet hab und versucht hab, in mein Beispielprogramm 'ne Datei reinzuziehen. Geht nich...

Finde ich sehr eigenartig.

24.08.2010 - 16:20 Uhr

Naja, ich benutze für die Erstellung der Threads das Parallel-Framework von .NET 4.0. Somit müssten m.E. Race Conditions schonmal wegfallen, da die erstellten Threads alle unabhängig voneinander sind.

Es gibt außer der GUI keine gemeinsamen Resourcen unter den Threads. Und die GUI läuft prinzipbedingt ja schon ausschließlich in einem einzigen Thread. Außerdem greifen die Datenthreads ausschließlich aktualisierend, sprich schreibend auf die GUI zu (über Dispatcher). Race Conditions sind also, wenn sie nicht irgendwo im Framework selbst auftreten, eigentlich ausgeschlossen.

WinDbg hab ich bisher nur benutzt, um mir die Memory Dumps von den BSODs anzuschauen. Daraus ersichtlich ist nur, dass sie angeblich immer im Modul ntkrnlmp.exe auftreten und immer den Code 3B haben. Anbei ein Auszug aus dem Crash Dump des letzten BSOD:


Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.


Loading Dump File [C:\Windows\Minidump\082010-58406-01.dmp]
Mini Kernel Dump File: Only registers and stack trace are available

Symbol search path is: SRV*V:\Symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: 
Windows 7 Kernel Version 7600 MP (4 procs) Free x64
Product: WinNt, suite: TerminalServer SingleUserTS
Built by: 7600.16617.amd64fre.win7_gdr.100618-1621
Machine Name:
Kernel base = 0xfffff800`03062000 PsLoadedModuleList = 0xfffff800`0329fe50
Debug session time: Fri Aug 20 17:21:24.220 2010 (UTC + 2:00)
System Uptime: 0 days 0:08:18.327
Loading Kernel Symbols
...............................................................
................................................................
...........................................................
Loading User Symbols
Loading unloaded module list
......
\*******************************************************************************
\*                                                                             *
\*                        Bugcheck Analysis                                    *
\*                                                                             *
\*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 3B, {c0000005, fffff800030674e0, fffff8800bdbc540, 0}

Probably caused by : ntkrnlmp.exe ( nt! ?? ::FNODOBFM::`string'+c186 )

Followup: MachineOwner
---------

1: kd> !analyze -v
\*******************************************************************************
\*                                                                             *
\*                        Bugcheck Analysis                                    *
\*                                                                             *
\*******************************************************************************

SYSTEM_SERVICE_EXCEPTION (3b)
An exception happened while executing a system service routine.
Arguments:
Arg1: 00000000c0000005, Exception code that caused the bugcheck
Arg2: fffff800030674e0, Address of the instruction which caused the bugcheck
Arg3: fffff8800bdbc540, Address of the context record for the exception that caused the bugcheck
Arg4: 0000000000000000, zero.

Debugging Details:
------------------


EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - Die Anweisung in 0x%08lx verweist auf Speicher 0x%08lx. Der Vorgang %s konnte nicht im Speicher durchgef hrt werden.

FAULTING_IP: 
nt! ?? ::FNODOBFM::`string'+c186
fffff800`030674e0 8a01            mov     al,byte ptr [rcx]

CONTEXT:  fffff8800bdbc540 -- (.cxr 0xfffff8800bdbc540)
rax=000007ffffff0000 rbx=fffff8800bdbd030 rcx=000007ffffff0000
rdx=0000000000000000 rsi=0000000000000001 rdi=0000000000000000
rip=fffff800030674e0 rsp=fffff8800bdbcf10 rbp=0000000074b4ac00
 r8=0000000000000000  r9=0000000074b83528 r10=fffff8800bdbdba8
r11=0000000074b30000 r12=0000000074b74898 r13=fffff8800bdbd000
r14=fffff8800c034d10 r15=0000000074b83500
iopl=0         nv up ei ng nz na pe nc
cs=0010  ss=0018  ds=002b  es=002b  fs=0053  gs=002b             efl=00010282
nt! ?? ::FNODOBFM::`string'+0xc186:
fffff800`030674e0 8a01            mov     al,byte ptr [rcx] ds:002b:000007ff`ffff0000=??
Resetting default scope

CUSTOMER_CRASH_COUNT:  1

DEFAULT_BUCKET_ID:  VISTA_DRIVER_FAULT

BUGCHECK_STR:  0x3B

PROCESS_NAME:  CaptureRequest

CURRENT_IRQL:  1

LAST_CONTROL_TRANSFER:  from fffff8000339f6ed to fffff800030674e0

STACK_TEXT:  
fffff880`0bdbcf10 fffff800`0339f6ed : fffff880`00000000 00000000`74b30000 fffff880`00000000 fffff880`00000000 : nt! ?? ::FNODOBFM::`string'+0xc186
fffff880`0bdbcfa0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!PspGetSetContextInternal+0x481


FOLLOWUP_IP: 
nt! ?? ::FNODOBFM::`string'+c186
fffff800`030674e0 8a01            mov     al,byte ptr [rcx]

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  nt! ?? ::FNODOBFM::`string'+c186

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: nt

IMAGE_NAME:  ntkrnlmp.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  4c1c44a9

STACK_COMMAND:  .cxr 0xfffff8800bdbc540 ; kb

FAILURE_BUCKET_ID:  X64_0x3B_nt!_??_::FNODOBFM::_string_+c186

BUCKET_ID:  X64_0x3B_nt!_??_::FNODOBFM::_string_+c186

Followup: MachineOwner
---------

1: kd> !thread
GetPointerFromAddress: unable to read from fffff8000330a000
THREAD fffffa8009e0fb60  Cid 1a6c.1a8c  Teb: 000000007ef37000 Win32Thread: fffff900c401d780 RUNNING on processor 1
Not impersonating
GetUlongFromAddress: unable to read from fffff80003248b74
Owning Process            fffffa800954c900       Image:         CaptureRequest
Attached Process          N/A            Image:         N/A
fffff78000000000: Unable to get shared data
Wait Start TickCount      31943        
Context Switch Count      19188                 LargeStack
ReadMemory error: Cannot get nt!KeMaximumIncrement value.
UserTime                  00:00:00.000
KernelTime                00:00:00.000
Win32 Start Address 0x00000000684159c0
Stack Init fffff8800bdbddb0 Current fffff8800bdbc1d0
Base fffff8800bdbe000 Limit fffff8800bdb2000 Call 0
Priority 10 BasePriority 8 UnusualBoost 0 ForegroundBoost 2 IoPriority 2 PagePriority 5
Child-SP          RetAddr           : Args to Child                                                           : Call Site
fffff880`0bdbbc78 fffff800`030d1ca9 : 00000000`0000003b 00000000`c0000005 fffff800`030674e0 fffff880`0bdbc540 : nt!KeBugCheckEx
fffff880`0bdbbc80 fffff800`030d15fc : fffffa80`09fe4370 00000000`00000002 00000000`00000000 fffffa80`09fe4370 : nt!KiBugCheckDispatch+0x69
fffff880`0bdbbdc0 fffff800`030f840d : fffff800`032e0ce4 fffff800`03219758 fffff800`03062000 fffff880`0bdbccd8 : nt!KiSystemServiceHandler+0x7c
fffff880`0bdbbe00 fffff800`030ffa90 : fffff800`032221a0 fffff880`0bdbbe78 fffff880`0bdbccd8 fffff800`03062000 : nt!RtlpExecuteHandlerForException+0xd
fffff880`0bdbbe30 fffff800`0310c9ef : fffff880`0bdbccd8 fffff880`0bdbc540 fffff880`00000000 00000000`00000000 : nt!RtlDispatchException+0x410
fffff880`0bdbc510 fffff800`030d1d82 : fffff880`0bdbccd8 fffff880`0bdbd030 fffff880`0bdbcd80 00000000`00000001 : nt!KiDispatchException+0x16f
fffff880`0bdbcba0 fffff800`030d08fa : 00000000`00000000 fffff880`0bdbd030 fffff880`0bdbce00 fffff800`030d093d : nt!KiExceptionDispatch+0xc2
fffff880`0bdbcd80 fffff800`030674e0 : 00000000`00004204 00000000`00010206 fffff880`0bdbcf30 00000000`00000018 : nt!KiPageFault+0x23a (TrapFrame @ fffff880`0bdbcd80)
fffff880`0bdbcf10 fffff800`0339f6ed : fffff880`00000000 00000000`74b30000 fffff880`00000000 fffff880`00000000 : nt! ?? ::FNODOBFM::`string'+0xc186
fffff880`0bdbcfa0 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!PspGetSetContextInternal+0x481


24.08.2010 - 12:20 Uhr

Hi Leute,

kurze Frage: verwenden SharpDevelop und Visual Studio den selben Debugger?

Ich kämpfe immer noch mit BlueScreens. Sie tauchen auf, wenn ich Projekte im Debugger laufen lasse, die viele Threads erzeugen, die ihrerseits viel Speicher I/O machen und viel CPU Zeit beanspruchen. Die BSODs tauchen aber nur auf, wenn die Projekte im Debugger laufen. Ohne Debugger funktionieren die Projekte tadellos.

Die BSODs tauchen in beiden IDEs auf, sowohl in SharpDevelop als auch in VS. Daher vermute ich, dass der selbe Debugger verwendet wird.

Falls dem so ist, gibt es evtl. (freie) Alternativen, damit ich mal verifizieren kann, ob's tatsächlich am Debugger liegt?

Danke

Grüße,
Hendrik

17.08.2010 - 12:48 Uhr

Hi Leute,

ich find den Flash Player ziemlich piep, der hakelt bei mir teilweise wie die Sau.

Daher frage ich mich, ob es eventuell einen Ersatz-Player in Silverlight gibt, der anstelle des Flash-Players eingebunden wird (als Addon für'n Firefox oder Chrome oder so... möglich ist das ja, dank Javascript).

Hat schon mal eventuell jemand von sowas gehört, irgendwo? 🙂

Danke

Grüße,
Hendrik

06.08.2010 - 18:35 Uhr

Ich würde nicht Type.FullName mitschicken, sondern sogar Type.AssemblyQualifiedName

Wichtig ist doch nur, dass das KnowTyp-Attribut angegeben wird, auf der Basisklasse, für jede abgeleitete Klasse.

Okay, das ist natürlich auch 'ne Möglichkeit. Muss man halt nur kennen...

06.08.2010 - 10:34 Uhr

Hmmm... Geht es nur darum, dass während der Animation keine Eingaben mehr getätigt werden können?

Indem du einen VisualBrush von der GUI erzeugst und diesen als Background eines über die gesamte GUI gelegten Adorners darstellst. Dann blockiert die GUI zwar nicht, aber sie nimmt auch keine Eingaben mehr an.

Ansonsten kann ich nur sagen, dass du schon zuviel Komplexität in den GUI Thread gelegt hast, wenn dieser auch nur an einer einzigen Stelle synchron mit der Datenverarbeitung arbeiten muss.

06.08.2010 - 10:20 Uhr

Ganz schnell, ohne groß nachzudenken würde ich sagen: liefere und speichere den Type mit! Dann kannst du auf Clientseite entsprechend casten.

03.08.2010 - 23:54 Uhr

Hi Leute,

ich bin auf der Suche nach einem Algorithmus, der verschiedenste Formen "schnittgerecht" auf einer Fläche variabler Länge und fester Breite verteilt.

"Schnittgerecht" heißt, mit möglichst wenig Verlustfläche, also Verschnitt.

Genauer gesagt geht es um die Verteilung einer begrenzten Anzahl verschieden geformter Stoffstücke auf einer Stoffbahn bekannter Breite.

Kennt jemand so etwas? Das wäre vorzüglich!

Danke!

Grüße,
Hendrik

02.08.2010 - 23:22 Uhr

Okay, 'ne Zeichnung...

So sieht das aus, wenn ich in der Triangle-Class in der überladenen Property DefiningGeometry (aus der abstrakten Shape) mit den ActualWidth und ActualHeight Properties der Shape arbeite.

Stattdessen arbeite ich da jetzt mit Width und Height, außerhalb gebunden an ActualHeight und -Width des Containers.

Die Frage ist, warum ActualHeight und ActualWidth der Shape (HorizontalAlignment und VerticalAlignment beide = Stretch) nicht wieder verkleinert werden, wenn sich der umgebende Container verkleinert.

//edit: vielleicht noch ein bisschen zu abstrakt dargestellt... Das grüne Dreieck ist ein Shape-Objekt (von mir abgeleitete Klasse Triangle). Der Rahmen außen rum mit den Griffen ist ein Border und ein paar andere Objekte. Jedenfalls ist der Container für das Triangle-Shape ein Border.

02.08.2010 - 21:49 Uhr

Okay...

hab's mal wieder selber gelöst. Und zwar indem ich eine eigene Triangle-Shape implementiert hab. Die jeweiligen Punkte werden darin anhand der Height- und Width-Property festgelegt.

Um nun ein Dreieck zu erhalten, was sich der Größe seines Containers anpasst, muss ich die Width- und Height-Property des Triangle-Objekts an ActualWidth und ActualHeight des Containers binden.

Funktioniert bestens; RenderedGeometry hat nun die korrekten Abmaße.

ActualHeight und ActualWidth der übergeordneten FrameworkElement-Klasse konnte ich nicht verwenden. Diese haben sich zwar beim Vergrößern des Containers automatisch korrekt angepasst. Beim Verkleinern des Containers blieben sie jedoch auf ihrem alten Wert. Ich konnte das Dreieck also größer, aber nicht wieder kleiner machen. Wenn dazu vielleicht noch jemand was sagen kann, dann danke ich schon mal im Voraus.

02.08.2010 - 20:06 Uhr

Hi Leute,

ich hab hier 'n kleines Problem mit 'nem Polygon:

in einem Grid-Control mit variabler Größe (mit Griffen dran zum Größe Ändern) ist ein Polygon drin, genauer gesagt ein Dreieck. Dieses Dreieck soll sich an der Größe des übergeordneten Grid orientieren, sprich, die drei Eckpunkte sollen auch drei der vier Eckpunkte des Grids sein. Der Punkt links oben ist natürlich einfach 0,0. Die anderen Eckpunkte haben bei mir aktuell jeweils die X- bzw. Y-Komponente 1. Das ganze Polygon hat die Eigenschaft Stretch auf Fill gesetzt, was dazu führt, dass es optisch (!) schon einmal so aussieht, wie ich es gerne hätte.

Mein Problem ist aber, dass ich an anderer Stelle die Eigenschaft RenderedGeometry verwenden will. Sie liefert mir aber nicht die Geometry der visuellen Darstellung zurück (vergrößertes Dreieck), sondern die des original Dreiecks mit der Kantenlänge 1. Ich benötige aber leider ersteres.

Wie bekomme ich also von einer durch Stretch = Fill angepassten Shape ein Geometry Objekt, das der modifizierten Shape entspricht und nicht dem Original?

Danke

Grüße,
Hendrik

30.07.2010 - 22:36 Uhr

Wie das immer so is... kaum hat man die Frage gestellt, kommt man auch schon von selbst drauf.

Mein Freund ist in diesem Fall die Funktion Geometry.Combine, welche einen entsprechenden Parameter mit bekommt, der ihr sagt, dass sie eine Geometry von der anderen abziehen soll. Nun ziehe ich alle Geometries, die in meinem eigenen Schichten-Management die zu berechnende Geometry überdecken, nacheinander von selbiger ab und hole mir mit GetArea die verbliebene Fläche.

Sehr schön. 😃

Erledigt!

30.07.2010 - 22:12 Uhr

Hi Leute,

ich bin gerade am Grübeln... Ich hab auf 'nem Canvas 'nen Haufen Controls, die Shapes beinhalten. Dies können sich überlappen.

Ich möchte nun die sichtbare Fläche jeder einzelnen Shape berechnen und als Property nach Außen zur Verfügung stellen. "Sichtbar" heißt den Teil der Shape, der nicht von anderen Shapes überlappt wird.

Ich vermute, dass ich da irgendwas mit der RenderedGeometry-Property der Shape machen muss.

Hat eventuell jemand 'ne Idee für das Vorgehen?

Danke!

Grüße,
Hendrik

20.07.2010 - 01:15 Uhr

Hat sich erledigt... Visual States sind nun meine Freunde 😃

20.07.2010 - 00:05 Uhr

Hi Leute,

in einem Progrämmchen, das ich gerade für meine Freundin zusammen hacke (bin ich nicht romantisch?! 😉 ), habe ich eine Art Raster. Dieses Raster besteht aus einzelnen rechteckigen Feldern. Ich möchte nun erreichen, dass beim Ziehen eines bestimmten Objekts (Drag&Drop) über eines dieser rechteckigen Felder über dem jeweiligen Feld ein farbiges, halb-transparentes Rechteck drüber gelegt wird, um dieses als ausgewählt zu markieren. Dieses Rechteck soll wieder verschwinden, wenn man das jeweilige Feld beim Draggen wieder verlässt.

Jedes Feld ist ein eigenes CustomControl, das in einem übergeordneten Control auf einem Canvas entsprechend seiner Größe und Position verteilt wird. In dem Feld-Control hab ich nun die OnDragEnter und OnDragLeave Methoden überschrieben, um darin das farbige Rechteck auf dem Adorner-Layer des Feldes zu zeichnen und es wieder zu löschen.

Das funktioniert auch... allerdings löst das Anzeigen des Rechtecks automatisch das OnDragLeave-Event des Feldes aus. Das Ergebnis ist also, dass das Rechteck permanent gezeichnet und wieder gelöscht wird, solange man sich mit der Maus über dem Feld befindet.

Die Frage ist also nun wahrscheinlich sowas wie: Wie erreiche ich, dass der Adorner-Layer kein OnDragLeave-Event des darunter liegenden Controls auslöst?

Falls die Frage anders lauten muss, ich also in der völlig falschen Richtung unterwegs bin, wäre ich über 'ne Info sehr dankbar.

Danke also schonmal!

Grüße,
Hendrik

17.06.2010 - 08:07 Uhr

Jupp, manchmal hat man das. Hätte das mit C# 4.0 aber nicht sogar funktionieren sollen?

11.06.2010 - 07:51 Uhr

Hast du dir mal das Frame Control und die Page Klasse angeschaut?

27.05.2010 - 19:28 Uhr

Hi Leute,

kann mir eventuell jemand einen lokalen Web-Proxy empfehlen, der sich so konfigurieren oder mit Plugins erweitern lässt, dass er bei zu bestimmten Mustern passenden URLs eine externe Applikation mit dieser URL startet?

Oder weiß jemand, ob man Privoxy so konfigurieren kann?

Abstrakt beschrieben suche ich einen lokal installierbaren, beliebig erweiterbaren HTTP-Proxy-Service.

Danke!

Grüße,
Hendrik

13.05.2010 - 12:07 Uhr

Ich hab mal nach "multipart/form-data" und C# gegooglet. Da findet man reichlich Fragen und auch Antworten dazu. Unter anderem das: http://www.codeproject.com/KB/cs/multipart_request_C_.aspx

26.04.2010 - 06:20 Uhr

Man sollte diese aber nicht unbedingt verwenden. Ich würde bei überladenen Methoden bleiben.
Ja, schaut dazu mal hier:

Aufschlussreicher Beitrag. Sehe ich das also richtig, dass man optionale Parameter relativ problemlos verwenden kann (trotzdem wohl nicht sollte), wenn man sich in einer abgeschlossenen Anwendungsumgebung bewegt, sprich, keine Exports/APIs vorgesehen sind?

24.04.2010 - 15:42 Uhr

... und da auch nach params nichts mehr kommen darf, schließen sich diese beiden Mechanismen quasi gegenseitig aus. Man hat dadurch lediglich, wie du bereits erwähnt hast, einen Weg, parameterlose Aufrufe zu ermöglichen, ohne eine entsprechende Überladung implementieren zu müssen.

Schade...

24.04.2010 - 13:24 Uhr

Hi Leute,

nochmal 'ne kurze Frage: ist es per definition unmöglich, soetwas zu machen?


public MethodeXY(bool JaNein = true, params string[] Zusaetzliches) ...

_:::

Achso, Info: übersetzen tut das. Nur einen Aufruf a'la


MethodeXY("Hallo", "Welt");

übersetzt der Compiler nicht.


MethodeXY(false, "Test", "Test2"); 

funktioniert nun hingegen. Aber dann kann ich auch auf das Attribut "optional" beim Parameter JaNein verzichten.

Danke!

Grüße,
Hendrik

24.04.2010 - 10:31 Uhr

Ja, den auch. Aber ich möchte nicht eine einzelne Resource ansprechen, sondern alle, die ich einer bestimmten Aufgabe zugedacht habe.

Hintergrund ist folgender: ich hab einen visuellen Vorlesungsplan, bei dem die Vorlesungen anhand ihres Bezeichners eine bestimmte Hintergrundfarbe erhalten (hole ich mir über einen ValueConverter). Dazu möchte ich automatisch eine Legende generieren lassen. Dafür benötige ich alle Color-Resourcen, die für diesen Zweck vorgesehen sind.

Ich muss die Color-Resourcen also irgendwie gruppieren.

**// edit: ** Antwort: ResourceDictionary - muss wohl die späte Uhrzeit gewesen sein. Den Wald vor lauter Bäumen nicht gesehen. im-karton-versteck

24.04.2010 - 02:38 Uhr

Hi Leute,

kurze Frage: warum lässt sich folgende Zeile übersetzen


<Color haw:ColorTag.Tag="EventColor" x:Key="PR" A="0xFF" R="0x55" G="0x9F" B="0xDE" />

diese jedoch nicht


<Color haw:ColorTag.Tag="EventColor" x:Key="PR">#FF559FDE</Color>

Der Compiler beschwert sich mit der Fehlermeldung

Error 5 TypeConverter syntax error encountered while processing initialization string '#FF559FDE'. Element attributes are not allowed on objects created via TypeConverter.

Ich möchte im Grunde nichts weiter tun, als einer Reihe von irgendwo im Resourcen Pool verteilten Color-Objekten ein bestimmtes "Flag" zu verpassen, über welches ich sie im Code später alle einfach wiederfinden kann. Dabei dachte ich eben an eine Attached Property. Ist das überhaupt der gangbare Weg?

Danke!

Grüße,
Hendrik

20.04.2010 - 06:03 Uhr

@Ogema:
Siehst Du, geht doch mit dem vernünftigen schreiben.

Naja, bewerbungsreif ist das noch nicht. Daran muss noch gearbeitet werden (bspw. "das" und "dass").

@Ogema: Auf jeden Fall würde ich empfehlen, wenn du dich irgendwo bewirbst, deine Bewerbung vorher von einem Profi korrekturlesen zu lassen (Deutschlehrer zum Beispiel). Die können dir oftmals auch noch über die Rechtschreibung und Grammatik hinaus Tipps zur Formulierung geben.

19.04.2010 - 06:41 Uhr

Mein persönliches Beispiel: 8 Jahre in der Softwareentwicklung eines namhaften Unternehmens gearbeitet, im entferntesten Fall 90km vom Arbeitsplatz weg gewohnt, kein Studium, bei Berufseinstieg lediglich knapp 15 Jahre "Erfahrungen" im "Code-zusammenhacken". Geht alles.

12.04.2010 - 22:51 Uhr

Naja, schlimmstenfalls zieht das 'ne Neuinstallation nach sich.

12.04.2010 - 22:42 Uhr

Just for Info: zur Überbrückung bis das Ding im MSDNAA ist, ist auf der oben genannten Website auch die Testversion der Pro verfügbar. Nur falls das jemand noch nicht gesehen hat.

12.04.2010 - 11:25 Uhr

Und? Watt is nu? Countdown is abgelaufen! Microsoft! Inne Hufe kommen! Naja, ist ja erst halb sechs da drüben. Geben wir ihnen noch 15 Minuten. 😁 😁 😁

11.04.2010 - 22:18 Uhr

Ui, den hab ich nicht gesehen. Danke an den lieben talla für die Info. 😄

11.04.2010 - 22:09 Uhr

Hi Leute,

da ich nun seit ein paar Monaten über meine Schule Zugriff auf MSDNAA habe und morgen ja endlich der Release Termin von VS.2010 und .NET 4.0 ist (isser doch, oder? ist jedenfalls mein letzter Stand), stellt sich mir natürlich die Frage, wie lange es in der Regel dauert, bis ein neues Produkt im MSDNAA zur Verfügung steht? Oder ist das abhängig von der Schule? Kenne mich da nicht so gut aus. Wäre über jede Info dankbar.

Danke!

Grüße,
Hendrik

11.04.2010 - 12:19 Uhr

Öy, bleibt mal locker, Leute! Der Tonfall gefällt mir hier ganz und gar nicht.