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 [email protected]
Thema: Wie baut man komplexe JOIN-Abfragen in einer Microservice-Architektur?
Am im Forum: Rund um die Programmierung

Hi,

Vielen Dank...

Das würde dann bedeuten, dass man (ohne Search oder Data Lake) alle für eine Abfrage notwendigen Werte redundant speichern und gegebenenfalls über Messaging/Events synchronisieren muss um eine performante Abfrage zu ermöglichen.

Schön langsam wird ein Schuh draus... :)

lg

Thema: Wie baut man komplexe JOIN-Abfragen in einer Microservice-Architektur?
Am im Forum: Rund um die Programmierung

Hi...

Ich beschäftige mich gerade ein bisschen mit Microservices.

Wen man die Services komplett entkoppelt, dann gibt es für jedes Service eine eigene Datenbank (eventuell sogar eigene Server).

Nehmen wir mal an es gibt Services für:

CustomerManagement
OrderManagement
ProductManagement


Normale einfache CRUD-Operationen sind kein Problem.
Wo ich gerade häng sind komplexere Abfragen. In den Beispielen im Web wird sowas leider nicht behandelt.

Vom Datenbank-Schema her wäre das dann ungefähr so:

Customer hat Orders
Order hat OrderItems
OrderItem hat Product


Wie behandle ich in entkoppelten Microservices nun Abragen die "JOINS" über mehrer Tabellen benötigen würden.

z.B.
alle Kunden die in den letzten 4 Wochen Artikel der Marke "XY" gekauft haben

Wie löst man sowas wenn man die Tabellen eben nicht in einer Datenbank haben möchte.

lg
[email protected]

Thema: Wie geht man mit Paketmanagement auf dem Client/Server um? Welche Technologien nutzt man?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielen Dank für eure ausführlichen Antworten.

Ich denke ich muss mich was asp.net core bzw. das client-seitige Development betrifft noch detaillierter einlesen.

Hab zwar große Web-Applikationen mit Asp.net MVC / Knockout / Typescript entwickelt aber das ist jetzt doch ein größerer Schritt.

Zitat
Bower ist nahezu tot.
Da frag ich mich aber dann warum das asp.net - Team gerade Bower als quasi Standard für das Client-Package-Management hernimmt.

lg

Thema: Wie geht man mit Paketmanagement auf dem Client/Server um? Welche Technologien nutzt man?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hi...

ich wollte heute für einen Prototypen ein asp.net core 1.1 Projekt einrichten.

Technologien bzw. Libs die ich verwenden wollte:
asp.net core
typescript
jquery
knockout

Schön langsam bin ich am verzweifeln.

nuget nur noch für csharp-libs
bower für die client-libs (da muss man dann aber vorerst mal "git für windows" installieren damit überhaupt was funktioniert)

Typescript alleine geht ja noch einigermaßen (per tsconfig.json).
Aber das Handling der Definitions-Files für externe Libs (knockout, jquery) ist Wahnsinn. In asp.net-Projekten war es so, dass per Nuget alle Libs und auch die Definitionsfiles reingeholt wurden. TS-File erstellt und los geht's.

Jetzt braucht man erst mal NPM darüber muss man "Typings" installieren und darüber kann man sich dann die Definitions-Files holen (per CMD).

Kommt es nur mir so vor oder wurde hier mit VS2017/asp.net core bzw. dem Tooling hier alles verschlimmbessert?


lg

Thema: Suche MetroUI Dashboard Control ähnlich dem des Azure Portals
Am im Forum: Web-Technologien

Hi...

schau dir mal gridster.js http://dsmorse.github.io/gridster.js/ oder aber gridstack.js https://troolee.github.io/gridstack.js/ an.

lg

Thema: Versch. Tasks in untersch. Abständen laufen lassen und von aussen starten/stoppen können
Am im Forum: Grundlagen von C#

Hi...

Schau dir mal Quarz.net an http://www.quartz-scheduler.net

Ist ein Task/Job - Scheduler der eigentlich genau das kann was du versuchst selber zu programmieren.

lg

Thema: Linq to SQL Cross Referenz Table
Am im Forum: Datentechnologien

Hi...

dazu gibt es im Web viele Beispiele.
Such einfach mal nach "Linq2sql left join".

lg

Thema: RDLC - Rendering Service
Am im Forum: Projekte

Hi...

Rendering sollte jetzt funktionieren (Settings waren noch auf local gedreht...).

Den Reportviewer der SSRS gibt's ja momentan nur für Winforms und Webform. Es gibt von MS nicht mal eine richtige MVC-Version. Bedeutet, man braucht immer eine Infrastruktur und Technologie die diesen Reportviewer unterstütz. Und genau das hat mich gestört.

Ob man dieses Service dann von einer ASP.net MVC-App, UWP, WPF oder einer nativen IOS oder Andriod-App aus aufruft ist eigentlich egal. Also auch ob der Aufruf von einem Server oder Client kommt. Das Service erhält nur die Report-Definition, die Daten und liefert das Ergebnis zurück. Auch was man damit dann macht ist egal (per Mail versenden, im FS speichern, Anzeigen, Downloaden,...)

Server-Reports über MSSQL wäre natürlich eine Option aber was ist wenn man mit MongoDB oder DocumentDB arbeitet und keinen SQL-Server mit Reporting-Services zur Verfügung hat oder haben kann. Dann wird's schon schwieriger...

Thema: RDLC - Rendering Service
Am im Forum: Projekte

Hi...

Ich möchte hier ein kleines Side-Projekt vorstellen.
Da es sich um eine interne Entwicklung handelt kann ich (noch) nicht fix sagen ob is es public machen darf, deswegen erstmal im Entwicklungs-Forum und nicht in Projekte.

Wir verwenden den Reportviewer und RDLC-Berichte für unsere PDF, Druck und Export-Aufgaben. Da wir gerne mit Asp.net core und Azure App Services arbeiten möchten und z.B. bei Azure App Services der Reportviewer nicht funktioniert (PDF-Erstellung) hab ich etwas experimentiert und ein RDLC-Rendering Service ist dabei rausgekommen.

Im Groben ein Reportviewer hinter einer API. Die API bekommt das RDLC-XML, Daten, Parameter, Settings und man erhält als Ergebnis den fertig generierten Report (PDF, Excel, Word, Tiff). Es ist damit egal ob wir in Azure hosten oder welche Technologie wir verwenden. Unsere PHP-Devs habens auch schon per PHP angesprochen. Es ist somit auch die Plattform egal (.net, PHP, Python, Javascript, Java,...) man muss "lediglich" ein RDLC-Dokument erstellen können.

Ich hab mal einen kleinen Test-Client online gestellt.http://rdlcservice.azurewebsites.net/
Damit könnt ihr ein wenig rumprobieren.

Auch wens derzeit noch keinen Source-Code gibt würd ich mich über allgemeines Feedback zu diesem Service freuen.

lg

Thema: Problem mit XmlSerializer, Xml korrupt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi...

nach weiteren 1,5 Stunden bin ich der Lösung bzw. dem Problem auf der Spur.

Das Problem liegt so wie es aussieht NICHT am XmlSerializer.
Ich habe in einen MemoryStream serealisiert und diesen dann gleich an ein Webservice gesendet.

Wenn ich das XML mit einem FileStream auf die Platte schreiben lasse passt das XML und es hat keine Fehler. Es drüfte also nur am MemoryStream liegen.

lg

Thema: Problem mit XmlSerializer, Xml korrupt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi...

ich hab aktuell ein Problem mit dem XmlSerializer und ich komm einfach nicht dahinter woran das liegt.

Ich verwende den XmlSerializer um aus einem Objekt mit Unterobjekten ein XML zu generieren.

Das hat bis vor kurzem problemlos funktioniert.

Seit 2 Tagen ist es aber so, dass das generierte XML korrupt ist.
Es wurde aber nichts geändert.

Ab einer gewissen Größe/Länge des XML-Dokuments zerschießt es das XML, es fehlt mitten drin einfach ein großer Teil.

Das wäre ein Bestandteil des XML:

 <Message>
    <MessageID>123</MessageID>
    <OperationType>Update</OperationType>
    <Product>
      <SKU>4711</SKU>
      <StandardProductID>
        <Type>EAN</Type>
        <Value>22345124</Value>
      </StandardProductID>
      <Condition>
        <ConditionType>New</ConditionType>
      </Condition>
      <DescriptionData>
        <Title>Artikel</Title>
        <Brand>marke</Brand>
        <Description>Beschreibungstext</Description>
        <Manufacturer>sembella</Manufacturer>
        <MfrPartNumber>23423434</MfrPartNumber>
      </DescriptionData>
      <ProductData>
        <Home>
          <ProductType>
            <FurnitureAndDecor />
          </ProductType>
        </Home>
      </ProductData>
    </Product>
  </Message>

Hier der fehlerhafte Teil:
  <Message>
    <MessageID>14</MessageID>
    <OperationType>PartialUpdate</OperationType>
    <Product>
      <SKU>2424234</SKU>
      <StandardProductID>
        <Type>EAN</Type>
        <Value>234214</Value>
      </StandardProductID>
      <Condition>
        <ConditionType>New</ConditionType>
      </Condition>
      <DescriptionData>
        <Title>artikel</Title>
        <Brand>marke</Brand>
        <Description>beschreibung
 </Description>
        <BulletPoint>bulletpint</BulletPoint>
       ...d.
Beschreibung vom einem weiteren Artikel</Description>
        <Manufacturer>marke</Manufacturer>
        <MfrPartNumber>21342341</MfrPartNumber>
      </DescriptionData>
      <ProductData>
        <Home>
          <ProductType>
            <FurnitureAndDecor />
          </ProductType>
        </Home>
      </ProductData>
    </Product>
  </Message>

Beim Bulletpoint Element sollten eigentlich noch weitere kommen und "Beschreibung von einem weiteren Artikel" kommt von einem Element dass duzende Elemente später kommt. Der Rest dazwischen ist einfach weg.

Ich hab schon probiert das XML ohne Daten, also mit "leeren" Objekten zu generieren mit dem selben Ergebnis. Es kann also nicht an irgendwelchen Sonderzeichen liegen.

Ich suche und probiere seit Stunden und komm auf keinen grünen Zweig.
Hatte das schon mal wer? Woran könnte das liegen?

THX,lg

Thema: Deserialisieren eines Json-Strings
Am im Forum: Web-Technologien

Zitat
json2csharp biete so eine Funktionalität an.

Visual Studio kann sowas auch.
JSON kopieren und dann Bearbeiten => Inhalte einfügen => JSON als Klassen einfügen

lg

Thema: Arbeiten im Sitzen oder Stehen, Standing Desk Erfahrung
Am im Forum: Smalltalk

Hi...

Wie ist euer Arbeitsplatz eingerichtet?
Arbeitet ihr im Sitzen (normaler Schreibtisch mit Sessel) oder im Stehen (Standing Desk) oder beides?

Da ich immer wieder Probleme mit Verspannungen im Rücken habe, bin ich am Überlegen ob nicht ein Standing Desk etwas Abhilfe schaffen würde.

lg

Thema: Eigener SQL Server einrichten incl. Hardware
Am im Forum: Smalltalk

Hi...

bei mir tuts auch das Dev-Notebook als Dev-SQL-Server. Läuft ein SQL Express drauf. Der muss aber nicht von Außen erreichbar sein.

Produktive Projekte würd ich nie selber (aus dem "Wohnzimmer") hosten.
Für ein paar Euros pro Monat gibst bei Hostern schon brauchbare Virtual-Server die alles bieten was man braucht.


Hier aber worauf ich noch achten würde:

- Internet-Provider haben gerne (zumindest in der Vergangenheit) in den AGB Klauseln drinnen die den Betrieb eines Servers verbieten.

- fixe IP vorhanden oder dynamische IP?

- Bandbreite für Down/Upload? Meistens ist die Bandbreite für den Upload um einiges niedriger. Was bedeuten würde dass der Server fürs Rausschicken der Daten auch um einiges länger braucht (Performance...)

Thema: Report mit mehreren Subreports
Am im Forum: GUI: WPF und XAML

H..

Soviel ich weiß kriegt der Subreport die Daten über einen Callback bzw. Event.
http://blogs.msdn.com/b/sqlforum/archive/2011/01/03/walkthrough-add-a-subreport-in-local-report-in-reportviewer.aspx

Bzw. google mal nach reportviewer subreport da gibt's sicherlich einiges an Anleitungen.

Thema: ASP.net MVC CQRS + eventsourcing
Am im Forum: Rund um die Programmierung

Zitat
oder ein SignalR Popup usw.

genau das meinte ich mit WebSocket-Verbindung.

Danke für das Feedback.

lg

Thema: ASP.net MVC CQRS + eventsourcing
Am im Forum: Rund um die Programmierung

Hi...

ich verstehe den Ablauf so (vielleicht ist da ja schon der Hund begraben).


Formular (Name, Strasse, Ort)
=> POST an APIController-Action
=> APIController-Action erstellt AddCommand und sendet ihn an CommandQueue
=> Service empfängt Message
=> Handler führt Command aus
=> Event wird an den EventQueue übergeben
=> usw... (event speichern, ReadModel aktualisieren, sagas....)


Validierung im Formular ist kein Problem, Validierung in der APIController-Action ist auch kein Problem, bei beiden kann ich ja sofort eine Response zurückliefern.

Wenn aber im Command die Validierung oder BL fehlschlägt, wie informiere ich dann den Client? Es gibt ja kein "return" bzw. keine direkte Verbindung zwischen Command und Client weil die Kommunikation über Messagebus läuft.

lg

Thema: ASP.net MVC CQRS + eventsourcing
Am im Forum: Rund um die Programmierung

Hi...

hat sich schon mal jemand eingehender mit CQRS und event sourcing bei asp.net mvc beschäftig?

Hab mir schon einiges an Posts und Videos dazu angesehen.

Ein paar Punkte sind mir aber noch unklar bzw. steig ich nicht dahinter wenn z.B. die "Kommunikation" über einen Service-Bus erfolgt.

- Validierung im Client, im API-Controller, im Command/BL?
- Wie kämen z.B. Validierungs oder BL-Exceptions zurück an den Client? Eine "Response" im herkömmlichen Sinn gibt's ja dann nicht mehr wenn das im Command/BL auftritt?
- Selbes Response-Problem bei "Erfolg" wenn z.B. der Client bei Erfolg noch etwas tun soll (Grid reloaden, Info-Message "erfolgreich..." ausgeben...). Muss man hier auf Websockets zurückgreifen?

lg

Thema: Architektur: Disconnected Services mit Message-Queue
Am im Forum: Rund um die Programmierung

Hi...

ich spiel mich grade mit (Micro)services und Message-Queues (im speziellen Azure Service Bus) und hätte eine Architekturfrage weil ich mir nicht ganz sicher bin was die "sauberste" Lösung ist.

Beispiel:

Ticket-Service (zuständig für CRUD-Operationen bei Tickets)
Notification-Service (zuständig für Senden von Email-Benachrichtigungen)


Über Ticket-Service wird nun eine neues Ticket erstellt und einem Benutzer zugewiesen. Das Ticket-Service sendet eine "neues-Ticket"-Message in den Notification-Queue.

Notification-Service empfängt die Message und soll an den Benutzer eine Email senden.


Nun gibt es meiner Meinung nach 2 Möglichkeiten:

- Alle für das Senden der Nachricht notwendigen Daten (Benutzer und Ticket-Infos) werden direkt in der Message übergeben.

- In der Message wird nur die Ticket-Id übergeben und das Notification-Service holt sich die notwendigen Daten vor dem Senden über z.B. eine Web-API die das Ticket-Service zur Verfügung stellt.


Welche Variante wäre die bessere?

lg

Thema: Web Api Dokumentation
Am im Forum: Web-Technologien

Hi....

schau dir mal Swagger bzw. Swashbuckle an.
https://github.com/domaindrivendev/Swashbuckle

lg

Thema: Azure Preview Portal Architektur
Am im Forum: Web-Technologien

Hi...

hat von euch schon mal wer versucht rauszufinden wie das neue Azure Portal funktioniert?

Also weniger wie das Layout ( Blades, Parts,...) gemacht wurde sondern die Shell darunter. Im Speziellen dass man eine Shell hat und die einzelnen Module aber sandboxed in einem Iframe laufen und per "postMessage" mit der Shell kommunizieren.

Es gibt zwar ein paar Blogs wo man rauslesen kann welche Technologien verwendet wurden (Knockout, Typescript,...) und wie es im ganz Groben läuft (z.B. postMessage) aber detaillierte Infos gibt's nicht.


lg

Thema: Xamarin VS 2015 - Android und IOS
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Broob,

und zu deiner zweiten Meldung, ja um eine IOS-App mit Xamarin zu erstellen benötigt man zwingend einen Mac der als Build-Host irgendwo unterm Schreibtisch rumrödelt.

Auf diesem läuft afaik auch der IOS-Emulator bzw. ist an diesem das IOS-Gerät angehängt um es auf der Hardware zu testen/debuggen.

lg

Thema: MSDN-Abo abgelaufen -> alte Keys exportieren
Am im Forum: Smalltalk

Hi...

Meiner Meinung nach kauft/bezahlt man nicht die Keys sondern den Zugang zu diesen. Und wenn dieser Zugang abgelaufen ist hat man dementsprechend auch keinen Zugang mehr zu den Keys, egal ob angefordert/verwendet oder nicht.

Lg

Thema: Arbeitsweise beim beruflichen Programmieren: akademisch vs. simple aber tut was es soll
Am im Forum: Smalltalk

Hi MrSparkle...

das ist so nicht richtig, es wurde und wird im Team darüber diskutiert.

Das Forum nutze ich um andere Meinungen dazu (zur Vorgehensweise nicht den Kollegen) zu bekommen.

lg

Thema: Arbeitsweise beim beruflichen Programmieren: akademisch vs. simple aber tut was es soll
Am im Forum: Smalltalk

Hi...

vielleicht hab ich die Situation am Anfang etwas zu drastisch beschrieben und zu viele persönliche Emotionen reingebracht.

Dass es eine passende Architektur benötigt und eine gewisse Komplexität sicher notwendig ist, ist mir klar und das wird auch so gemacht.

Dass man sich wie Coder007 schreibt in einem kleinen Projekt oder Prototypen wenn Zeit ist mal "austobt" ist auch kein Thema.

Aber ich finde eben dass "so einfach wie möglich und/aber auch (nur) so komplex wie notwendig" zu entwickeln besser ist als permanent so komplex wie möglich zu arbeiten.


lg

Thema: Arbeitsweise beim beruflichen Programmieren: akademisch vs. simple aber tut was es soll
Am im Forum: Smalltalk

Hi MrSparkle,

ich wollte keine Beurteilung meines Kollegen. Ich nur mal kurz dargestellt wie die Situation bei uns ist.

Die Frage war welche Arbeitsweise generell in anderen Firmen bevorzugt wird.

lg

Thema: Arbeitsweise beim beruflichen Programmieren: akademisch vs. simple aber tut was es soll
Am im Forum: Smalltalk

Hi...

bei uns ist grade eine "gut/schlecht" Diskussion im Gange bezüglich der Arbeitsweise der Entwickler.

Es gibt bei uns Entwickler die ihre Entwicklungen vom Aufbau und der Komplexität her relativ simple halten aber qualitativen, wartbaren und lesbaren Code liefern und die Entwicklungen tun genau das was sie sollen. Aufgaben werden daher relativ schnell erledigt und sie haben eine gute Produktivität.

Bei einem neuen Mitarbeiter ist es nun aber so, dass jedes noch so kleine Feature zu einer Masterarbeit mutiert. Es gibt im Web teilweise so "Spielchen" wo es darum geht z.B. "Hello World" auf die höhst aufwändigste Weise zu programmieren. Genauso arbeitet er im beruflichen Umfeld. Da entsteht statt einer einfachen Klasse gleich mal ein eigenes Assembly mit duzenden Klassen und dem Einsatz von jedem erdenklichen Entwurfsmuster. Die Produktivität im Vergleich zu den anderen Mitarbeitern ist daher kaum vergleichbar weil Aufgaben teilweise ein vielfaches der normalen Zeit benötigen.

Nur wird natürlich deswegen vor allem auch in der "Führung" diskutiert. Manche halten diese Arbeitsweise für gar nicht so schlecht andere wiederum sehen dies aber als verschwendete Zeit.

Wie läuft das bei euch so? Legt ihr oder eure Firma Wert auf eine einfache, schnelle aber dennoch qualitative Arbeitsweise oder wird der "akademische" Weg mit (teilweise gar nicht notwendigen) hochkomplexen Architekturen bevorzugt?

lg

Thema: Asp.Net Aktualisieren eines Models ohne neu laden der Seite
Am im Forum: Web-Technologien

Hi...

entweder der Client holt sich diese Info im Hintergrund periodisch vom Server ab => Ajax

oder der Server informiert den Client bei einer Statusänderung => Websockets


lg

Thema: Inhalte einer Webseite downloaden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi...

imgur.com hat auch eine API...
https://api.imgur.com/

Thema: PNG Optimierung | Bibliothek
Am im Forum: Grafik und Sound

Hi,
http://www.kraken.io/ ist hier auch noch zu empfehlen.

Gibt zwar kein Photoshop-Plugin wie bei TinyPNG dafür aber ein Web-Service das man sich mieten bzw. ein freies Webinterface mit dem man einzelne Files optimieren kann.

So viel ich weiß verwenden TinyPNG und Kraken.IO zum Teil die selben Libraries für die Optimierung (z.B.: https://pngquant.org/)