Laden...
W
Benutzerbeschreibung

Forenbeiträge von witte Ingesamt 955 Beiträge

25.11.2016 - 11:02 Uhr

Frage 1: Was mache ich falsch? Du leidest am NIH-Syndrom. Nimm ne Lib wie Mahapps.Metro.

22.11.2016 - 18:14 Uhr

ForegroundWorker?

Mit welcher Technologie liest du die Exceldateien ein? Vllt unterstützt diese asynchrones Lesen.

07.11.2016 - 10:25 Uhr

Hi,
es bringt nichts Kaffeesatz zu lesen. Verwende einen memprofiler wie es MrSparkle schon empfohlen hat.

25.10.2016 - 10:57 Uhr

Das Problem ist, gelöschte Datensätze aus dem Produktionssystem zu erkennen. Da habe ich das Problem, das möglichst schnell durchlaufen zu lassen. Dann lösche sie doch nicht sondern setze nur ein Flag dass sie gelöscht sind. Oder kopiere sie in eine andere Tabelle.

24.10.2016 - 13:21 Uhr

Hallo,
noch zwei Sachen:
* mit TPL Dataflow hast du eine Bibliothek die das Piplining (Producer/Consumer-Pattern) umsetzt und dabei Rufos "realen Weltausschnitt" berücksichtigt. (es arbeitet wie ein Fließbandsystem: z.B. ein Fließband stellt die Daten von der Platte bereit und gibt es an n verschiedenen Workers weiter, deren Ergebnisse werden in einer Senke gesammelt)
* ich würde zu allererst versuchen algorithmisch zu optimieren, vllt die Teillogs zu sortieren und dann geeignet zusammenzuführen. Es gibt viele Algorithmen die in der Lage sind verschiedene sortierte Listen effizient zusammenzufügen.

30.09.2016 - 11:22 Uhr

@tASven: Bearbeite deinen Link nochmal, da ist ein HTML-Break drin.

29.09.2016 - 11:25 Uhr

... und hast du mal einen Textbasierten Anfrageplan? Hast du mal einn Admin das Leistungsverhalten der Maschine bei der Abfrage prüfen lassen?

27.09.2016 - 15:09 Uhr

Hi,
das ergibt keinen Sinn. Du gibst in A eine Liste<B> raus aber die Konsumenten dürfen B nicht kennen. Du must dich schon entscheiden.

26.09.2016 - 11:57 Uhr

Hi,

Mache es anders rum und beschreibe mal was du vorhast. Es gibt z.B. das wichtige Konzept der Tasks und verschiedene Pattern dazu (z.B. Pipelining). Hängt davon ab was du machen willst.

13.09.2016 - 16:46 Uhr

Allgemein kann man auch mal unter Domänenspezifische Sprache nachlesen. Da gibt es auch Beispiele solcher Systeme.

07.09.2016 - 10:28 Uhr

Du müsstest doch eine Klasse haben (die nun Klasse oder Stunde o.ä. heisst)


public class Klasse
{
  public String Name { get; set; }
  public String Datum { get; set; }
  public String Art { get; set; }
  public String Fach { get; set; }
  public String Vertreter { get; set; }
  public String Stunde { get; set; }
  public String Raum { get; set; }
  
  public DateTime? ParseDatum 
  { 
     //hier das gelesene Datum in Datntyp DateTime wandeln
     get { return DateTime.Parse(Datum); }
  }

  public void WriteFile(String filename)
  {
      // hier Datei erzeugen und Properties reinschreiben
  }
}

Dann kannst du über das Array iterieren, jeweils den Dateinamen bilden und WriteFile aufrufen. Wenn alle Klassen desselben Namens in eine Datei soll, dann per Linq nach dem Datum gruppieren.

07.09.2016 - 10:14 Uhr

Wenn mehrere Methoden dieselben Werte (ressourcensparsam) auslesen sollen kann man sich auch mal mit dem Proxy-Pattern beschäftigen.

06.09.2016 - 11:18 Uhr

Ich würde in dem Hauptobjekt die Referenzen nicht per String oder int verweisen sondern direkt die Objekte als Member einbinden:


public class MainItem : VMBase
{
    private int _id;
    private string _name;
    private double _price;
    private ILookup _iLookup;
    private SLookup _sLookup;

    public int Id {
        get { return _id; }
        set { SetProperty(ref _id, value); }
    }
    public string Name {
        get { return _name; }
        set { SetProperty(ref _name, value); }
    }
    public double Price
    {
        get { return _price; }
        set { SetProperty(ref _price, value); }
    }
    public ILookupId ILookup
    {
        get { return _iLookup; }
        set { SetProperty(ref _iLookup, value); }
    }
    public SLookup SLookupId
    {
        get { return _sLookup; }
        set { SetProperty(ref _sLookup, value); }
    }
}

Dann in den Comboboxen nicht per SelectedValue sondern per SelectedItem referenzieren. Du hast jetzt ein minimales Beispielprojekt und kannst das mal testen. Es ist sowieso besser zu den Children direkt navigieren zu können als jedesmal ein Lookup durchführen zu müssen.

05.09.2016 - 13:43 Uhr

Hallo,

ich habe dein xaml mal etwas aufgeräumt, es funktioniert wenn nicht zwei verschiedene DataContexts verwendet werden.


<UserControl x:Class="UCWechsel_XML.DataUC"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:UCWechsel_XML"
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid>
        <Grid Background="LightGoldenrodYellow">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*"/>
                <ColumnDefinition Width="3*"/>
            </Grid.ColumnDefinitions>
            <Border BorderBrush="DarkGreen" BorderThickness="1" Margin="5">
                <StackPanel>
                    <Label Content="Alle Sätze" />
                    <ListBox ItemsSource="{Binding AllMainItems}"
                     SelectedItem="{Binding CurrentMainItem}"
                     DisplayMemberPath="Name"
                     IsSynchronizedWithCurrentItem="True" />
                </StackPanel>
            </Border>
            <Border Grid.Column="1" BorderBrush="DarkGreen" BorderThickness="1" Margin="5">
                <StackPanel>
                    <Label Content="Details" />
                    <Grid  >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                            <RowDefinition Height="Auto" />
                        </Grid.RowDefinitions>
                        <Label Content="SLookup" />
                        <ComboBox Grid.Column="1" 
                                  ItemsSource="{Binding AllSLookups}"
                                  DisplayMemberPath="Name"
                                  SelectedValuePath="Id"
                                  SelectedValue="{Binding CurrentMainItem.SLookupId}" VerticalContentAlignment="Center" />
                        <Label Grid.Row="1" Content="ILookup" />
                        <ComboBox Grid.Row="1" Grid.Column="1" 
                                  ItemsSource="{Binding AllILookups}"
                                  DisplayMemberPath="Name"
                                  SelectedValuePath="Id"
                                  SelectedValue="{Binding CurrentMainItem.ILookupId}" VerticalContentAlignment="Center" />
                        <Label Grid.Row="2" Content="Name" />
                        <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding CurrentMainItem.Name}" VerticalContentAlignment="Center" />
                        <Label Grid.Row="3" Content="Price" />
                        <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding CurrentMainItem.Price}" VerticalContentAlignment="Center" />
                        <TextBlock Grid.Row="4" Text="ID" Margin="0,3" Padding="5" />
                        <TextBlock Grid.Row="4" Grid.Column="1" Text="{Binding CurrentMainItem.Id}" Margin="0,3" VerticalAlignment="Center"/>
                    </Grid>
                </StackPanel>
            </Border>
        </Grid>
    </Grid>
</UserControl>

02.09.2016 - 11:08 Uhr

Ich führe das Laden der DataTable und Verarbeiten in einem anderen Thread aus Die GUI darf nur mit einen GUI-Thread angefasst werden, stell das erst einmal sicher.

24.08.2016 - 10:55 Uhr

Es gibt verschiedene Addons zum EF, z.B. efbulkinsert

18.08.2016 - 14:33 Uhr

Hi
Du könntest alle Schlüssel einer Datenbank um einen konstanten Betrag erhöhen, also zu allen Schlüsselwerten 100000 addieren.

12.08.2016 - 18:07 Uhr

Du könntest ein LieferungAutoReportModel bauen welches die Daten einer Lieferung und eines Autos dieser Lieferung aufnimmt (hat eine Lieferung drei Autos sind es eben drei Objekte mit redundanten Lieferungsinformationen). Dann im Bericht nach der Lieferung gruppieren.

11.08.2016 - 10:31 Uhr

Könnte man auch so lösen dass der BL-Service wenn er erfolgreich seine Aufgabe erledigt hat (Autrag angelegt usw) ein History-Objekt daraus erzeugt und dieses in ein Eventsystem/Message Bus o.ä. an den History-Service übergibt und dieser das dann extra wegspeichert. Dann fällt diese extreme Kopplung der Services weg.

10.08.2016 - 12:21 Uhr

MyService3 müsste ein Uow injiziert bekommen und diesen an den beiden Subservices weiterreichen. Besser wäre Abts Vorschlag mit DIC und geeigneten Lifestyles der injizierten Objekte.

19.07.2016 - 14:08 Uhr

Ansonsten kontrollier zB mit Fiddler, was der Browser anders macht als Dein Webclient.

11.07.2016 - 12:30 Uhr

Hallo,

* beschäftige dich mal mi dem generischen Repository-Pattern
* mit Tools wie Automapper kannst du zwischen Modell- und Persistenzobjekt vermitteln
* ich würde nicht eine so extreme DB-NF erzwingen. Es gibt keine Gemeinsamkeiten / Vorteile dass zwei Personen die Matthias heissen zusammengefasst werden sollten. Verwende eine passende NF die gut zwischen Performanze und Persistenz liegt.

06.07.2016 - 09:37 Uhr

Wenn du OOP lernen willst empfehle ich dir das OOP-Buch.

23.06.2016 - 10:04 Uhr

* Client sollte Publisher heissen
* warum eigentlich keine Events?

15.06.2016 - 13:52 Uhr

Hi,

wenn die Sätze sortiert sind kannst du doch einfach eine Binäre Suche machen.
Warum eigentlich so ein exotisches Format?

10.06.2016 - 16:50 Uhr

Hi,
bei mir funktioniert es. Was besonderes eingestellt?

07.06.2016 - 11:14 Uhr

Was willst du mit dem Enum eigentlich erreichen?

03.06.2016 - 11:26 Uhr

Du könntest nochmal schauen ob die C:\Windows\Fonts\Code39-hoch-Logitogo.ttf binär identisch ist mit denen die auf anderen Rechnern installiert sind.

02.06.2016 - 11:04 Uhr

Hi,
ich würde weiter mit Differentialdiagnostik machen... Vllt mal einen anderen Font nehmen, wie der erste Test mit Arial.

27.05.2016 - 15:09 Uhr

Also ich würde dann die Prozesse die die Software abarbeitet darstellen und als Modelliersprache würde ich BPMN verwenden das kapiert eigentlich jeder.

23.05.2016 - 10:35 Uhr

Du kannst dir auch mal die FileSystemWatcher Class anschauen, dann brauchst du nicht zu pollen.

18.05.2016 - 14:48 Uhr

Hi,
hast du zur Differentialdiagnostik mal deine CustomControls mit normalen Bindings getestet, welche also nicht zur Laufzeit gesetzt werden?

13.05.2016 - 13:12 Uhr

Hi,
ich sehe das auch nicht als so schwierig an. Also ich habe häufiger Baumstrukturen zu implementieren, z.b. Standort -> Maschine -> Baugruppe. Das wird dann aus dem Storage geholt, in Modellobjekte gewandelt und als Kompositum weitergereicht. Dann werden daraus rekursiv ViewModels gebildet, ein VM für ein M. Die VM enthalten das Modell das sie repräsentieren und stellen dessen Eigenschaften dar. Die ViewModels werden dann als HierarchicalDataTemplate an das TreeView gebuunden. Wenn NotifyPropertyChanged korrekt implementiert wurde sollten die Baumknoten sich aktualisieren wenn das Modell beabreitet wird.
Das Umsetzen von Knoten habe ich mit einer Drag-Droplib realisiert, die Modellknoten (da sie ja am ViewModel hängen) können während des Draggens ermitteln ob sie Dropziel sein dürfen und das entsprechend anzeigen. Ebenfalls das Umordnen der Knoten können die Modellobjekte "intern" klären, um das Baum mit den Modellklassen zu synchronisieren kann man einfach diesen neu aufbauen und darstellen. Man muss sich halt nur den geöffneten Knioten merken.

09.05.2016 - 10:21 Uhr

Hi,
spiel damit mal rum


<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication1"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.Resources>
            <Canvas Width="48" Height="48" Clip="F1 M 0,0L 48,0L 48,48L 0,48L 0,0" UseLayoutRounding="False" x:Key="itemImgPath">
                <Path x:Name="itemImgPath"
                        HorizontalAlignment="Center"
                        VerticalAlignment="Center"
                        Data="m 23.635,37.411 c 0.76,-0.238 1.565,-0.392 2.314,-0.492 L 25.23,35.987 C 17.946,34.472 12.456,28.006 12.456,20.279 c 0,-8.845 7.198,-16.043 16.045,-16.043 8.847,0 16.042,7.197 16.042,16.043 0,1.92 -0.356,3.755 -0.978,5.463 0.535,0.666 1.072,1.377 1.564,2.095 1.05,-2.306 1.649,-4.859 1.649,-7.558 C 46.779,10.186 38.595,2 28.501,2 c -10.096,0 -18.28,8.186 -18.28,18.279 0,8.133 5.316,15.019 12.66,17.392 0.242,-0.089 0.489,-0.177 0.754,-0.26 z m 26.517,0.3 c -0.179,-0.242 -0.447,-0.403 -0.745,-0.445 -0.302,-0.038 -0.602,0.038 -0.84,0.223 l -0.721,0.557 c -0.526,-1.676 -1.584,-4.861 -2.721,-7.247 -1.576,-3.304 -5.938,-7.7 -5.938,-7.7 0,0 -0.943,-1.223 -2.131,-1.223 -0.366,0 -0.754,0.116 -1.145,0.416 -1.658,1.279 -0.058,3.361 -0.05,3.371 -0.006,-0.008 -0.947,-1.223 -2.131,-1.223 -0.366,0 -0.754,0.115 -1.146,0.417 -1.657,1.277 -0.057,3.359 -0.049,3.37 -0.006,-0.008 -0.978,-1.263 -2.137,-1.263 -0.333,0 -0.682,0.103 -1.028,0.37 -1.551,1.198 -0.16,3.455 -0.16,3.455 l -5.102,-6.612 c 0,0 -1.531,-1.986 -3.123,-1.986 -0.383,0 -0.769,0.114 -1.138,0.399 -1.903,1.47 0.449,4.526 0.449,4.526 L 28.9,38.264 c 0,0 -0.093,-0.003 -0.258,-0.003 -0.718,0 -2.806,0.052 -4.559,0.599 -3.8,1.193 -4.464,2.791 -3.778,4.467 0.153,0.377 0.669,0.518 1.397,0.518 2.112,0 6.021,-1.176 8.163,-1.176 0.148,0 0.287,0.006 0.418,0.018 2.618,0.24 5.503,2.427 6.889,3.607 l -0.404,0.312 c -0.48,0.371 -0.577,1.057 -0.218,1.546 l 5.58,7.607 1.803,-1.322 -4.935,-6.729 10.029,-7.75 4.905,6.683 1.803,-1.324 -5.583,-7.606 z"
                        Fill="Black" />
            </Canvas>
        </Grid.Resources> 
        <Border Background="Moccasin" HorizontalAlignment="Center" Width="400" Height="282">
            <Border.OpacityMask>
                <VisualBrush Visual="{StaticResource itemImgPath}" Stretch="Fill" />   
            </Border.OpacityMask>
        </Border>
    </Grid>
</Window>

20.04.2016 - 13:44 Uhr

Es könnte vllt daran liegen dass es aufgrund des Isolationslevels Serializable zu einer Verklemmung der Transaktionen auf dem Server kommt. Funktioniert es denn mit einem geringerem Level?

19.04.2016 - 11:10 Uhr
if (GetObject()?.DoSomething()?.DoSomethingElse()?.Bla() ?? false)  
    Irgendwas();  

Wobei das schon als Verletzung des Gesetzes von Demeter angesehen werden kann.

19.04.2016 - 10:53 Uhr

Du solltest vorher abprüfen ob Javascript aktiviert ist damit die Validation klappt.

16.03.2016 - 15:09 Uhr

Hallo,
bei Castle.Windsor wird der IHttpControllerActivator implementiert, so dass der DIC die Erstellung des Controllers übernimmt. Dependency Injection in ASP.NET Web API with Castle Windsor. Möglicherweise geht das auch für Unity. Dependency Injection in ASP.NET Web API 2

26.02.2016 - 10:12 Uhr

Es gibt zig Libs für dieses Problem.

17.02.2016 - 18:06 Uhr

Hi,

Du kannst eigene DependencyProperties definieren,
z.B. scottlogic erklärt

12.02.2016 - 18:31 Uhr

Hallo
* wenn du ViewModels an die OberservableCollection gebunden hast könntest du ein leeres Dummy-ViewModel-Objekt zur Collection packen an der du das leere Objekt erkennen kannst wenn man es auswählt
* in der Lib MahApps.Metro gibt es dafür eine Klasse TextBoxHelper mit einem AttachedProperty ClearTextButtonProperty. Man kann damit eine ComboBox dekorieren, es erscheint ein kleiner Clear-Button auf der ComboBox, der den gewählten Eintrag entfernt. Möglicherweise kannst du etwas Gleichwertiges für deine App runterladen und verwenden.

23.01.2016 - 14:38 Uhr

... noch ein Tipp: Medium sollte IEquatable<Medium> implementieren damit das Framework damit arbeiten kann.

17.01.2016 - 22:42 Uhr

Ja, wahrscheinlich bin ich wieder bei meinem alten Lieblings-problem angelangt: Alles perfekt machen wollen und dabei das Ziel aus den Augen verlieren 😄

13.01.2016 - 12:22 Uhr

Hallo,

was spricht eigentlich dagegen eine zusätzliche Tabelle Rechnungen anzulegen und bei Vertragsabschluss gleich die zukünftigen Rechnungen mit zu erstellen?

11.01.2016 - 15:49 Uhr

... und hier ist noch eine Erweiterungsmethode SendAsync von Stephen Toub die asynchron warten kann.

11.01.2016 - 15:35 Uhr

Ich kann zB kein Dispatcher verwenden, wenn ich das ViewModel eben nicht nur in WPF verwende, sondern zB. auch in einer anderen Technologie.
Die Art und Weise des Dispatchers ist doch eine harte Bindung an WPF und untergräbt in meinen Augen der Sinn und Zweck eines MVVM ein dieser Stelle und in diesem Bezug massiv. Hi,
dafür gibt es den SynchronizationContext der den jeweiligen GUI-Kontext abstrahiert.