Laden...
Avatar #avatar-3136.png
m.knigge myCSharp.de - Member
Programmierer Hannover Dabei seit 13.06.2010 175 Beiträge
Benutzerbeschreibung

Forenbeiträge von m.knigge Ingesamt 175 Beiträge

16.08.2012 - 22:07 Uhr

Vielleicht solltest du, m.knigge, noch mal genauer schreiben, was für eine Art von Virtualisierung bei euch geplant ist.

Gerne!

Es geht wie gesagt um die Virtualisierung des Arbeitsplatzes - womit daber mehr oder weniger die Virtualisierung des PCs gemeint ist. Der "Client" (das Ding vor dem ich im Büro sitze) kann dann - wie Du schon angemerkt hast - durchaus etwas schwachbürstig sein (oder gar ein echter Thin Client). Da er "nur" ein Bild anzeigt, die die CPU-Power dann erst einmal schiet egal....

Der Server virtualisiert dann den gesamten PC samt Betriebssystem, Anwendungen und Hardware. Im Gespräch ist dabei zur Zeit (meines Wissens) "vmWare View", das den PC über ein hochoptimiertes "PCoIP" (PC over IP) Protokoll anspricht. Dabei ist selbst die Wiedergabe von Videos (in flüssig!) möglich.

Weiterhin kann dabei lokale Hardware im gewissen Rahmen benutzt werden - beispielsweise werden USB-Geräte (Speichersticks, Kamera, Drucker, ...) von meinem Arbeitsplatz PC an den virtuellen Arbeitsplatz im Server durchgereicht. Auch ein Dual-Monitor-Betrieb ist möglich....

Ansprechen kann (oder sollen wir später) den Server natürlich lokal im Büro als auch über eine VPN-Verbindung (auch mobil vom Notebook).

Das Ganze ist dann also im Grunde aus Benutzersicht wie eine RDP-Session zum eigenen Rechner im Büro - nur halt (angeblich!) in schnell und chic ;-> Egal von wo (im Büro, Hotel, Road...) - man verbindet sich mit einem Client zum Server und hat schwupps seinen "eigenen PC" auf dem Schirm (im LAN der Firma und damit mit der gesamten Infrastruktor der Firma).

Der Administrator hat bei "vmWare View" dahigegen eine Mischung aus Terminal Server und einzelnen Maschinen - N gleichartige Maschinen (gleiches Windows, gleiche Softwareausstattung) sind auf dem Server in der Tat nur 1x vorhanden. Nur aus Benutzersicht eben mehrmals, da jeder Benutzer einen "eigenen PC" sieht... Updates muss der Admin dann beispielsweise nur 1x einspielen - aber sie finden sich dann automatisch auf den N "Benutzer PCs".....

Soweit also mein Wissensstand zu dem Thema - ich bin da momentan nur nebenbei involviert.... Ob das alles so toll ist wie es klingt werden wir in wenigen Monaten wissen, wenn wir von unserem Lieferanten ein Testsystem (Server, SAN, ...) gestellt bekommen...

Ich selber bin auch skeptisch (wie man vielleicht in vorherigen Posts rausgelesen hat), bin mir aber der Vorteile durchaus bewusst (und könnte diese auch durchaus schätzen lernen).

Insbesondere bin ich halt skeptisch was die Performance betrifft. Nichts nervt einen Entwickler mehr als zu warten 😉 Zumindest ist das bei uns im Büro so 😉

Bye,
Michael

15.08.2012 - 20:33 Uhr

Wer es noch nicht bemerkt hat: Visual Studio steht auch NICHT-MSDN Abonenten zum Download zur Verfügung. Dazu gehört auch die Express Version für Windows 8.

Und damit die Version auch zum Einsatz kommen kann, bietet Microsoft gleich noch eine 90 Tage Testversion von Windows 8 für die Allgemeinheit freigegeben....

Bye,
Michael

15.08.2012 - 19:48 Uhr

Mobile Arbeitsplätze sind: du hast nen Rollcontainer (o.ä.) den Du Dir morgens schnappst und irgendeinen Platz im Unternehmen suchst. Da setzt Dich hin und arbeitest an Deinem Projekt.

Das ist die "klassische" Bezeichnung eines mobilen Arbeitsplatzes. Das sehe ich (oder allgemeiner "wir" hier in der Firma) etwas anders oder besser gesagt, nicht auf das Firmengebäude begrenzt:

  • Home Office: Wir Entwickler arbeiten i. d. R. einmal die Woche von zu Hause.

  • Abends im Hotel (für Vor- und Nachbereitungen des Tages). Ist doch chic, wenn man die gesamte Firmeninfrastruktur zur Verfügung hat und nicht nur den sehr begrenzten Subset auf dem Notebook. Gute Sache für die Vertriebler + Consultants.

  • Produktvorführungen beim Kunden, die für die Präsentation eine umfangreiche Infrastruktur erfordern - eine zSeries mitzuschleppen ist immer etwas unhandlich 😉

  • Urlaub: Ja, kommt auch vor, dass Spezial-Wissen nicht weit verbreitet und ein Kollege mal im Urlaub "ran" muss...

  • Team-Entwicklung "auswärts"... Es ist in der Tat schon einmal vorgekommen, dass bei einem immens wichtigen Auftrag und engem Zeitpan ein Team komplett auswärts entwickelt hat um effektiv und ungestört zu entwickeln....

Bei uns steht der "klassische" mobile Arbeitsplatz nicht zur Debatte... ganz im Gegenteil (zumindest für die Mitarbeiter, die ständig im Büro sind: Sekretariat, Hotline, Entwickler, ...) .

Aber ich finde wir schweifen ab.... ich wollte/will ja nicht die Vor- und Nachteile diskutieren sondern hatte gehofft jemand hier kann Hinweise/Tips aus eigener Erfahrung geben....

Bye,
Michael

15.08.2012 - 16:33 Uhr

Kam bei uns schon mehr als ein Mal als Idee auf; aber als produktiver Entwicklerarbeitsplatz alles andre als umsetzbar.

Warum? Belege?

Genauso halte ich von mobilen Arbeitsplätzen nichts, die quasi einer Arbeitsplatzvirtualisierung sehr nahe stehen.

Das ist einer der Gründe, warum unsere GF diese Virtualisierung umsetzen will. Hier gibt es diverse "3er Brüros", die u. U. eine ganze Woche leer stehen, weil die Consultants/Vertriebler/Sonstwas "on the road" sind...

Solche Ideen sind schön und gut, aber nicht zu Ende gedacht. Die Produktivität wird - anders als irgendwelche BWL Berechnungen es sagen - niemals durch solch eine Umsetzung erreicht; im Gegenteil: sie wird sinken.

Kannst Du das belegen? Einfach die Behauptung aufstellen ist ja einfach 😉

Ich sehe durchaus Vorteile, wenn ich mal eben für 1-2 Tage (oder meinetwegen auch Stunden) mein Büro wechseln kann (um mich bei "hirnintensiven" Anforderungen mal in ein leeres Büro zurückzuziehen) und dort meine gewohnte Umgebung vorfinde.... Oder man sich mit einem Kollegen zwecks (gesprächintensiven) Pair-Programming in ein anderes (leeres) Büro verdrücken kann um eben andere Kollegen nicht zu stören....

Bei uns geht es also auch darum, bei Bedarf die unkomplizierte Möglichkeit zu haben, mal das Büro auf Zeit zu wechseln (und nicht seinen festen Arbeitsplatz aufzugeben)...

Bye,
Michael

15.08.2012 - 12:06 Uhr

Moin!

Bei uns in der Firma wird momentan überlegt, sämtliche PCs zu virtualisieren (vDesktop steht zur Debatte). Ich habe da so meine Bedenken was die Performance bei der täglichen Entwicklerarbeit betrifft (habe momentan einen 4Kerner und bin trotzdem am Nörgeln bzgl. der Performance) 😉

Wie sieht das bei Euch im beruflichen Umfeld so aus? Werden/Sind Eure PCs virtualisiert und wie sine da Eure Erfahrungen? Auch würde mich interessieren, welche Technik (vmWare, vDersktopm XenDesktop, Citrix, ...) verwendet wird und was für ein Blech als Server für wieviele Arbeitsplätze eingesetzt wird....

Vielen Dank!

Bye,
Michael

02.08.2012 - 10:00 Uhr

Da es heißt, das alle Editionen ab dem 15. August RTM sind, würde ich davon ausgehen, das damit auch die Express Versionen gemeint sind.

Meine Frage bezog sich ja nicht auf eine "normale" Express Edition sondern auf die "for Windows Desktop" Version. Dazu heisst es auf der aktuellen Visual Studio 2012 Seite nur lapidar "After the release of Visual Studio 2012, we plan to release Visual Studio Express 2012 for Windows Desktop"... Das suggeriert ja durchaus, dass diese "for Windows Desktop" Edition durchaus 'ne ganze Ecke später kommen wird...

Bye,
Michael

01.08.2012 - 23:11 Uhr

Ist auch schon irgendwie terminiert, wann das Visual Studio Express 2012
for Windows Desktop erscheinen soll?

Bye,
Michael

17.07.2012 - 17:06 Uhr

InnoDB ist seit Version 5.5 die verwendete default Storage-Engine. MyISAM soll (wenn ich mich richtig erinnere) sowieso irgendwann mal komplett entfallen da es keine Transaktionen unterstützt und mehr oder weniger eine hässliche Altlast ist....

Bye,
Michael

17.07.2012 - 17:02 Uhr

Ich verwende dropbox für kurzweiliges Zeuchs (halt Sachen, die "man mal eben schnell" jemanden zur Verfügung stellen will) und Strato HiDrive für das tägliche (oder besser nächtliche) Backup... Das kann man chic über rsync ansprechen und spart dadurch Laufzeit und Bandbreite....

Bye,
Michael

13.06.2012 - 14:59 Uhr

Wenn der Taskmanager die Festplattenaktivität ausgeben kann, muss es doch einen C# Befehl dafür geben. Genau den such ich.

Du willst also die "IO-Requests" ermitteln - ob dieser die (bzw. überhaupt eine --> RAM-Disk) Platte wirklich erreicht ist Dir also Wurscht? Dann hilft Dir ggf. (bin mir über den Umfang nicht ganz sicher) das Projekt Performance Counter Helper weiter.... Ich meine die Performance Counter beinhalten auch die IO-Requests.... bin mir aber gerade nicht 100%ig sicher....

Bye,
Michael

13.06.2012 - 12:57 Uhr

Mit welcher Klasse und mit welchem Befehl kann ich das machen?

Klasse? Befehl? Also die Aktivität der Platte(n) zu monitoren ist ziemlich Low-Level, da ist nix mit Klasse und Befehl :evil: Da bist Du ziemlich nah dran an der Treiberprogrammierung....

Kannst ja mal ein Auge nehmen von DiskMon nehmen... Früher gab es von dem Tool auch den Source - ggf. findest Du den ja noch mit etwas geschicktem Googeln....

Wobei..... ah..... Ich glaube das tool hat "nur" anzeigen können, dass überhaupt etwas auf die Platte zu greift, aber leider nicht welcher Prozess....

Ob ein Prozess liest oder schreibt kann mit dem ProcessMonitor herausfinden. Früher gab es auch das Tool "FileMon" und das auch im Source....

FileMon (oder jetzt ProcessMonitor) können anzeigen, ob ein Prozess liest oder schreibt - aber das sagt ja noch lange nix darüber aus, ob der Schreib- oder Lesezugriff auch wirklich die Platte trifft (kann ja auch erst in bzw aus dem Cache gelesen/geschrieben werden)....

Bye,
Michael

12.06.2012 - 20:52 Uhr

Hallo und vielen Dank für die Antworten. Ich werde wohl den WiX-Framework verwenden, nicht zuletzt weil Microsoft selbst darauf setzt

hüstel... Microsoft setzt auch auf Windows 8 und witschwatsch Metro-Apps auf dem Desktop.... :evil: Also nur weil Microsoft auf etwas setzt.... Das wäre für mich erst einmal kein Entscheidungsgrund....

Aber mal Spass beiseite.... Da ich seit vieln Jahren ausschließlich gute Erfahrungen mit InnoSetup gemacht habe, bin ich diesem Produkt treu geblieben....

Gibt es eigentlich einen signifikanten Vorteil ein MSI-Paket zu verwenden im Gegensatz zu einem "klassischen" Installer?

Danke & Bye,
Michael

12.06.2012 - 17:22 Uhr

Der Vorteil vom Microsoft-Setup war ja die prima Integration in VisualStudio. Gibt es soetwas auch für WIX und/oder InnoSetup?

Ja. WiX kann man (wie auch immer - hab's noch nie gemacht) integrieren und für InnoSetup gibt es m. W. einen MSBuild.Comminity.Task....

MSBuildTasks

Bye,
MK

10.06.2012 - 21:46 Uhr

Microsoft hat seine Pläne bezüglich VS Express Version nur für Metro, geändert. Die unzähligen Kommentare haben wohl doch Wirkung gezeigt:
>

Hab ich auch gerade auf einer anderen Seite gelesen... freut mich immens!

Etwas panne finde ich allerdings, dass dafür (als für die klassische Desktop-Entwicklung) eine eigene Edition herausgebracht wird. Muss man sich mal auf der Zunge zergehen lassen... Wenn ich für den klassischen Desktop eine Anwendung in C# entwickeln will, dass darf ich nicht C# Express installieren.... schon etwas "verwirrend"...

Aber egal - immerhin bekommt man hier ein gutes Stück Software für lau - da will/darf/sollte man sich nicht beschwerten.... Und vielleicht hat es ja auch was Gutes - immerhin heisst das neue Produkt ja "Visual Studio Express". Das suggeriert ja irgendwie, dass jetzt auch mit einer kostenlosen Edition Mixed-Language-Solutions möglich sind.... Wenn dann noch Add-Ins möglich wären... uiuiuiui (ok, das wird wohl eher nicht kommen) warten wir mal ab....

Bye,
Michael

25.05.2012 - 18:25 Uhr

Hi,

schon gelesen.... die kostenlosen Express Editionen vom neuen Visual Studio werden nur noch Metro-Anwendungen unterstützen - die Erstellung von regulären Desktop-Anwendungen ist nur noch mit den kostenpflihtigen Versionen möglich!

Artikel auf Heise: Visual Studio Express nur noch für Metro

Schade.... damit hat sich das neue Release für mich erledigt - es sei denn, Microsoft senkt mal die Preise deutlich nach unten. Damals... die Standard Editon für ~140 Euro war fair....

Bye,
Michael

25.05.2012 - 16:03 Uhr

Wir reden hier leider von mehr als > 10 000 000 Zeilen Code. Teilweise hat eine DLL schon mehr als 1 000 000.

Ja ja, COBOL ist halt geschwätzig....

Aber ein Compilerwechsel ist schon im Gange.

Ich hoffe zu was vernünftigem wie dem Compiler von Micro Focus 😉 leider teuer - aber gut 😉

Die Frage ist aber, ob es wirklich am Compiler liegt oder am Aufruf.

Wie gesagt:
Start des Batches ohne C#-Programm -> kein Problem
Start leerer Batch mit c#-Programm -> kein Problem
Start des Batches mit c#-Programm -> Arbeitsspeicher läuft zu

Mich macht halt (wie gesagt) stutzig, dass Du beliebig viele Batches starten kannst, wenn die eben nicht den Compiler starten sondern "leere" Batches benutzt.... Daher war halt meine Vermutung, dass Deine Build-Infrastruktur (Compiler, Linker, was auch immer) ggf. ein Problem damit hat, wenn diese parallel laufen....

bye,
Michael

25.05.2012 - 14:29 Uhr

Wobei dazu zu sagen ist, dass der Compiler aus den 80ern ist und daher noch nicht managed-code. Ich glaube da bringt mir der GC erstmal nicht viel.

Das klingt ja nach schon fast nach 16 Bit Code.... Ist es ein MS-DOS basierter Compiler?

Mal erwägt einen anderen Compiler zu verwenden, z. B. KOBOL (als low-cost Variante).... oder als Konstenlose Varianten zCOBOL , Cevela MX oder tinyCOBOL (wobei die beiden letzteren eher "Lernsysteme" sind)

Ich denke mal irgendwas stimmt mit dem Compiler bzw. dem gesamten Prozess- oder Build-Umfeld nicht - denn Du hast ja geschrieben, dass Du die Probleme nicht hast, wenn Du mit cmd.exe "leere" batch-files startest.

Ich würde dort mal ansetzen oder aber Deine gestarteten CMD-Files mal Stückchen für Stückchen reduzieren, (z. B. nur Compile ohne Link) bis Du einen "Schuldigen" gefunden hast.... Oder halt ansers herum: die CMD-Files Stück für Stück komplettieren...

Bye,
MK

10.05.2012 - 22:00 Uhr

Genau das ist es was ich möchte 😃. Ich möchte mein Programm die Logindaten mit geben... Ich frag mich nur wie ich mich als Admin dann automatisiert einlogge...

Vielleicht helfen Dir die Links weiter:

How to Impersonate
Safely Impersonating Another User

Aber aus dem Bauch heraus beführchte ich jedoch, dass diese Techniken auch nicht helfen (LogonUser, ImpersonateLoggedOnUser und/oder CreateProcessAsUser), weil auch dann beim Zugriff auf "geschützte Objekte" der UAC-Dialog aufpoppen sollte (soweit zumindest mein Verständnis der UAC). Aber ist ist ja mal einen Versuch wert....

Bye & viel Erfolg!
Michael

08.05.2012 - 17:28 Uhr

Bei mir kam gestern das Firefox 12 Update und er wollte eine UAC-Bestätigung.

Yepp... aber diese UAC-Bestätigung kommt (so habe ich es gelesen - hab nich keinen 12er drauf) nur einmal - danach nie wieder....

Und um auf den Ursprungspost zurückzukommen: Mit dieser "Technik" (einmaliges abnicken der UAC sowie einem Access Control Entry) könnet u. U. die Anforderung vom Ursprungsposter erfüllt werden...

Bye,
Michael

08.05.2012 - 12:55 Uhr

Ich würde gerne ein Programm als Administrator starten, jedoch möchte ich dies ohne die aufforderung von den Benutzern (diese haben nur eingeschränkte Konten).

Ich habe letztens auf heise.de gelesen, dass Firefox 12 sich selber aktualisieren kann - und zwar indem es einen Update-Prozess als Admin startet, ohne dabei selber Admin Rechte zu haben (und ohne UAC-Fenster)...

Vielleicht funktioniert die dort angewendete Technik ja auch in Deinem Fall:

Order of ACEs in a DACL

Bye,
Michael

07.05.2012 - 08:26 Uhr

@M.Knigge: Könnt ich mich an dich wenden, falls ich nach der Wireshark Analyse nicht weiter weiß?

Yepp! 😉

04.05.2012 - 12:55 Uhr

Eine API existiert leider nicht und eine Google-Suche bringt auch nicht die gewünschten Ergebnisse. Wenn man versucht beim Hersteller (DGen Teleios) anzurufen, kommt man in Seoul in Südkorea raus und deren Englisch ist nicht so gut. Und mein Koreanisch ist auch nicht das beste.

Ja Herr Gott dann schreib doch 'ne E-Mail.... Englisch schreiben werden die Koreaner ja wohl können 😉

Und bei solchen Geräten hat man doch für Gewöhnlich Wartungs- und/oder Serviceverträge. Frag doch den Dienstleister mal... Die Leute die diese Geräte warten / reparieren sollten doch nun wirklich wissen, was da für Technik drinne steckt....

Und wenn das alles nicht hilft: Wireshark anschmeissen und den Datentransfer zum Drucker abgreifen und angucken.....

Bye,
Michael

P.S.: Da dieses ganze Drucker und Druckdatenstrom Zeuchs nun irgendwie "mein Ding" ist: Ich habe mal etwas Google beschäftigt: Offensichtlich verbaut die Firma DGen Teleios Druckwerke von Roland DG (http://www.rolanddg.de). Und Roland wiederum hat einen RIP (Roland VersaWorks), der PostScript verarbeitet... Würde mich also nicht wundern, wenn Du beim Sniffen via WireShark letzendlich PostScript zu Gesicht bekommst...

03.05.2012 - 10:16 Uhr

Wir haben bei uns in der Firma einen ziemlich großen Drucker, der mit einer speziellen Anwendung per Ethernet kommuniziert. Es soll nun eine eigene Anwendung entwickelt werden, die ebenfalls mit dem Printer kommuniziert.

Also wenn ich Dich richtig verstehe, dann ist für diesen "ziemlich grossen Drucker" unter Windows kein Drucker in der Systemsteuerung eingerichtet? Und trotzdem kann die "spezielle Anwenung" auf dem Gerät drucken - halt via Ethernet?

Kann es sein, dass die Anwendung den Druckdatenstrom (beispielsweise PCL - ist ja nicht so kompliziert) selber erzeugt und dann via TCP/IP (z. B. LPR oder FTP) zum Drucker schiebt? Oder hat der Drucker hat eine API vom Hersteller (ist beispielsweise bei Labeldruckern meistens so)?

Und warum fragst Du nicht einfach beim Hersteller an?!? 😉 Oder googelst mal nach dem Drucker und schaust nach, was der so kann?!?

Bye,
Knick

P.S. Oder ist es gar ein Hochleistungsdrucker der AFP resp. IPDS druckt? Und die Kommunikation geht gar nicht direkt zum Drucker sondern zum Spooler (z. B. PRISMA oder sowas)?

11.04.2012 - 10:10 Uhr

das XP nicht mehr unterstützt wird, finde ich persönlich in Ordnung. XP ist 11 Jahre alt und ist schon lang nicht mehr im normalen Supportzyklus. Anfang 2014 gibts nicht mal mehr Hotfixes und Securityupdates.

Joh, das sind dann aber noch mal locker zwei Jahre. Und es gibt Bereiche in einem Unternehmen, da interessiert der Supportzyklus nicht die Bohne.... Es gibt noch immer Bereiche in Unternehmen, da läuft noch ein NT 4.0 oder Windows 2000. Mal ganz zu schweigen von OS/2...

Und mir pers. kommt das eher nach "Schachzug" als "Designentscheidung" von seiten Microsofts vor. Die von der CRT benötigten Funktionen, die unter Windows XP nicht zur Verfügung stehen, sind doch nun wirklich nahezu pillepalle (z. B. GetVersionEx). Bei Microsoft arbeiten doch fähige Entwickler - für die wäre es kein Problem gewesen, auch ohne diese Funktionen auszukommen....

Und der Source der CRT wird auch nicht mehr mitgeliefert - also kann man sich seine eigene CRT - die halt unter Windows XP lauffähig wäre - nicht mehr selber erstellen....

In meinen Augen ist der eine riesen Sauerei - XP wird hier künstlich getötet!

In WPF gibts da viele weitere Beispiele, da das Treibermodell von Windows XP für die Grafikkarte einfach die Funktionalität nicht zulässt. Ein Beispiel wäre rahmenlose Fenster mit aktivierter Transparenz.

Das mag ja alles sein - aber was hat das jetzt mit einer unter XP nicht funktionierenden CRT und MFC zu tun?!?!?

Lange Rede, kurzer Sinn: Abwärtskompatibilität gerne, aber nicht wenn man dadurch Einbußen bei aktuellen Technologien hinnehmen muss.

Und wie gesagt - es gibt Bereiche in Unternehmen, da interessieren aktuelle Technologien (z. B, WPF) nicht die Bohne.... Es soll da ja einen nicht gerade kleinen Bereich für Batch-Anwendungen geben, denen beispielsweise Fenstertransparenz bilateral am Allerwertesten vorbei geht 😉

Bye,
Michael

10.04.2012 - 14:18 Uhr

Hi,

ist zwar ein C#-Forum hier und einige haben es ggf. vielleicht schon mitbekommen - aber ich dachte ich erwähne es trotzdem mal:

Native Code, der mit VS 2011 erstellt ist, läuft nicht mehr unter Windows XP.... das hat (bzw. wird) bei uns beispielsweise den Upgrade definitiv verhindern... schade... hab mich schon auf das neue VS gefreut... 😦

bye,
Michael

P.S.: Die obige Aussage bezieht sich natürlich auf die Beta - allerdings bezweifle ich, dass Microsoft in der finalen Version Windows XP wieder unterstützen wird... Es sei denn der Druck der Entwickler wird zu gross...

P.P.S.: Bug: apps created with CRT and MFC vNext (11) cannot be used on Windows XP SP3

02.04.2012 - 15:56 Uhr

Hi,

beim YouTube Video steht "AutoDater is an open source Windows-based application" geschrieben....

Wo genau kann ich den Source herunterladen?!?

Bye,
Michael

02.04.2012 - 10:03 Uhr

Was für ein Zertifikat genau benötigt man dafür?

Du brauchst ein sog. "Code Signing Certificate".

Wer sind "gute" Anbieter solcher Zertifikate?

Alle Anbieter, die auch "normale" Zertifikate ausstellen, also Thawte, VeriSign etc. Günstig ist "StartSSL".

Lässt sich der Signierungsvorgang im VS Buildprozess integrieren (ich nehme an, ja)?

Yepp... Machst Du einen Rechtsklick auf Dein Projekt, wählst "Eigenschaften" und im folgenden Dialog den Tab "Signierung". Dort gibt es die Option "Assembly signieren". Alternativ "per Hand" mit dem Kommandozeilentool "signtool.exe".

Kochrezept: Code Signing Certificate von StartSSL
Code signing mit StartSSL – Teil 1
Code signing mit StartSSL – Teil 2
Code signing mit StartSSL – Teil 3

Alles klar?!? 😉

Bye,
Michael

21.03.2012 - 18:07 Uhr

Hi,

suchst Du vielleicht Dokan? Dazu als Beispiel ggf. FUSE(file system in userspace) for Microsoft-SQL using C# ?

Oder http://nfilestorage.codeplex.com/ ?

Wenn es wirklich so Richtung virtuellem Dateisystem gehen soll, dann ggf. QVFS - A FAT32 Based Virtual File System Powered by VB.NET 2005 - das ist zwar eine Implementierung in VB.Net, aber das kann man ja ändern 😉

Bye,
Knick

11.03.2012 - 23:15 Uhr

Hi,

was Du machen willst geht m. W. nur mit einem File System Filter Driver - guckst Du hier: File System Filter Drivers

Das ist aber schon ziemlich low level (-> Treiberprogrammierung). Mit "reinem" C# kannst Du das m. E. vergessen....

Wenn Du eine Beispielimplementierung sucht, dann schmeiss mal google an und such nach dem source code von "FileMon"..... Da das Internet nix vergisst findet sich bestimmt irgendwo noch der Source davon 😉

Bye,
Knick

05.03.2012 - 23:15 Uhr

Wenn der User meint er kriegt Mails unter dem was er eingibt, dann würde ich das auch so lassen.

Aber der Programmierer weiss zu 100%, dass der Benutzer hier "falsch meint", da nun einmal Umlaute im lokalen Teil der E-Mail Adresse nicht erlaubt sind.... Da kann der Benutzer meinen was er willl....

Bye,
Michael

05.03.2012 - 13:54 Uhr

Wie genau geht man damit um, wenn in der E-Mail-Adresse vor dem @-Zeichen irgendwelche Umlaute stehen?

Man wirft die E-Mail Adresse mit einem freundlichen, sachlichen aber doch bestimmten Ton dem Anwender zurück an den Kopf! 😉

Spass beiseite.... Umlaute sind im lokalen Teil der E-Mail Adresse (lokaler Teil ==> vor dem @ Zeichen) nicht erlaubt...

Bye,
Michael

P.S.: Guckst Du hier E-Mail-Adresse

03.03.2012 - 17:19 Uhr

Ich probier's mal mit der DVD-ISO. Vielleicht ist C als Cache-Laufwerk im Web Installer hardcoded.

Ich bezweifle, dass Laufwerk C hard-coded ist. Viel mehr wird der Web-Installer wohl nach nach %TEMP% oder %TMP% schreiben wollen, gell 😉

bye,
Knick

22.01.2012 - 21:36 Uhr

Hi,

wenn es was kosten darf, dann würde ich Berkely DB empfehlen. Ist allerdings in C implementiert (oder Java), kommst also um P/Invoke nicht drum herum. Ich habe das Ding selber noch nicht benutzt. Einige Kollegen vor mir haben Ende letzten Jahres diverse NoSQL Datenbanken evaluiert - und bei Berkely DB waren die Jungs so entzückt von der Performance und den Möglichkeiten, dass man denen das Grinsen aus dem Gesicht schlagen musste 😉

Eine reine C# Implementierung einer Key-Value-DB wäre z. B. RaptorDB (http://www.codeproject.com/Articles/190504/raptordbkv2.aspx), die allerdings etwas spezifische Einschränkungen hat (beim Delete). Hab ich nur mal kurz mit gespielt, habe also auch keine "echten" Erfahrungen damit.....

Bye,
Michael

19.01.2012 - 12:32 Uhr

Hi,

kannst Du denn überhaupt SQLite als Flaschenhals eindeutig identifizieren? Oder bekommst Du ggf. die Daten nicht schnell genug geliefert oder aber raubt Dir dieses ganze "Locking-Firlefanz" 😉 die Performance?

Schreib doch "zum Spass" mal ein kleines Konsolenprogramm, dass einen definierten Datenbestant in die SQLite DB schreibt - also einen Bestand, wie ihn auch Deine Applikation schreiben würde - dann siehst Du ja schon einmal, wie schnell Du ohne "Datenbeschaffung" in die DB schreiben könntest.

Und falls sich am Ende tatsächlich SQLite als Flaschenhals heraus stellt: Wenn Du nicht unbedingt eine SQL-DB benötigst (sondern eine Key-Value DB ggf reicht), dann nimm doch mal was anderes. Wirf doch mal 'nen Blick auf http://www.codeproject.com/KB/database/raptordbkv2.aspx (hat aber Einschränkungen beim Löschen!!! - Genau LESEN)

Bye,
Michael

22.12.2011 - 15:49 Uhr

Wie wäre es mit

Adler-32 oder
Cyclic Redundancy Check

Bye,
Michael

15.12.2011 - 15:15 Uhr

Du nimmst 'nen Web-Browser Deiner Wahl, rufst die URL www.google.com auf und suchst dort nach "c# +upload +ftp". Ob Du nun den ersten, zweiten, dritten oder vierten Treffer nimmst spielt keine Rolle....

MK

08.12.2011 - 08:59 Uhr

Nutzt Dein Browser ggf. 'nen Proxy und Teil Programm eben nicht?

Bye,
Knick

24.11.2011 - 11:42 Uhr

Hi,

und der Kostet mich was? gerade wenn man den nicht Privat anwenden will.

Was ist "der"? Micro Focus Server Express, Micro Focus Net Express, Micro Focus Visual COBOL, .... ?!?!?!? Aber ist eigentlich auch egal - so ab 4000,- Euro geht der los....

Es gibt auch eine kostenlose Version. Ich bin mir aber nicht sicher, in weit Du den auch kommerziell nutzen kannst. Mein letzter Wissenstand ist, dass die kostenlose Variante (gibt es nur für Windows) m. W. als einize Beschränkung eine Limitierung auf 1000 Zeilen Code hat. Für einen kleinen Data Access Layer sollte das aber reichen ;->

Also selber sich sowas schreiben wie beim Microsoft Access oder Sql Server Zugriff funktioniert nicht.

Wie jetzt "selber schreiben geht nicht"? Wir sind doch hier ein Programmierer-Forum, oder?!? 😉 😉 😉

Ja die Dokumentation von Micro Focus ist nicht gerade die beste. wenn man die von Microsoft kennt.

Naja, das kann ich sooooo nicht unterschreiben. Die Doku ist... sagen wir mal... "anders" 😉 Aber immerhin sind die internen Dateiformate (ISAM) dokumentiert, das sehe ich nicht als selbstverständlich an.

ok dann muss ich mich mal durchfragen was für Dateien das sind und wie ich die lesen muss.

Yepp.... Und wie gesagt... bei ISAM hat seinerzeit so ziemlich jeder Hersteller eines COBOL-Compilers sein eigenes Süppchen gekocht. Also mit einer Antwort "die Datei wird von einem COBOL-Programm geschrieben" darfst Du Dich nicht abspeisen lassen ;->

Musst Du die Datei denn "nur" lesen oder auch schreiben/updaten? Also egal wie "komplex" das Format ist - wenn es dokumentiert ist dann sollte ein reiner Lesezugriff doch relativ einfach zu realisieren sein, oder?

Bye,
Michael

24.11.2011 - 10:12 Uhr

Hi,

es gibt nicht "das" ISAM-Format (wobei das "C-ISAM" Format schon ziemlich verbreitet ist). ISAM spezifiziert eine Zugriffsart. Der Micro Focus COBOL-Compiler beispielsweise unterstützt diverse "ISAM-Formate"...

Ohne also genau zu wissen "welches" ISAM-Format jetzt genau benötigt wird, kann man Dir keine exakte Antwort geben...

Ggf. musst Du halt eigene Klassen dafür implementieren... Bei Micro Focus beispielsweise sind die Formate mehr oder weniger gut dokumentiert....

Bye,
Michael

10.11.2011 - 10:02 Uhr

Hi,

Du könntest (wie auch andere schon geschrieben haben) Dir einen Linux V-Server anmieten. Die Installation eines Proxy-Servers geht ratz-fatz, da man im Grunde (grob gesagt) nur die Portnummer konfigurieren muss und das war es dann. Man kann natürlich noch Feintuning betreiben, aber im Grunde ist (beispielsweise) der Squid bereits gut konfiguriert, wenn dieser von der Linux-Distribution installiert wird.

Als Alternative könntest Du ja man bei google nach "public http proxy" suchen und mal gleich auf den ersten Treffer klicken - http://www.publicproxyservers.com

Wie lange die aufgelisteten Proxies aktiv sind, kann ich nicht sagen. Aber selbst wenn die immer nur wenige Tage/Wochen Online sind - dann könnte man ja immer noch die Liste der Proxyies automatisiert ermitteln und einfach der Reihe nach durchprobieren.

Oder lies mal hier - Internet Anonymity Services and Privacy Solutions
oder hier - http://proxy-list.org

Ich weiss ja nicht was Du da genau machen willst, aber auch wenn Du einen Proxy benutzt kann Deine "echte" IP u. U. erkannt werden, wie z. B. die Seite "Show my IP" - test your privacy beweist....

So long,
Knick

03.11.2011 - 22:38 Uhr

Hi,

sofern der Apache entsprechend konfiguriert ist, dann kannst Du die Plattform aus dem HTTP-Response Header entnehmen - bei mir steht dort z. B.

Server: Apache/2.2.16 (Debian)

Schau Dir dazu mal die Apache-Direktive "ServerTokens" an. Das Betriebssysten bekommst Du nicht heraus - aber mehr oder weniger die Plattform. Soll heissen, dort steht nicht zwingend "Linux" oder "SunOS" oder sowas - aber beim Apache unter Windows sollte dort halt irgendwas mit "Win" stehen 😉

Und wie wahrscheinlich alle anderen hier im Forum kann auch ich Dir nur raten: LASS DAS SEIN! DAS VERURSACHT NUR ÄRGER / STRESS / KOSTEN !!!

Ich als potentieller Kunde würde eine Software, die auf einen externen Lizenzserver angewiesen ist, niemals einsetzen. Und selbst wenn ich gezwungen wäre: Wenn der Lizenzserver mal nicht tut und ich die von mir bezahlte/gemietete Software dann nicht nutzen kann..... also mit dem Menschen am anderen Ende der Telefonleitung möchte ich nicht tauschen! Der würde von mir das Letzte zuerst hören! Von Regressforderungen mal ganz abgesehen....

Wenn Du schon "unbedingt" eine Online-Lösung willst, dann verwende doch Lizenzdateien (z. B. signierte XML-Dateien). In der Lizenzdatei gibt es ein Ablaufdatum (um den Mietzeitraum abzubilden). Und die Applikation versucht beim Start eine aktualisierte Lizenzdatei von Deinem Server herunter zu laden. Wenn es klappt: gut. Wenn nicht, dann wird die vorhandere Lizenzdatei verwendet. Ist die Lizenz noch gültig: gut. Wenn nicht, dann kannst Du dem Kunden im Problemfall eine aktualisierte Lizenzdatei noch per Mail zusenden, die der Kunde "per Hand" installiert.

Bye,
Michael

17.10.2011 - 16:09 Uhr

Hallo,

na dann wirf doch mal einen Blick in die Konfigurationsdatei vom MySQL-Server. Oder besser: vergleiche die beiden Dateien (also vom alten und neuen Server).

Zu kleine Chaches oder Größen fürs binary-log zwingen jeden MySQL-Server runter. oder aber dies Option (mist... Namen vergessen) jeden query in eine Logdatei zu schreiben...

Bye,
Michael

P.S.: Ist es denn die gleiche MySQL-Version? Oder werden hier Äpfel mit Birnen vergleichen?!?

23.09.2011 - 17:01 Uhr

Hi,

mit InnoSetup kannst Du soetwas realisieren, in dem Du z. B. für jede zu installierende Applikation einen sog. "Task" verwendest. Der Benutzer kann dann die Tasks selektieren und über das InnoSetup Skript sorgst Du dann für die Installation....

Und für eine silent Installation kann man die gewünschten Tasks auch an der Kommandozeile angeben....

bye,
Michael

16.09.2011 - 15:35 Uhr

Hi,

wirf mal ein Auge auf SQLite... Die unterstützt auch in-memory Databases (ich meine, als Datenbankdatei ":memory:" verwenden und schwupps ist die DB im RAM).

Bin aber spontan überfragt, ob die ggf. für ein Journal doch eine externe Datei angelgt.... einfach mal probieren:

http://system.data.sqlite.org

Bye,
Michael

08.09.2011 - 09:23 Uhr

Da meine (privat) entwickelten Applikationen sowohl unter Windows als auch unter unixoiden Betriebssystemen laufen sollen, komme ich um WinForms nicht so wirklich herum.

In der Zukunft werde ich mir wohl mal HTML(5) angucken - WPF lasse ich mal brav aus, da ich für meine (wie gesagt) privaten Projekte keinen Mehrwert durch WPF sehe und die Technik (wenn es nach MS geht) jetzt wohl eher Richtung HTML(5) geht.... Aber mal gucken...

Beruflich entwickle ich (u. a.) mit Java und da steht GWT (genauer "extGWT") hoch im Kurs. Da kann man chic in Java entwickeln (inkl. Debugging) und der Compiler macht dann HTML + Java Script draus für ne trendige Web-Anwendung 😉

Bye,
Knick

02.08.2011 - 16:00 Uhr

Hi,

Du könntest als Programm "cmd.exe" ausführen und dann als Parameter "/c " angeben, gefolgt von Deinem String....

Bye,
MK

21.07.2011 - 22:39 Uhr

Hi,

kannst Dein Glück ja mal mit CodeCompare versuchen: http://www.devart.com

Bye,
Michael

12.07.2011 - 21:53 Uhr

Hi,

Wenn dies so ist, kennt ihr vielleicht Software die nach dem Prinzip Arbeitet die wir suchen?

Welches "Prinzip" meinst Du denn jetzt? Das Prinzip "es werden nur Unterschiede übertragen" oder das Prinzip "versioniertes Backup"?

Also eigentlich sollte jede vernünftige Backup-Software, die diesen Namen auch verdient hat, beides beherrschen....

Wie gesagt... rsync kann prima nur die Unterschiede übertragen - sogar bei Binärdateien. Und da es OpenSource ist und für diverse Betriebssysteme zur Verfügung steht, steht einem unternehmensweitem Einsatz nix im Wege. Wir setzen beispielsweise ein buntes Potpourri an Systemen ein: Windows, Solaris, AIX, Linux, früher auch mal eine Zeit lang HP-UX und noch z/OS (ok, da verwenden wir kein rsync). Und eben diese bunte Mischung unterstützt(e) keine Backup-Software, die halbwegs bezahlbar ist... daher haben wir uns selber etwas mit rsync gebastelt, das auch noch hervorragend funktioniert...

Wenn Ihr jetzt beispielsweise noch Solaris Know-How im Hause habt, dann wäre eine "Self-Made" Lösung, alles via rsync auf einen Solaris Server zu übertragen, der mit einem ZFS-Dateisystem arbeitet. Dort kann man prima und platzsparend jederzeit einen Snapshot des gesamten Dateisystems machen (der fast keinen Platz benötigt) und kann auf jeden gemachten Snapshot jederzeit wieder zugreifen.

Ich habe vor etwa zwei Jahren mal jedmanden kennengelernt, der alle 2 Sekunden auf seinem Solaris Server einen Snapshot anfertigt und somit mehr oder weniger ein versioniertes Dateisystem hat - und er kann wie gesagt jederzeit auf einen in der Vergangenheit angefertigten Snapshot zugreifen....

Bye,
Michael

12.07.2011 - 11:56 Uhr

Dabei kam mir die Idee das ganze müsse sich doch eigentlich per Subversion erledigen lassen.

Also mal ganz abgesehen davon, dass ich das so in der Form nicht machen würde:

Was möchtest Du denn alles ins Backup aufnehmen? Und welches Betriebssystem kommt zum Einsatz?

Hier mal 2-3 Gedanken z udem Thema:

Noch bis zu Version 1.7 (die hoffentlich bald released wird) benötigt Subversion in jedem unterverzeichnis ein ".svn" Verzeichnis. Bei einem commit und/oder update müssen diese Verzeichnisse m. W. "gelockt" werden, was unter Windows ein seeeeehr teures (Laufzeit) Vergnügen ist (unter Linux isses wesentlich schneller). Also rein aus Laufzeitgründen würde ich mir das gaaanz genau überlegen.

Weiterhin ist der Platzbedarf nicht zu unterschätzen - denn durch die ".svn" Verzeichnisse verdoppelt sich der Platzbedarf (kannst ja mal selber prüfen: mach mal einen Checkout eines Repositories und parallel einen Export).

Unser Standort bekommt eine Standleitung (um die 20Mbit) und ein externer Standort hat die Backup Server. Ein Initialbackup wird durchgeführt (um die 400Gbyte).

Es gibt diverse Anbieter für Online-Backups - ich würde zu einem solchen Anbieter tendieren.

Oder was ich selber mache: Ich habe bei Strato das sog. "HiDrive". Das ist eine Online-Festplatte, die man über diverse Protokolle erreichen kann: rsync, ftp, smb (vie OpenVPN!). Und man kann zu selbst festgelegten Zeitpunkten auch noch ein automatisches Backup seiner Online-Festplatte durchführen lassen (Aufbewahrungszeit bis zu 36 Monate).

Ich sichere jede Nacht automatisch via "rsync" einen Datenbestant von ca. 70 GB. Durch das rsync werden halt nur die neuen/geänderten Dateien übertragen. Durch die verwendete SSL-Verbindung kann auch keiner "mithören". Dann lasse ich weiterhin 1x täglich ein Backup der Online-Festplatte durchführen. Und dann ist die Online-Festplatte auf Strato-Seite eh 2x vorhanden, da Strato zwei RZs betreibt, die sich synchonisieren....

So mache ich das 😉

Strato hat (leider?) noch immer den Ruf eines Billig-Anbieters. Wie dem auch sei, was die technische Infrastruktur betrifft sind die Jungs dem Mitbewerb um einiges voraus (kein anderer von mir seinerzeit evaluierter Mitbewerber betreibt beispielsweise zwei synchronisierte RZs)...

Bye,
MK

P.S.: Das Initialbackup kann bei Strato auch per FedEx-Network durchgeführt werden (die schicken Dir ne Platte zu - vermutlich mit einem TrueCrypt Container - die Du befüllst und dann zu Strato zurückschickst).

P.P.S.: Die Daten liegen bei Strato verschlüsselt auf den Plattensubsystemen. Die Jungs von Strato kommen selber auch nicht an die Klartextdaten... Auch nicht bei einem richterlichen Beschluss ;->

P.P.P.S.: Durch die ISO27001-Zertifizierung bei Strato sowie dem RZ-Standort DE kommst Du auch nicht in Konflikt mit dem Deutschen Datenschutzgesetz....

P.P.P.P.S.: So jetzt aber genug... und NEIN, ich bekomme von Strato keine Provision - ich halte das HiDrive nur für ein gutes Produkt... nicht mehr und nicht weniger.....

31.05.2011 - 10:29 Uhr

Dennoch wurde meine Software geknackt, indem ein Programm vorgeschaltet wird, welches im Prinzip den Speicher von meinem Programm manipuliert. Im Prinzip wird da einfach der Wert der Variablen, welche den Lizenzstatus speichert geändert. Leider funktioniert das.

Ja, der Phantasie sind da keine Grenzen gesteckt 😦

Ich vermute, der "Angreifer" erledigt seine Aufgabe mit "CreateRemoteThread", um im Adressraum Deines Prozesses einen Thread zu erstellen, der dann halt in eben diesem Adressraum den Speicher manipuliert.... Ggf. kriegt man es hin, die Adresse von CreateRemoteThread selber zu ermitteln und auf eine eigene Funktion umzubiegen, die eben nix macht... Aber ich denke, das ist eher abenteuerlich und endet im schlimmsten Fall mit einer Exception (oder einer sehr abenteuerlichen Race Condition), da das .NET Laufzeitsystem ggf. selber CreateRemoteThread aufruft... von daher.... nee, auch doofe Idee 😉

Ich selber bin gerade dabei und entwickle auch meine erste Applikation, die ich kommerziell vertreiben möchte und habe mir auch zu dem Thema einige Gedanken gemacht... Leider ist es so, dass es das .NET-Zeuchs einem viel zu einfach macht, Schutzmechanismen zu umgehen. Und da ich meine Anwendung auch unter Mono lauffähig haben möchte, sind Schutzmechanismen, die native Code benutzen schon mal aus dem Rennen....

Ich pers. bin zu folgendem Entschluss gekommen:

  1. Obfuskieren ist grundsätzlich mal eine gute Idee. Wenn in der Assembly Methoden- und Klassennamen durch "nicht darstellbare" UNICODE-Zeichen ersetzt werden, dann macht es dem Angreifer erst einmal verdammt wenig Spass, sich durch den Code zu wühlen.

  2. Das Zusammenführen von der EXE und ggf. benötigten DLLs ist auch eine gute Idee, weil dadurch dem Angreifer "Hinweise" entzogen werden, die Rückschluss auf die Verwendung von DLLs geben.

  3. Auf keinen Fall würde ich ein Fenster aufpoppen lassen, wenn ich feststelle, dass die Lizenz nicht gültig ist o. ä. Damit hat der Anfreifer SOFORT die Stelle im Programm, an der er ansetzen muss, um den Schutz zu entfernen. Ich würde eher anfangen, das Programm nicht so richtig korrekt laufen zu lassen (wie damals AshtonTate bei MultiMate - dort wurde dann absichtlich falsch gerechnet). Oder aber nur "merken", dass die Lizenz nicht gültig ist und erst nach 2-3 Monaten rummeckern... Der Angreifer vermutet dann, er hatte Erfolg und released den Crack.... Nur nützt er dann nach 2-3 Monaten niemanden mehr...

  4. Damit Punkt 3 funktioniert, müssen aber ZWEI voneinander unabhängige Lizenzprüfungen stattfinden. Die erste sollte "einfach" sein - also z. B. eine einfache Lizenznummernprüfung, die vom Angreifer dann eben "gecrackt" wird, damit er seinen Erfolg sieht und den Crack released. Die zweite Prüfung ist dann die "komplizierte" Prüfung - wie z. B. bei Dir die hardwarebasierte Lizenzprüfung, die aber eben nicht zu offensichtlich sein darf - ok, was bei hardwarebasiert etwas schwierig ist....

  5. Damit die zweite Lizenzprüfung nicht so schnell auffällt, würde ich diese versuchen so gut wie möglich zu verstecken - z. B. könnte man die Assembly mit der Prüfung als verschlüsseltes ByteArray in die EXE einkompilieren und dann zur Laufzeit entschlüsseln und laden... darf aber halt nicht zu offensichtlich sein, daher würde ich diese Assembly auch nicht einfach als Resource einbinden. Höchstens wenn ich das Assembly an (z. B.) ein Image/Bild anhäge, das ich eh als Resource einbinde (z. B. das Image, das ich in einem Splash-Screen anzeige)....

  6. Die Applikation in zwei Varianten backen - eine Freeware/Demo Version und eine lizenzierte Version. Die Freeware/Demo Version hat dann in der Tat auch weniger Umfang und kann nicht durch einen Lizenzschlüssel o. ä. freigeschaltet werden. Was an Code nicht da ist - kann auch nicht gecrackt werden...

  7. Die lizenzierte Version würde ich noch personalisieren. In Zeiten, bei denen die Software via Internet vertrieben wird, ist es sicherlich kein Problem, beim (bzw. vor) Download noch in irgendeiner Art und Weise Informationen über den Lizenznehmer in/an das Assembly zu kleben.... Wenn dann tatsächlich mal eine lizenzierte Version im Internet auftaucht, dann weiss man wenigstens von wem und kann sich weitere Schritte überlegen...

Soweit meine eigenen Überlegungen zu dem Thema... Den Versuch, die Software 100%ig vor Crackern schützen zu wollen, habe ich aufgegeben. Das ist ein Kampf, den man definitiv nicht gewinnen kann. Man kann es dem Cracker schwer machen (z. B. mit Anti-Debugging Techniken), aber ein erfahrener Cracker lässt sich davon nicht abhalten. Auch dieser ganze "Quatsch" mit komprimieren und und verschlüsseln von Assemblies - auch darüber lächelt ein Cracker nur müde, denn irgendwann liegen die Sachen halt unverschlüsselt im Speicher...

Ich denke, man muss für sich den Weg finden, der einen gewissen Level Schutz bietet, aber die Nachteile nicht zu gross werden lässt (wie z. B. der unleserliche Stacktrace bei obfuskierten Asselmblies)....

So, soweit meine Überlegungen....

Bye,
Michael