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 Zicore
Thema: Wie kann man ein Pixel in C# plotten?
Am im Forum: Grundlagen von C#

Das Manipulieren einzelner Pixel macht man tatsächlich besser mit Get- und Setpixel, allerdings sind die Standard Methoden viel zu langsam.

Siehe auch: GetPixel und SetPixel um Längen geschlagen. 800 mal schneller

Hier ein Projekt von mir welches dir vielleicht als Beispiel dienen kann: Perlin Noise Textur Generierung

Thema: Wie kann man ein Pixel in C# plotten?
Am im Forum: Grundlagen von C#

So oder so wirst du dich mit den Grundlagen der jeweiligen Plattform vertraut machen müssen ob HTML und JavaScript oder .Net Framework und C#.

Im Prinzip wurden dir die nötigen Tipps genannt um durchzustarten.

Hier nochmal kurz:

- Starte ein WinForms Projekt.
- Erzeuge dir ein Panel.
- DoubleBuffered im Panel einschalten.
- OnPaint überschreiben oder Paint Event abonnieren und los Zeichnen.

Edit: Zum Thema Performance. C# setzt zumindest bei WinForms auf die GDI+ API von Windows. Die ist mittlerweile in die Jahre gekommen und nicht das schnellste. Für die meisten Dinge reicht es allerdings noch.

Bei JavaScript hängt es stark vom Browser bzw. dessen JavaScript Engine ab. Chrome ist beispielsweise deutlich schneller als Firefox.

Thema: Wie kann man ein Pixel in C# plotten?
Am im Forum: Grundlagen von C#

Wie wäre es mit JavaScript und Canvas?

http://www.w3schools.com/html/html5_canvas.asp

Thema: Visual C# 2010 oder das neueste?
Am im Forum: Buchempfehlungen

Ich kann meinen Vorrednern nur zustimmen. Lerne die Basics mit deiner Ausgabe oder mit dem 2012er Openbook und anhand von kleinen Projekten.

Das Internet ist voll von Wissen zu dem Thema C# und .Net.

Wenn es spezifischer wird, kann man später immer noch zum Buch greifen oder zunächst mal fragen.

Trotzdem würde ich dir die aktuelle Version von Visual Studio empfehlen, also derzeit 2015.

Damit kannst du direkt die neuen Features von C# kennenlernen und verwenden.

Thema: Windows 10 unerträglich langsam nach Anniversary Update
Am im Forum: Smalltalk

Ich hatte mal Avast vor einem Upgrade drauf und danach diverse Probleme mit Windows, Lösung war es Avast zu deinstallieren und Avast dann neu zu installieren.

Thema: Socket Verbindung über das Internet
Am im Forum: Netzwerktechnologien

Ja

Thema: VS2015 Update 3 RC Threads-Fenster nicht nutzbar?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich habe vor kurzem das Update 3 RC für VS 2015 installiert.
Bisher keine Probleme, bis ich heute das Threads Fenster gebraucht habe.

Kann mir jemand sagen ob Ihr das Threads Fenster unter Debuggen-> Fenster -> Threads öffnen könnt?

(Kann man nur bei während des Debuggings öffnen).

Sobald ich es versuche zu öffnen erhalte ich:

Fehler
"Ein Aufrufziel hat einen Ausnahmefehler verursacht."

In Projekten wo es offen wäre, steht folgende Exception drin.

Fehler
Ausnahmedetails:
System.Reflection.TargetInvocationException: Ein Aufrufziel hat einen Ausnahmefehler verursacht. ---> System.ArgumentException: "PropertyMetadata" ist bereits für Typ "FrameworkElement" registriert.
bei System.Windows.DependencyProperty.ProcessOverrideMetadata(Type forType, PropertyMetadata typeMetadata, DependencyObjectType dType, PropertyMetadata baseMetadata)
bei System.Windows.DependencyProperty.OverrideMetadata(Type forType, PropertyMetadata typeMetadata)
bei Microsoft.VisualStudio.Debugger.DebuggerToolWindows.ThreadWindow.ThreadWindowControl..ctor(Boolean isInStandaloneMode)
bei Microsoft.VisualStudio.Debugger.DebuggerToolWindows.ThreadWindow.ThreadToolWindow.LoadThreadWindowControl()
bei Microsoft.VisualStudio.Debugger.DebuggerToolWindows.ThreadWindow.ThreadToolWindow..ctor()
--- Ende der internen Ausnahmestapelüberwachung ---
bei System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
bei System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
bei System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
bei System.Activator.CreateInstance(Type type, Boolean nonPublic)
bei System.Activator.CreateInstance(Type type)
bei Microsoft.VisualStudio.Shell.Package.InstantiateToolWindow(Type toolWindowType)
bei Microsoft.VisualStudio.Shell.Package.CreateToolWindow(Type toolWindowType, Int32 id, UInt32 flags)
bei Microsoft.VisualStudio.Shell.Package.CreateToolWindow(Type toolWindowType, Int32 id, ProvideToolWindowAttribute tool)
bei Microsoft.VisualStudio.Shell.Package.FindToolWindow(Type toolWindowType, Int32 id, Boolean create, ProvideToolWindowAttribute tool)
bei Microsoft.VisualStudio.Shell.Package.CreateToolWindow(Guid& toolWindowType, Int32 id)
bei Microsoft.VisualStudio.Shell.Package.Microsoft.VisualStudio.Shell.Interop.IVsToolWindowFactory.CreateToolWindow(Guid& toolWindowType, UInt32 id)
bei Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ConstructContent()

Thema: Uhrzeit auslesen für Wecker
Am im Forum: Grundlagen von C#

Nein, aber weil:

Zitat von Cat
Setze einfach im Timer_Tick diese Codezeile (vor der MessageBox).
so aussieht als wärst du abgelenkt worden o.ä.

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Mir ist noch ein Problem in der GUI aufgefallen.

Beim Exporter kommt es wenn man ein bischen rumklickt.

Bei der Farbe u.A. wenn man Pfeiltasten Hoch und Runter verwendet.

Thema: IntTrader - Bitcoin Markt API, Trader und Web Plattform
Am im Forum: Projekte

Innerhalb dieses Projekt habe ich nun die Seite http://bitcoinreflection.com/ online genommen.

Diese zeigt ein echtzeit Kerzen-Diagramm zu den aktuellen Bitcoin Kursen, ein Orderbook und die letzten 50 Trades.

Thema: sharpDox - Ein Dokumentationstool für C# | Version 1.2
Am im Forum: Projekte

Der Download in der Menüleiste verlinkt noch auf Version 0.9.10.

Thema: AngularJS mit SignalR gleicher Controller, gleiches Model unterschiedliche Daten. Wie vorgehen?
Am im Forum: Web-Technologien

Auf dem Bild sind Angular Controller und Razor Partials (Views), das können in Zukunft noch Angular Partials werden, aber das sollte noch kein Problem darstellen.

Der Hub wird in einem Service bzw. einer Factory bereitgestellt.

Im Controller binde ich mich an das on Event des Hubs und dieses Event wird pro Controller ausgeführt, immer wenn der Hub Daten sendet und damit das model nicht für die falsche View geschrieben wird muss ich diese Abfrage machen:

if (data.exchange === $attrs.exchange && data.Pair.Key === $attrs.pair) {
    $scope.ticker = data;
}

Denn ansonsten wird $scope.ticker immer wieder überschrieben und habe am ende immer gleichen Wert überall drin.

Mittlerweile sieht das so aus:
'use strict';

app.controller('ExchangeController', ['$scope', 'backendHubProxy','$attrs',
  function ($scope, backendHubProxy, $attrs) {

      console.log('trying to connect to service');
      var tickerHub = backendHubProxy(backendHubProxy.defaultServer, 'ExchangeHub');
      console.log('connected to service');

      $scope.tickerHub = tickerHub;

      //------------------

      tickerHub.on('updateTicker', function (data) {
          if (data.exchange === $attrs.exchange && data.Pair.Key === $attrs.pair) {
              $scope.ticker = data;
          }
      });

      tickerHub.start().done(function () {
          var args = [$attrs.exchange, $attrs.pair];
          tickerHub.invoke('RequestTicker', args, function (data) { });
      });

      //------------------

      tickerHub.on('updateTrade', function (data) {
          if (data.exchange === $attrs.exchange) {
              $scope.trades = data.trades;
          }
      });

      tickerHub.start().done(function () {
          var args = [$attrs.exchange, $attrs.pair];
          tickerHub.invoke('RequestTrade', args, function (data) { });
      });

      //------------------

      tickerHub.on('updateBalance', function (data) {
          if (data.exchange === $attrs.exchange) {
              $scope.balances = data.balances.Items;
          }
      });

      tickerHub.start().done(function () {
          var args = [$attrs.exchange, $attrs.pair];
          tickerHub.invoke('RequestBalance', args, function (data) { });
      });
  }
]);
'use strict';

app.factory('backendHubProxy', ['$rootScope', 'backendServerUrl',
  function ($rootScope, backendServerUrl) {

      function backendFactory(serverUrl, hubName) {
          var connection = $.hubConnection(backendServerUrl);
          var proxy = connection.createHubProxy(hubName);

          var hubStart = null;

          var hub = {
              on: function (eventName, callback) {
                  proxy.on(eventName, function (result) {
                      $rootScope.$evalAsync(function () {
                          if (callback) {
                              callback(result);
                          }
                      });
                  });
              },
              invoke: function (methodName, args, callback) {
                  proxy.invoke.apply(proxy, $.merge([methodName], args))
                      .done(function (result) {
                          $rootScope.$evalAsync(function () {
                              if (callback) {
                                  callback(result);
                              }
                          });
                      });
              },
              start: function () {
                  if (hubStart === null) {
                      hubStart = connection.start();
                  }
                  return hubStart;
              }
          };
          return hub;
      };

      return backendFactory;
  }]);

Nach langem rumprobieren und erklären, denke ich, verstehe ich mittlerweile, wo ich anpacken muss.

Ich werde das später nochmal durchgehen.

Danke für deine Anregungen.

Thema: AngularJS mit SignalR gleicher Controller, gleiches Model unterschiedliche Daten. Wie vorgehen?
Am im Forum: Web-Technologien

Das Grundproblem ist, dass das Model im Controller überschrieben wird, wenn ich die Abfrage mit

if (data.id === $attrs.exchange)
nicht drin habe, da das event logischerweise pro Instanziierung des Controllers gefeuert wird.

Ich bin derzeit darauf angewiesen die Daten mit data-exchange="@Model.Id" data-pair="@Model.Pair.Key" im vorraus mit zu übergeben. Die ja dann im $attrs zu finden sind.

Im Anhang noch ein Bild.

Wenn die Erklärung noch nicht reicht, versuche ich das mal in einem minimal Beispiel zusammenzufassen

Thema: AngularJS mit SignalR gleicher Controller, gleiches Model unterschiedliche Daten. Wie vorgehen?
Am im Forum: Web-Technologien

Ich habe eine View die mehrfach auf einer Seite angezeigt werden kann.
Zudem habe ich ein Angular Controller der sich um diese View kümmern soll.

Meine Merkmale sind die @Model.Id und @Model.Pair.Key. Die kann ich auch dem Hub übergeben und bekomme die entsprechenden Daten, aber wie bekomme ich die Daten in models.ticker nur für die entsprechende View?

Ich verwende die $attrs um die Parameter im vorraus festzulegen und die Lösung funktioniert zwar, erscheint mir aber nicht sehr elegant.

Zudem muss ich die Daten derzeit Serverseitig zyklisch bereitstellen. Aber das ist ein anderes Problem.

Gibt es da eine bessere Lösung?


@using IntTrader.API;
@inherits Nancy.ViewEngines.Razor.NancyRazorViewBase<IntTrader.Web.Model.ExchangeModel>

<div class="col-xs-4 col-sm-2 placeholder" ng-controller="ExchangeController" data-exchange="@Model.Id" data-pair="@Model.Pair.Key">
    <h3 class="blue"><a href="/markets/@Model.Name.ToLower()">@Model.Name</a></h3>
    <div class="modal-title" ng-model="models.ticker">{{models.ticker.lastPrice}}</div>
    <div class="center-block">
        <table class="trades" id="[email protected]"></table>
    </div>
</div>
'use strict';

app.controller('ExchangeController', ['$scope', 'backendHubProxy','$attrs',
  function ($scope, backendHubProxy, $attrs) {

      console.log('trying to connect to service');
      var tickerHub = backendHubProxy(backendHubProxy.defaultServer, 'TickerHub');
      console.log('connected to service');

      $scope.tickerHub = tickerHub;

      tickerHub.on('update', function(data) {
          console.log($scope.exchange);
          if (data.id === $attrs.exchange){
              $scope.models = {
                  ticker: data
              };
          }
      });
  }
]);
'use strict';

app.factory('backendHubProxy', ['$rootScope', 'backendServerUrl',
  function ($rootScope, backendServerUrl) {

      function backendFactory(serverUrl, hubName) {
          var connection = $.hubConnection(backendServerUrl);
          var proxy = connection.createHubProxy(hubName);

          connection.start().done(function () { });

          var hub = {
              on: function(eventName, callback) {
                  proxy.on(eventName, function(result) {
                      $rootScope.$apply(function() {
                          if (callback) {
                              callback(result);
                          }
                      });
                  });
              },
              invoke: function(methodName, p1, p2, callback) {
                  proxy.invoke(methodName, p1, p2)
                      .done(function(result) {
                          $rootScope.$apply(function() {
                              if (callback) {
                                  callback(result);
                              }
                          });
                      });
              }
          };
          return hub;
      };

      return backendFactory;
  }]);

Thema: Visual Studio druckt nicht mehr...
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Kann ich bestätigen, habe das gleiche Phänomen.

Thema: Ein Event für alle Button-Clicks?
Am im Forum: Grundlagen von C#

Du kannst einfach alle Buttons auf die gleiche Methode binden. Auch im Designer, dazu musst du lediglich die entsprechende Methode bei dem Event auswählen.

Thema: Zyan Communication Framework
Am im Forum: Projekte

Hast du denn das Zielframework auf mindestens Net 4.5 umgestellt?

Thema: Tracken, wie lange man an einer Datei arbeitet
Am im Forum: GUI: Windows-Forms

Zitat von emuuu
Würde mich der Frage erweitert anschließen:
Frage nun:
Kann ich wie in dem vorangegangen Ansatz nicht nur das gerade aktive Fenster sondern auch die innerhalb von VS gerade aktive Datei auf irgendeine Weise eroieren.

Da solltest du wohl eher das Visual Studio SDK und dessen Doku konsultieren :)

Thema: IntTrader - Bitcoin Markt API, Trader und Web Plattform
Am im Forum: Projekte

Hallo zusammen,

Diesmal wieder ein größeres Projekt.

Es handelt sich dabei um eine API die diverse Cryptocurrency Markt APIs unter einer zusammenführen soll.
Das ganze befindet sich stark in Entwicklung und ist in mehrere Module aufgeteilt.

IntTrader.API welche die eigentlich Abstraktion der Märkte darstellt. Derzeit teilweise implementiert sind Bitfinex.com und Kraken.com

Der IntTrader ist die Referenz Implementation der API in Form einer WPF Desktop Anwendung und mit IntTrader.Web ist eine Web Plattform auf Nancy Basis (Razor, MVC) in Entwicklung.

Den Fokus werde ich nun mehr auf die Web Anwendung legen, um Plattform unabhängiger zu bleiben.

Das Projekt liegt auf GitHub: https://github.com/Zicore/IntTrader und wie der Client aussieht kann man entweder dort sehen oder hier im Anhang.

Wer sich beteiligen möchte kann das gerne über GitHub machen oder mit mir in Kontakt treten.

Ziel des ganzen ist es eine Trading Plattform zu schaffen, bei der man mit einem Login an verschiedenen Märkten handeln kann.

Technologien: C#, .Net 4.5, WPF, Json, Nancy, Razor, CoffeeScript, HTML5, Bootstrap, SignalR, jQuery

Thema: WPF / MVVM: Animation im Fortschrittsfenters läuft nicht
Am im Forum: GUI: WPF und XAML

Deinen Dialog musst du aus dem UI Thread erstellen und der Background worker müsste sich um die Arbeit im Hintergrund kümmern.

Selbst wenn der User darauf warten muss, darf kein Thread den UI Thread blockieren.

Du scheinst den Dialog aus dem Background Worker Thread zu starten, das wird nicht funktionieren.

Thema: Programmcode auf Mehrere Seiten verteilen VisualStudio2012
Am im Forum: Grundlagen von C#

Fenster -> Neues Fenster.

Thema: Zoomen OHNE Anti-Aliasing
Am im Forum: GUI: Windows-Forms

Ich denke dazu musst du zunächst Zeichnen und dann Skalieren.

Thema: Prozedural 2D Planeten und Stern Texturen generieren mit Perlin Noise
Am im Forum: Projekte

Ab sofort Open Source: https://github.com/Zicore/NoiseTools

Thema: exe-Datei (Release) startet, schließt sich und öffnet sich wieder
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Typisches Verhalten von Antiviren Programmen wie Avast. Prüft dein Programm in einer Sandbox und wenn es nichts feststellt, startet es das Programm wie gewohnt.

Thema: Aktuelle Form von NotifyIcon anzeigen lassen
Am im Forum: GUI: Windows-Forms

Hallo lazy,

naja so schwer was zu finden ist das jetzt nicht: Doing a NotifyIcon program the right way

Stichwort: ApplicationContext

Grüße

André

Thema: [erledigt] Ergebnis AES Verschlüsselung in C# nicht gleich Java
Am im Forum: Rund um die Programmierung

Hallo *neo*,

prüf mal ob es an der Byte-Reihenfolge liegen kann. Eventuell beim Encoden des Strings.

André

Thema: ProgressBar zeigt niedrigeren Wert als gesetzt wurde
Am im Forum: GUI: Windows-Forms

Hallo Movementroboter,

das ganze habe ich, glaube ich, schonmal beantwortet.

Der Ladebalken wird animiert, das heißt es ist nicht sofort sichtbar wie viel Prozent er anzeigt.

Das kannst du ja leicht prüfen.

Grüße

André

Thema: Bitcoin zum Scheitern verurteilt?
Am im Forum: Smalltalk

Das ist ja der Punkt, es muss eben nicht jeder die komplette Blockchain auf seinem Rechner haben.
Es reicht wenn es genügend Full Nodes gibt um das Netzwerk am Leben zu halten.

Soweit ich weiß, war es laut dem Paper von Satoshi Nakamoto nicht geplant das jeder Client die komplette Blockchain synchronisiert.

Wichtig aber, ist das die Miner mit steigenden Anforderungen schritthalten und das wird schätzungsweise noch lange der Fall sein.

Die Bandbreite bringt auch nur Probleme wenn viele gleichzeitige Transaktionen durchgeführt werden.

Mir fehlt leider die Zeit um die Informationen detailierter zusammenzufassen.

Thema: Bitcoin zum Scheitern verurteilt?
Am im Forum: Smalltalk

Hallo,

natürlich gibt es Risiken, wie überall.

Die Community hinter Bitcoin ist allerdings schon so riesig, dass eine Lücke m.E. entweder schnell gefunden werden würde oder aber schnell behoben werden würde.

Erst kürzlich hatte ein Miningpool bedrohliche 45% an Hashingpower erreicht.
Die Reaktionen in der Community waren super, viele haben sofort reagiert auf die Gefahren hingewiesen und den Pool gewechselt. Sogar der Poolbetreiber hat verlauten lassen die 51% auf jedenfall zu verhindern.

Niemand kann vorhersehen ob es in Zukunft zu Problemen kommen wird, da heißt es einfach abwarten und die Lage im Auge behalten.

Jeder muss selbst bewerten ob das Risiko tragbar ist.

Hier noch was zur Skalierbarkeit: Bitcoin Wiki Scalability

Thema: Bitcoin zum Scheitern verurteilt?
Am im Forum: Smalltalk

Momentan gibts Anhörungen in New York: Department of Financial Services (NYDFS Public Hearing on Virtual Currencies)