Laden...
B
Blacal
myCSharp.de - Member
25
Themen
387
Beiträge
Letzte Aktivität
vor 10 Jahren
Dabei seit
10.03.2005
Alter
37
Erstellt vor 12 Jahren

Hallo zusammen,

ist schade, dachte mir aber, dass genau sowas kommt. Immer, wenn man zurzeit von Microsoft etwas in Richtung Windows 8 und DirectX liest, ist auch so gut wie immer von C++ die Rede. Scheint für mich fast so, als ob Microsoft hier wieder mehr auf das klassische C++ / DirectX Bundle setzen möchte. Macht ja auch Sinn, da die Hardware von Windows Phone und Tablets im Vergleich zum PC viel schlechter sind und damit C# erst einmal für Spiele auch nicht wirklich sinnvoll sein kann.

Was ich aber empfehle:
Wie weiter oben schon angedeutet wurde, gibt es aktuell jede Menge Entwicklungen in der OpenSource-Welt, die die Lücke von XNA schließen wollen. Hier einige Beispiele:

ANX-Framework - Die nehmen sich vor, die XNA API auf Basis von OpenGL, DirectX 11 usw. nachzuprogrammieren.

SharpDX - In seinem Ursprung ein Thin-Wrapper der DirectX API. Aktuell wird hier aber auch an ein "Toolkit" gearbeitet, welches sich an die XNA-API anlehnen soll. Über diese Library können übrigens auch Spiele für Windows 8 Metro entwickelt werden.

MonoGame - Weiter oben schon erwähnt. Die gehen gezielt den Plattformunabhängigen weg und peilen z. B. auch Android-Geräte an.

Übrigens klappt es auch ganz gut, per C# Windows 8 Store Apps mit 3D-Grafik zu machen. Mosaic Snake 3D ist ein Beispiel direkt von mir, welches C# und SharpDX nutzt, um 3D Sachen auf den Bildschirm zu bekommen. Das läuft auch absolut flüssig auf dem Windows Surface RT Tablet.

Gruß
Roland

Erstellt vor 12 Jahren

Hi daTom,

meines wissens muss man sich schon darum kümmern, dass zum Beispiel PropertyChanged im UI-Thread aufgerufen wird - zumminderst kümmere ich mich immer drum.

Was ich mir aber vortellen kann: WCF und auch andere Technologien verwenden oft standardmäßig schon das aktuelle SynchronizationContext für asynchrone CallBack-aufrufe. Würde also heißen, dass sich das bei dir aufgrund der verwendeten Technologie erledigt hat. Man kann es aber nicht genau sagen, dazu müsste man den Code angucken. Oder du Debugst mal an der Stelle rein, an der die GUI aktualisiert wird bzw. das PropertyChanged aufgerufen wird. Dann siehst du auch, von welchem Thread du da eigentlich kommst.

Gruß
Roland

Erstellt vor 12 Jahren

Mit Google relativ schnell zu finden:
Babel Obfuscator
EDIT: Soll keine Werbung sein. Kannte den hier bis vor 5 Minuten nicht und es gibt sicherlich auch andere 😉

Wichtig ist auch zu wissen, dass das Gleiche auch für Html/Javascript Apps gilt. Auch hier müsste man den Quellcode obfuscieren.

Gruß
Roland

Erstellt vor 12 Jahren

Hi Kollegen,

schelchte Nachricht an euch:
Man kommt relativ Problemlos ran. Jede WinRT App wird in C:\Program Files\WindowsApps installiert. Zwar hat der Ordner standardmäßig einen anderen Besitzer, den kann man aber umstellen, damit man den Ordner anguken kann. Ist man erst drin, kann man von verwalteten Programmen die Assemblies per ILSpy angucken.

EDIT: Hier noch ein Artikel dazu:
Reverse Engineering and Modifying Windows 8 apps

Gruß
Roland

Erstellt vor 12 Jahren

Hi,

ich habe jetzt die letzten paar Beiträge nur überflogen, aber noch ein Gedanke von mir:
Bei meinen Programmen hatte ich das Gleiche Problem. Ich hatte mehrere DataGrids und diverse Masken, die jeweils ein einzelnes Objekt bearbeiten. Für das Change-Tracking habe ich dabei nicht die ViewModel- oder Model-Objekte überwacht, sondern die View. Ich habe also Observer-Objekte, welche sich an die Ereignisse von TextBoxen, ComboBoxen, DataGrids usw. hängen können und dafür sorgen, dass für jede Änderung ein entsprechender Command erzeugt wird, welche die Änderung wieder Rückgängig machen kann.

Nachteil an dem Vorgehen ist, dass man in jedem Oberflächen-Control auch das Change-Tracking mit einbauen muss. Vorteil ist, dass man direkt auf die einzelnen Controls und dabei auf die Aktionen des Benutzers eingehen kann. Trackt man das ViewModel oder das Model selbst, so stelle ich mir es schwer vor, die einzelnen Änderungen auch zu Aktionen des Users zuzuordnen, welche ja oft mehrere Änderungen am Model bewirken können.

Achja: Dieses Vorgehen gilt hauptsächlich für alle Eingabeflächen im Programm. Für Buttons o. Ä., welche irgendwas machen, erstelle ich je nach Anforderung ein entsprechendes Command - auch wenn dieses nur aus mehreren Unter-Commands besteht.

Gruß
Roland

Erstellt vor 12 Jahren

Hi,

ich bin gerade dabei auf WIX umzusteigen (bei einem Projekt schon durch) und habe bis jetzt eigentlich hauptsächlich gute Erfahrungen damit gemacht. Es ist zwar erst mal was anderes, "nur" Xml-Dateien zu editieren, aber man findet stehts schnell die richtigen Einstellungne für das, was man vor hat per Google.

.. hätte übrigens auch noch nicht mitgekommen, dass es nicht stabil wäre.

Gruß
Roland

Erstellt vor 12 Jahren

Hi,

was hast du da genau für ein Problem?
Was mich auch interessieren würde, wäre, inwieweit du eigentlich Serialisierung verwendest. In meinen Lösungen dafür wäre ich noch nie auf den Gedanken gekommen, überhaupt etwas während des Undo/Redo zu serialisieren oder zu deserialisieren. Bei mir läuft Undo/Redo eigentlich immer über die selben Objekte.

Mit meiner Lösung - wie weiter oben beschrieben - bin ich mitlerweile eigentlich recht zufrieden.

Gruß
Roland

Erstellt vor 12 Jahren

wenn es dir nur darum geht, dann schau dir am besten das LINQPad an. Geht eigentlich genau in die Richtung, einzig die Intellisense ist kostenpflichtig.

Ansonsten würde ich eine Weiterentwicklung nicht als eigenständiges Snippet-Tool sehen, sondern als ScriptEditor, den man direkt in sein eigenes Programm integrieren kann. So in die Richtung von VBA oder sowas..

Gruß
Roland

Erstellt vor 12 Jahren

Hi urk0n,

wär ne Idee, das Teil noch etwas auszubauen.
So wie es jetzt ist war es eigntlich nur zum Experimentieren gedacht. In der Arbeit haben wir sowas ähnliches gemacht, nur auf Basis der alten SharpDevelop-Libraries. Das hier in diesem Post basiert zu 100% auf WPF (daher bringt auch Application.EnableVisualStyles() nichts). Mal ungeachtet der fehlenden Features ist diese Komponente hier als Vorlage für jeden zu sehen, der auch so etwas ähnliches nachbauen möchte.

Abgesehen der von dir genannten Punkte gibt es noch ne ganze Latte, die man machen könnte. Z. B. *Icons für die Elemente innerhalb der Intellisense 😉 *Laden, Speichern, ... (das ganze Zeugs halt) *Anzeige von Compilerfehler und -Warnungen *Ein vernünftiger Assembly-Dialog zum hinzufügen von neuen Abhängigkeiten *Suchen und Ersetzen wie von jogibear9988 vorgeschlagen (super Hinweis übrigens!) *Und und und...

Aber so viel Zeit wollt ich darin erst mal noch nicht rein stecken. Bestünde da konkretes Interesse?

Gruß
Roland

Erstellt vor 12 Jahren

Hi urk0n,

habe das Problem gerade gefixt, die Links oben enthalten jetzt die neue Version.

.. wirgendwie komisch. Die Textbox in deinem Screenshot ist nicht weg, sondern die Menüleiste oben klaut sich den gesamten Platz. Unter Windows 8 passiert das nicht, aber auf meinen Windows 7 Laptop konnte ich das nachstellen.

Gruß
Roland

10 von 387 Beiträgen