Richtig, die Dev Fabric des SDKs kann nicht auf XP installiert werden. Die brauchst du allerdings nur wenn du irgendwelche Roles lokal simulieren/testen möchtest. Falls nur Blob- oder Table-Storage verwendet wird braucht man die Dev Fabric nicht wirklich, da es sich ohnehin lohnt gegen echte Azure storage accounts zu testen.
In der Praxis braucht man dafür nur die folgende Assembly des SDKs zu referenzieren:
Microsoft.WindowsAzure.StorageClient.dll
Dies funktioniert auf XP genau so gut wie auf Win7, d.h. nicht nur sind die entwickelten Anwendungen auch auf XP lauffähig sondern es kann auch auf XP entwickelt werden. Hast du Zugriff auf diese Assembly, oder lässt sich das SDK gar nicht erst installieren?
Andere Toolkits: Da gibt es z.B. Lokad.Cloud, das allerdings wiederum auf dem offiziellen StorageClient aufbaut (Disclamer: bin da beteiligt)
Ja, man kann die Anzahl Instanzen auch im Betrieb ändern, das initialisieren zusätzlicher Instanzen (parallel falls nur eine Upgrade Domain) dauert in der Praxis aber durchaus mal 5 Minuten.
Ein Beispiels eines managed codec findest du hier (2, 3). Es wird allerdings nicht irgend ein avi Film decodiert, sondern die Video-Stream Ausgabe eines C64 Emulators generiert (als Video Codec). Ist allerdings Silverlight 3, auf Basis der MediaStreamSource Klasse ...
Falls diesen Thread wieder mal jemand findet, ein interessanter Artikel über die Innereien der .Net regular expressions (auch zum Thema Compilation): How .NET Regular Expressions Really Work
(PS: Der Palladium Prototyp (der Link von oben) ist speziell aufgebaut weil er direkt mit Linq Expressions arbeitet und die ganze Baumstruktur entsprechend nicht beeinflussen kann/will. Ist also wahrscheinlich eine komplett andere Architektur als bei dir und kaum übertragbar...)
Die Addition mit den Operatoren würde ich jedenfalls in der Term-Klasse definieren, das hat sich bewährt. Aber sie muss gar nicht abstrakt sein, denn das einzige was sie machen wird ist eine neue Instanz deiner Add-Klasse erstellen und zurückgeben, also
Term1 + Term2 => Sum(Term1,Term2)
Zitat von ANSI_code
Außerdem möchte ich nicht in der Implementation alles mit "if(typeof(rhs)==whatever)"
vollschreiben müssen. Wäre auch nicht das richtige, oder?
Wenn du die Term Klasse mit abstrakten oder virtuellen Methoden wie Calculate, Expand, Simplify, Derive, etc. erweiterst und die entsprechenden Klassen wie Sum das selber machen lässt brauchst du erfahrungsgemäss nur sehr wenige solche Abfragen.
Zitat von ANSI_code
Vielleicht sollte nur die Klasse Sum wissen, wie man andere Objekte miteinander Addiert - dann müsste diese nach allen Typen differenzieren, bzw. den Operator für alle Typen überladen.
Ja, nur Sum sollte wissen wie addieren funktioniert, aber das heisst nicht dass Term nicht wissen darf dass es eine Addition gibt.
Tip: beschränke dich auf nur wenige skalare Datentypen (z.b. double), macht alles sehr viel einfacher.
Habe in C# übrigens schon diverse kleine computer algebra systeme geschrieben, der neuste Ansatz arbeitet direkt mit rohen Linq Expressions...
Eine Opensource Lizenz kannst du nicht verwenden, da du ja kommerzielle Verwendung verbieten möchtest, was nach meinem Verständnis (IANAL) prinzipiell der Opensource Definition (gem. OSI) wiederspricht.
Könnte sich vielleicht jemand mal ein zwei Originale von Microsoft anschauen und mir sagen, wie es darin ausschaut? Ich hab es bis jetzt nämlich noch nicht hinbekommen, mir den original source anzuschauen.
Ich habe bis vor kurzem in einem Microsoft Entwicklungszentrum gearbeitet (Neue App im Office/UC Bereich auf WPF Basis), dort hatten wir durchgehend "m_" (bzw. "s_" für static, "c_" für const) verwendet. War aber natürlich ein komplett anderes Team als das des Frameworks. Und ja, praktisch alle im Team hatten C++ "Erfahrung"...
Mir ist gerade aufgefallen dass ich hier mein Math.NET Projekt noch gar nicht vorestellt habe.
Gestern konnte ich eine neue Version von Math.NET Iridium (der Numerik-Teil des Projekts) freigeben:
Eine Auflistung der Änderung gibt es jeweils auf der verlinkten Seite oder direkt im Tracker.
Lizenz: LGPL, kann somit auch in closed-source Projekten eingesetzt werden (nur Änderungen an der Bibliothek selber müssen offen gelegt werden).
Rückmeldungen und Anregungen nehme ich gerne überall entgegen, für Vorschläge aber am besten via UserVoice, ansonsten hier oder in unserem eigenen Forum. Auch jede andere Mithilfe ist natürlich willkommen.
Wenn eine Methode ein Objekt gleichen Typs zurückgibt, dann nehme ich an dass der Methodenaufruf keine Nebenwirkungen hat, also die ursprüngliche Instanz nicht geändert wurde (sondern die Änderungen in der zurückgegebenen Kopie reflektiert werden).
Die string-Methoden geben das Resultat zurück weil String (so-gut-wie) immutable ist, die Methoden haben entsprechend auch keine Nebenwirkungen.
Meiner Meinung nach sollte dieses Fluent-Pattern bei Methoden mit Nebenwirkungen generell vermieden werden, es macht den Code unleserlich und bringt auch kaum Vorteile.
Ich habe kürzlich die ganzen Interpolations-Algoritmen in Math.NET Iridium revidiert, vielleicht findest du dort was du suchst. Du solltest dir aber direkt den Sourcecode aus dem Subversion Source Repository holen, denn die Algorithmen sind neuer als die aktuellste release (neue Release wird gegen Ende Woche erwartet).
Aber: Eine hochwertige Interpolation ist wahrscheinlich nicht die beste Lösung hier, ich schätze mit klassischem Resampling wärst du besser bedient: Einfach linear oder sogar nearest-neighbour interpolieren, und dann mit einem tiefpassfilter nachfiltern.
Was du suchst sind Raw Sockets. Offiziell Per Winsock geht das afaik ab XP SP2 aus "Sicherheitsgründen" nicht mehr. Glücklicherweise gibt's aber nicht nur Winsock ... ich habe selber vor einiger Zeit in einem Mischprojekt (C# Bibliothek mit C++/CLI Zwischenschicht) einen Wrapper für WinPcap (mit NPF Treiber) geschrieben und einige erste Protokolle implementiert, es ist also technisch möglich. Allerdings darf ich wohl in einem deutschen Forum keinen Code dazu posten, schliesslich kann man damit im lokalen Netzwerk alles mögliche anstellen
Setze Background auf Transparent, sonst wird es beim Hit-Testing nicht berücksichtigt (sollte es normalerweise ja auch nicht, ist ja an sich ein reines Layout-Element).
Text in WPF mit WinForms zu rendern macht imo wenig Sinn.
WPF 3 oder 3.5? Könntest du mal überprüfen ob du die aktuellsten Grafikkartentreiber installiert hast, und falls ja einen Screenshot eines kleinen repros posten, mit Xaml Source sowie Angaben zur Grafikkarte, Treiber (Version!) und Monitor? Kann ich allenfalls ans Text-Team weiterleiten...
Ich hätte mir schon mal etwas ähnliches gewünscht: Das Überschreiben (nicht überladen) mit einem Rückgabe-Typ der vom vorherigen Rückgabe-Typ ableitet:
class A {}
class B : A {}
class X
{
public virtual A Foo()
{ ... }
}
class Y : X
{
public override B Foo()
{ ... }
}
Wobei B zwingend von A erben muss. Afaik gibt es OO Sprachen die das unterstützen.
Es werden natürlich nicht 600 Stellen gespeichert. Aber die grösste darstellbare Zahl hat 308 Stellen vor dem Komma, die kleinste 324 Stellen nach dem Komma, macht insgesammt eine Differenz von mehr als 600 Stellen.
Btw, die Differenz der grössten darstellbaren Zahl und der zweitgrössten darstellbaren Zahl hat 292 Stellen vor dem Komma
Original von Nopileos
ich hatte da mehr so dran gedacht den double (oder float) mit seinem maximalen Wertebereich + 1 zu multiplizieren
da dann selbst wenn der hex 0000000000000001 ist und dann mit 10000000000000000 multipliziert wird kommt da 10000000000000000 raus also eine ganze Zahl nur leider entsteht dabei ein Überlauf.
Der Unterschied zwischen der kleinsten und grössten darstellbaren Zahl eines double beträgt mehr als 600 Stellen. Dürfte also schwierig werden
Wobei man von "Zufallsklassen", die auf int basieren nicht zuviel erwarten sollte. Dazu ist der Zahlenbereich einfach zu klein. Näheres siehe Random von Namen (String).
So nutzlos sind sie auch wieder nicht (sofern man nicht aus irgendwelchen Gründen jedes mal mit einem neuen Seed initialisiert). Nicht vergessen, dass man auch mit nur einem einzigen Seed bereits genau so viele verschiedene Zufallsfolgen generieren kann wie die Periode des Generators lang ist (einfach jeweils versetzt; eigentlich eine zweite Seed-Dimension).
Wenn man bedenkt dass man z.B. mit einem mwc-rng Periodenlängen von 2^131102 erreichen kann ist das einiges, und reicht problemlos um pro Seed alle Permutationen einer Folge von 10000 Elementen ( =2^118458 ) theoretisch direkt abbilden zu können. Iridium bietet beispielsweise einen RNG mit Periode 2^19937, das reicht immerhin um pro Seed alle Permutationen einer Folge von 2000 Elementen ( =2^19052 ) theoretisch direkt abbilden zu können. Nicht dass es notwendig wäre die Permutationen direkt abbilden zu können...
edit: automatische smilies entfernt
edit2: -> Entscheidender als die Seedlänge ist also die Periodenlänge. Kennt zufällig jemand die Periodenlänge von System.Random und System.Security.Cryptography.RNGCryptoServiceProvider?
Nein, dein Ansatz (Kuehner) war schon richtig, die Notification soll unbedingt im Property Setter stehen. Aber was ist das für ne OnPropertyChange Methode?
Eine Lösung die funktioniert sieht etwa so aus (ohne Garantie, ist direkt hier so hingeschrieben):
public class MyObjectView : INotifyPropertyChanged
{
private string _deviceName;
public event PropertyChangedEventHandler PropertyChanged;
public string DeviceName
{
get { return _deviceName; }
set
{
if(value != _deviceName)
{
_deviceName = value;
RaisePropertyChanged("DeviceName");
}
}
}
private void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if(handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Müsste dann funktionieren. Sauberkeitshalber würde ich beim ToolTip Binding noch ", Mode=OneWay" und beim Text Binding ", Mode=TwoWay" ergänzen.