Die neue Benutzerkontensteuerung UAC von Windows Vista kann eigene Programme die Administratorrechte benötigen Probleme bereiten. Auch wenn der User Administratorrechte besitzt werden ihm diese beim Anmelden sofort wieder entzogen.
Dadurch hat man zwei Möglichkeiten: Entweder man zwingt den Benutzer dazu das Programm mit dem Kontextmenüeintrag "Als Administrator ausführen" zu starten, oder man zwingt Windows Vista zur Herausgabe der Administratorrechte. Den zweiten Weg sollte man auf jeden Fall vorziehen. Dadurch wird Windows Vista dazu aufgefordet den Benutzer zu fragen ob er das Programm als Administrator ausführen möchte.
Dazu benötigt man eine Manifest-Datei. Leider reicht es nicht, das XML-Manifest wie üblich separat zur EXE-Datei mitzuliefern. Das .NET-Assembly muss nach dem Kompilieren mit dem Programm Microsoft Manifest Tool (mt.exe) des .NET-Framework SDK noch nachträglich modifiziert werden.
Mehr…
Microsoft liefert im .NET-Framework SDK gleich einen Disassembler für .NET-Assemblies mit. Das ist zwar praktisch für das Debuggen, aber als Programmierer sieht man es nicht gerne, wenn das Ergebnis einer langen harten Arbeit dem MSIL schutzlos ausgeliefert ist. Natürlich ist es besser die im Visual Studio mitgelieferte Community Edition von Dotfuscator zu verwenden. Wem es aber reicht den MSIL auszusperren, der kann sich mit nur wenig Code leicht helfen.
In C# reicht es folgenden Code in eine extra angelegte Sourcecode-Datei oder gleich in die AssemblyInfo.cs zu schreiben:
using System.Runtime.InteropServices;
//Verhindert das Disassemblieren mit MSIL (Ildasm.exe)
[assembly: SuppressIldasm()]
BTW: In VB.NET geht das natürlich auch. Das Attribut des Assembly muss einfach in der VB.NET-Syntax gesetzt werden.
Eigentlich dachte ich, dass Mono mit den zahlreichen Erneuerungen bei C# 3.0 zurückfallen würde. Doch weit gefehlt. Hier auf Golem.de habe ich heute gelesen, dass die Entwickler in Ihrem Blog für die kommende Version 1.2.5 bereits die Unterstützung für C# 3.0 versprochen haben. Sogar die LINQ-Spracherweiterung soll der Compiler unterstützen.
Ich bin schon gespannt was letztendlich daraus wird, denn ich denke schon länger darüber nach Mono zu benutzen um ein paar meiner Programme auf Linux portieren zu können.
Hoffentlich bekommen die Entwickler auch die Portierung von den .NET 3.x-Frameworks zustande.
Das Erstellen einer Dokumentation und die ständige Aktualisierung speziell für .NET-Klassenbibliotheken sind sehr mühsam. Gleichzeitig sollen natürlich andere Programmierer die diese Klassenbibliothek verwenden im Klaren sein, welche Methoden, Eigenschaften,… die beinhalteten Klassen besitzen und was sie machen. Daher kann man bereits im Code über die XML-Kommentare kurze Erklärungen anbieten. Über den Objekt-Explorer bzw. IntelliSense von Visual Studio lassen sich diese dann auch abrufen, wenn nur eine kompilierte Version vorliegt.
Doch es geht auch besser. Die beim Kompilieren von Visual Studio exportierten XML-Dokumentationsdatei (Muss in den Projekteigenschaften im Register Erzeugen aktiviert sein.) enthält eigentlich bereits alles um daraus eine vollwärtige Dokumentation – die der MSDN Library ähnlich ist – zu erzeugen.
Mehr…
Erst vor kurzem habe ich in diesem Beitrag erklärt wie man einen Subversion-Server unter Windows einrichtet. Natürlich ist noch mehr unter Windows möglich.
Zum Beispiel gibt es da das kostenlose Programm TortoiseSVN, das es erlaubt SVN-Funktionalität direkt in den Windows-Explorer zu integrieren. Es reicht die Installationdatei herunterzuladen und das Programm zu installieren. Dann ist im Windows Explorer im Kontextmenü ein neuer Eintrag, über dem alle SVN-Funktionalitäten erreichbar sind. Auch die Einstellungen findet man dort, die man erst durchgehen sollte, obwohl standardmäßig alles recht gut konfiguriert ist.
Mit dem Eintrag “Create Repository here” ersparrt man sich beim Erstellen eines neuen Repository in einem Ordner sogar den Umweg in die Konsole. Das Programm markiert außerdem Verzeichnisse mit einem Overlay über die Originalsymbole. Damit ist auch sofort zu erkennen ob ein Verzeichnis ein- oder ausgecheckt ist. Auch Import- und Export-Funktionen sind vorhanden, mit dem man Dateien zwischen Server und lokaler Festplatte ohne Probleme austauschen kann.
Ein Repository-Browser erlaubt außerdem das Durchsuchen der Dateien von Repositories.
Wer SVN unter Windows einsetzt sollte sich das Programm auf jeden Fall unbedingt genauer ansehen.
In dem Blogeintrag in dem ich Subversion vorgestellt habe, habe ich ja bereits das Plugin AnkhSVN beschrieben.
Hier möchte ich noch ein paar weitere praktische Plugins vorstellen, die mir die Arbeit mit Visual Studio 2005 schon so oft erleichtert haben.
Mehr…
Categories: Programmieren Tags: .NET, AnkhSVN, Blog, Codeproject Line Count, CSharp, GhostDoc, PInvoke.NET, Plugin, Server, Smart Paster, Subversion, TestDriven.NET, Visual Studio, Windows, XML
Nicht jeder möchte, bzw. kann mit Microsoft Visual Source Safe als Versionsverwaltung arbeiten. Es ist zwar praktisch, dass es direkt in Visual Studio integriert ist, aber viele Funktionen benötigt man gar nicht und die Kosten sind auch nicht ganz unerheblich.
Eigentlich wollte ich als Alternative CVS einsetzen. Aber auf meiner Suche nach einer freien Lösung um den Client in Visual Studio zu integrieren, bin ich auf Subversion gestoßen. Eigentlich wusste ich schon dass es existier und sich dieses Projekt von CVS abgespalten hat, aber bisher dachte ich nicht, dass es sich in Windows und vor allem Visual Studio integrieren lässt.
Im Folgenden will ich die Einrichtung eines Subversion-Servers als Windows-Dienst und die Integration in Visual Studio 2005 erklären, da es anscheinend im Internet keine Komplettanleitung dafür zu geben scheint.
Mehr…
Categories: Programmieren, Versionsverwaltung, Windows Tags: .NET, AnkhSVN, Konsole, Microsoft, MSI, Plugin, Server, ServiceControl, Subversion, Visual Studio, Windows
Ich programmiere gerade an DeskPartner 3.0. Diese Version schreibe ich komplett neu für die aktuelle .NET-Plattform (Framework 2.0). Die Oberfäche wird jetzt übersichtlicher aufgebaut, der Zeitplan lässt sich viel besser/genauer anpassen, die Vorschau lädt bedeutend schneller und im Verzeichnismodus werden auf Wunsch sämtliche Unterverzeichnisse nach Bildern durchsucht. Außerdem wird diese Version zusätzlich das Grafikformat PNG unterstützen.
5722 Codezeilen (Ohne Kommentarzeilen/Mit Designer-Code) hat das Programm bereits. Ganz fertig ist es allerdings noch nicht. Viele Funktionen müssen erst noch eingebaut und ausgiebig getestet werden. Zusätzlich muss ich noch die Hilfedatei und die Installationsscripts neu schreiben sowie das Programm ordentlich testen.
Ich arbeite gerade an dem Programm Splitter 2.0. Ich schreibe die Anwendung komplett neu für die .NET-Plattform. Bei der Gelegenheit habe ich auch die Oberfläche komplett überarbeitet.
Es sollen sich dann auch eigene Vorlagen erzeugen lassen und wärend des Teilvorgangs wird die noch benötigte Zeit, die Transferrate und der Status des aktuellen Fragments angezeigt. Der Datenträgerwechsel wird dann auch viel komfortabler sein und beim Zusammenfügen der einzelnen Teile ist nun egal wo diese auf dem Computer verstreut sind.
Außerdem wird das Programm nicht wie vorher nur 2 GB sondern ganze 8.589.934.591 Gigabyte große Dateien teilen können. Da es bisher nicht einmal annähernd so große Festplatten gibt, sollte das mehr als ausreichen.
Im Downloadbereich ist jetzt NoteIt 2.45 verfügbar!
Diese Version enthält viele kleine Verbesserungen gegenüber der Version 2.0 und macht das Arbeiten mit dem Programm noch effizienter.
Ich bedanke mich an dieser Stelle für die Verbesserungsvorschläge, die mir viele Benutzer zugesandt haben.
Das Ändern der Schriftart wird allerdings erst in der nächsten Version enthalten sein, da es hier offenbar noch ein paar Probleme mit der .NET-Plattfom gibt.