Windows Phone 7 Series

Das sieht doch mal sehr vielversprechend aus:

image

Mit einer Oberfläche, die der des Zune ähnelt und mir auch dort schon sehr gut gefallen hat.
Developer Infos gibts erst zu MIX, vielleicht gibts bis dahin dann auch das SDK.

Ich jedenfalls will so ein Windows Phone! Gibts dann hoffentlich zu Weihnachten nicht nur in den USA, sondern auch hier.

Proxy Switcher 2.0

English version below

Es ist endlich soweit und Version 2 ist fertig geworden.

Von der Roadmap musste die UI Überarbeitung allerdings vorläufig gestrichen werden. Das heißt es gibt keine Ribbons und kein WPF, sondern weiterhin das Tabbed Interface wie gehabt. Allerdings ist zum deaktivieren ein neues Tab hinzugekommen.

Dafür aber nun die gute Nachricht: Neben einigen Bugfixes haben es die folgenden Features in die neue Version geschafft:

  • Standard Drucker wechseln nun auch beim deaktivieren
  • Neue Settings um das Taskbar Verhalten zu ändern und Nachfragen abzuschalten
  • Im Auto Switch Tab werden nun einige Werte (WLAN SSID, DNS suffix, Gateway) mit Werten des aktuell verbundenen Netzes vorbelegt
  • Wenn ein neues WLAN connected wird, erscheint eine Abfrage ob dieses WLAN einen Proxy benötigt, der dann direkt konfiguriert werden kann
  • Mehr Hilfen im Programm verfügbar durch überfahren von Fragezeichen mit der Maus
  • Application Änderungen:
    • Opera Support nun inkl. Opera 10
    • Firefox: Neben den Profilen kann nun auch der Standard Profilordner gewechselt werden
    • Thunderbird gehört nun ebenfalls zu den Unterstützten Applikationen
    • Internet Explorer 8: Proxy kann nun auch für Wählverbindungen gewechselt werden, allerdings aktuell nur mit einem kleinen Trick. Mehr dazu in der FAQ und im Tool über die Hilfe.
  • Neue Enterprise Features:
    • Alle Konfigurationsdateien ([User]\AppData\Roaming\ProxySwitcher) werden nun live überwacht und können per Group Policy, o.ä. geändert und ausgetauscht werden, ohne die Anwendung beenden zu müssen. Dies ermöglicht z.B. Proxy Einstellungen für alle Mitarbeiter hinzuzufügen oder zu ändern.
    • Group Policx (ADMX) Template: Proxy Switcher lässt sich nun über Group Policies einschränken und deaktivieren. Download und Infos hier: http://projects.mwiedemeyer.de/ProxySwitcher/pages/GroupPolicy.aspx
      Das Template ist nur für Windows Vista oder höher und Window Server 2008 oder höher anwendbar, da Microsoft erst ab dieser Version das neue ADMX Format eingeführt hat.

Download wie immer direkt hier: http://mwiedemeyer.de/downloads/ps/ProxySwitcherSetup.zip

Für Fragen und Anregungen bitte die FAQ und das Forum hier verwenden: http://projects.mwiedemeyer.de/ProxySwitcher

 

----------------------------------------------------------------------

ENGLISH VERSION

Today the new version 2 was released!

The UI changes mentioned in the roadmap had been postponed. So no ribbons and no WPF, but a tabbed interface like in the releases before with an additional tab for deactivating the proxy.

The great news: Beside some bug fixes there are many new features available as you can see here:

  • Change the default printer also on deactivating the proxy
  • New settings to change the taskbar behavior and eliminate ask on exit
  • Within Auto Switch tab, switch settings will be pre-populated with the values (WLAN SSID, DNS suffix, Gateway) from the currently connected network
  • When you connect to a new WLAN, a task dialog appears and you can directly create a proxy entry for this connection
  • More help available throughout the application (hover the mouse over the question marks)
  • Application changes:
    • Opera support including Opera 10
    • Firefox: Also change the default profile folder
    • Thunderbird support added
    • Internet Explorer 8: From now on, proxy can be changed for dial-up connections too. See FAQ or help within the tool for a how-to.
  • New Enterprise features:
    • All configuration files ([User]\AppData\Roaming\ProxySwitcher) are now live monitored, so they can be changed or replaced by policies, etc. without exiting the application. Now it is possible to add or remove proxy entries for all employees.
    • Group Policy (ADMX) template: Proxy Switcher can now be managed by group policies. Download and info here: http://projects.mwiedemeyer.de/ProxySwitcher/pages/GroupPolicy-en.aspx
      The template is only available on Windows Vista or above or Windows Server 2008 or above, because Microsoft supports the new ADMX file format only in these versions.

Direct download here: http://mwiedemeyer.de/downloads/ps/ProxySwitcherSetup.zip

Please use the FAQ or the forum for questions and feedback here: http://projects.mwiedemeyer.de/ProxySwitcher

Project Site

Da sich inzwischen doch ein paar kleine aber feine private Projekte angesammelt haben, gibt es nun eine neue site wo alle Projekte an einer Stelle zu finden sind:

http://projects.mwiedemeyer.de

Für den Proxy Switcher gibt es dort nun auch ein Forum, damit nicht alle Fragen verstreut über die einzelnen Blog Posts verteilt werden.

Außerdem gibt es dort noch zwei andere kleine Tools: AutoHistory for Word 2007 und den Browser Selector.

Proxy Switcher v1.5 – How to create your own switcher?

Proxy Switcher arbeitet derzeit mit dem Internet Explorer und Firefox zusammen. In der Regel greifen Anwendungen automatisch auf die Proxy Einstellungen des Internet Explorers zurück, weshalb es normalerweise vollkommen ausreichend ist.

Hat man nun aber einen Sonderfall, also eine Applikation die nicht auf die Internet Explorer settings zurückgreifen kann, benötigt man ein zusätzlichen “Switcher”.

In diesem Artikel zeige ich, wie einfach es ist, selbst einen zu entwickeln und im Proxy Switcher zu verwenden.

Implementierung

Zunächst erstellt man ein neues Class Library Projekt im Visual Studio 2008. Dies ist auch mit der kostenlosen Variante Visual Studio 2008 Express (C# oder VB.NET) ohne Probleme möglich.

image

Als nächstes fügt man eine Referenz auf ProxySwitcher.Shared.dll hinzu. Dort befindet sich die benötigte Basisklasse.

image

Nun noch die Class1.cs Datei umbenennen, z.B. in DemoSwitcher.cs. Dadurch wird auch automatisch die Klasse umbenannt. Diese Klasse muss nun von der SwitcherBase Klasse erben, wofür außerdem das using statement hinzugefügt werden muss:

image

Über das SmartTag was erscheint wenn man SwitcherBase ausgeschrieben hat, lassen sich automatisch alle benötigten Methoden erzeugen. Das wären “DisableProxy”, “EnableProxy” und die Eigenschaft “Name”.

image

Über die Name Eigenschaft kann man einen Namen vergeben, der später dann im Proxy Switcher angezeigt wird.

Enable und Disable sollte sich von selbst erklären. Innerhalb der Methoden kann man auf this.CurrentProxyEntry zugreifen um die Daten abzurufen, die nun aktiviert/deaktiviert werden sollen.

image

Damit hätten wir die minimal Implementierung beendet.

Erweiterte Funktionen

Man kann nun noch für seinen Switcher Einstellungen laden und speichern und auch einen Settings Dialog als Windows Form anbieten (wofür dann noch eine Referenz auf “System.Windows.Forms” hinzugefügt werden muss):

image 

Deployment

Nachdem man alles soweit fertig hat, muss das Projekt noch kompiliert werden. Dadurch entsteht eine DLL, in meinem Fall PSDemoSwitcher.dll.

Diese muss nur noch in das Verzeichnis kopiert werden, wo auch ProxySwitcher.exe liegt. Also normalerweise “C:\Programme\ProxySwitcher”.

Startet man nun den ProxySwitcher, erscheint im ersten Tab direkt mein neuer Switcher und kann selektiert werden, damit er auch aufgerufen wird.

image

 

Update:

Die dokumentierte Beispielimplementierung gibt es hier zum download.

Windows 7 + SSD = HIGH performance

Lange Zeit sind die Prozessoren immer schneller geworden, der Arbeitsspeicher ist schneller und vor allem immer größer geworden und langsam aber sicher wird (ist) die einzige Bremse im Computer die Festplatte.

Das trifft vor allem auf Laptops zu, da bei Desktops und Servern natürlich Platten mit 10k Umdrehungen und RAIDs möglich sind. Im Laptop dagegen hat man in der Regel nur Platz für eine Platte.

Hier kommen jetzt die SSDs ins Spiel. Klar kannte ich natürlich dieses Video:

Aber ich war etwas skeptisch, zumal leider keine 24 Platten in meinen Laptop passen... Also bringt auch eine Platte eine deutlich bessere Performance?

Kurze Antwort: JA! JA! JA!

Die G.Skill Falcon Platte hat den neuesten Controller und zusätzlich noch 64MB cache, was zusammen keine Wünsche offen lässt.

Mit Windows 7 hat Microsoft ja bekanntlich diverse Verbesserungen für SSDs implementiert, und das rockt (nicht nur im Windows Experience Index): 7,4 von 7,9!

image

Auch die subjektive Geschwindigkeit beim öffnen von Anwendungen oder beim Hochfahren von Windows ist seehr viel besser.

Müssen die SSDs nur noch günstiger werden...

Proxy Switcher v1.5

Version 1.5 ist fertig! Neben einigen Bug Fixes sind, wie bereits im Feature Preview Post erwähnt folgende neue Funktionen hinzugekommen:

  • Vollständige Integration in Windows 7, inklusive Jumplist support 
  • Internet Explorer 8 support
  • Standard Drucker wechseln
  • Scripting
    • Script kann nun mit dem proxy namen als Parameter aufgerufen werden

    • Beim deaktivieren der proxies kann nun ebenfalls ein script aufgerufen werden

    Leider gibt es einige Probleme mit Click-Once, so dass v1.5 weiterhin nur über ein Setup zur Verfügung steht und nicht automatisch aktualisiert wird (aber automatisch benachrichtigt, sobald eine neue Version verfügbar ist).

    Desweiteren hat es die Wählverbindung-Unterstützung nicht mehr in diese Version geschafft, ist aber definitiv auf der Roadmap für v1.6.

    Da Microsoft ein paar gravierende Änderungen am Proxy System vom IE 8 vorgenommen hat, gibt es nun einen Switcher für “Internet Explorer” und einen für “Internet Explorer 8”. Nur einer von beiden sollte, je nach System, aktiviert werden.

    DOWNLOAD HIER

    WICHTIG: Der Pfad zu den Einstellungen und Proxy Konfigurationen hat sich wie folgt geändert:

    Speicherort vor v1.5: C:\Users\[USERNAME]\AppData\Local\ProxySwitcher (Windows XP: C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\ProxySwitcher")

    Neuer Speicherort v1.5+: C:\Users\[USERNAME]\AppData\Roaming\ProxySwitcher (Windows XP: C:\Documents and Settings\[USERNAME]\Application Data\ProxySwitcher)

    Um die vorhandenen Einstellungen zu übernehmen, einfach alle Dateien im genannten Ordner in den neuen Ordner kopieren.

     

    Vorschau

    Für v1.6 steht, neben dem Support für Wählverbindungen, auch eine bessere Unterstützung für größere Firmen Deployments auf der Agenda (z.B. Konfiguration und Sperren von Änderungen über Group Policies, als auch Überwachung der Einstellungsdateien, so dass diese im laufenden Betrieb geändert werden können)

    Außerdem steht auch immer noch Opera support auf der Agenda... wird auf jedenfall noch vor v1.6 ausgeliefert...

     

  • UPDATE:

    Es gab ein kleines Problem mit den advanced exceptions, was nun behoben ist. Die Version ist nun 1.5.1. Sorry für die Unannehmlichkeiten!

    Windows 7: Open a new Form from the Jumplist

    With the Windows API Code Pack, Microsoft released a really cool managed wrapper for most of the new Windows 7 features. See here for more details and download.

    One thing you can do is to create a .NET app with Jumplist support. Jumplists are these cool menus appearing on right click on an icon in the task bar:

    image

    But there is something wrong with the jumplist: It can only launch new apps! The demo solution for the Code Pack launches notepad and some other things, but there is no word about how to open the same app but with a new form.

    So here is my solution, which is not very nice, but it works like a charm.

    Scencario:
    AppInstance1 is running –> click on a jumplist item starts a new instance –> appInstance2 now knows, that this is the second instance, so appInstance2 calls appInstance1 through remoting (IPC) and terminates–> appInstance1 receives the remoting call und execute something.

    Ok, how to implement this?

    First of all, create a new Windows Forms app and go to the Program.cs file. Within this class create a new class which works as your service for the remoting part and also a static reference to your form:

    static class Program
        {
            public class RemotingService : MarshalByRefObject
            {
                public RemotingService() { }
    
                public void ShowText(string text)
                {
                    Program.formMain.SetTextToTextBox(text);
                }
            }
    
            internal static Form1 formMain;

    Then you will need some remoting code for the communication. I created two methods “InitRemoting” and “CallRunningInstance”. InitRemoting is called from the main method if this is the first instance. CallRunningInstance is called if the main method detects, that this is the second instance.

    For the detection I use a system wide mutex.

    I hope you get the idea. Because there are some more lines of code I created a demo project for you to download:

     Download the entire working demo solution here.

     

    Proxy Switcher 1.5 – Feature Preview

    Hier gibt es heute schon mal eine kleine Vorschau auf die nächste Version.

    Nach vielen Mails und Kommentaren wurden hoffentlich die meisten Wünsche weitestgehend erfüllt.

    Zu den Neuerungen gehören:

    • Vollständige Integration in Windows 7, inklusive Jumplist support
      • image
    • Internet Explorer 8 support und damit auch unterstützung für Wählverbindungen
    • Standard Drucker wechseln
      • image
    • Scripting

      • Script kann nun mit dem proxy namen als Parameter aufgerufen werden

      • Beim deaktivieren der proxies kann nun ebenfalls ein script aufgerufen werden

    • Click-Once Anwendung. Damit gibt es automatische updates ohne Installation

     

    Es ist natürlich weiterhin Zeit für Anregungen, Wünsche und Kommentare.
    Als Release Termin für die Version 1.5 plane ich aktuell Ende Juni.