Laden...

Forenbeiträge von DecaTec Ingesamt 210 Beiträge

02.03.2019 - 13:26 Uhr

Version 1.1.8.0 verfügbar:

Nach langer Zeit mal wieder ein kleines Update.

**Changelog:***HTTP/2 is used by default now. *Updated dependencies.

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Download:
Direkt über die Projektseite, oder über NuGet.

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

Links *Project home (GitHub) *Dokumentation (online) *Dokumentation (offline, CHM)

17.10.2018 - 08:37 Uhr

Version 1.6.1 steht zum Download bereit

Dies ist nur ein Security-Update wegen einer Verwundbarkeit der verwendeten DotNetZip Libraries.

**Changelog:***Referenzen auf DotNetZip aktualisiert (Sicherheitslücke in alten DotNetZip Bibliotheken)

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Es kann sein, dass bei der Installation eine SmartScreen-Warnung erscheint. Dies liegt lediglich daran, dass die aktuelle Programmversion nicht nicht häufig herunter geladen wurde und dementsprechend noch unbekannt ist.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

22.01.2018 - 18:27 Uhr

Hi,

ich vermute mal, du meinst, dass direkt eine Exception geworfen werden soll, wenn eine WebDavSession mit User Credentials angelegt wird. Das ist so erst einmal nicht möglich, da beim anlegen einer WebDavSession keine HTTP-Request ausgeführt wird.

Erst wenn ein tatsächlicher Request ausgeführt wird (z.B. ListAsync), dann kommen die Credentials "zum Einsatz" (diese werden immer mit jedem HTTP-Request übermittelt).

In diesem Fall bekommst du auch eine WebDavException, mit den genauen Infos, was schief gelaufen ist (also HTTP 401):> Fehlermeldung:

Error while executing ListAsync (wrong response status code). Expected status code: 207 (MultiStatus); actual status code: 401 (Unauthorized)

Um das manuell abzufangen, könntest du direkt nach dem Instantiieren der WebDavSession ein 'ExistsAsync' (z.B. auf die Base-URI) aufrufen. Wenn das dann auf Grund von falschen Credentials schief geht, könnte man im Client-Programm eine Fehlermeldung o.ä. bringen.

02.10.2017 - 16:27 Uhr

Nein, ehrlich gesagt nicht.
Ich hatte in der letzten Zeit auch wenig Zeit für das Projekt. Man könnte hier zugegebenermaßen noch so viel verbessern und Features hinzufügen.

Es bleibt im Moment nur ein Hobby-Projekt, welches vielleicht dem einen oder anderen hilft, einen Rechner nur bei Bedarf laufen zu lassen. Lass dich nicht vom Wörtchen "Server" im Namen verwirren: Ja, ich habe das Programm für meinen Home-Server entwickelt, es eignet sich allerdings auch hervorragend für alle Arten von (Windows-)PCs.

02.10.2017 - 14:57 Uhr

Windows Server Advanced Power Management nun als Open Source auf GitHub verfügbar

Nachdem ich bereits mit anderen Projekten gute Erfahrungen mit GitHub sammeln konnte, habe ich mich dazu entschieden, auch WSAPM als Open Source Software über GitHub zur Verfügung zu stellen.

Das Repository ist hier zu finden: Wsapm @ GitHub

Daran angeschlossen sind einzelne Repositories für WSAPM-Plugins:*Wsapm-RemovableDevices @ GitHub *Wsapm-LocalPrintersOnline @ GitHub

Wer ein eigenes Plugin für das Programm entwickeln möchte, findet im Repository Wsapm-PluginTemplates @ GitHub Solution-Templates.

Code-technisch ist WSAPM bestimmt kein Vorzeigeprojekt (z.B. kein MVVM), trotzdem kann sich jeder den Sourcecode ansehen und ggf. Änderungen/Verbesserungen über GitHub einbringen.

16.07.2017 - 14:35 Uhr

Version 1.0.1.0 verfügbar:

Diesmal nur ein kleines Update, welches die Verwendung unter Xamarin betrifft.
Bei Xamarin verhalten sich einige Eigenschaften der Klasse Uri nicht wie unter Windows. Daher war hier eine kleine Anpassung notwendig.

**Changelog:***Bugfix [Xamarin]: WebDavSession.ListAsync returned wrong URLs when used with folders containing spaces. *Bugfix [Xamarin]: WebDavSession.ListAsync returned the containing folder when used with folders containing spaces.

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Download:
Direkt über die Projektseite, oder über NuGet.

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

Links *Project home (GitHub) *Dokumentation (online) *Dokumentation (offline, CHM)

20.05.2017 - 12:25 Uhr

Version 1.0.0.0 verfügbar:

So, nachdem noch eine wichtige Änderung eingeflossen ist (Zugriff auf Properties, die der Library zunächst einmal unbekannt sind), konnte nun v1.0.0.0 veröffentlicht werden. Daneben gibt es aber noch weitere Neuerungen:

**Changelog:***Extension of the Portable WebDAV Library's WebDAV object model: Properties which are not defined in RFC 4918, RFC 4331, Additional WebDAV Collection Properties or IIS WebDAV specification can now also be accessed through the library's WebDAV object model. These unknown properties are exposed as XML (when using WebDavClient) or are handled by the class AdditionalProperties (when using WebDavSession/WebDavSessionItem). See the documentation for instructions on how to use unknown WebDAV properties with the library. *Renamed WebDavSesionListItem to WebDavSessionItem. *WebDavSession now supports Proppatch operations with the methods UpdateItemAsync and UpdateItemsAsync: Use the ListAsync methods to retrieve WebDavSessionItems, then change the properties of these items. Finally you can use the methods UpdateItemAsync/UpdateUtemsAsync of WebDavSession passing the changed WebDavSessionItems in oder to update the item's properties on the server (Proppatch). Note that not all WebDAV servers support Proppatch for all properties. So maybe you will not be able to change properties of a WebDAV element with these methods. *The methods of WebDavSession (e.g. copy, mode, delete, etc.) can now be used by specifying a WebDavSessionItem.

  • New methods for WebDavSession (GetSupportedPropertyNamesAsync) to retrieve a list of WebDAV properties supported by a WebDAV item.

*The library now contains a DebugHttpMessageHandler: This handler can be used for WebDavClient and WebDavSesion in order to get the request/response (and their content) printed on the debug console. Note that this message handler should not be used in a productive environment. *The constructors expecting credentials now use the interface ICredentials for credentials. *Bugfix: UriHelper.CombineUri sometimes threw exception when both URIs were the same.

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Download:
Direkt über die Projektseite, oder über NuGet.

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

Links *Project home (GitHub) *Dokumentation (online) *Dokumentation (offline, CHM)

03.05.2017 - 14:45 Uhr

Version 0.9.0.0 verfügbar:

Wir kommen v1.0 langsam näher. 😉

**Changelog:***The library now implements RFC 4918, RFC 4331, Additional WebDAV Collection Properties and a some WebDAV properties specific to IIS WebDAV. *New properties available for WebDavSessionListItem: Keep in mind that not every WebDAV server supports the same properties. Often a server only supports a subset of the specifications or even adds additional properties. So, when a property of a WebDavSessionListItem is null, the WebDAV server may not support these properties.

  • Some properties of WebDavSessionListItem are strongly-typed now (DateTime and numeric values).
  • WebDavSession now exposes some protected members, so that the class can be overridden for special purposes (e.g. when new types should be added to the WebDAV object model in a project).

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Download:
Direkt über die Projektseite, oder über NuGet.

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

Links *Project home (GitHub) *Dokumentation (online) *Dokumentation (offline, CHM)

13.04.2017 - 16:08 Uhr

Version 0.8.0.0 verfügbar:

Seit der letzten Version hat sich wieder einiges getan. Ich habe endlich eine Lösung gefunden, um vernünftige Unit Test schreiben zu können. Das bisherige Problem war, dass es lediglich Unit Integration Tests hab, die gegen einen konkreten WebDAV-Server gefahren wurden. Da nicht jeder WebDAV-Server die gleichen Features unterstützt, war es hier immer etwas schwierig, die "richtigen" Tests laufen zu lassen.
Ich verwende intern (nur für die Unit Tests) nun die Library mockhttp. Das ganze ist zwar etwas umständlich zu bedienen, das liegt allerdings an den bescheidenen Mocking-Fähigkeiten der Klasse HttpClient (kein Interface).
Vielleicht ist das ja mal für jemanden interessant. 😁

**Changelog:***When using WebDavClient.DownloadFileWithProgressAsync, the passed Stream does not get disposed automatically. Disposing of this Stream is up to the client calling this method. *Strongly typed versions of Lock-Token formats as defined in WebDAV specification. *When using the Portable WebDAV Library on Xamarin, there was a problem when relative URLs (strings) where used (e.g. webDavSession.ListAsync(@"/folder")). *When using WebDavSession, a base URL (string) can now be specified. *The 'Translate' header is always set to 'f' for IIS WebDAV serving unmapped file types (see https://msdn.microsoft.com/en-us/library/cc250063.aspx). *Bugfix: When using WebDavSession with BaseUri and calling methods passing only the relative Uri/URL to a file, these operations always failed. *Bugfix: When using WebDavSession.UploadFileWithProgressAsync with a URL, there was a stack overflow exception because the method called itself instead of the correct overload.

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Download:
Direkt über die Projektseite, oder über NuGet.

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

Links *Project home (GitHub) *Dokumentation (online) *Dokumentation (offline, CHM)

24.03.2017 - 18:59 Uhr

Puh, schon lange keine Updates mehr gepostet, es hat sich allerdings einiges getan:

Version 0.7.0.0 verfügbar:

Die Portable WebDAV Library ist nun eine .NETStandard 1.1 Library.
Als "Weiterentwicklung" des Konzepts der Portable Class Libraries ist .NETSTandard/.NET Core zunächst einmal plattformunabhängig. D.h. die Library kann nun prinzipiell neben Windows Devices auch auf Liniux/MacOS zum Einsatz kommen.

Ein großer Vorteil an der neuen Version ist, dass die Library nicht mehr zweigeteilt ist (NetFx/UWP) - eine Assembly für alles!
Damit dies möglich ist, waren ein paar Änderungen notwendig:
*Für bisherige Verwender des NetFx-Parts ändert sich fast nichts, da die .NETStandard-Version auf System.Net.Http.HttpClient basiert (wie zuvor auch die NetFx-Version). *Upload/Download mit Fortschritt ist nun direkt in der Portable WebDAV Library implementiert, d.h. kann nun auch in .NET Framework-Projekten (ohne Umwege wie bisher) verwendet werden. Dazu gibt es neue Methoden der Klassen WebDavSession und WebDavClient. Dazu habe ich hier habe ich auf GitHub ein kurzes HowTo veröffentlicht. *Etwas umstellen müssen sich die Verwender des (ehemaligen) UWP-Parts der Library: Weil im Untergrund nun System.Net.Http.HttpClient verwendet wird, hat sich die Schnittstelle nun geringfügig geändert. Allerdings sollten sich die dafür notwendigen Änderungen in Grenzen halten.

Hier nochmal das komplette Changelog (diesmal auf Englisch):*The library now targets .NETStandard 1.1 (.NET Core) and can be used on any platform supporting .NETStandard 1.1. *Due to .NETStandard support, the library is not separated into two parts (UWP/NetFx) anymore. One library for all the target platforms. *Breaking change: The whole library is now based on System.Net.Http.HttpClient. Therefore, there are some changes in the API (e.g. method signatures). *Upload/download with progress is generally supported, even on projects targeting .NET Framework (formerly the NetFx part of the library). *The xml:lang attribute is now supported for prop elements.

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Download:
Direkt über die Projektseite, oder über NuGet.

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

Links *Project home (GitHub) *Dokumentation (online) *Dokumentation (offline, CHM)

06.03.2017 - 21:13 Uhr

Version 1.5.5 steht zum Download bereit

Wieder ein kleines Update, welches Änderungen an der (technischen) Umsetzung des Features "Remote-Shutdown" mitbringt.

Wichtig: Wer Remote-Shutdown mittels der App MagicPacket nutzt, braucht ebenfalls ein Update der App (dieses ist über den App Store verfügbar).

**Changelog:***Remote-Shutdown: Änderung der Signatur für Remote-Shutdown Befehle (Details in der Dokumentation). Diese Änderung ist technischer Natur und daher ergeben sich für die Nutzer der Software keinerlei Änderungen.

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Es kann sein, dass bei der Installation eine SmartScreen-Warnung erscheint. Dies liegt lediglich daran, dass die aktuelle Programmversion nicht nicht häufig herunter geladen wurde und dementsprechend noch unbekannt ist.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

01.03.2017 - 19:33 Uhr

Version 1.5.4 steht zum Download bereit

Diesmal handelt es sich nur um einen kleinen Bugfix-Release: Mit der Vorversion war es nicht möglich, ein Plugin zu installieren, da die entsprechende Funktion mit einer Fehlermeldung quittiert wurde.

**Changelog:***Referenzen auf DotNetZip aktualisiert *Bugfix: Bei einer neuen Installation von Windows Server Advanced Power Management (keine Update-Installation) kam es beim Installieren eines Plugins einem Fehler

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Es kann sein, dass bei der Installation eine SmartScreen-Warnung erscheint. Dies liegt lediglich daran, dass die aktuelle Programmversion nicht nicht häufig herunter geladen wurde und dementsprechend noch unbekannt ist.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

26.09.2016 - 10:16 Uhr

Interessehalber: eine Lizenzangabe, auch wenn Freeware, hast Du nicht gemacht, oder sehe ich das nur nicht...?

Ja, jetzt wo du es sagst...
Der Installer zeigt die Lizenz vor der Installation an. Wäre aber wohl benutzerfreundlicher, wenn diese schon vor dem Download überprüft werden kann. Da hast du sicher recht.

Von Chocolatey habe ich noch nicht viel gehört. Sieht aber auf den ersten Blick interessant aus. Mal sehen wie man hier Pakete hinzufügen kann.

26.09.2016 - 07:59 Uhr

Version 1.5.3 steht zum Download bereit

**Changelog:***Der Standby-Modus wurde in der Zeit zwischen zwei Uptime-Zeitpunkten einer geplanten Uptime unterdrückt *Der Zeitpunkt, an dem ein geplantes Aufwachen/Uptime beendet werden soll, wurde beim Editieren eines Eintrags nicht korrekt angezeigt *Eine gerade aktive Uptime verschwindet nicht mehr aus dem Status-Panel ‚Geplante Uptimes‘ (erst, wenn diese abgelaufen ist)

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Es kann sein, dass bei der Installation eine SmartScreen-Warnung erscheint. Dies liegt lediglich daran, dass die aktuelle Programmversion nicht nicht häufig herunter geladen wurde und dementsprechend noch unbekannt ist.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

15.09.2016 - 12:46 Uhr

Bugfix-Release v1.5.2 steht zum Download bereit

**Changelog:***Geplante Uptimes wurden immer sofort aktiv, auch wenn diese für einen späteren Zeitpunkt geplant waren

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Es kann sein, dass bei der Installation eine SmartScreen-Warnung erscheint. Dies liegt lediglich daran, dass die aktuelle Programmversion nicht nicht häufig herunter geladen wurde und dementsprechend noch unbekannt ist.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

22.08.2016 - 13:28 Uhr

Neue Version 1.5.1 veröffentlicht!

Dieses Mal nur ein kleines Update mit zwei Änderungen, die mir erst nach der Veröffentlichung von v1.5.0 aufgefallen sind:

**Changelog:***In den Einstellungen zu Remote-Shutdown werden die MAC-Adressen angezeigt, die für Remote-Shutdown verwendet werden können *Im Hauptfenster kann nun nicht mehr im Log-Bereich geschrieben werden

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

23.07.2016 - 17:34 Uhr

Version 0.4.0.0 verfügbar:

Diesmal keine großen Änderungen. Dieser Release ist v.a. für die Einführung eines NuGet Paketes. Damit muss man sich keine Gedanken mehr machen, welche Version der Library verwendet werden soll (NetFx/Uwp). Mit dem Hinzufügen über NuGet wird automatisch die korrekte Version im Projekt referenziert.

**Änderungen:***Neue Überladungen für Methoden, die kein LockToken mehr benötigen *NuGet Paket verfügbar: https://www.nuget.org/packages/PortableWebDavLibrary/

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

14.07.2016 - 16:44 Uhr

Neue Version 1.5.0 veröffentlicht!

Nachdem schon häufiger der Wunsch nach einer "erzwungenen"/definierbaren Uptime geäußert wurde, bringt die neue Version hauptsächlich genau dieses Feature mit. Dabei kann sowohl eine temporäre Uptime definiert werden (direkt im Hauptfenster), oder eine geplante Uptime (über die Einstellungen). Bei einer geplanten Uptime sollte lediglich beachtet werden, dass der Rechner laufen muss, damit die Uptime "greift" - der Rechner wird beim Eintreten einer definierten Uptime nicht automatisch gestartet! Wenn dieses Verhalten gewünscht ist, muss separat eine Aufwach-Zeit definiert werden (ebenfalls in den Einstellungen).

Neben dieser Änderung können nun auch weitere (System-)Parameter überwacht werden: Auslastung logischer Datenträger und Speicherauslastung. Die Auslastung der Datenträger (und nun auch der Netzwerkkarten) kann dabei individuell pro Datenträger bzw. Netzwerkkarte konfiguriert werden.

Last but not least wurde die Oberfläche Überarbeitet und ein Fehler beim Abspeichern des Passwortes für Remote-Shutdown behoben.

**Changelog:***Es kann eine temporäre Uptime direkt im Hauptfenster der Anwendung definiert werden. Während dieser temporären Uptime wird verhindert, dass der Computer in den Standby-Modus wechselt (unabhängig von den definierten Richtlinien) *Neben einer temporären Uptime können in den Einstellungen auch geplante Uptimes angegeben werden, zu den der Computer nicht in den Standby wechseln soll (beim Eintreten der Uptime muss der Computer dazu laufen) *Status-Panel für Plugins (installiert/aktiv/inaktiv) *Status-Panel mit Anzeige der nächsten geplanten Uptimes *Überwachung der Speicherauslastung *Überwachung der Auslastung logischer Datenträger *Die Überwachung der Netzwerk-Auslastung kann nun für jede Netzwerkkarte einzeln oder alle Netzwerkkarten zusammen konfiguriert werden *Aufteilung der Überwachungs-Einstellungen in 'Überwachung (System)' und 'Überwachung (Erweitert)' *Beim Abspeichern des Passworts für Remote-Shutdown wurde das Passwort u.U. nicht richtig gespeichert (falscher Hash-Wert)

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

13.06.2016 - 10:49 Uhr

coole sache ein NuGet Packet Link wäre hier noch sehr cool der die fertigen DLLs direkt enthält, macht es einfacher das ganze mal schnell einzubinden.

Ja, würde das Einbinden auf jeden Fall einfacher machen.
Ist definitiv in Planung...

10.04.2016 - 19:04 Uhr

Nach einer sehr kurzlebigen Version v0.2.0.0 habe ich gleich v0.3.0.0 nachgeschoben:

**Änderungen:***Die Bibliothek ist nun zwecks Kompatibilität zu allen Target-Plattformen in zwei unterschiedliche Versionen verfügbar:
DecaTec.WebDav.NetFx: Zur Verwendung mit .NET Framework (4.5 oder neuer), Windows 8, Windows Phone 8 oder ASP.NET Core.
DecaTec.WebDav.Uwp: Zur Verwendung mit Windows 8.1, Windows Phone 8.1 und v.a. Apps der Universal Windows Platform, (UWP). *Kleinere Fehlerbehebungen *Verbesserte Dokumentation

Projekt-Homepage:
Portable WebDAV Library auf GitHub

Bin für Feedback, Verbesserungsvorschläge, o.ä. immer dankbar...

20.02.2016 - 13:18 Uhr

Das Projekt wird ab sofort auf GitHub gehostet:
Portable WebDAV Library auf GitHub.

Auf CodePlex habe ich das Projekt nicht gelöscht, sondern nur einen Hinweis auf den Umzug hinzugefügt. Allerdings wird das Projekt auf CodePlex nicht mehr gewartet.

Falls es bei der Verwendung der Bibliothek zu Problemen kommen sollte, bitte in Zukunkt den Bug-Tracker von GitHub verwenden.

13.01.2016 - 11:16 Uhr

Version 1.4.1 veröffentlicht!

Diese Version bringt Detail-Verbesserungen bzgl. Remote-Shutdown.
Bisher wurde ein evtl. vergebenes Passwort im Klartext in der Konfigurationsdatei von WSAPM gespeichert. Dies stellte natürlich ein Sicherheitsrisiko dar, wenn eine Konfigurations-Datei weitergegeben werden sollte. Mit der neuen Version wird das Passwort nur noch als Hash-Wert gespeichert, was keine Rückschlüsse mehr auf das eigentliche Passwort zulässt. Somit können Konfigurations-Dateien nun problemlos weiter gegeben werden, ohne dass ein evtl. vergebenes Passwort offen gelegt wird.
Wenn der Rechner aus der Ferne herunter gefahren werden soll (mit Hilfe der App MagicPacket), erwartet WSAPM das Passwort auch nicht mehr im Klartext, sondern ebenfalls als Hash-Wert.

Zu beachten bleibt hier nach wie vor, dass dieses Passwort kein echtes Sicherheits-Feature darstellt, da der Hash-Wert weiterhin unverschlüsselt übertragen wird. Die Übertragung als Hash-Wert dient lediglich dazu, dass das Passwort zu keinem Zeitpunkt im Klartext über das Netzwerk übertragen wird.

Wichtig: Weil das Passwort nun anders gespeichert wird, ist es notwendig, ein evtl. bereits vergebenes Passwort erneut in den Einstellungen des Programms zu hinterlegen. Ein vorhandenes Passwort wird während des Updates entfernt.

Wer die Remote-Shutdown-Funktion bereits mit der App MagicPacket nutzt, benötigt zusätzlich ein Update dieser App. Ab WSAPM v1.4.1 wird mindestens v1.2.1 (Windows) bzw. v1.4.1 (Windows Phone) der App benötigt.

Details zu Remote-Shutdown sind im Handbuch zu finden. Darüber hinaus gibt es einen Artikel, der die Einrichtung von Remote-Shutdown zeigt: Remote-Shutdown mit Windows Server Advanced Power Management und MagicPacket

**Neuerungen:***Ein für Remote-Shutdown angegebenes Passwort wird nicht mehr im Klartext in den Einstellungen gespeichert, sondern nur noch als Hash-Wert. Dadurch können Settings-Dateien nun problemlos weitergereicht werden. Dafür bitte ein evtl. vergebenes Passwort für Remote-Shutdown erneut eingeben! *Für Remote-Shutdown erwartet Windows Server Advanced Power Management ein über das Netzwerk übertragenes Passwort als Hash-Wert und nicht mehr im Klartext. Damit dieses Feature zukünftig genutzt werden kann, muss die App MagicPacket in einer Version ≥ 1.4.1 (Windows Phone) oder ≥ 1.2.1 (Windows) eingesetzt werden *Die Überprüfung auf neue Versionen geschieht nun per HTTPS (verschlüsselt)

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

01.07.2015 - 16:50 Uhr

Version 1.4.0 veröffentlicht!

Diese Version bietet ein neues Feature namens Remote-Shutdown: Hierbei ist es möglich, den Computer aus der Ferne herunter zu fahren, neu zu starten oder in den Standby- oder Ruhezustand zu versetzen.

Der Wunsch nach diesem Feature kommt eigentlich aus einer ganz anderen Ecke: Seit einiger Zeit gibt es meine App MagicPacket für Windows und Windows Phone. Diese war ursrünglich als App für Wake On LAN konzipiert, jedoch kam bei den Nutzern immer häufiger der Wunsch auf, dass man einen Rechner auch aus der Ferne herunter fahren kann. Jedoch ist es beim Remote-Shutdown nicht so einfach wie bei Wake On LAN, da es hier keinen Standard gibt. Grundsätzlich braucht man hierbei auf der Server-Seite (also auf dem Rechner, der herunter gefahren werden soll) ein Stück Software, welche Remote-Shutdown-Befehle empfängt und verarbeitet.
Daher war es für mich recht naheliegend, Windows Server Advanced Power Managament mit einer Remote-Shutdown-Funktion zu erweitern, da dies ja entfernt auch mit Energie-Management zu tun hat.

Um die Funktion nutzen zu können, ist lediglich eine App oder Anwendung notwendig, die diese Remote-Shutdown-Befehle senden kann (z.B. meine bereits angesprochene App MagicPacket).

Details zu Remote-Shutdown sind im Handbuch zu finden. Darüber hinaus gibt es einen Artikel, der die Einrichtung von Remote-Shutdown zeigt: Remote-Shutdown mit Windows Server Advanced Power Management und MagicPacket

**Neuerungen:***Der Computer kann aus der Ferne heruntergefahren, neu gestartet oder in den Standby- bzw. Ruhezustand überführt werden. Dazu wird die App MagicPacket benötigt (verfügbar für Windows und Windows Phone). Nähere Informationen zu Remote-Shutdown sind im Handbuch zu finden. *Für die Remote-Shutdown Funktion wird eine Ausnahme in der Windows-Firewall eingetragen (UPD, nur private Netzwerke). Wenn eine Firewall eines Drittanbieters installiert ist, muss hier eine Ausnahme für eingehenden UDP-Traffic manuell hinzugefügt werden (mehr Details dazu im Handbuch) *Neues Status-Panel für Remote-Shutdown im Hauptfenster der Anwendung *Alle Log-Inhalte können nun per Schaltfläche in die Zwischenablage kopiert werden *Der Text aus dem Log kann nun markiert werden (zum einfachen Kopieren) *Darüber hinaus wurde das Handbuch überarbeitet und an vielen Stellen angepasst

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Hinweis für Entwickler:
Remote-Shutdown basiert auf Befehlen, die im Netzwerk mittels UDP übertragen werden (ähnlich der sog. Magic Packets bei Wake On LAN). Bisher gibt es nur die App MagicPacket für Windows und Windows Phone, mit der die entsprechenden Befehle versendet werden können. Jedoch ist das Protokoll für Remote-Shutdown offen gelegt, so dass jeder Entwickler eigene Apps oder Programme schreiben können, die die Remote-Shutdown-Befehle senden können.

Eine Beschreibung sowie Beispiel-Code ist im Handbuch zu Windows Server Advanced Power Management zu finden.
Ich leiste auch gerne Unterstützung bei der Implementierung von entsprechenden Funktionen in anderen Apps oder Anwendungen (sowohl Server- als auch Client-seitig).

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

28.03.2015 - 11:22 Uhr

Version 1.3.1 veröffentlicht!

Diese Version verbessert das Hinzufügen von benutzerdefinierten Aktionen nach der Überprüfung der Richtlinien. Das Problem war hier, dass mehrere Aktionen definiert werden konnten, die den Energie-Zustand des Rechners regeln (Standby/Ruhezustand/Herunterfahren) - und zwar bzgl. des gleichen Auslösers (Mindestens eine Richtlinie trifft zu/Keine Richtlinie trifft zu). Welche Aktion dann tatsächlich ausgeführt wurde, war mehr oder weniger Zufall.
Daher kann nun für einen Auslöser nur noch eine "Energie-Option" definiert werden.

**Neuerungen:***Eine benutzerdefinierte Aktion, die den Energie-Zustand des Rechners ändern soll (Standby/Ruhezustand/Herunterfahren), kann nicht hinzugefügt werden, wenn es bereits eine andere Aktion dieser Art gibt.

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Achtung: Da sich in Version 1.3.0 das Plugin-System grundlegend geändert hat, müssen vor dem Update von einer Version < 1.3.0 alle Plugins deinstalliert werden. Dies ist nicht notwendig, wenn das Update von der Version 1.3.0 erfolgt.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

16.03.2015 - 08:02 Uhr

Version 1.3.0 veröffentlicht!

Weil die Anforderung immer wieder genannt wurde, gibt es mit dieser Version nun die Möglichkeit, Aktionen nach dem Überprüfen der Richtlinien auszuführen. Darunter sind auch Aktionen für Standby/Ruhezustand und Herunterfahren des Rechners.
Damit kann mit Windows Server Advanced Power Management nun auch der Zustand des Computers selbst verwaltet werden, auch ohne die Einstellung, dass der Rechner über die Windows-Energieoptionen in den Energiesparmodus versetzt wird.
Auch wenn man nun den Zustand des Rechners auf diese Art und Weise forcieren kann, ist die empfohlene Herangehensweise nach wie vor, dass WSAPM mit den Windows-Energieoptionen zusammen arbeitet.

Ebenfalls wurde die Plugin-Schnittstelle zur besseren Unterstützung von Mehrsprachigkeit von Plugins grundlegend überarbeitet.
Hinweis für Anwender: "Alte" Plugins funktionieren in Version 1.3.0 nicht mehr und sollten vor dem Update deinstalliert werden. Für die von mir bereit gestellten Plugins sind bereits Updates verfügbar.
Hinweis für Entwickler: Eine genaue Beschreibung, was sich für Plugin-Entwickler geändert hat, ist im Benutzerhandbuch zu finden. Ebenfalls wurden die Tutorials für die Entwicklung von Plugins (einfache Plugins und erweiterte Plugins) überarbeitet.

**Neuerungen:***Benutzerdefinierte Aktionen können nach dem Überprüfen der Richtlinien ausgeführt werden *Nach der Installation eines Plugins und dem Neustart von Windows Server Advanced Power Management werden die Einstellungen wieder aufgerufen *Das Plugin-System wurde überarbeitet (bessere Unterstützung von Mehrsprachigkeit von Plugins) [Plugins müssen angepasst werden, um unter Version 1.3.0 lauffähig zu sein – siehe Benutzerhandbuch] *Beim Deinstallieren eines Plugins kam es in einigen Fällen zu Fehlermeldungen und das Plugin konnte nicht korrekt deinstalliert werden

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.
Achtung: Vor dem Update sollten alle Plugins deinstalliert werden, da "alte" Plugins mit der neuen Version nicht mehr lauffähig sind.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

19.02.2015 - 10:00 Uhr

Portable WebDAV Library Version 0.1.1.0

Habe gestern ein Update der Library über CodePlex veröffentlicht.
**Änderungen:***Fehler beim URL-Handling der WebDavSession behoben. *Wenn bei der Verwendung der WebDavSession (v.a. bei der Methode ListAsync) etwas schief geht, kommt nun eine aussagekräftigere Exception. Damit sollte ein evtl. auftretender Fehler besser diagnostizierbar sein. *Wenn bei der Verwerdung der WebDavSession ein Fehler beim Parsen eines Responses auftritt, wird diese Exception auch an der entsprechenden Stelle mit einer aussagekräftigen Meldung geworfen. *Die Dokumentation wurde gerade bzgl. async/await verbessert.

Die neue Version kann wie immer über GitHub heruntergeladen werden.

06.01.2015 - 11:40 Uhr

Keiner eine Idee? Oder stehe ich hier irgendwie auf dem Schlauch und habe die komplett falsche Herangehensweise?

01.01.2015 - 19:14 Uhr

Hallo!

Ich erstelle z.Zt. meine erste Universal App und bin gerade dabei den Windows Phone Teil des Projekt fertig zu stellen. Target Platform ist dabei Windows Phone 8.1. Ich nutze WPF, folglich basiert die Architektur auf MVVM.

Nun benötige ich einen Progress Indicator in meiner App. Früher (Windows Phone 7/8) ging das ja wohl über die Assembly Microsoft.Phone.Shell. Mit dieser konnte auf der Page die StatusBar und damit auch der ProgressIndicator angesprochen werden (und die Properties auch der DataBinding gebunden werden):

<shell:SystemTray.ProgressIndicator>
     <shell:ProgressIndicator IsIndeterminate="True" Text="Loading" 
                              IsVisible="{Binding Loading}" />
 </shell:SystemTray.ProgressIndicator>

Unter Windows Phone 8.1 scheint diese Möglichkeit nun nicht mehr zu bestehen. Hier kann man den ProgressIndicator anscheinend nur noch in der Code-Behind-Datei anzeigen lassen:

StatusBar.GetForCurrentView().ProgressIndicator.ShowAsync();

Ich habe trotz Web-Recherche keine Möglichkeit gefunden, den ProgressIndicator auf einfache Art und Weise in XAML anzulegen und die Properties dort auch zu binden.
Die Suche hat allerdings eine andere Möglichkeit aufgezeigt: In Anlehnung an diesen Artikel habe ich mir nun eine Behavior implemeniert, die ich dann wieder per XAML einbinden kann:

<Interactivity:Interaction.Behaviors>
 <Behaviors:StatusBarBehavior IsVisible="True" IsProgressIndicatorVisible="{Binding IsBusy}"></Behaviors:StatusBarBehavior>
</Interactivity:Interaction.Behaviors>

Trotzdem bin ich mit der Lösung nicht ganz zufrieden. Für meinen Geschmack ist das zu viel Aufwand für eine solch einfache Anforderung. Nach dem Motto: das muss irgendwie einfacher gehen.

Gibt es hier einige, die schon was für Windows Phone implementiert haben und vielleicht einen Hinweis geben könnten?

Edit: Wie ich sehe, gibt es hier im Forum noch keine Rubrik speziell für die mobile Entwicklung. Ich fände das eine super Sache...

30.12.2014 - 17:01 Uhr

Also erst einmal zu "Command vs Behavior":
Wo du einen Command nutzen kannst, also überall dort, wo das Oberflächen-Element ein Command-Property anbietet, solltest du Commands verwenden. Bei UI-Elementen, keine Command-Property haben, musst du wohl oder übel auf Behaviors ausweichen.

Die Unterstützung vom VS für Behaviors ist noch etwas lückenhaft, hier habe ich noch keinen Weg gefunden, dass man sich das einfach "zusammen klicken" kann (wie in Blend). Allerdings ist das auch in Blend kein Hexenwerk: Wenn du das ein paar mal gemacht hast, geht das ganz leicht von der Hand. Eine richtige "Einarbeitung" in Blend ist dafür gar nicht notwendig.

Jedoch erspare ich mit eigentlich immer den Umweg über Blend und füge meine Behaviors direkt im XAML-Code ein. Das geht sehr viel schneller.

Bezüglich Memory-Leaks in Verbindung mit Commands/Behaviors habe ich noch nichts gehört. Das einzige ist vermutlich, dass man die Commands nicht bei jedem Zugriff neu anlegt, sondern die Instanz davon zwischenspeichert und immer wieder verwendet (ähnlich Singleton). So könnte das ganze dann aussehen (Code aus dem ViewModel):


private RelayCommand myCommand;

public RelayCommand MyCommand
{
    get
    {
        return this.myCommand?? (this.myCommand = new RelayCommand(MyMethod));
    }
}

private void MyMethod()
{
    // Do something to handle command
}

20.12.2014 - 23:53 Uhr

Ich schlage mich gerade mit ähnlichen Problemen rum und habe dafür auch noch kein Patentrezept gefunden.
Die Frage ist hier mMn auch, ob man sich im ViewModel eher an der View oder eher am Model orientiert. Beim ersteren gibt es für alle UI-Elemente der View eine Entsprechung im ViewModel, also z.B. Properties für Input-UI-Elemente, Commands für Buttons, etc. Beim letzteren sollte das ViewModel das Model in eine Databinding-taugliche Form bringen. Im Idealfall sollte man das unter einen Hut bringen können, aber damit tue ich mich im Moment noch schwer.

Ich bin da auch für jeden Tipp dankbar, auch gerade für Empfehlungen von wirklich guten Tutorials. Die meisten Tutorials erklären meist nur die Basics und das anhand von ganz einfach gehaltenen Beispielen, die in der "realen Welt" meist nicht in so einfacher Form vorkommen.

11.12.2014 - 22:07 Uhr

Ich habe mich mit FTP und C# zwar noch nicht eingehend beschäftigt, aber ich habe vor kurzem eine WebDAV-Library implementiert und hier sollte sich vieles ähnlich verhalten.

Du nutzt diesen Konstruktor der NetworkCredentials-Klasse. Der dritte Parameter gibt die zu verwendende Domäne an, du übergibt aber anscheinend den Hostname (=URL) des FTP-Servers. Lass einfach mal den dritten Parameter weg, dann sollte die Autorisierung zumindest funktionieren.

11.12.2014 - 14:05 Uhr

Hast du vielleicht etwas Code für uns?

22.11.2014 - 17:00 Uhr

Hallo!

Vor kurzem habe ich damit begonnen, mich mit der Programmierung von Apps für Windows Phone zu beschäftigen. Ich habe einige Ideen, die einen Up-/Download zu meiner "persönlichen Cloud" (ownCloud) benötigen. Das Mittel der Wahl ist hier WebDAV zur Übertragung von Dateien.
Nach kurzer Suche habe ich festgestellt, dass es bereits mehrere WebDAV Libraries gibt, jedoch haben alle einen Nachteil:*Entweder sind diese nicht voll kompatibel zur WebDAV-Spezifikation (RFC 4918). Besonders den Locking-Mechanismus vermisse ich bei vielen Libraries. *Oder sie sind nicht geeignet für die Entwicklung auf Mobil-Geräten, weil sie nicht als Portable Class Library implementiert sind.

Somit habe ich kurzerhand ein eigenes Projekt gestartet: Portable WebDAV Library

Und da ich denke, dass andere evtl. auch auf der Suche nach einer einfach zu bedienenden WebDAV library sein könnten, habe ich das Projekt nun als Open Source auf CodePlex veröffentlicht.

Anfoderungen*Kompatibilität: Volle Kompatibilität zu RFC 4918 (HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)). *Portabilität: Einsatz sowohl in Desktop- als auch mobilen Environments *Einfache Bedienung/Einbindung in eigene Projekte: Die Portable WebDAV Library bietet zwei Abstraktions-Level: Zum einen die Klasse WebDavSession, die für viele Belange ausreichen sollte und die direkte Kommunikation mit WebDAV Servern seht vereinfacht.
Wer dagegen mit der WebDAV-Spezifikation vertraut ist und einen direkten Zugriff auch WebDAV-Resourcen benötigt, der kann die Klasse WebDavClient verwenden. Diese ist abgeleitet von der Klasse System.Net.Http.HttpClient und erweitert diese um spezielle WebDAV-Methoden. *Fast and fluid: Alle Operationen, die u.U. länger dauern, sind als asynchrone Methoden implementiert. Besonders wichtig beim Einsatz auf Mobilgeräten. *WebDAV Object Model: Die Kommunikation läuft bei WebDAV hauptsächlich über XML-Strings ab, die in den Requests/Responses gesendet werden. Da es mühselig ist, diese Strings selbst zu erzeugen und dann wieder zu Parsen, bietet die Portable WebDAV Library das sog. WebDAV Object Model: Über WebDAV-spezifische Objekte ist es möglich, die Kommunikation mit WebDAV Servern erheblich zu vereinfachen. *Dokumentation: Last but not least sollte das Projekt gut dokumentiert sein, um die Verwendung möglichst einfach zu gestalten.

Zwei Versionen der Bibliothek
Anfänglich war die Bibliothek in einer einzelnen Portable Class Library implementiert, die alle Zielplattformen unterstütze.
Allerdings gab es bei der Verwendung in Apps der Universal Windows Platform (UWP) Probleme. So gab es keine Möglichkeit, auf WebDAV-Server zuzugreifen, die mit einem untrusted SSL-Zertifikat (z.B. self-signed Zertifikat) laufen.
Daher gibt es ab v0.3.0.0 der Portable WebDAV Library zwei Ausprägungen:*DecaTec.WebDav.NetFx: Für Projekte, die auf dem .NET Framework (ab Version 4.5), Windows 8, Windows Phone 8 oder ASP.NET Core basieren. ***DecaTec.WebDav.Uwp:**Für Projekte, die auf Windows 8.1, Windows Phone 8.1 oder Apps der Universal Windows Platform (UWP) basieren.

Der Unterschied zwischen den beiden Versionen besteht hauptsächlich darin, dass unterschiedliche APIs zum Zugriff auf Web-Ressourcen genutzt werden.

Die Trennung in zwei unterschiedliche Versionen war dabei die einfachste Möglichkeit, die Probleme mit UWP-Apps zu umschiffen und trotzdem eine maximale Kompatibilität zu allen Target-Plattformen zu garantieren.

Beispiel-Code ist in der (Online-)Dokumentation zu finden. Hier habe ich mir Mühe gegeben, eine möglichst vollständige Entwickler-Dokumentation zu verfassen, damit die Verwendung der Portable WebDAV Library so einfach wie möglich ist.

Links *Project home (GitHub) *Dokumentation *Dokumentation (CHM)

Fehler und Ungereimtheiten sind natürlich nicht ausgeschlossen. Für entsprechende Hinweise oder Verbesserungsvorschläge bin ich daher dankbar.

07.11.2014 - 13:43 Uhr

OK, das beantwortet schon viele Fragen und entkräftet meine Befürchtungen.

Gerade die MSPL hatte ich noch nicht auf dem Schirm, werde ich mir mal genauer angucken.

07.11.2014 - 10:43 Uhr

Nur weil du eine Opensource Lösung erstellst und sie auf Codeplex, Github und co veröffentlichst, bedeutet nicht, das jeder da irgendwas hochladen kann.

Also muss der "Project-Owner" (der das Projekt erstellt hat) einzelne Mitarbeiter für die aktive Entwicklung freischalten?
Das wäre eigentlich eine gute Lösung - Open Source und trotzdem die Kontrolle über das Projekt behalten.
Forken kann dann aber jeder, oder? Und da kommen wir schon zur Lizensierungs-Politik:

So wie sich es im Moment für mich darstellt, gibt es folgende (populäre) Möglichkeiten:

GPL: Quellcode der muss offen gelegt werden. Software, die dann das Projekt (als Library) verwenden, muss dann ebenfalls unter der GPL veröffentlicht werden. Der Quellcode der Software muss daher auch offen gelegt werden. Falls die Software nicht quelloffen sein soll, darf die (unter GPL lizensierte) Library nicht verwendet werden.

LGPL: Quellcode des Projekts muss offen gelegt werden. Quellcode der darauf aufbauenden Software muss allerdings nicht auch zwingend offen gelegt werden, jedoch muss die Projekt-Library dynamisch gebunden werden, damit diese von Nutzer geändert werden kann. Somit wirkt sich die verwendete Lizenz direkt auf die Programmierung der Software aus (dynamisches vs. statisches Verlinken).
Dazu fällt mir eigentlich nur ein, dass das ganze auch eher suboptimal ist.

Apache-Lizenz: Hier muss das Projekt nicht zwingend unter Apache-Lizenz veröffentlicht werden. Daher tauglich auch für proprietäre/closed-source/kommerzielle Programme. Das Programm, das die Library verwendet, muss lediglich eine Kopie der Apache-Lizenz beinhalten und bei einer Modifikation der Library-Dateien (auf binärer- oder Quellcode-Ebene) einen Hinweis auf die Modifikation enthalten.

BSD-Lizenz: Quellcode des Projekts müsste hier nicht offen gelegt werden. Die Software kann closed-source/komerziell/was auch immer sein. Es dürften lediglich keine Copyright-Vermerke der Projekt-Library entfernt werden. Falls die Software selbst quelloffen sein soll (und nur dann), muss diese auch wieder unter BSD-Lizenz veröffentlicht werden.

Public Domain Lizenz: Entspricht quasi dem Verzicht auf das Urheberrecht. D.h. jeder kann das Projekt verwenden, modifizieren, weiterverteilen, etc.

CreativeCommons-Lizenz: CC-Lizenz ist nicht speziell für Software angepasst. Daher wird von der CC-Organisation selbst die Verwendung einer CC-Lizenz für Software-Projekte abgeraten (siehe hier.

Fragen, die ich wiederum daraus ableite:

  1. Sehe ich die oben gemachten Annahmen richtig, oder habe ich etwas übersehen?
  2. Gibt es weitere (wichtige) Lizenz-Modelle, die ich noch nicht auf dem Schirm hatte?
  3. Kann der Programmierer einer Library, welche er unter GPL-Lizenzbedinungen weitergibt, für eigene Closed-Source-Projekte verwenden? Er selbst ist ja Urheber der Library. Oder steht die Lizenz dann quasi über dem Urheberrecht und der Programmierer muss sich immer zwingend der GPL unterwerfen?
07.11.2014 - 09:05 Uhr

Hallo zusammen!

Mich würde mal interessieren, wie ihr bei der Veröffentlichung privater Projekte vorgeht. Angenommen ihr habt eine Library entwickelt, die ihr auch schon in mehreren anderen Projekten einsetzt. Nun könntet ihr natürlich sagen: die Library ist ein reines privates Projekt, was nur von mir verwendet wird - fertig.
Allerdings könnte man das Projekt (die Library) ja auch anderen zur Verfügung stellen, damit andere das Rad nicht neu erfinden müssen. Wie sollte man in einem solchen Fall vorgehen, bzw. welchen "Vertriebsweg" sollte man nach welchen Kriterien wählen?

Mir fällt dazu folgendes ein:

Closed Source vs Open Source
Dies dürfte die wichtigste Entscheidung sein. Ich muss gestehen, dass ich mit Open Source-Entwicklung bisher noch keine Berührungspunkte hatte. Ich habe allerdings die Befürchtung, dass einem bei Open Source-Projekten leicht die Kontrolle über das Projekt entgleitet. Dadurch kann das Projekt (qualitativ oder auch funktional) in eine andere Richtung gebracht werden, die mir als "Urheber" nicht gefällt. Das führt u.U. dazu, dass ich jede "Fremd-Änderung" im Projekt diesbzgl. kontrollieren und ggf. wieder rückgängig machen muss. Folglich hätte ich mit einem Open Source-Projekt im ungünstigsten Fall erheblichen Verwaltungsaufwand.
Bei Closed Source hätte man diese Probleme ja nicht, da man nur selbst im Projekt ändern kann.

Für micht ein Punkt, der irgendwie gegen Open Source spricht, aber vielleicht sehe ich die Dinge ja auch komplett falsch?

Hosting
Die nächste Frage wäre, wo das Projekt gehostet werden soll. Hosting Plattformen wie Codeplex, GitHub, etc. setzen ja alle auf Open Source. Für ein Closed Source-Projekt gibt es hier weit weniger Optionen: Entweder wird das Projekt auf einer (eigenen) Website veröffentlicht. Hier habe ich natürlich den Nachteil, dass ich damit niemals so ein breites Publikum ansprechen kann wie auf den o.g. Hosting-Sites.
Die andere Möglichkeit wäre die Veröffentlichung über Nuget.
Gibt es hier noch andere Alternativen, die ich bisher noch nicht bedacht habe?

Aus "Kunden"-Sicht
Wie verhält sich das aus der Sicht der Leute, die meine Library dann verwenden wollen? Hier glaube ich eine Tendenz zu erkennen, dass hier Open Source + Veröffentlichung auf einer bekannten Hosting-Seite fast schon ein Muss ist. Viele Entwickler verwenden nichts, ohne nicht auch die Möglichkeit zu haben, einen Blick in die Sourcen werfen zu können. Wenn man so vorgeht, wie hoch ist dann die tatsächliche Wahrscheinlichkeit, dass jemand die Library nicht nur verwendet, sondern auch aktiv mitentwickelt? Ich denke mal: erschreckend gering.
Ich weiß nicht wieso, aber wenn ich auf der Suche nach bestimmten Funktionen bin und bereits eine Open Source-Library existiert, die mir aber nicht den Funktionsumfang bietet, den ich benötige, dann bringe ich mich nicht in ein bestehendes Projekt ein, sondern entwickle von Grund auf alles selbst.

Was sind hier eure Erfahrungen, bzw. wie veröffentlicht ihr eure Projekte?

09.08.2014 - 15:08 Uhr

Neues Plugin und Tutorial zur Entwicklung erweitertet Plugins für WSAPM

Plugin: Local Printers Online Plugin
Beschreibung: Plugin zum Unterdrücken des Standby-Modus wenn lokale Drucker eingeschaltet sind.
**Download: ** auf der Windows Server Advanced Power Management Homepage
Installation: Einstellungen in WSAPM aufrufen, den Bereich Plugins wählen, Schaltfläche Plugin installieren. Anschließend die heruntergeladene Plugin-Datei (ZIP-Format) angeben. WSAPM wird im Rahmen der Plugin-Installation neu gestartet. Zum Schluss muss das Plugin nur noch in den Einstellungen aktiviert werden (das Häkchen vor dem Plugin setzen). Zu den Einstellungen des Plugins gelangt man durch einen Klick auf die Schaltfläche Plugin-Einstellungen.

Tutorial für die Plugin-Entwicklung
Im Zuge der Entwicklung dieses erweiterten Plugins habe ich gleich noch eine Schritt für Schritt Anleitung zur Programmierung erweiterter Plugins für WSAPM verfasst. Damit sollte der Einstieg in die Plugin-Entwicklung für das Programm recht einfach sein. Zu finden ist der Artikel in meinem Blog: Erweitertes Plugin für Windows Server Advanced Power Management entwickeln. Hier gibt es neben dem eigentlichen Tutorial auch den Sourcecode dieses Plugins.

Ich freue mich wie immer über Feedback/Kritik/Verbesserungsvorschläge, ihr könnt euch aber auch gerne melden, wenn ihr ein eigenes Plugin entwickelt habt (welches ihr veröffentlichen wollt), oder auch nur eine Idee für ein weiteres Plugin habt.

03.08.2014 - 16:25 Uhr

Version 1.2.0 veröffentlicht!

Diese Version bietet nun endlich die Möglichkeit, mehrere unabhängige Zeitpläne zum automatischen Aufwachen aus dem Standby zu definieren. Ebenso wurden einige Verbesserungen an der Oberfläche vorgenommen und kleinere Fehler behoben.

**Neuerungen:***Es können nun mehrere Aufwach-Timer angegeben werden *Neue Option zur Angabe, ob die Programme, die nach dem automatischen Aufwachen durch Windows Server Adcanced Power Management gestartet werden sollen, auch gestartet werden sollen, wenn das System bereits läuft *Das Hauptfenster zeigt nun die nächsten Termine für für das durch Windows Server Advanced Power Management geplante Aufwachen an *Wenn ein Dienst nach dem Aufwachen aus dem Standby neu gestartet werden soll und der Dienst nicht bereits läuft, wird dieser nun einfach gestartet und es erscheint keine Warnung mehr im Log *Anpassungen der Einstellungen-Oberfläche, die Einstellungen in Listenform übersichtlicher machen *Das Download-Fenster der Auto-Update-Funktion kann in der Größe nicht mehr angepasst werden *Timeout bei der Überprüfung auf Updates auf eine Minute erhöht *Die Programme, die nach jedem Aufwachen gestartet werden sollen, wurden nicht mehr gestartet, wenn die entsprechende Option deaktiviert ist *Wenn Fehler beim automatischen Download eines Updates auftreten, wird nun eine entsprechende Fehlermeldung ausgegeben

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

15.07.2014 - 18:31 Uhr

Nach einer gefühlten Ewigkeit gibt es mal wieder ein Update. Sorry, dass es so lange gedauert hat, aber ich hatte in den vergangenen Wochen kaum Zeit, dieses Projekt weiter voran zu treiben.

Aber hier ist sie: Version 1.1.0!

In dieser Version sind einige neue Features hinzugekommen. Jedoch hat sich auch viel unter der Haube (sprich: am Programmcode) geändert und es wurden zahlreiche Optimierungen vorgenommen, die das Programm stabiler machen und die Bedienung vereinfachen.

**Neuerungen:***Es können Windows Dienste angegeben werden, die nach jedem Aufwachen automatisch neu gestartet werden sollen *Es können Programme angegeben werden, die nach jedem Aufwachen gestartet werden sollen *Es können Programme angegeben werden, die nach dem durch Windows Server Advanced Power Management geplanten Aufwachen gestartet werden sollen *Behebung von Sicherheitsproblemen *Netzwerkverbindungen werden nun nicht mehr doppelt zurück gesetzt, wenn der Computer per Timer geweckt wurde *Wenn der Computer auf dem Standby-Modus erwacht ist, kam häufig die fehlerhafte Meldung, dass der Computer durch ein geplantes Aufwachen gestartet wurde *Bei der Auswahl eines Computers zur Überwachung kann nun auch eine Liste der aktiven Computer im Netzwerk angezeigt werden *Bei der Angabe eines Computers zur Überwachung kann ein Computer nicht öfters hinzugefügt werden *Bei der Angabe eines Prozesses zur Überwachung kann ein Prozess nicht öfters hinzugefügt werden *Die Einträge zur Überwachung (Computer/Prozesse) können nun auch editiert werden *Optimierung beim Starten/Stoppen des Windows Server Advanced Power Management Dienstes *Wenn der Computer in den Standby-Modus wechselt oder aus diesem erwacht, werden die entsprechenden Log-Einträge mit ‘>>>’ gekennzeichnet, um diese Aktiviäten auf den ersten Blick zu erkennen *Einige Log-Einträge sind nun eindeutiger *Der Filter im Fenster zum Wählen eines aktiven Prozesses unterscheidet nicht mehr zwischen Groß- und Kleinschreibung *Alle Schaltflächen ohne Text haben nun einen ToolTip mit kurzen Erklärungen *Einige neue Icons

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.
Am einfachsten geht das über die integrierte Update-Funktion. Diese findet und installiert das Update automatisch.

Eine Bitte: Falls ihr die integrierte Update-Funktion nutzt und es dabei zu Problemen kommen sollte, meldet diese bitte. Die Update-Funktion wurde in Version 1.0.0 eingeführt und wurde daher bisher noch nicht "produktiv" genutzt.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

20.06.2014 - 13:14 Uhr

Ich habe nun mal ein erstes Plugin für Windows Server Advanced Power Management entwickelt:

Plugin: Removable Devices Plugin
Beschreibung: Plugin zum Unterdrücken des Standby wenn Wechseldatenträger (z.B. USB-Stick oder externe Festplatte) angeschlossen sind.
**Download: ** auf der Windows Server Advanced Power Management Homepage
Installation: Einstellungen in WSAPM aufrufen, den Bereich Plugins wählen, Schaltfläche Plugin installieren. Anschließend die heruntergeladene Plugin-Datei (ZIP-Format) angeben. WSAPM wird im Rahmen der Plugin-Installation neu gestartet. Zum Schluss muss das Plugin nur noch in den Einstellungen aktiviert werden (das Häkchen vor dem Plugin setzen).

Tutorial für die Plugin-Entwicklung
Im Zuge der Entwicklung dieses einfachen Plugins habe ich gleich noch eine Schritt für Schritt Anleitung zur Programmierung einfacher Plugins für WSAPM verfasst. Damit sollte der Einstieg in die Plugin-Entwicklung für das Programm recht einfach sein. Zu finden ist der Artikel in meinem Blog: Einfaches Plugin für Windows Server Advanced Power Management entwickeln

Ich freue mich wie immer über Feedback/Kritik/Verbesserungsvorschläge, ihr könnt euch aber auch gerne melden, wenn ihr ein eigenes Plugin entwickelt habt (welches ihr veröffentlichen wollt), oder auch nur eine Idee für ein weiteres Plugin habt.

19.05.2014 - 18:25 Uhr

Version 1.0.0 veröffentlicht!

Nach einer längeren Zeit verlässt Windows Server Advanced Power Management mit Version 1.0.0 offiziell die Beta-Phase.

An dieser Stelle herzlichen Dank an all jene, die die Software bereits in der Beta-Phase heruntergeladen und genutzt haben. Ihr habt wertvolle Kritik und Verbesserungsvorschläge geliefert.

**Neuerungen:***Aktive Netzwerkverbindungen können nach dem Aufwachen zurückgesetzt werden. Dies ist besonders sinnvoll, wenn es nach dem Aufwachen aus dem Standby zu Problemen mit der Netzwerkverbindung kommt. *Integrierte Update-Funktion: Windows Server Advanced Power Management kann nun noch einfacher upgedated werden. Ein Klick auf die Schaltfläche Nach Updates suchen sucht nach neueren Versionen und kann diese auf Wunsch gleich installieren.

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

Hinweis für Nutzer von Google Chrome:
Es kann passieren, dass Chome beim Download des Programms eine Warnung ausgibt (“WsapmSetup.exe ist ein ungewöhnlicher Download und könnte schädlich sein.”). Dies liegt daran, dass der Installer der aktuellen Version des Programms noch nicht von Google gescannt wurde.
Allerdings ist Windows Server Advanced Power Management frei von Malware/Spyware/Adware!

13.04.2014 - 12:20 Uhr

Version 0.4.0 veröffentlicht!

**Neuerungen:***Einstellungen können nun exportiert und importiert werden *Windows Server Advanced Power Management stürzt nicht mehr ab, wenn die Windows Leistungsindikatoren beschädigt sind *Verbesserte Performance (v.a. beim Systemstart) *Einige Einträge im Log sind nun aussagekräftiger

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

Hinweis für Nutzer von Google Chrome:
Es kann passieren, dass Chome beim Download des Programms eine Warnung ausgibt (“WsapmSetup.exe ist ein ungewöhnlicher Download und könnte schädlich sein.”). Dies liegt daran, dass der Installer der aktuellen Version des Programms noch nicht von Google gescannt wurde.
Allerdings ist Windows Server Advanced Power Management frei von Malware/Spyware/Adware!

29.03.2014 - 17:20 Uhr

Version 0.3.1 veröffentlicht!

**Wichtigste Neuerungen:***Im Fall eines schwerwiegenden Fehlers stürzt Windows Server Advanced Power Management nicht mehr einfach ab, sondern gibt eine Fehlermeldung aus. Die Inhalte diese Fehlermeldung können gespeichert werden (und z.B. per E-Mail versendet werden).

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

PS: Wenn jemand ein Plugin für meine Software entwickeln sollte: Ich habe versucht, eine möglichst gute Beschreibung zur Plugin-Entwicklung im Handbuch zu verfassen. Wenn diese nicht ausreichend sein sollte, oder andere Probleme bei der Plugin-Entwicklung auftreten sollten, dann helfe ich gerne weiter.

04.03.2014 - 19:22 Uhr

Version 0.3.0 veröffentlicht!

**Wichtigste Neuerungen:***Windows Server Advanced Power Management hat nun eine Plugin-Schnittstelle. Mit Plugins kann die Funktionalität von Windows Server Advanced Power Management mit eigenen Richtlinien zur Unterdrückung des Standby-Modus erweitert werden. Im Handbuch findet man eine genaue Beschreibung, wie eigene Plugins entwickelt werden können. *Bei der Überprüfung von Zugriff auf Netzwerk-Freigaben können nun mehrere Optionen gewählt werden, die den genauen Zugriff spezifizieren (Nur Dateien, Nur Verzeichnisse und Dateien und Verzeichnisse). *Die in Version 0.2.0 eingebauten Warnungen, die einen Hinweis darauf geben, wenn die Einstellungen von Windows Server Advanced Power Management nicht zu den aktuellen Windows-Einstellungen passen, erscheinen nun auch in der Status-Anzeige.

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

PS: Wenn jemand ein Plugin für meine Software entwickeln sollte: Ich habe versucht, eine möglichst gute Beschreibung zur Plugin-Entwicklung im Handbuch zu verfassen. Wenn diese nicht ausreichend sein sollte, oder andere Probleme bei der Plugin-Entwicklung auftreten sollten, dann helfe ich gerne weiter.

25.02.2014 - 14:49 Uhr

Richtig unterbinden kannst du das nicht, da es oft vorkommt, dass die app.config wieder automatisch angelegt wird (z.B. wenn du was an den Project-Properties änderst).

Warum willst du diese Änderungen unterbinden?

Vielleicht reicht es ja einfach, die app.config beim Deployment weg zu lassen, falls nicht benötigt.

25.02.2014 - 06:03 Uhr

Ist zwar schon ne Weile her, aber falls jemand vor dem gleichen Problem stehen sollte: ich habe in Windows-Energieoptionen mit C# auslesen mal ein wenig was darüber zusammengeschrieben.

10.02.2014 - 08:11 Uhr

Version 0.2.0 veröffentlicht!

**Wichtigste Neuerungen:***Standby kann nun auch bei aktivem Zugriff auf Netzwerk-Freigaben unterdrückt werden *Der optimale Wert für das Überprüfungs-Intervall kann nun automatisiert ermittelt werden *Beim Hinzufügen von zu überwachenden Prozessen kann nun auch aus einer Liste der aktuell laufenden Prozesse gewählt werden *Warnungen, wenn die Windows-Energieoptionen nicht optimal mit den Einstellungen von Windows Server Advanced Power Management zusammen arbeiten

Update:
Die neue Version kann als Update einfach über eine bestehende Version installiert werden, die Einstellungen bleiben dabei erhalten.

Download:
Den Download und weitere Infos gibt es wie immer auf der Projektseite

Feedback/Kritik/Verbesserungsvorschläge sind dabei immer erwünscht!

01.02.2014 - 18:54 Uhr

Hallo,

ich habe in letzer Zeit für meinen Home-Server ein Tool programmiert, welches ein erweitertes Energie-Management unter Windows ermöglicht.
Weil ich denke, dass das auch für andere (Windows) Home-Server-Betreiber interessant sein könnte, will ich dieses hier nun kurz vorstellen.

Das Problem werden einige ja kennen: Man will einen Home-Server nicht 24/7 laufen lassen und möglichst oft in den Standby-Modus schicken können. Genau das kann in den Windows-Energieoptionen so eingestellt werden. Allerdings wird Windows dann recht aggressiv in den Standby-Modus versetzt, wenn der Rechner eigentlich noch in Verwendung ist (z.B. wenn gerade Medieninhalte gestreamt werden oder Zugriffe auf ein freigegebenes Laufwerk stattfinden).
Genau hier wollte ich ansetzen: Ich brauchte ein Programm, mit dem Richtlinien definiert werden können, die für eine Unterdrückung des Standby-Modus sorgen.
Hier gibt es ja schon ein paar Tools, die so etwas anbieten, jedoch hat mich keines davon restlos überzeugt: Entweder waren diese nicht kostenlos erhältlich, liefen nur mit Benutzeranmeldung, oder hatten für meinen Geschmack zu viel "Overhead" (sprich: Schnickschnack) im Gepäck.
Und so ist dann das Projekt "Windows Advanced Power Management" entstanden.

**Anforderungen:***Lauffähig auch ohne Benutzeranmeldung *Programm soll nicht das Windows-Energie-Management "nachbauen", sondern mit diesem zusammen arbeiten *Niedriger Resourcenverbrauch *Zeitgesteuertes Aufwachen aus dem Standby-Modus

**Funktionen:***Regelbasiertes Unterdrücken des Standby-Modus. Im Moment werden dabei folgende Szenarien unterstützt:
Laufende Programme
Verfügbare netzwerkfähige Geräte (PCs, Smartphones, TV-Geräte, Streaming-Clients, Spielkonsolen, etc.)
Netzwerk-Auslastung (Download, Upload und kombiniert)
Zugriff auf Netzwerk-Freigaben
CPU-Auslastung

*Neustarten von Windows-Diensten nach Aufwachen aus dem Standby *Starten von Programmen nach dem Aufwachen aus dem Standby *Zeitgesteuertes Aufwachen aus dem Standby:
Einmalig
Periodisch
Periodisch mit Angabe, ab wann kein automatisches Aufwachen mehr stattfinden soll
Starten von Programmen nach zeitgesteuerten Aufwachen aus dem Standby

*Erweiterbarkeit durch Plugin-Schnittstelle: Mit Plugins kann die Funktionalität von Windows Server Advanced Power Management mit eigenen Richtlinien zur Unterdrückung des Standby-Modus erweitert werden. Im Handbuch wird genau beschrieben, wie man eigene Plugins entwickeln kann.

**Voraussetzungen:***Betriebssystem ab Windows XP/Windows Server 2003

Bedienung:
Die Bedienung ist eigentlich selbsterklärend. Dennoch habe ich ein Benutzerhandbuch geschrieben, was die Software an sich beschreibt, aber auch Tipps und Tricks vermittelt. Dieses gibt es auf der Download-Seite (s.u.)

Download:
Den Download und weitere Infos gibt es auf meiner Projektseite

Open Source:
Mittlerweile ist das Projekt als Open Source verfügbar: WSAPM @ GitHub

Ich freue mich immer über Feedback und/oder Verbesserungsvorschläge!

Hinweis für Nutzer von Google Chrome:
Es kann passieren, dass Chome beim Download des Programms eine Warnung ausgibt (“WsapmSetup.exe ist ein ungewöhnlicher Download und könnte schädlich sein.”). Dies liegt daran, dass der Installer der aktuellen Version des Programms noch nicht von Google gescannt wurde.
Allerdings ist Windows Server Advanced Power Management frei von Malware/Spyware/Adware!

21.01.2014 - 07:33 Uhr


>
liefert als ersten Treffer
>
.

Hallo!

Also wenn ich das richtig sehe, ist das Beispiel auf Codeproject eher dafür gedacht anhand der Zeitdifferenz zwischen aktueller Zeit und letzter Input-Zeit herauszufinden, ob der User gerade was am Computer macht.
Ich dachte eher daran, den Wert auszulesen, der in den Win Energie-Einstellungen zu finden ist ("Energiesparmodus nach").
Das scheint aber etwas aufwendiger zu sein, da hier durch die Win-API eine ganze Menge Zeugs befüllt wird, was vorher aber irgendwie in C# initialisiert werden muss. Ich probier mal ein wenig rum...

20.01.2014 - 14:53 Uhr

Also ich habe noch ein wenig rumprobiert:
Es scheint echt keinen Weg zu geben, das Verhalten, was ich erzielen möchte auf einfach Art und Weise zu erreichen.

Ich denke, es wird nichts anderes übrig bleiben, als einen Windows-Idle-Timer "zu simulieren": Wenn das System per ResumeAutomatic geweckt wird, dann muss man wohl zunächst einmal SetThreadExecutionState/PowerSetRequest setzen, danach einen Timer starten, der die gleiche Zeitspanne wie der Idle-Timer hat. Wenn dieser Timer abgelaufen ist, kann dann wiederum per SetThreadExecutionState/PowerSetRequest in den "normalen" Modus versetzt werden.

Nächste Frage wäre dann, wie man den Windows-Idle-Timer in C# auslesen kann...