Laden...

Profil von mabo

myCSharp.de - Member Mitglied seit

Alle Beiträge

14.01.2016 - 13:18 Uhr

Schau dir mal Jailer an, das könnte sein was du suchst.

Jailer is a tool for database subsetting, schema and data browsing. It exports consistent, referentially intact row-sets from relational databases. It removes obsolete data without violating integrity. It is DBMS agnostic (by using JDBC), platform independent, and generates DbUnit datasets, hierarchically structured XML, and topologically sorted SQL-DML.

Ich kann dir jetzt aber nicht sagen ob der auch aus StoredProcedures exportieren kann.

26.11.2015 - 15:24 Uhr

Falls du das Rad doch nicht neu erfinden willst: Es gibt auch C# als Skript

http://www.csscript.net/

Bei LocalDB reicht es nicht, dass man nur die .mdf-Datei mitkopiert, es muss auch ein SQL Server auf dem Rechner vorhanden sein.

Wurde hier schon x-mal diskutiert.

Dazu musst du die Schleife in einem Thread laufen lassen.
Dann kannst du die Eingabe von der Konsole einlesen während die Schleife läuft.
Anschließend merkst du dir die Eingabe in einer Variable, die du in der Schleife überprüfen kannst.

Aber irgendwann muss ich ja auch wieder auf meine instanzieren Wert Value in der ChannelBase Instanz zugreifen und muss den tatsächlichen Typen wissen und eine Variable von genau diesem Typen angelegen können.

Für den Code, den du da gezeigt hast, ist das nicht notwendig.
Du rufst im Endeffekt ja nur ToString() auf und was da raus kommt bestimmt die jeweilige Implementierung von ChannelBase.

edit: zu spät

Sind denn die Klassen Player und Item auch serialisierbar?

Ups, da habe ich wohl nicht richtig gelesen.

Ich würde folgendes versuchen:
Einen pre-Commit-Hook einbauen und dabei MSBuild mit deiner Solution aufrufen. Laut Doku wird der Commit dann abgebrochen wenn ein Exit-Code ungleich 0 zurück kommt.

Mein Wissen in die Richtung hört aber leider ab hier auf 😃

Das hat doch Parso schon im zweiten Beitrag geschrieben; hat dir aber nicht gereicht. ?(

Da SVN (Quellcodeverwaltung) nur ein Teil der Funktionen des TFS ist, gibt es sowas nicht von Haus aus. Man kann in den Workflow von SVN allerdings mit sog. Hooks eingreifen. In diese Richtung würde ich mal weitersuchen.

Quellcode runterladen und die benötigten Funktionen selber implementieren 😃

Das Problem lässt sich allerdings mit der eingesetzten Technik nicht bzw. nur umständlich lösen.

Mehr gibts aber nicht.

Ein Unit-Test muss in sich abgeschlossen sein und sollte keine Abhängigkeit haben, ob irgend ein Framework ausserhalb des Tests initialisiert ist.

Wenn das nicht möglich ist darf eben nur ein Test gleichzeitig laufen.

Hallo,

gibt es beim Profiler von VS 2013 die Möglichkeit, dynamisch generierte Assemblies zu profilen?

Wir verwenden die Castle.Core Bibliothek, um über einen Proxy automatisch Datenbankverbindung und Transaktionen zu verwalten (also öffnen, schliessen, commit, rollback usw). Dazu wird von Castle.Core eine Assembly zur Laufzeit generiert.

Nun wollte ich ein Performance-Problem analysieren und habe festgestellt, dass der Profiler nicht bis in konkrete DB-Methode durch dringt, sondern beim Aufruf der Proxy-Methode endet.
Ich vermute jetzt, dass der Profiler hier nicht weitergeht, da ihm ja die generierte Assembly nicht bekannt ist.

Gibt es da eine Möglichkeit, dem Profiler diese Assemblies bekannt zu machen oder muss ich auf einen anderen Profiler ausweichen, der das kann?

Gruß mabo

19.02.2015 - 15:08 Uhr

Versuch mal Agent Ransack

Hi,

danke für die Infos, das hat mich auf die richtige Spur gebracht.

Der Artikel Using hooks from C# und der darin verlinkte Artikel Windows Hooks in the .NET Framework sehen vielversprechend aus.

Das werde ich mal ausprobieren.

Gruß mabo

Hallo,

gibt es unter Windows die Möglichkeit, sich irgendwie (über einen Hook o.ä.) benachrichtigen zu lassen, wenn ein bestimmter Prozess ein neues Fenster erzeugt?

Aktuell durchsuche ich die Fensterhandles eines Prozesses nach einer bestimmten Klasse in einer Schleife und führe weitere Aktionen aus, wenn ein Ergebnis gefunden wird:


private void Run(object state)
{
	while (_running)
	{
		foreach (var handle in EnumerateProcessWindowHandles(Process.GetProcessesByName("process").First().Id))
		{
			var classname = new StringBuilder(256);
			Native.GetClassName(handle, classname, classname.Capacity);
			if (classname.ToString() == "zuSuchendeKlasse")
			{
				//...
			}
		}
		Thread.Sleep(100);
	}
}

private IEnumerable<IntPtr> EnumerateProcessWindowHandles(int processId)
{
	var handles = new List<IntPtr>();

	foreach (ProcessThread thread in Process.GetProcessById(processId).Threads)
		Native.EnumThreadWindows(thread.Id,
			(hWnd, lParam) => { handles.Add(hWnd); return true; }, IntPtr.Zero);

	return handles;
}

Jetzt würde ich gern die Schleife eliminieren wenn es geht. 🙂

Gruß mabo

Warum macht ihr das ganze nicht als Client-Addon anstatt zu versuchen, das Protokoll zu zerlegen?

Ich habe wie folgt gemessen, einmal das ganze mit Aufruf einer Methode und einmal direkt.

Debug- oder Release-Build? Hast du das ganze auch mehrmals gemacht?

Ich kann dir nur dazu raten, was zommi und weismat auch schon gesagt haben: Um ein Problem zu beheben muss man erst mal das Problem erkennen.
Ungezielt drauf los zu basteln ist immer eine schlechte Idee, denn wir alle wissen -> "premature optimization is the root of all evil".

04.06.2014 - 22:57 Uhr

Wie wärs, wenn du einfach die Gestenerkennung deaktivierst, während die Zweihandfunktion ausgeführt wird?

05.05.2014 - 09:19 Uhr

Für Pfade sollte man besser Uri.EscapeDataString verwenden. Das arbeitet im Gegensatz zu den HttpUtility-Methoden nach der RFC 2396.

Ich finde allerdings grade die Quelle dafür nicht mehr, wo genau die Unterschiede sind. Ich weißt nur, dass wir mit den HttpUtilitiy-Methoden Probleme hatten.

Die alten Programme haben nicht wirklich Zugriff auf geschützte Verzeichnisse, der Zugriff wird "umgelenkt" in ein spezielles Verzeichnis.

Stichwort "Virtual Store", liegt unter C:\Users\username\AppData\Local\VirtualStore

edit: hab grade erst gesehen dass es um Bluetooth geht. Das nachfolgende muss daher nicht unbegingt zutreffen.

da steht alles drin.

Dein Problem ist, dass du solange vom Stream lesen musst, bis du weißt, dass dein erwartetes Datenpaket vollständig beim Empfänger angekommen ist.

--> Bitte auch mit Grundlagen bzgl. TCP befassen.

In der Vergangenheit war es so das man Release Builds, nur dann mit Express, erstellen konnte, wenn das Profil so voreingestellt war. Express Versionen haben einfach nur die Einstellungsmöglichkeiten verweigert.

Nee das ging schon wenn man weiß, wie 😉

Zugriff auf MS Access DB mit x64 System?

Stichwort "Erweiterte Buildkonfiguration"

Ja ist klar (vermutlich, wie sieht die Tabellenstruktur aus?):

Das erste Insert löst eine Exception aus, also springt er in den Catch-Block und der Delete wird nicht ausgeführt.

Edit: na geht doch 😉 Wegen dem Commit, wenn der fehlschlägt gehts auch im Catch-Block weiter. Musst du wissen ob das passt.

Doch leider weiß ich nicht wie ich so eine Transaktion starte und abschließe 😕 ???

Dann schau in deinen ersten Beitrag, da hast du die benötigten Sachen selbst verlinkt.

Ja das ist klar. 🙂

Es ist aber nicht sicher, dass die zweite Transaktion klappt, auch wenn die erste erfolgreich war.

ich hab leider vom EF keine Ahnung.

Laut Technet ist es mit Einschränkungen möglich: Entity Framework (SQL Server Compact)

Also dein Vorhaben ergibt zwar keinen Sinn, aber so gehts:

Transaktion öffnen.
Ersten Insert absetzen.
Delete absetzen.
Zweiten Insert absetzen.
Transaktion committen.

Wenn der Commit durch geht kannst du dir sicher sein dass die 3 Querys erfolgreich waren.

Wenn beim Commit eine Exception fliegt -> Rollback.

Was vbprogger vorschlägt klappt leider nicht da man sich zwischen dem Commit und dem Rollback entscheiden muss.

Der SQL Server arbeitet nach dem ACID-Prinzip, d.h. entweder ganz oder gar nicht. So wie du dir das vorstellst ist es nicht möglich da zwischen dem "Testen" und dem "Ausführen" eine unbekannte Zeitspanne liegt in der alles mögliche passieren kann.

Edit: Wie stellst du dir das überhaupt vor? Tabelle löschen und dann in diese Tabelle was einfügen? Hä?

nur so als Hinweis, für die Verbindung zu SQL Compact brauchst du eine SqlCeConnection. Da ist wohl irgendwo eine Überprüfung auf eine SqlConnection drin.
Aber das kann man ja mit über den Stacktrace rausfinden.

SqlConnection ist ausschließlich für eine Verbindung zum MS SQL Server da. MySQL kann man damit nicht ansprechen.

Und ich stimme MrSparkle zu, was du da schreibst hört sich verwirrend an. Bitte beschreib genau wo das Problem ist und was du bisher versucht hast.

25.09.2013 - 15:21 Uhr

XPath oder Linq to XML

25.09.2013 - 13:05 Uhr

ja das ist doch logisch. Der Explorer ist ja ein eigener Prozess.

Behalte dir eine Referenz auf das Process-Objekt, dann kannst du die Id über eine Eigenschaft auslesen.

Was ich empfehlen würde hab ich ja schon geschrieben. 🙂
Den Rest musst du selbst entscheiden.

Wirf Access weg und nimm eine richtige Datenbank.

Mit dem Ansatz den du da verfolgst handelst du dir früher oder später noch viel mehr Probleme ein.

Wenn du trotzdem bei Access bleiben willst:
app.config oder das Settings-Framework: [Tutorial] Konfigurationsmodell im .NET Framework und [Artikel] Custom Settings Provider

Mehrbenutzerfähigkeit und "Daten auf einem USB-Stick mitnehmen" passt aber irgendwie nicht zusammen, oder?

Also,

ausgehend von deinem vorherigen Thread hast du jetzt eine Serialisierung für deine Datenobjekte eingebaut.

Grundsätzlich ist es eine schlechte Idee, die von Hibernate erstellten Objekte ausserhalb der Session weiterzuverwenden. Die Objekte sind nämlich "nur" Proxy-Objekte deiner Original-Klassen, um Funktionen wie Lazy Loading abbilden zu können.

Wenn du nun eine Abfrage startest und Hibernate die Objekte generiert; die Session geschlossen wird ohne dass die komplette Objektstruktur materialisiert wird, fliegt dir beim Zugriff auf eine nicht materialisierte Collection die berüchtigte Lazy Loading Exception um die Ohren. Hibernate erkennt den Zugriff und versucht nun, die Collection zu materialisieren, was auf Grund der geschlossenen Session nicht funktioniert.

Der Zugriff erfolgt durch den Serialisierungsmechanismus.

==> Du erstellst dir dedizierte Klassen für die Übertragung der Daten über den Service. Diese befüllst du innerhalb der Session komplett, so wie sie gebraucht werden. Dann läuft auch die Serialisierung leichter.

Der Mitarbeiter bei euerem Kunden soll sich das hier durchlesen:
PHP: a fractal of bad design

Da sollten genügend Argumente dagegen drin sein.

Assembly: System.Management (in System.Management.dll)

Du musst die Assembly schon referenzieren. Das sind aber Grundlagen.

Hallo, mein Name ist Ich hab mal schnell gegoogelt.

ManagementObjectSearcher Class gibts seit .NET 1.1

Wo ist das Problem?

27.08.2013 - 13:30 Uhr

Sie liegt auf c:\ und heißt test.s3db

Nur mal ins Blaue geraten, C:\ (bzw. die Systemplatte) ist ein geschütztes Verzeichnis.

Verschieb die Datei mal in einen Unterordner.

Allerdings müsste auch eine IOException auftreten...

Ne mit OrderBy kannst du dann nicht mehr arbeiten.

Das musst du dann hierarchisch abfragen (in Oracle mit Start with ... connect by, MS SQL weiß ich grade nicht wie das geht)

Statt dem SortIndex könntest du zu jedem Element die Id des Vorgängers oder des Nachfolgers speichern.

Ich habs auch mal ausprobiert.
Die 32bit-Version läuft problemlos, die 64bit-Version (autodetect) stürzt beim Start ab.

Fehlermeldung:
[Window Title]
ModernView

[Main Instruction]
ModernView funktioniert nicht mehr

[Content]
Ein Problem hat die richtige Ausführung dieses Programms verhindert. Schließen Sie das Programm.

[Programm schließen] [Programm debuggen]

Der Rechner ist ein Dell Latitude E6510 (Intel i5 M520, Intel HD Grafik) mit 8 GB RAM und Windows7 64bit.

05.08.2013 - 17:31 Uhr

In Java gibts für sowas die ChoiceFormat-Klasse.

Evtl. wäre das ein Ansatz um das in .NET zu implementieren.

Der Übersetzer müsste dann die Limits sowie die eigentliche Übersetzung bereitstellen.

05.07.2013 - 10:50 Uhr

Naja das ist doch schon recht eindeutig. 🙂

Mach deine Hobby-Objekt vergleichbar (IComparable implementieren) und bau eine Eigenschaft ein, welches die Zusammenfassungszeile kennzeichnet (sofern ich das richtig interpretiert habe, dass die Zusammenfassung auch ein Hobby-Objekt ist)

Wenn Hobby.IsSummary -> beim vergleichen immer nach ganz unten sortieren.

wie wärs damit: Adam 6052 ?

Ist allerdings kein USB-Gerät.

Mit String.Split() kommst du da nicht weit, bzw. es wird irgendwann sehr unübersichtlich.

Ein paar Stichworte hab ich für dich: 🙂

Compilerbau
EBNF
ANTLR

Willst du einen PHP-Compiler bauen?

15.03.2013 - 13:39 Uhr

Du erzeugst UI-Elemente in 2 verschiedenen Threads. Und du hast 2 STA-Threads. Ich kenne mich in WPF zu wenig aus um das zu beurteilen, aber in WinForms kriegst du Probleme damit.

Bei der Variante, die ich oben genannt habe, kann man den dritten Thread (Init-Thread) auch weglassen.

15.03.2013 - 10:57 Uhr

Der Code-Project-Artikel ist meiner Meinung nach nicht brauchbar. DoEvents nachprgrogrammieren kann keine vernünftige Lösung sein.

Ich benutze für meine Anwendungen immer diese Variante hier:Link

Die Originalseite gibt es leider nicht mehr, aber das Internet vergisst nichts. 🙂

Die Umsetzung ist zwar für WinForms, aber das Prinzip dahinter kann man auch mit WPF umsetzen.