Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von tkrasinger
Thema: [gelöst] Visual Studio 2010 SDK kann nicht installiert werden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich wollte mal versuchen eine Extension fürs VS 2010 zu entwickeln, hab also hier angefangen:
Visual Studio Developer Center > Learn > Extend Visual Studio

dann das SDK downloaden:
Download Center: Microsoft Visual Studio 2010 SDK

nur kann ich das SDK gar nicht installieren ... siehe Anhang ... ?
Im Hintergrund mein installiertes VS.

Wie fang ich nun also an?

Thema: Entity Framework und dynamische Benutzung von MS SQL Server und SQL Server Compact
Am im Forum: Datentechnologien

Funktioniert, soweit ich über SQL CE Bescheid weiß, auch nur, wenn du es schaffst die Datenbank als reine Daten-Halle zu verwenden. Sobald du irgendwo Logik in die DB auslagerst (Prozeduren, Views) etc. geht das nicht mehr.

CE zu verwenden funktioniert meines Erachtens nur sehr bedingt für eher kleine Projekte.

Thema: Histogramdaten über SQL. Problem bei Fließkommawerten
Am im Forum: Datentechnologien

Ich sag mal da musst du etwas mehr investieren. du kannst aus den Daten 1,3,3,3,5,5 nicht die Zeilen 1,2,3,4,5 erzeugen. Dazu müsstest du dir erst eine (temporäre?) Tabelle mit der richtigen Schrittweite erzeugen und dann deine Daten per LEFT JOIN anhängen.

Thema: Histogramdaten über SQL. Problem bei Fließkommawerten
Am im Forum: Datentechnologien

Ich versteh noch nicht ganz das Problem. Meinst du die Sprünge in der ersten Spalte also z.B. 40.0, 40.1, 40.7? Diese Sprünge hast du in der anderen Tabelle auch, das liegt aber wohl einfach daran, dass du im Bereich 40.2 bis 40.6 keine Daten hast.

Schon mal überprüft?

Edit: ich bin mir auch nicht ganz sicher, ob dein Statement überhaupt einen Sinn hat. Im Endeffekt lieferst du nur die Anzahl jeder Ausprägung von IOut, wobei die Ausprägung die erste Spalte darstellt und die 2. spalte nur die erste spalte + 0.2 ist. Im Grunde kannst du eigentlich auch die ganze Rumrechnerei weglassen, weil du ja sowieso nur IOut und IOut + 0.2, und die dazugehörige Anzahl lieferst.

Thema: [gelöst] Dynamische SQL-Generierung mit T-SQL
Am im Forum: Datentechnologien

Hier ein kleines Beispiel:

DECLARE @Name nvarchar(255)
DECLARE @Column nvarchar(64)
DECLARE @stmt nvarchar(1024)
SET @Column = 'Nachname'

SET @stmt = 'SELECT TOP 1 @ReturnValue = ' + @Column + ' FROM V_Mitarbeiter WHERE Mitarbeiter_ID = @Mitarbeiter_ID'
execute sp_executesql  @stmt, N'@ReturnValue nvarchar(1024) OUTPUT, @Mitarbeiter_ID int', @ReturnValue = @Name output, @Mitarbeiter_ID = 3304
SELECT @Name

wichtig ist die Angabe von "Output" in der Parameter-Definition UND in der Übergabe

Thema: Aufruf einer WCF-Service-Methode mit einem Parameter aus einem dynamischen Objekt - 64bit Bug?
Am im Forum: Netzwerktechnologien

Calling a Method from a WCF Service using a parameter from a dynamic object - 64bit bug!

Thema: Erzeugten SQL String in String Array speichern
Am im Forum: Datentechnologien

Interessant trotzdem, dass du da keine Exception bekommen hast, oder hast du uns irgendwo ein Try/Catch unterschlagen ... ?

Thema: Erzeugten SQL String in String Array speichern
Am im Forum: Datentechnologien

Was genau funktioniert daran eigentlich nicht? Bekommst du irgendwelche Fehler oder welches nicht erwartete Ergebnis erhältst du?

Thema: Aufruf einer WCF-Service-Methode mit einem Parameter aus einem dynamischen Objekt - 64bit Bug?
Am im Forum: Netzwerktechnologien

private ICalcService Service
{
    get
    {
        if (_channel == null)
        {
            var serviceFactory = new ChannelFactory<ICalcService>(
                new NetTcpBinding(), "net.tcp://localhost:54000");
            _channel = serviceFactory.CreateChannel();
        }
        return _channel;
    }
}
 
private void Good_Click(object sender, RoutedEventArgs e)
{
    try
    {
        ICalcService service = this.Service;
        int result = service.CalcHalf(16);
        txtResult.Text += "Result: " + result;
    }
    catch (Exception ex)
    {
        txtResult.Text += ex.ToString();
    }
}
 
private void Bad_Click(object sender, RoutedEventArgs e)
{
    try
    {
        ICalcService service = this.Service;
        dynamic dynArgs = new DynamicDictionary();
        dynArgs.ID = 16;
        txtResult.Text += "Parameter: " + dynArgs.ID;
        int result = service.CalcHalf(dynArgs.ID);
        txtResult.Text += "Result: " + result;
    }
    catch (Exception ex)
    {
        txtResult.Text += ex.ToString();
    }
}

Programmablauf: Eine WPF-Applikation hostet ein Service in einem eigenen Thread. Das Service (ICalcService) hat 2 Methoden: CalcHalf(int) und Negative(bool). Das MainWindow hat 2 Buttons "Good" und "Bad". In den _Click-Methoden der Buttons wird ein Channel zum Service instanziert und dann die Methode CalcHalf aufgerufen. Die ganze Solution gibts hier zum downloaden: ProxyProblem.zip

Wenn man das auf einer 64bit Maschine (Win7) im VS2010 startet, funktionieren beiden Buttons ohne Probleme. Im TaskManager aber erkennt man, dass die App eigentlich als 32bit App gestartet wird. Startet man diese nun direkt (aus bin\Debug) sodass sie als 64bit-App läuft, funktioniert der Good-Button noch, beim Bad-Button aber friert die Applikation ein. CPU läuft hoch und Speicher wird ohne Ende verbraucht.

Ich habe dann festgestellt, dass der Aufruf CalcHalf mit dem Wert aus dem dynamischen Objekt nicht funktioniert (siehe Unterschied Good und Bad). Da hab ich mir also gedacht, das dynamic-Object kann für TryGetMember die Member-Infos nicht auflösen, da diese von einem TransparentProxy (WCFService) kommen. Ich hab also den Aufruf auf: service.CalcHalf((int)dynArgs.ID); geändert. App als 64 bit starten: Funktioniert!

Ich hab da aber auch noch eine zweite Methode Negative(bool) die im 64bit Modus natürlich prima funktioniert wenn man Negative(true) oder Negative(false) oder Negative((bool)dynArgs.SomeBoolValue) aufruft.

Ich habe aber auch probiert Negative(dynArgs.ID == 16) aufzurufen, weil ich mir dachte, eigentlich sollte klar sein, dass da ein Bool kommen muss, hab aber übersehen, dass das Bool ja erst das Result ist, das dynamicObject also wieder nicht wirklich herausbekommen kann was es für einen Typ liefern soll (oder sollte es beim Vergleich mit 16 wissen, dass ein int gefordert ist?).

Dann habe ich folgenen CodeBlock eingebaut:

public bool MethodUsingBool(bool value)
{
    return value;
}
...
var boolValue = MethodUsingBool(dynArgs.ID == 16);
bool result = service.Negative(boolValue);
Der Wert aus dem dynamicObject wird also schon ermittelt, bevor die Methode des Services aufgerufen wird, allerdings funktioniert der Aufruf immer noch nicht. Das Programm friert beim Aufruf der ServiceMethode wie vorher ein.
Ich hab dann mal

var boolValue = true;
bool result = service.Negative(boolValue);
probiert und das hat funktioniert.

Ich bin jetzt an einem Punkt angelangt, wo ich nicht mehr weiß, warum manches funktioniert und manches nicht. Zumal alles einwandfrei funktioniert, wenn man es als 32bit App ausführt.

Das ist ein Crosspost aus der MSDN, da aber keine Antworten gekommen sind, poste ich es hier auch nochmal in der Hoffnung hier hilfe zu bekommen: MSDN Eintrag

Thema: Gibt es ein Tool um Struktur von WPF Komponenten zu sehen?
Am im Forum: GUI: WPF und XAML

Schau dir das mal an:
http://snoopwpf.codeplex.com/

Damit solltest du zum kompletten Visual Tree kommen

Thema: Silverlight 5: Drag & Drop in Säulendiagramm (gestapelt, gruppiert)
Am im Forum: GUI: WPF und XAML

Zum Aufbau:
Ich würde das Einfach mit einer Reihe von Stackpaneln (Orientation Horizontal) aufbauen in einem Stackpanel (Vertical). Jedes inner Stackpanel stellt eine "Spalte" (X) dar. In das Stackpanel kommen nacheinander Border mit der definierten Farbe und Größe (Y).

Stackpanel
  Stackpanel (A1)
     Border (rot), Border (gelb), Border (rot)
  Stackpanel (A2)
     Border (grün), Border (gelb), Border (grün), Border (grün)
  Stackapenl (B1)
...

Dann das ganze um 90 Grad drehen.

Mit dem Drag&Drop brauchst du dann den entsprechenden Border eigentlich nur mehr aus einem Stackpanel in ein anderes verschieben.

Thema: Warum ist der Cast notwendig?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja, aber der Returnwert erwartet mindestens wieder ein T und nicht Control. Daher musst du die Variable "control" - wovon du ja sicher sagen kannst, dass es ein T ist (weils du's ja auch so erstellst), auch wieder auf T zurückcasten.

Fraglich ist für mich, warum du das Control dass du als T erstellst auf ein Control zurückcastest ... wird wohl dann im weiteren Code liegen.

EDIT:
Da du die Variable control als "Control" erstellst, könnte diese Variable auch vom Typ "X : Control" sein. Eine Variable vom typ "X" kannst du aber nicht zurückgeben, weil ja "T" erwartet wird.
Wenn du dir also beim return sicher sein kannst, dass die Variable nur vom Typ T sein kann, kannst du das auch casten. Wenn sie es nicht ist, sondern z.B. X, kriegst du dann sowieso an der Stelle eine InvalidCastException (zur Laufzeit).

Eventuell könntest du die Funktion ändern, sodass der Returnwert nur "Control" wäre.

Thema: wechselnder Speicherverbrauch, ohne dass es nötig wäre
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

<Window 
    x:Class="WPFMemoryUsage.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">
    <StackPanel>
        <StackPanel Orientation="Horizontal">
            <TextBlock>Memoryusage:</TextBlock>
            <TextBlock x:Name="lblMemoryUsage"></TextBlock>
            <Button x:Name="btnGetMemoryUsage" Click="btnGetMemoryUsage_Click">Recalculate</Button>
        </StackPanel>
    </StackPanel>
</Window>

private void btnGetMemoryUsage_Click(object sender, RoutedEventArgs e)
{
   System.GC.Collect();
    System.GC.WaitForPendingFinalizers();
    System.GC.Collect();
    using (Process process = Process.GetCurrentProcess())
    {
        double value = process.WorkingSet64 / 1024.0 / 1024.0;
        lblMemoryUsage.Text = value.ToString("#.000 MB");
    }
}

Wenn ich ein paar mal auf den Button klicke, merke ich einen Anstieg des Speicherverbrauchs, obwohl das Programm ja augenscheinlich nicht mehr verbraucht ... Irgendann machts dann einen Sprung und der Verbraucht geht wieder runter, aber nicht mehr zu dem Wert ganz zu Beginn ...

und auch wenn ich den GC etwas Feuer mache, es werden nur die Sprünge etwas kleiner.

Wenn ich eine Anwendung mit dem oben gezeigten Quellcode im Release erstelle und dann die .exe starte, verbraucht die etwa 33MB (ich mein allein das ist schon ein Wahnsinn). Wenn ich dann eine Minute, alle 20 sekunden auf den Button drücke, ohne die Maus zu bewegen, dann hab ich nach etwa 4 mal klicken 1 MB mehr verbraucht. Für was?

Wenn ich blöd mit der Maus im Fenster herumfuchtle ist auch gleich fast ein MB ...

Welche internen Sachen verbraucht da die WPF und was kann ich alles abdrehen um den Speicherverbrauch zu optimieren?

Thema: Abfangen von Events
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich würde es in etwa so machen:

Init()
{
    _anyBoxChanged = false;
    foreach(TextBox box in groupBox1.Controls)
    {
        box.TextChanged += new EventHandler(TextChanged)
    }
}


TextChanged()
{
    // irgendeine Box wurde geändert
    _anyBoxChanged = true;
}

Thema: Amerikanische Jobverhältnisse vs. Deutsche
Am im Forum: Smalltalk

Man kann noch nicht mal ganz einfach deutsche und österreichische Jobs bzw. primär die Gehälter vergleichen. Andere Abgaben, andere Steuern, 13. und 14. Monatsgehalt etc.

Thema: Problem beim simplen schreiben in Datenbank
Am im Forum: Datentechnologien

PS dazu:
Wenn das eine von dir erstellte Datenbank/Tabelle ist, würde ich die Spalte gleich mal umbenennen. Das wird dir sonst in Zukunft auch noch irgendwo Probleme bereiten.

Thema: Problem beim simplen schreiben in Datenbank
Am im Forum: Datentechnologien

hm, also rein auf Verdacht würde ich mal die ' beim Insert vom Index wegnehmen, wenn die Index-Spalte ein Int-Wert ist.

Fraglich ist für mich ob im Insert die Variable "datenbankName" wirklich der Datenbankname ist, oder vielmehr der Tabellenname?

Thema: Coding Styles Horror
Am im Forum: Smalltalk

der Fehler wird glaube ich relativ häufig gemacht, evtl. sollte mal einer die Convert Methode umschreiben ;-)

Thema: RowDefinition Height im Verhältnis (3* zu 7*) mit MinHeight
Am im Forum: GUI: WPF und XAML

habs noch etwas genau ausgedrückt. Ich hätte gern 3:7 und wenn die 3* < 80 sind, dann 80:*

Thema: RowDefinition Height im Verhältnis (3* zu 7*) mit MinHeight
Am im Forum: GUI: WPF und XAML

das ist für mich keine Lösung. Du gehst zusehr von Beispiel aus. Im realen Programm sind die verhältnisse etwas anders, das minheight ist dann 150 etc.

Die Aufgabenstellung lautet also:
Wie kann ich in einem festen Rahmen, 2 weitere Rahmen im Verhältnis 3:7 anzeigen, wobei der kleinere nicht kleiner werden darf als x. Wenn die Inhalt der beiden Rahmen sich nicht ausgehen, müssen Scrollbalken angezeigt werden.

Im Moment find ich dazu keine Lösung, außer das Verhältnis manuell zu rechnen.

Thema: RowDefinition Height im Verhältnis (3* zu 7*) mit MinHeight
Am im Forum: GUI: WPF und XAML

1. Fenster größer: Geht nicht, im realen Programm stellt das Fenster den Bildschirm dar, und der wird nun mal nicht größer ...

2. eine Minheight am Fenster, was soll das bringen?

3. Das ist doch nur fürs Beispiel, die beiden Border mit Rahmen stellen "Inhalt" dar. Genausogut, könnte ich das machen:

<Border>
    <Grid x:Name="grd">
        <Grid.RowDefinitions>
            <RowDefinition Height="3*" x:Name="row1" MinHeight="80"/>
            <RowDefinition Height="7*" x:Name="row2"/>
        </Grid.RowDefinitions>
        <Border Background="LightGreen">
            <ScrollViewer VerticalScrollBarVisibility="Auto">
                <Border Background="Green" BorderBrush="Red" BorderThickness="6">
                    <StackPanel>
                        <TextBlock FontSize="36">Top1</TextBlock>
                        <TextBlock FontSize="36">Top2</TextBlock>
                        <TextBlock FontSize="36">Top3</TextBlock>
                        <TextBlock FontSize="36">Top4</TextBlock>
                    </StackPanel>
                </Border>
            </ScrollViewer>
        </Border>
        <Border Grid.Row="1" Background="LightBlue">
            <ScrollViewer VerticalScrollBarVisibility="Auto">
                <Border Background="Blue" BorderBrush="Black" BorderThickness="6">
                    <StackPanel>
                        <TextBlock FontSize="36">Bottom1</TextBlock>
                        <TextBlock FontSize="36">Bottom2</TextBlock>
                        <TextBlock FontSize="36">Bottom3</TextBlock>
                        <TextBlock FontSize="36">Bottom4</TextBlock>
                        <TextBlock FontSize="36">Bottom5</TextBlock>
                        <TextBlock FontSize="36">Bottom6</TextBlock>
                        <TextBlock FontSize="36">Bottom7</TextBlock>
                        <TextBlock FontSize="36">Bottom8</TextBlock>
                        <TextBlock FontSize="36">Bottom9</TextBlock>
                        <TextBlock FontSize="36">Bottom10</TextBlock>
                    </StackPanel>
                </Border>
            </ScrollViewer>
        </Border>
    </Grid>
</Border>

Thema: RowDefinition Height im Verhältnis (3* zu 7*) mit MinHeight
Am im Forum: GUI: WPF und XAML

ok, verstanden, aber wie lös ich das jetzt?

mögliche Lösung:

private GridLength? original;

public TestWindow()
{
    InitializeComponent();

    ((FrameworkElement)grd.Parent).SizeChanged += new SizeChangedEventHandler(TestWindow_SizeChanged);
}

private void TestWindow_SizeChanged(object sender, SizeChangedEventArgs e)
{
    if (original == null)
    {
        original = row2.Height;
    }

    if (row1.ActualHeight > row1.MinHeight)
    {
        row2.Height = original.Value;
    }
    else
    {
        row2.Height = new GridLength(((FrameworkElement)sender).ActualHeight - row1.ActualHeight);
    }
}

Funktioniert, springt aber irgendwie ... irgendwelche besseren, evtl. direkt im XAML lösbaren Vorschläge? Hab diese Konstellation sicher 20 mal und will das nicht in jeder Maske so einfügen ...

Thema: RowDefinition Height im Verhältnis (3* zu 7*) mit MinHeight
Am im Forum: GUI: WPF und XAML

ja, klar ist das Fenster zu klein, deswegen auch ScrollViewer. Zum Vergleich unten mal das Fenster, wenn man die MinHeight wegnimmt. Da weiß der 2. Scrollbalken auch, dass beim Fensterende Schluss ist ...

Thema: RowDefinition Height im Verhältnis (3* zu 7*) mit MinHeight
Am im Forum: GUI: WPF und XAML

<Window x:Class="EnterWindowClassNameHere"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="TestWindow" Height="200" Width="300">
    <Grid>
        <Border>
            <Grid x:Name="grd">
                <Grid.RowDefinitions>
                    <RowDefinition Height="3*" MinHeight="80"/>
                    <RowDefinition Height="7*"/>
                </Grid.RowDefinitions>
                <Border Background="LightGreen">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                        <Border Background="Green" BorderBrush="Red" BorderThickness="6" Height="100">
                            <TextBlock VerticalAlignment="Center" FontSize="36">Top</TextBlock>
                        </Border>
                    </ScrollViewer>
                </Border>
                <Border Grid.Row="1" Background="LightBlue">
                    <ScrollViewer VerticalScrollBarVisibility="Auto">
                        <Border Background="Blue" BorderBrush="Black" BorderThickness="6" Height="200">
                            <TextBlock VerticalAlignment="Center" FontSize="36">Bottom</TextBlock>
                        </Border>
                    </ScrollViewer>
                </Border>
            </Grid>
        </Border>
    </Grid>
</Window>

Der unterere Scrollviewer wird nicht mehr ganz angezeigt. Ist das ein Bug oder kann ich das irgendwie anderes gestalten, sodass ich in beiden Bereichen bis zum Ende scrollen kann und oben trotzdem die Mindesthöhe habe?
Wenn man nämlich die MinHeight rausnimmt gehts ...

Thema: Net.tcp WCF Service überwachen
Am im Forum: Netzwerktechnologien

Zitat von ujr
Hab mal statt localhost die 127.0.0.1 oder die lokale IPv4 Adresse verwendet - da geht's bei mir. Es scheint, als würde rawcap nicht über IPv6 funktionieren.

Das hat bei mir nun etwas gebracht, jetzt seh ich wirklich nur mehr "meinen" traffic.

Wenn ich nun:
<security mode="None"/>
mit:
<security mode="Message">
   <transport clientCredentialType="Windows"/>
   <message clientCredentialType="Windows"/>
</security>
und
<security mode="Message">
   <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/>
   <message clientCredentialType="Windows"/>
</security>

vergleiche,
stelle ich fest, dass ich im "none" output meine "Daten" (hab da jetzt noch einen String mit allen Buchstaben groß/klein und allen Zahlen eingebaut) lesen kann. D.h. ich sehe "ABC...abc..7890" im output dieses trace. Ok.

Zwischen den beiden anderen traces kann ich jedoch nicht viel Unterschied feststellen. Soweit ich verstanden habe müsste ich doch dem "EncryptAndSign" irgendwo auch ein Zertifikat angeben? Ignoriert die WCF das dann einfach wenn sie nichts findet?

Wie gut "verschlüsselt" ist der Transport wenn ich nur Variante 2 nehme?

Danke allen für die Unterstützung!

Thema: Net.tcp WCF Service überwachen
Am im Forum: Netzwerktechnologien

Anbei mal mein Testprojekt auf das nötigste reduziert.

Thema: Net.tcp WCF Service überwachen
Am im Forum: Netzwerktechnologien

am XP Rechner mit einem User mit Admin-Rechten hab ich keine Chance, kommt immer der Fehler.
aufm Win7 Rechner mit Admin-User kann ich auf einer Ethernet Schnittstelle und dem Loopback Pseudo Interface sniffen. Allerdings kommt bei der Ethernet-Schnittstelle nur Sachen durch, die mich nicht interessieren und beim Loopback gar nichts.
Meinen Traffic seh ich also immer noch nicht ...

Thema: Net.tcp WCF Service überwachen
Am im Forum: Netzwerktechnologien

> RawCap

Fehler
Unable to enter promiscuous mode (RCVALL_ON), using RCVALL_SOCKETLEVELONLY.

Thema: Strings mit Terminatoren zerlegen und Ergebnis zusammenbauen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Mal so in den Raum geworfen ...

StringBuilder sb = new StringBuilder();
foreach(string antwort in antworten)
{
   sb.Append(antwort);
}
string result = sb.ToString().Replace(Environment.NewLine,String.Empty);

Thema: Net.tcp WCF Service überwachen
Am im Forum: Netzwerktechnologien

Sorry, ich schaffs einfach nicht. Ich bekomm weder im NetworkMonitor noch im Wireshark irgendwelche Packete angezeigt, wenn ich Daten von meinem WCF-ServiceHost hole.
Und im normale Message-Loging seh ich absolut keine Nachrichten und ich hab extra eine "LargeData" Property in meinen DataContract eingefügt, in dem ich relativ lange Strings erzeuge.

Mach ich da irgendwelche Einstellungsfehler in den Programmen?