Seit einigen Tagen läuft unser Wettbewerb rund um Windows 7-Anwendungen. Die ersten Einreichungen haben uns bereits erreicht und überrascht.
Wer mehr Informationen und Anregungen haben möchte, für den habe ich dieses Video produziert.
Bei Fragen und Mangel an Ideen, einfach eine Email an mich.
Viel Spaß und Erfolg, Oliver
Diese Anwendung demonstriert, wie leicht man den Benutzer “bespaßen” kann, in dem man ihm das Desktoplicht ausknipst und eine Taschenlampe anschaltet.
Die Anwendung kann hier heruntergeladen werden.
Diese Anwendung demonstriert wie leicht man den Desktop auf spielerische Art und Weise verändern kann.
Dazu wird in diesem Beispiel der Desktop abgedunkelt und kann nur mit einer kleinen Taschenlampe erhellt werden.
Der Sourcecode dazu kann auf
Die .NET User Group Konstanz-Kreuzlingen veranstaltete am 20.08.2011 die zweite .NET Community Konferenz in Kreuzlingen am Bodensee. Eine Konferenz von und für die .NET Community und Interessierte in der Schweiz, Deutschland und Österreich.
Diese Konferenz bietet den Teilnehmern viele interessante Vorträge aus dem .NET-Umfeld, vorgetragen von namhaften Entwicklern aus der .NET-Community: Agenda
Die See# Party soll eine günstige und nahe Alternative zu den großen Konferenzen darstellen.
Mehr Informationen gibt es hier.
Alle Windows Phone 7 haben GPS eingebauten. Die Nutzung auf einem echten Telefon funktioniert auch super. Nur leider zeigt der Emulator dort einige Schwächen. Um auch wechselnde Positionen im Windows Phone 7 Emulator testen zu können, gibt es jetzt eine GPS Emulator, der dem Telefon wechselnde Postion vortäuscht.
Der Download dazu befindet sich hier.
Wie wäre es wenn man Windows mal richtig wörtlich nimmt und aus dem Desktop eine echte Glasscheibe machen würde.
Man nimmt einfach einen Screenshot vom aktuellen Desktop, zeigt diesen Bildschirm füllend an und bei jedem Mausklick wird Loch in die Fenster scheibe eingefügt. Ein Beispiel wie dies in Silverlight funktioniert ist hier zu finden.
Coding4Fun hat ein Toolkit für Windows Phone 7-Steuerelemente veröffentlicht. Darin enthalten sind diverse neue Steuerelemente, die so derzeit nicht im Basis-SDK für Windows Phone 7 enthalten sind, wie z.B.:
Mehr Informationen und Download
Für ein Marketingvideo sehr nett gemacht …
Besonders schön finde ich, das ich den Pioneer Square tatsächliche kenne und dort bald wieder in meinem Lieblingskaffeeladen sitzen werde.
Wer will nach Las Vegas?
Baut eine Windows 7-Desktop-Anwendung die mindestens ein Windows 7-Feature verwendet …. schickt sie an uns und packt schon mal die Koffer und die Sonnencreme ein.
Mehr Informationen gibt es unter http://www.windows7.de/maschine
Inspirationen für Windows 7-Anwendungen gibt es hier:
Heute bei Microsoft in Unterschleißheim reingerollt … der MSDN-Tour Bus. Der erste Mitfahrer ist auch schon da.
http://www.msdn-on-tour.de/
„Das Pixel“ ist ein Buch über die Geschichte, die Technik sowie die Relevanz und das Wesen des Pixels. Es war uns ein Anliegen und eine Freude, ihm auf diese Art und Weise Aufmerksamkeit zukommen zu lassen.
Ein Bachelorprojekt von David Blank & Florian Hägele
Mehr Informationen hier
Haben wollen.
Eine sehr schöne Art und Weise, wie man mit Silverlight seine Reisekosten abrechnen könnte, sieht man hier.
Early birds save big! Register by February 11 and save $500 on your conference pass and get one free hotel night. Register Now.
Unplug from your day job. Be inspired at MIX.
Join the conversation at MIX – see the latest tools and technologies and draw inspiration from a professional community of your peers and experts. More About MIX.
· PREVIEW THE NEXT WEB MIX is where you’ll learn about the future of web, from the diversity of devices and interaction models on the front-end, to the tools and technologies that power the user experience, to the services that make it all possible. There’s no better place to hear about the future of Silverlight, Internet Explorer, Windows Phone, ASP.NET, and technologies like HTML5 and CSS3.
· GET REAL ANSWERS FROM THE EXPERTS MIX isn’t just about getting a first look at the latest technologies and trends – it’s an opportunity for you to have your questions answered by industry and Microsoft experts.
· NETWORK WITH THE COMMUNITY MIX is a gathering of developers, designers, UX experts and business professionals creating the most innovative and profitable consumer sites on the web. The opportunities for networking are limitless…this is Las Vegas, after all.
Pre-Event Boot Camps at MIX11
Arrive a day early and immerse yourself in a full day of exclusive content presented by the industry’s most regarded experts. Whether you’re a designer or a developer, there’s a MIX Boot Camp for you. Learn more about Boot Camps.
See full list of MIX Boot Camp speakers.
Mit Microsoft Webmatrix ist das Entwickeln beeindruckender Webseiten so einfach wie noch nie. Egal ob Sie Ihre Seite von Grund auf neu entwerfen, bestehende Templates nutzen oder eines der vielen kostenlosen Open Source Frameworks aus der Web App Gallery. Sie haben die Wahl ob Sie Ihre Seiten mit ASP.NET oder php erarbeiten. Und das alles kostenlos!
Lernen Sie in diesem kostenlosen Eintages-Workshop Webmatrix näher kennen, bauen Sie gemeinsam mit unseren Trainern Dariusz Parys und Christian Wenz Ihre erste WebMatrix Anwendung und unternehmen Sie einen Ausflug in die Welt von jQuery und HTML 5. In einem anschließenden Lab können Sie Ihr erlerntes Wissen sofort anwenden.
Alle Informationen zu Webmatrix sowie den Downloadlink finden Sie hier: www.microsoft.com/web/webmatrix
Uhrzeit
Inhalt
09.00 – 09.15
Begrüßung und Organisatorisches
09.15 – 10.15
Rundflug WebMatrix
10.15 – 10.30
Kaffeepause
10.30 – 12.30
Anwendungen mit WebMatrix bauen
12.30 – 13.15
Lunch
13.15 – 14.15
jQuery + HTML 5
14.15 – 17.00
Lab (mit spontanen Kaffeepausen)
Webcamp in Unterschleißheim
Webcamp in Bad Homburg
Datum: 31. März
Ort: Microsoft Niederlassung Unterschleißheim, Konrad-Zuse-Straße 1, 85716 Unterschleißheim
Anmeldung
Datum: 23. März
Ort: Microsoft Niederlassung Bad Homburg, Siemensstraße 27, 61352 Bad Homburg
Christian Wenz ist einer der Gründer der Münchner Agentur Arrabiata Solutions GmbH (http://www.arrabiata.de/) und verantwortet dort die Konzeption und Entwicklung von komplexen Web- und mobilen Applikationen. Seine aktuelle Steckenpferde sind Web Application Security, Cross-Device-Publishing von Anwendung sowie die wiederentdeckte Sympathie für JavaScript. Er ist Autor von über 100 Büchern und wurde in zehn Sprachen übersetzt. Der Microsoft MVP für ASP.NET und ASPInsider spricht regelmäßig auf weltweiten Entwicklerkonferenzen wie TechEd Europe und DevConnections und publiziert in verschiedenen Fachzeitschriften.
Dariusz Parys ist seit 2007 als Technical Strategist Web Platform bei der D&PE und seit 2000 bei Microsoft Deutschland tätig. Sein Themenschwerpunkt liegt auf der Microsoft Web Platform und verwandten Technologien. Davor war Dariusz zwei Jahre lang bei einem Großkonzern als Enterprise Architect für Microsoft Consulting Services tätig. Sein Wissen und seine Erfahrung vermittelt er in Vorträgen auf zahlreichen Entwicklerkonferenzen und Workshops. Sie erreichen ihn über seinen Blog unter http://downtocode.net und über Twitter @writeline.
Bitte bringen Sie folgendes mit: Laptop + Stromkabel
Für Verpflegung während des Tages ist natürlich gesorgt
Wir freuen uns auf Ihre Anmeldung!
Rudi Grobler hat eine sehr gute Übersicht über die “MUST HAVE” Toolkits für Windows Phone 7 erstellt.
Mehr Infos hier.
Mehr Informationen: http://www.sarien.net/larry
Egal ob Visual Studio, Windows Phone 7 oder Word – Sie haben Fragen zu Microsoft Technologien? Dann stellen Sie Ihre Fragen unseren Kollegen von /TechStudent am 28. Januar auf www.facebook.com/techstudentgermany- und sie antworten Ihnen! So funktioniert es: Schreiben Sie Ihre Fragen einfach zwischen 10 und 16 Uhr auf die Pinnwand der Fanpage. Unsere Experten werden Ihnen all Ihre Fragen schnellstmöglich beantworten. Unter allen Fragestellenden werden zudem 1x Wireless Notebook Presenter Mouse 8000 und 5x Notebook Optical Mouse verlost. Zur TechStudent-Facebook-Fanpage
Das ist nicht Paris.
Das ist nicht Venedig.
Und nein, das ist auch nicht Ägypten.
Und New York ist das auch nicht.
Das ist Vegas … Las Vegas. Die Stadt des Entertainments, des Gamblings und der Mix2011.
Und wir bringen Sie hin. Und wie?
Bauen sie eine verrückte, coole, lustige, hilfreiche, abgefahrene Windows 7 Desktop-Anwendung, die mindestens ein Windows 7-Feature verwendet.
Mehr Informationen dazu gibt es unter http://www.windows7.de/maschine
Viel Erfolg und Spaß, Oliver
Einmal schreiben und verwenden für Windows, Silverlight, Windows Phone und Xbox360, und das Ganze bitte in C# oder in Visual Basic? Bitteschön: Mit den Portable Library Tools, einem Add-in für Visual Studio 2010, kein Problem. Mit einer Einschränkung: Noch steht der wertvolle Helfer erst in einer öffentlichen Vorabversion bereit. Technische Unterschiede (etwa, dass Sie unter Windows Phone und Xbox360 kein MEF verwenden können) werden auch nicht durch Wunderhand ausgeräumt, dafür aber berücksichtigt: Für welche Plattform Sie primär entwickeln wollen, legen Sie trotz allem fest, womit dann die verfügbaren APIs definiert wären und Ihnen per Intellisense aufgezeigt (oder eben zutreffend vorenthalten) werden. Auf unserer Zielseite erfahren Sie mehr über das im Entwicklungsstadium befindliche Projekt, das derzeit noch dieBetaversion von Visual Studio 2010 Service Pack 1 benötigt und zum Betrieb erstellter Bibliotheken im Fall dreier API-Funktionen auf ein noch kommendes Silverlight 4-Update angewiesen ist. Für Interessierte steht auch ein einstündiger Vortrag von Shawn Burke auf der PDC10 sowie die zugehörigen PowerPoint-Slides zum Thema bereit.
Auf diesen Hinweis haben bestimmt viele gewartet (ich selbst auch). Aus dem Blog meines Kollegen Max Knor kommt die folgende Hilfe
“
Kennen Sie folgendes Problem? Videos spiele nicht, wann immer sie die Applikation debuggen? Sobald Sie die Applikation ohne Debugger (& Kabel) starten spielt das Video?
Das Problem liegt nicht am Debugger, sondern am ZUNE Client. Dieser überträgt nicht nur Debugging Informationen sondern ist auch für die Synchronisation von Videos, Bildern & Marketplace Infos zuständig.
Aus diesem Grund SPERRT der ZUNE Client am Phone die entsprechenden Applikationen, solange der Client läuft. Sie sehen dann folgenden Bildschirm, wenn Sie z.B. in die “Bilder” Applikation gehen:
Anders wenn Sie ein MediaElement in Ihrer Anwendung verwenden – dann kommt lediglich einMediaFailed Event.
Was ist nun die Lösung dieses Problems? Etwa auf Debugigng bei Videos verzichten? Weit gefehlt!
Laden Sie sich dieses Update für die WP7 Developer Tools herunter!
Danach finden sie die WPConnect.exe im Verzeichnis C:\Program Files (x86)\microsoft sdks\Windows Phone\v7.0\Tools\WPConnect\.
Schließen Sie den Zune Client und starten statt dessen WPConnect.exe. Fertig! Nun können Sie Videos, Marketplace und andere Dinge in Ihrer Applikation nutzen, obwohl das Phone für Debugging mittels Kabel mit dem PC verbunden ist.”
Mehr Informationen von Max Knor hier.
Auf der Expression Code Gallery gibt es sehr leicht zu verwendende Behaviors für Silverlight und Windows Phone mit dem man Multi-Touch-Manipulationen wie Schieben, Skalieren und Rotieren in eigene Anwendungen bekommt.
Mehr Informationen und Download hier.
Auf Channel 9, dem Microsoft Online Entwickler Fernsehen, gibt es für jeden interessierten Windows 7 Entwickler ein sehr umfassendes Paket an Trainingsressourcen zum Download und ausprobieren.
Mehr Informationen
In der Expression Code Gallery gibt es zum freien Download ein Behavior mit dem man via Drag und Drop in Expression Blend, den Glass-Effekt in eigenen Fenstern innerhalb seiner Anwendung nutzen kann.
Mehr Informationen und download hier.
In diesem Beispiel möchte ich zeigen, wie leicht man Effekte mit Pixelshadern auf den Bildschirm zaubern kann.
Dazu erstellen wir hier eine kleine Anwendung, die als erstes einen Screenshot vom aktuellen Bildschirm macht und dem Benutzer im Vollbild anzeigt. Genau genommen bedeutet das, das wir dem Benutzer versuchen zu seinen Originalbildschirm vorzutäuschen und mit einigen Effekten zu versehen.
Dazu erstellen wir als erstes eine neue Windows Presentation Foundation-Anwendung mit Visual Studio:
Als nächsten machen wir einen Screenshot vom Bildschirm.
Wie erstellt man einen Screenshot vom aktuellen Bildschirm?
In der .NET-Bibliothek “System.Windows.Forms” befindet sich der Namespace SystemInformation. Mit diesem lassen sich Informationen über den Bildschirm ermitteln. Diese nehmen wir als Hilfe für die CaptureScreen-Methode
public Bitmap CaptureScreen()
{
Bitmap bmp = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
g.Dispose();
return bmp;
}
Die Bitmap-Klasse befindet sich in der Bibliothek “System.Drawing”.
Um aus einem Bitmap eine BitmapSource für ein WPF-Image machen zu können benötigt man die folgende Methode:
public static BitmapSource CreateBitmapSource(System.Drawing.Bitmap bmp)
return Imaging.CreateBitmapSourceFromHBitmap(
bmp.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
Diese Methode rufen wir direkt zum Start auf, und weisen das Ergebnis einem Image-Objekt zu, das wir in der MainWindow.xaml wie folgt definiert haben.
<Window
x:Class="PixelShaderWPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
Height="350"
Width="525">
<Grid>
<Image
x:Name="backgroundImage" />
</Grid>
</Window>
Der gesamte Code bisher:
public partial class MainWindow : Window
public MainWindow()
InitializeComponent();
// Create Screen Shot
Bitmap bmp = CaptureScreen();
BitmapSource bmpSrc = CreateBitmapSource(bmp);
backgroundImage.Source = bmpSrc;
Wenn wir die Anwendung nun starten, erhalten wir die folgende Ansicht:
Bitte nicht wundern, ich habe zwei Bildschirme, und die Screenshot-Methode macht direkt von beiden einen Screenshot.
Jetzt wollen wir dem Benutzer dieses Bild über seinen gesamten Bildschirm legen und ihn damit vormachen, er würde auf seinem normalen Bildschirm arbeiten. Damit er aber jederzeit wieder in den normalen Modus kommt, geben wir ihm einen Schließen-Button.
<Button
x:Name="closeWindow"
Content="Close Fake App"
Click="closeWindow_Click"
VerticalAlignment="Top"
HorizontalAlignment="Right"/>
Dahinter liegt der folgende Eventhandler:
private void closeWindow_Click(object sender, RoutedEventArgs e)
App.Current.Shutdown();
Wie kann man am leichtesten seine Anwendung in den Vollbildschirm-Modus schalten?
Die Windows-Bibliothek user32.dll beinhaltet Funktionen mit denen man seinen Bildschirm “screenshoten” kann. Diese Funktionalität habe ich in die Klasse FullScreenHelper ausgelagert, damit der Code übersichtlich bleibt.
public static class FullScreenHelper
public static void GoFullscreen(this Window window)
// Make window borderless
window.WindowStyle = WindowStyle.None;
window.ResizeMode = ResizeMode.NoResize;
// Get handle for nearest monitor to this window
WindowInteropHelper wih = new WindowInteropHelper(window);
IntPtr hMonitor = MonitorFromWindow(wih.Handle, MONITOR_DEFAULTTONEAREST);
// Get monitor info
MONITORINFOEX monitorInfo = new MONITORINFOEX();
monitorInfo.cbSize = Marshal.SizeOf(monitorInfo);
GetMonitorInfo(new HandleRef(window, hMonitor), monitorInfo);
// Create working area dimensions, converted to DPI-independent values
HwndSource source = HwndSource.FromHwnd(wih.Handle);
if (source == null) return;
// Should never be null
if (source.CompositionTarget == null)
return;
Matrix matrix = source.CompositionTarget.TransformFromDevice;
RECT workingArea = monitorInfo.rcMonitor;
Point dpiIndependentSize =
matrix.Transform(
new Point(
workingArea.Right - workingArea.Left,
workingArea.Bottom - workingArea.Top));
// Maximize the window to the device-independent working area ie
// the area without the taskbar.
// NOTE - window state must be set to Maximized as this adds certain
// maximized behaviors eg you can't move a window while it is maximized,
// such as by calling Window.DragMove
window.MaxWidth = dpiIndependentSize.X;
window.MaxHeight = dpiIndependentSize.Y;
window.WindowState = WindowState.Maximized;
// Nearest monitor to window
const int MONITOR_DEFAULTTONEAREST = 2;
// To get a handle to the specified monitor
[DllImport("user32.dll")]
static extern IntPtr MonitorFromWindow(IntPtr hwnd, int dwFlags);
// To get the working area of the specified monitor
public static extern bool GetMonitorInfo(HandleRef hmonitor, [In, Out] MONITORINFOEX monitorInfo);
// Rectangle (used by MONITORINFOEX)
[StructLayout(LayoutKind.Sequential)]
public struct RECT
public int Left;
public int Top;
public int Right;
public int Bottom;
// Monitor information (used by GetMonitorInfo())
public class MONITORINFOEX
public int cbSize;
public RECT rcMonitor;
// Total area
public RECT rcWork;
// Working area
public int dwFlags;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x20)]
public char[] szDevice;
Diese verwenden wir direkt zu beginn in unserer Anwendung im Loaded-Ereignis.
this.Loaded += (s, e) =>
// Activate Fullscreen
FullScreenHelper.GoFullscreen(this);
};
Möchte man nun auf diesen Fake-Bildschirm einen Pixelshader-Effekt anwenden, kann man sehr einfach einen der einbauten Effekte, wie z.B. Blur verwenden. Dazu habe ich einige Buttons in die MainWindow.xaml eingebaut und mit Eventhandlern versehen.
<StackPanel
HorizontalAlignment="Left">
Content="Reset all Effects"
x:Name="resetEffects"
Click="resetEffects_Click" />
Content="Blur Effect"
x:Name="blurEffect"
Click="blurEffect_Click"/>
Content="Monochrome Effect"
x:Name="monochromeEffect"
Click="monochromeEffect_Click" />
</StackPanel>
Die Eventhandler sind wie folgt definiert in der MainWindow.xaml.cs-Datei:
private void blurEffect_Click(object sender, RoutedEventArgs e)
System.Windows.Media.Effects.BlurEffect blur = new System.Windows.Media.Effects.BlurEffect();
backgroundImage.Effect = blur;
private void monochromeEffect_Click(object sender, RoutedEventArgs e)
Microsoft.Samples.ShaderEffects.MonochromeEffect monochrome = new Microsoft.Samples.ShaderEffects.MonochromeEffect();
backgroundImage.Effect = monochrome;
private void resetEffects_Click(object sender, RoutedEventArgs e)
backgroundImage.Effect = null;
Wichtiger Hinweis: Leider bringt WPF nur wenige Pixelshader-Effekte mit sich. Weitere Pixelshader befinden sich in allerdings im Win7ToGo-Projekt auf Codeplex (Link)
Der Blur-Effekt sieht da wie folgt aus:
Der Monochrome-Effekt sieht so aus:
Damit kann man schon so manchen Benutzer “verwirren” und einige Späße machen.
Treibt man nun das Ganze etwas weiter, so kann man die Effekte auch mit Animationen verbinden. Ein Beispiel wäre z.B. das man beim Klicken der Maus einen Ripple/Tropfen-Effekt auf die Oberfläche zaubert.
Dazu benötigt man wirklich nicht viel Code.
void MainWindow_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
System.Windows.Point p = e.GetPosition(this);
Microsoft.Samples.ShaderEffects.RippleEffect ripple = new Microsoft.Samples.ShaderEffects.RippleEffect();
double centerX = p.X / backgroundImage.ActualWidth;
double centerY = p.Y / backgroundImage.ActualHeight;
ripple.Center = new System.Windows.Point(centerX, centerY);
ripple.Amplitude = .5;
ripple.Frequency = 50;
ripple.Phase = 0;
backgroundImage.Effect = ripple;
DoubleAnimation da = new DoubleAnimation();
da.From = 0;
da.To = 50;
da.AutoReverse = true;
da.Duration = new Duration(TimeSpan.FromSeconds(5));
ripple.BeginAnimation(Microsoft.Samples.ShaderEffects.RippleEffect.FrequencyProperty, da);
Das gesamte Beispiel kann hier heruntergeladen werden: Codeplex-Projekt
Seid einigen Tagen läuft unser Wettbewerb “Beherrsch die Maschine”. Und kaum ist der Wettbewerb angelaufen, haben uns schon die ersten Einreichungen erreicht.
Wer gerne mitmachen möchte schaut sich auf diese Seite um: http://www.windows7.de/maschine.
Was aber wenn man sich die Frage stellt: “Was soll ich eigentlich bauen?”, aber keine Ideen hat?
Hier einige Ideen:
Mehr Anregungen in den nächsten Tagen.
Hier geht es zum Gewinnspiel