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 t0ms3n
Thema: [Erledigt] WebDeploy / WebDeploy Package schlägt fehl wegen derselben Projektsammlung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Erledigt, eine Drittanbieter DLL, welche von einem Projekt expliziert mitgeliefert wird, stand auf "Copy Always". Anscheinend wurde eine andere Version bereits mitgeliefert, sodass dies zu Konflikten geführt hat.

"Copy if newer" hat jedenfalls geholfen. Nun mal noch schauen welche Versionskonflikte dort auftreten.

Thema: [Erledigt] WebDeploy / WebDeploy Package schlägt fehl wegen derselben Projektsammlung
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich habe eine ASP.NET Core Applikation. Diese habe ich bisher über WebDeploy bereitgestellt (VS2017). Dies schlägt nun seit Freitag plötzlich aus mir nicht erkennbaren Gründen fehl.

Fehler
4>------ Publish started: Project: .........., Configuration: Debug Any CPU ------
Alle Buildübermittlungen in einem Build müssen Projektinstanzen aus derselben Projektsammlung verwenden.

4>Publish failed due to build errors. Check the error list for more details.
========== Build: 3 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
========== Publish: 0 succeeded, 1 failed, 0 skipped ==========


Probiert habe ich:
- Clean / Rebuild
- Löschen von bin und obj
- Output verbosity mit Diagnostic hat mir auch keine weiteren Infos geliefert
- WebDeploy Package anstelle von WebDeploy

Lokal kann ich die Applikation problemlos builden und auch starten. Eine andere ASP.NET Core Applikation lässt sich problemlos deployen.

Thema: Array aus einer Hashtable auslesen
Am im Forum: Grundlagen von C#

DictionaryEntry ist eben so definiert, dass Key und Value vom Typ object sind.
Du kannst also entsprechend casten oder du nutzt einen geeigneteren Parametertypen wie z.B. KeyValuePair<string, Point[]> und statt der Hashtable ein Dictionary<string,Point[]>

Thema: ReportViewer - Leere Felder nicht anzeigen
Am im Forum: Rund um die Programmierung

Jede Spalte/Zeile/Zelle hat eine Visibility (?) Eigenschaft. Dort kannst Du eine Expression einfügen, welche entsprechend das Feld ein-oder ausblendet.

Thema: EntityFramework Core - MySql.Data.EntityFrameworkCore - DbUpdateConcurrencyException
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Die Exception sagt doch mehr als nur "DbUpdateConcurrancyException". Was steht denn drin?

Thema: DataGridView Export vor dem Exportieren nochmal bearbeiten
Am im Forum: Rund um die Programmierung

Nun du musst also
1. deine Daten sammeln
2. nach der Auftragsnummer gruppieren
3. die Daten jeder Gruppe ausgeben
4. zwischen jeder Gruppe einen Zeilenumbruch erzeugen

Thema: Blurayplayer mit Windows selber bauen
Am im Forum: Smalltalk

Schönes Projekt, viel Spaß und Erfolg dabei!

Thema: ReportViewer Report durch Button-Click aktualisieren, funktioniert nur nach Neustart
Am im Forum: GUI: WPF und XAML

Wann und wie aktualisiert du den Bericht denn?

Thema: Wie kann man eine foreach-Schleife verkürzen?
Am im Forum: Grundlagen von C#

Zitat von Abt

 retVal.Artikel = this.Artikel.Select(artikel.GetExportObject() as ModelExportArtikel).ToList();

Unter der Vorraussetzung, dass die Collection leer ist.

Thema: Effizienter Weg um Formulare/Berichte zu generieren
Am im Forum: Office-Technologien

Das war ja auch ein Projekt, welches auf dem vorherigen aufsetzt. (kenne ich selber nicht)
Da dieses aber anscheinend die erwähnte Free Spire.XLS verwendet, hilft dir dies dann nicht, wenn dies dort fehlerhaft ist.

Thema: Effizienter Weg um Formulare/Berichte zu generieren
Am im Forum: Office-Technologien

https://epplusexcel.codeplex.com/ mal geschaut? Ansonsten kannst Du natürlich zum Speichern weiterhin Interop nutzen, sollte insgesamt dennoch schneller sein.

Thema: Effizienter Weg um Formulare/Berichte zu generieren
Am im Forum: Office-Technologien

Du kannst ggf. Open XML nutzen. Ich habe zuletzt EPPlus genutzt und damit gute Erfahrungen gemacht.

Thema: Koordinaten nach ihrem Abstand zueinander aber ich richtiger Richtung sortieren
Am im Forum: Grafik und Sound

In deinem Eingangspost sagst Du, dass es bereits eine Liste von Koordinaten gibt. Wieso postest Du dann nun Code, der mit dem Bild arbeitet!?

Ein passendes Vorgehen, wenn Du eine Richtung haben möchtest, hat OlafSt ja bereits genannt.

Thema: Koordinaten nach ihrem Abstand zueinander aber ich richtiger Richtung sortieren
Am im Forum: Grafik und Sound

Also anhand der Skizze könnte ich nun nicht erkennen, dass der letzte Punkt eine andere X-Koordinate hat :)

Bevor Du dir Gedanken über die Geschwindigkeit machst, sollte erstmal das korrekte Ergebnis raus kommen.

Thema: Schulungsanbieter im Bereich ASP.NET (Core) WebApi
Am im Forum: Smalltalk

Danke für eure Antworten.

Mit einem freien Trainer haben wir vor einiger Zeit nicht so gute Erfahrungen gemacht, wobei es hier eben sicherlich genauso wie mit den fertigen Dienstleistern ist. Man kann Glück mit dem Trainer haben oder eben aber auch nicht.

Über welchen Weg findet ihr entsprechende freie Trainer, wenn ihr es nicht gerade selber seid?

Tutorials, Videos und Artikel/Blogs sind natürlich gut.
Ich finde jedoch, dass es gerade beim Einstieg wichtig ist, dass man auch konkrete Fragen zur Praxis anbringen kann. Vor allem wenn man sich vorher entsprechend schon mit der Thematik auseinander setzt, ergeben sich diese ja meist zwangsläufig.

Thema: Schulungsanbieter im Bereich ASP.NET (Core) WebApi
Am im Forum: Smalltalk

Hallo zusammen,

wir sind derzeit auf der Suche nach einer Schulung im Bereich der Entwicklung von Restful Schnittstellen mit .NET. Die Teilnehmer bringen dabei wenig bis keine Erfahrung im Web-Bereich mit. Würdet ihr darauf achten, dass diese bereits auf ASP.NET Core basiert?

Ich habe dazu folgende Schulungen gefunden, welche auf den ersten Blick das Themengebiet sinnvoll abdecken:

http://www.gfu.net/schulung-aspnet-web-api-einstieg-praxis-s1621.html

https://www.ppedv.de/Schulung/Kurse/ASPNET-WebAPI-Http-REST-Hypermedia-MVC-VisualStudio-CSharp-Seminar-Training

http://www.dotnet-akademie.de/Seminare/ASPNET_WebAPI_REST_Services_mit_ASPNET_Core/8873

Kann jemand etwas zu den Schulungsanbietern sagen?
Hat ggf. jemand sogar bereits eine dieser Schulungen besucht?
Kann jemand eine Schulung für diese Thema von einem anderen Anbieter empfehlen?

Viele Dank
t0ms3n

Thema: Inhalte speichern bei Seitenwechsel
Am im Forum: GUI: WPF und XAML

Du erstellst nicht nur eine neue Instanz des Views sondern auch des ViewModels. Erstelle das ViewModel nur, wenn es noch nicht erstellt wurde.

Thema: Unity Spawnalgorithmus auf einem Planeten mit Kollisionsabfrage
Am im Forum: Grundlagen von C#

Dein Code bricht nie ab. Die foreach bewirkt genau nichts.
Das continue wirkt sich lediglich auf deine foreach aus.


private void SpawnObjects(GameObject planet, GameObject[] prefabs, float objectCount, float distanceToPlanet)
    {
            List<Bounds> objectsBoundsList = new List<Bounds>();
            for (int i = 0; i < objectCount; i++)
            {
                    GameObject spawnObject = prefabs[Random.Range(0, prefabs.Length)];
                    Vector3 spawnPos = calculator.CalcPointOnSphere(distanceToPlanet);
                    Bounds tempSpawnBounds = new Bounds(spawnPos, spawnObject.GetComponent<Renderer>().bounds.size);
                    bool isColliding = false;
                    foreach (Bounds objectBounds in objectsBoundsList)
                    {
                            if (objectBounds.Intersects(tempSpawnBounds))
                            {
                                    isColliding  =true;
                                    break;
                            }
                    }
                    if(isColliding)
                         continue;

                    GameObject objectToSpawn = (GameObject)Instantiate(spawnObject, spawnPos, Quaternion.identity);
                    objectsBoundsList.Add(new Bounds(objectToSpawn.transform.position, objectToSpawn.GetComponent<Renderer>().bounds.size));
            }
    }

Alternativ die ganze Foreach durch ein Any(...) ersetzen.

Thema: Feedback zu Ideen für ASP.NET Core Open Source Project
Am im Forum: Smalltalk

Hallo malignate,

damit hier überhaupt Feedback kommt :)
Ich muss gestehen ich kann mir das Ganze noch nicht so richtig vorstellen bzw. wie es auf der Applikationsseite aussieht.

Verstehe ich Projekt 1 so richtig?
Es werden verschiedene Module, für übliche Themen wie z.B. Lokalisierung, entwickelt. Für diese Module stellt dein Projekt eine entsprechende UI (welche der Verwender irgendwo hosted?) bereit, um z.B. die jeweiligen Übersetzungen vorzunehmen. Dazu reicht es wenn die gewünschte Applikation deinem Modul eine entsprechende Implementierung für eben diese CRUDs des Moduls liefert?

Thema: [gelöst] FormatException beim Behandeln und Konvertieren von Währungswerten
Am im Forum: Grundlagen von C#

Unabhängig davon ist preis_solo[0] nicht der Preis sondern "CHF". Das wird deine Formatexception erklären.

Thema: Tabellen auf Uneinstimmigkeiten vergleichen
Am im Forum: GUI: Windows-Forms

Wo genau liegt denn dein Problem? Das die Tabellen ein unterschiedliches Schema haben ist erstmal egal.

Du musst jedoch ein Kriterium haben, welches einen Datensatz in beiden Tabellen als zusammengehörig/gleich definiert.

Danach sollte es für dich problemlos möglich sein die Tabelle 3 zu erstellen. Dort sollte es dann ja reichen über beide Tabellen zu iterieren und prüfen ob der Datensatz bereits in Tabelle 3 vorhanden ist. Falls nicht hinzufügen, falls schon ggf. Datensatz anreichern oder eben einfach ignorieren.

Thema: Erstellung von Instanzen mit geteilten Abhängigkeiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das schließe ich nicht aus. Dann etwas mehr zur tatsächlichen Problemstellung die mich zu der Frage führte:

Ich habe in einer bestehender Implementierung einen Service ItemHistoryCollector. Dieser hat die Aufgabe Historieneinträge zu sammeln und zu speichern. Zusätzlich gibt es nun also einen weiteren Service welcher einen beliebigen Prozess abbildet z.B. Anlegen eines Auftrags. Im Rahmen dieser Prozesse sollen eben auch entsprechend Historieneinträge erzeugt werden, dazu würde der ItemHistoryCollector verwendet werden. Tatsächlich gespeichert werden sollen diese aber nur, wenn die Gesamtaktion erfolgreich war.

In der Theorie also: Beide nutzen die gleiche Datenbankverbindung, der Service zur Prozessabbildung beginnt eine Transaktion und Comitted diese eben acuh wieder.

Thema: Erstellung von Instanzen mit geteilten Abhängigkeiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hmmm, also doch mit Container als Beispiel. (im Beispiel genutzt SimpleInjector)


var container = new Container();
// Es ginge zwar auch über eine Hybrid LifeTime, aber wie dann der Service3 zu injecten ist, konnte ich noch nicht raus finden. Dafür ist ja ein entsprechendes container.BeginExecutionContextScope() notwendig.
//container.Options.DefaultScopedLifestyle = new ExecutionContextScopeLifestyle();
//container.Register<MyUnitOfWork>(Lifestyle.CreateHybrid(() => container.GetCurrentExecutionContextScope() != null, Lifestyle.Scoped, Lifestyle.Transient));

container.Register<MyUnitOfWork>();
container.Register<MyService1>();
container.Register<MyService2>();
container.Register<MyService3>( () => MyService3Factory.CreateNew(container.GetInstance<MyUnitOfWork>()));

var instance1 = container.GetInstance<MyService1>();
var instance2 = container.GetInstance<MyService2>();
var instance3 = container.GetInstance<MyService3>();

Zusätzlich noch die Factory für MyService3.


public static class MyService3Factory
{
    public static MyService3 CreateNew(MyUnitOfWork unitOfWork)
    {
        return  new MyService3(new MyService1(unitOfWork), new MyService2(unitOfWork));
    }
}

Thema: Erstellung von Instanzen mit geteilten Abhängigkeiten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

ich sitze gerade gedanklich vor dem Problem, wie die korrekte Injizierung von Abhängigkeiten aussieht, wenn diese Abhängigkeiten wiederum Abhängigkeiten teilen sollen. Das Stichwort hier ist sicherlich der Scope, aber dessen Verwendung ist mir nicht klar. Konkret geht es um die gemeinsame Nutzung einer Unit und somit auch die gemeinsame Verwendung von Transaktionen.

Als Beispiel könnten folgende Klassen dienen:


 class MyUnitOfWork
{
    public Guid Id { get; set; }

    public MyUnitOfWork()
    {
        Id = Guid.NewGuid();
    }
}

public class MyService1
{
    private readonly MyUnitOfWork _myUnitOfWork;

    public MyService1(MyUnitOfWork myUnitOfWork)
    {
        _myUnitOfWork = myUnitOfWork;
    }
}

public class MyService2
{
    private readonly MyUnitOfWork _myUnitOfWork;

    public MyService2(MyUnitOfWork myUnitOfWork)
    {
        _myUnitOfWork = myUnitOfWork;
    }
}

public class MyService3
{
    private readonly MyService1 _service1;
    private readonly MyService2 _service2;

    public MyService3(MyService1 service1, MyService2 service2)
    {
        _service1 = service1;
        _service2 = service2;
    }
}

Eine Verwendung ohne Container etc. könnte also so aussehen:


var instance1 = new MyService1(new MyUnitOfWork());
var instance2 = new MyService2(new MyUnitOfWork());

var sharedUnit = new MyUnitOfWork();
var instance3 = new MyService3(new MyService1(sharedUnit),  new MyService2(sharedUnit));

Allerdings muss hier der Aufrufende wissen, dass dies so sein muss, was letztlich auch nicht gewollt ist. Wie verbirgt MyService3 also, dass die beiden Abhängigkeiten eine geteilte Instanz von MyUnitOfWork haben sollen?

Edit: Titel von Verwendung von Scopes mit DI geändert. Denke dies ist ohne Bezug zu Container etc. erstmal treffender

Thema: Methode ausführen, wenn zwei von drei Bedingungen erfüllt sind
Am im Forum: Grundlagen von C#

Zitat von Coffeebean
Du kannst mit if/else beispielsweise prüfen, ob etwas passieren soll, wenn ein Kriterium wahr ist.


if(    (a ≥ 1 && a ≤ 30)
    && (b ≥ 15 && b ≤ 20)
    && (c ≥ 10 && c ≤ 30)
{ 
   XXX();
}

Thema: Spaltennamen verschlucken Unterstriche im DataGrid im UI
Am im Forum: GUI: WPF und XAML

Ist Windonws-Forms nicht falsch?

Ich würde glaube eher einen Converter nutzen. Alternativ kann auch das Template überschrieben werden. Am Bespiel eines Labels siehe hier: Underscores not displayed in WPF

Thema: Spaltennamen verschlucken Unterstriche im DataGrid im UI
Am im Forum: GUI: WPF und XAML

Du musst die Underscores escapen.
Das solltest Du durch doppelte Unterstriche erreichen.

Thema: Datagrid zeigt nicht alle Einträge an, wenn Spaltenkopf selektiert ist
Am im Forum: GUI: WPF und XAML

Nun, wenn Result.Shots leer ist, dann ist ja auch klar warum nichts angezeigt wird :).

Hast Du mal mit dem Debugger geschaut, was je nach Situation passiert?

Thema: Datagrid zeigt nicht alle Einträge an, wenn Spaltenkopf selektiert ist
Am im Forum: GUI: WPF und XAML

Klingt für mich nach einem Problem beim Zeichnen des Spalteninhalts. Greifst Du dort irgendwie ein?

Wie kommen denn die Daten ins Grid beim Aktualisieren? Arbeitest Du hier entsprechend mit Bindings und INotifyPropertyChanged?

Thema: [Review] Best Practices/Architektur anhand von Bespielprojekt (WebApi + OData + EF + SPA (Aurelia))
Am im Forum: Code-Reviews

Ich habe das Sample nun einmal überholt und einige der genannten Punkte einfließen lassen. Die SPA ist aktuell eher weniger lauffähig. Diese ist noch auf die DAL Entities ausgelegt und wirdim Laufe der Woche angepasst.

Grundsätzlich sollten folgende Punkte eingeflossen sein:
- Die API liefert nun nicht mehr die DAL-Entities aus. Stattdessen werden die QueryOptions soweit nötig ausgewertet und entsprechend an den BLL weitergereicht. Die Projektion zwischen DAL und BLL findet dort dann unter Verwendung von AutoMapper statt.
- Die Validation ist in den BLL übergegangen
- Die Interfaces/Modelles sind sofern sinnvoll in eigene Projekte (.Contracts) ausgelagert worden