Skip to content

Highlights von der Build: .NET User Group Austria

Bei der diesjährigen Build Konferenz in San Francisco war .NET wieder ein großes Thema. Highlights davon und zum Windows 8.1 Update bei diesem Termin der User Group:

  •  .NET Compiler Platform
  • .NET Foundation
  • C# 6
  • RyuJIT, .NET Native
  • Windows 8 UI Updates
  • Universal Apps
  • Features für Business Apps


Treffpunkt: 17:30
Start des Vortrags: 18:00
Nach dem Vortrag: Diskussionsrunde mit Verpflegung

Location: Microsoft Österreich

Anmeldung: https://www.facebook.com/events/545311772248275 oder per Email ug@christiannagel.com

A Happy New Year 2014!

1987..2013..2014

Jahre mit 4 unterschiedlichen Ziffern :-)

Image

Im Jahr 2013 war mein erster Blog Artikel über

  • Viele neue Windows Store Apps
    • Ja , tatsächlich gibt es viele weitere Windows Store Apps. Genau diejenigen die du brauchst fehlen aber vielleicht noch. Und andere haben nicht die gleichen Funktionen wie auf anderen Plattformen. Aber auf jeden Fall gibt es gibt viele weitere Windows Store Apps!
  • Schnellere Updates für Windows, Windows Phone, Visual Studio
    • Ja, die Updates kommen wirklich  viel schneller. Wir haben Windows 8.1, Visual Studio 2013 (es gab auch schon 4 Updates für Visual Studio 2012) und weitere Updates sind auf dem Weg .
  • C++11 und TypeScript
    • Ja, C++ ist wieder aktiv. C++11 brachte große neue Features. Und C++14 ist bereits auf dem Weg für einige weitere Updates. TypeScript erreichte am 5. Dezember 2013 das Beta-Stadium (Version 0.9.5). 0.9.5 ist schon kurz vor dem ersten Release.

Was erwarte ich von 2014?

Natürlich steht ausser Diskussion, dass die Cloud-Nutzung zunehmen wird, und es wird die Norm werden, Anwendungen für mobile Geräte zuerst zu erstellen – Mobile First. Aber in diesem Blog Artikel möchte ich einen Blick auf einige spezielle Microsoft Technologien machen.

C# 6

Mads Toergesen sprach bereits über die Zukunft von C#. Auf der Londoner Konferenz NDC wurden neue Features von C# vorgestellt. Mit Roslyn in der Zielgeraden, sollte es einfacher sein neue Sprachkonstrukte hinzuzufügen. Bei C# 6 scheint es aber nicht so weltbewegende Features wie Generics, LINQ oder async zu geben, aber viele kleinere, die sehr nützlich sein , wie z. B.

  • Primary Constructors
  • Readonly Auto Properties
  • Exception Filters
  • Static Type using Statements
  • Property Expressions
  • Method Expressions
  • Params für Enumerables
  • Monadic null checking
  • Constructor type Parameter inference
  • Inline declaraations für out params

Wann und was dann wirklich kommt ist noch nicht gesichert. Sicher ist aber dass es eine coole Weiterentwicklung bei C# gibt. Eine Liste der Erweiterungen mit Vergleichen wie Code mit C# 5 geschrieben wird ist im Blog-Post von DaminG beschrieben. Von Mads Torgersen selbst gibt es Informationen zu C# und Roslyn bei .NET Rocks.

M# , zwischen C++ und C#

Machen wir mit C# weiter. Aktuell gibt es auch Diskussionen über eine neue Programmiersprache (Codename M#), die auf C# basiert. M# liegt in der Funktionalität zwischen C++ und C#Programmierung mit Sicherheit und Produktivität ähnlich wie C# und Performance wie C++ . Joe Duffy hat einen Blog-Beitrag zu dieser neuen Sprache und deren Ziele. Einige Highlights:

  • Aggresively stack allocate objects, deterministically destruct…
  • Elements of C++ const (with safety), immutability, isolation
  • Async programming at scale
  • Type-safe system programming, easily carve out sub-arrays and sub-strings without allocating
  • Modern error model with fail-fast as the default prolicy, exceptions for rare dynamic failure, typed exceptions only when rich exceptions are needed

Midori -Projekt

Die Sprache M# wurde zusammen mit dem Betriebssystem Midori entwickelt. Gestartet wurde das Projekt von Microsoft Research. Seit einigen Jahren war es aber ruhig. Mary Jo Foley hat jetzt neue Informationen über Midori . Egal ob Teile von Midori in der nächsten Windows-System gefunden werden, oder Midori eine völlig andere Roadmap nimmt, es ist in jedem Fall interessant.

Microsoft “Mod”

Mary Jo schreibt auch über Microsoft Mod – Microsoft schützt das als Marke. Ob der Name in allen Sprachen gut klingt, bin ich mir nicht sicher. Mary erwähnt aber auch, “Microsoft schützt viele Marken, die dann aber nie kommerziell oder öffentlich verwendet werden”. Allerdings ist es interessant, was sich dahinter verbirgt, und es gibt bereits eine laufende Diskussion über Microsoft Office als Windows Store Apps . Natürlich ist Microsoft Office auch auf Windows-RT als Desktop-Anwendung verfügbar. OneNote gibt es aber bereits als Windows Store App. OneNote ist eine coole Windows Store app, bei mir oft im Einsatz. Jetzt hoffe ich auch auf andere Office Apps als Windows Store Apps.

Microsoft Project Siena

Ein Microsoft Windows Store App, die schon im Store ist, ist Microsoft Project Siena. Diese App ermöglicht die einfache Erstellung Windows Store Apps. Ist das das neue Visual Basic? Diese App zeigt was mit Windows Store Apps möglich ist. Demnächst werde ich eine echte App unter Verwendung von Daten die von der Menu Card App angeboten werden zu schreiben.

Windows Azure

Die eben genannten Menu Card App nutzt verschiedene Windows Azure Services: Mobile Services, SQL Azure, Storage, und der Source Code wird mit Visual Studio Online verwaltet. Im letzten Jahr wurden  viele neue Funktionen zu Windows Azure hinzugefügt. Ich erwarte neue Features in einem ähnlichen Tempo im Jahr 2014. Da warte ich besonders auf coole neue Features mit Mobile Services :-)

Build Windows

Mal sehen, was wir alles bei der Build 2014 in San Francisco zu sehen bekommen, das Announcement von Steve Guggenheimer erwähnt Neuigkeiten zu Windows, Windows Phone , Windows Azure , Windows Server , Visual Studio und vieles mehr :-)

Mit diesem Start in 2014

wünsche ich allen

A Happy New Year 2014!

Live long and prosper!

Christian

Bye, bye 2013

Picture Search App
2013 war ein interessantes Jahr. Gerade bin ich bei den letzten Korrekturen für ein Buch-Update:  Professional C#-5 and .NET 4.5.1 (Wrox Press). Diese Ausgabe enthält Updates für die Windows Runtime 2 (Windows Store Apps mit Windows 8.1), Entity Framework 6, ASP.NET Web API 2 und mehr.
Was waren meine anderen wichtigen Aktivitäten im Jahr 2013? Dieser Blog Entry ist über Konferenzen, Workshops, Windows Store apps, und mehr :-)
Konferenzen: nach einigen Jahren hatte ich wieder einen Vortrag auf der TechEd – gleich in New Orleans und in Madrid – Tiles, Toasts and Notifications with Windows Store apps. Andere Konferenzen bei denen ich dabei war: Basta! in Darmstadt und Mainz, Microsoft Big Day und der Advanced Developers Conference in Wien, mit Talks über C# Async, Windows Store Apps, WPF 4.5, Entity Framework 6…
Workshops und Coaching gab es vor allem zu den Themen C#, WPF, ASP.NET MVC, Entity Framework, parallele Programmierung, HTML5, Web API, Windows Azure und Windows Store Apps.
Ich habe einige neue Apps im Windows Store. Meine erste Windows Store app gibt es seit dem Jahr 2012: Kantine. Diese App zeigt die Menüs und Informationen über das Restaurant www.kantine.at in Wien. Momentan ist diese App nur in Österreich erhältlich, aber im Jahr 2014 auch geplant für andere Märkte. Touristen können weitere Informationen über das Restaurant auch interessiert sein.
Eine komplette neue App ist die Menu Card App. Diese App – derzeit in Österreich, Deutschland und der Schweiz, hilft Restaurants ihre Menükarten erstellen. Die Daten können dann über ein JSON Service direkt mit einer Website integriert werden. Die Kantine App die momentan einen JSON Feed der eigenen Website http://www.kantine.at nutzt, wird in der nächsten Version direkt auf die JSON Daten der Menu Card App zugreifen.
Menu Card App

Menu Card App

Picture Search ist eine App mit der man nicht nur nach Bildern über Bing suchen kann, gefundene Bilder können auch im Full-Screen Mode endlos präsentiert werden (auch mit PlayTo auf die X-Box). Das geht jetzt mit einem Update der App für Windows 8.1. Diese App ist weltweit verfügbar. Da mehr und mehr User mit dieser App nach Bildern suchen hoffe ich die Kosten für die Bing-Suche durch Werbung abzudecken, bzw auch User auf die kostenpflichtige Version dieser APP umstellen. Mal sehen… Mit den Anzeige von Werbung habe ich auf jeden Fall mal festgestellt dass die meisten User die AppBar noch immer nicht finden. Diese Kenntnis hat den neuesten Update der Benutzeroberfläche beeinflusst, jetzt sollte auch die Slide Show für alle zu finden sein.
Picture Search App

Picture Search App

Hardware: Momentan habe ich ein Surface 2 und Surface Pro im Einsatz. Surface 2 hat mein Surface RT ersetzt. Dieses Device verwende ich in der Regel ohne Keyboard, nur mit dem Touch Screen (obwohl ein Touch-Cover dabei ist, das verwende ich aber hauptsächlich statt einer Hülle). Mein Surface Pro ist in der Regel an mehrere Monitore, externe Tastatur und Maus angeschlossen. Mehrere Bildschirme verwende ich auch im Hotel. Im Hotel ist nur die Größe des externen Monitors kleiner. Auf dem Surface Pro läuft Visual Studio 2013, da entwickle ich alle möglichen Apps. 2014 steht aber ein Surface Pro 2 an. Da muss ich noch auf die 8 GB Edition warten, die ist in Österreich noch nicht verfügbar.
Der nächste Blog Artikel ist dann mein Preview für 2014 – wir sehen uns da :-)
Christian

Tile Sizes mit Windows Store Apps

Tiles im Square oder Wide Format, dann auch unterschiedliche Skalierungen, Splash Screens… Für alles sind unterschiedliche Größen der Images erforderlich.

Eine Seite mit Aufstellung aller Größen könnte helfen. Aber diese hier http://msdn.microsoft.com/en-us/library/windows/apps/Hh781198.aspx ist z.B. nicht komplett. Visual Studio hilft da sehr mit dem Package Manifest Editor. Der Editor zeigt alle Tile-Sizes die verwendet werden können. Die meisten Designer haben aber kein Visual Studio ;-)
Somit meine Aufstellung hier:

Description Scale 180 Scale 140 Scale 100 Scale 80
Square 70×70 126 x 126 98 x 98 70 x 70 56 x 56
Square 150×150 270 x 270 210 x 210 150 x 150 120 x 120
Wide 310×150 558 x 270 434 x 210 310 x 150 248 x 120
Wide 310×310 558 x 558 434 x 434 310 x 310 248 x 248
Splash Screen 1116 x 540 868 x 420 620 x 300 n.a.
Square 30×30 54 x 54 42 x 42 30 x 30 24 x 24
Store Logo 90 x 90 70 x 70 50 x 50 n.a.
Badge Logo 43 x 43 33 x 33 24 x 24 n.a.

Im Windows App Store können auch promotional Images angezeigt werden. Die Größen dafür:

Description Grösse 1 Grösse 2 Grösse 3 Grösse 4
Promotional Image 846 x 468 558 x 756 414 x 468 414 x 180

Das könnte jetzt helfen.

Christian

Visual Studio 2013 und .NET 4.5.1

Dienstag, 3. Dezember gibt es die nächste .NET User Group Austria:

Visual Studio 2013 und .NET 4.5.1 sind released – da gibt es einiges Neues! Christian zeigt neue Features zu Visual Studio 2013, Windows Store Apps für Windows 8.1, One ASP.NET, und das Entity Framework 6!

 

Location: Microsoft Austria

Treffpunkt: 17:30

Start: 18:00

Anmeldung: über Facebook oder XING oder einfach ein Email schicken!

Put your hands in the air – Leap Motion Controller

Dienstag, 3.9.2013 gibt es bei der .NET User Group Austria

Leap Motion Controller in Action mit C#

mit Christoph Wille

Put Your Hands Up In The Air – Hände weg von der Maus und dem Monitor, es gilt Air Space statt Touch. Christoph zeigt den Leap Motion Controller in Aktion mit diversen Apps, und dann geht es ins SDK und die Implementierung von C# Code der auf den Controller zugreift.

Treffpunkt: 17:30
Start des Vortrags: 18:00
Nach dem Vortrag Diskussionsrunde mit Verpflegung

Location: Global Knowledge, Wien

 

Anmeldung per Email oder

https://www.facebook.com/events/144938379050496/

 

Christian

Showing Progress, Changing State

In Windows Store Apps verwende ich oft Services – bei denen es (auch unter Windows Azure) etwas dauern kann bis eine Antwort da ist. Mit der ProgressBar und dem ProgressRing kann diese Dauer für den User einfach dargestellt werden. Oft habe ich aber im User Interface nicht nur einen State für “in-progress”, sondern oft auch andere States wie “EditMode” und “ReadMode”. Solche States einfach zu wechseln geht mit Hilfe der VisualStateManager Klasse. In diesem Blog-Artikel zeige ich ein paar Hilfsmittel dafür.

Image © Petr Balik
Dreamstime.com

Zuerst die ProgressBar. Dieses Element ist aber nicht sichtbar eingestellt. Sichtbar wird die ProgressBar erst mit einem Statewechsel.

<ProgressBar x:Name="progressBar" IsIndeterminate="True" Visibility="Collapsed" HorizontalAlignment="Stretch" />

Um den State-Wechsel vom Progress-Mode zurück nicht zu vergessen, und auch mich bei den Namen der States nicht zu vertippen habe ich mir eine Hilfsklasse geschrieben – VisualStateModeChanger. In der Page selbst definiere ich eine Enumeration der Page-States, z.B.

private enum PageMode
{
  NormalMode,
  SelectionMode,
  EditMode,
  ProgressMode,
  SelectionProgressMode
}

Im Konstruktor der Page-Klasse erzeuge ich eine Instanz vom VisualStateModeChanger der mit der Enumeration und der Page Instanz erzeugt wird:

this.pageModeChanger = new VisualStateModeChanger<PageMode>(this);

Im Event Handler kann ich jetzt einfach den State wechseln. Der VisualStateModeChanger startet hier mit dem ProgressMode und stellt nach dem Aufruf des Service-Calls mit Aufruf der Dispose Methode auf den NormalMode um:

using (this.pageModeChanger.GotoStateFromTo(PageMode.ProgressMode, PageMode.NormalMode))
{
  // make the async call to the service...
}

Ganz einfach. Jetzt brauchen wir noch noch die Implementierung vom VisualStateModeChanger. GoToState wechselt direkt in einen anderen State, GoToStateFromTo startet mit dem fromState und wechselt mit disposing in den toState.

public class VisualStateModeChanger<T>
  where T : struct
{
  private Control control;
  private T currentMode;

  public VisualStateModeChanger(Control control)
  {
    this.control = control;
  }
  public void GotoState(T newState)
  {
    VisualStateManager.GoToState(control, Enum.GetName(typeof(T), newState), useTransitions: true);
    currentMode = newState;
  }

  public IDisposable GotoStateFromTo(T fromState, T toState)
  {
    VisualStateManager.GoToState(control, Enum.GetName(typeof(T), fromState), useTransitions: true);
    return new VisualStateDisposer<T>(control, toState);
  }

  public T CurrentMode
  {
    get
    {
      return currentMode;
    }
  }

  private class VisualStateDisposer<T1> : IDisposable
    where T1 : struct
  {
    private Control control;
    private T1 endState;
    public VisualStateDisposer(Control control, T1 endState)
    {
      this.control = control;
      this.endState = endState;
    }
    public void Dispose()
    {
      VisualStateManager.GoToState(control, Enum.GetName(typeof(T1), endState), useTransitions: true);
    }
  }
}

Jetzt muß nur noch im XAML definiert werden was beim State-Wechsel passiert. In diesem Beispiel wird beim Wechsel in den ProgressMode die progressBar auf Visible umgestellt.

<VisualStateManager.VisualStateGroups>
  <VisualStateGroup x:Name="CustomStates">
    <VisualState x:Name="ProgressMode">
      <Storyboard>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="progressBar">
          <DiscreteObjectKeyFrame KeyTime="0">
            <DiscreteObjectKeyFrame.Value>
              <Visibility>Visible</Visibility>
            </DiscreteObjectKeyFrame.Value>
          </DiscreteObjectKeyFrame>
        </ObjectAnimationUsingKeyFrames>
      </Storyboard>
    </VisualState>

Was bei den State-Wechsel passiert, dafür kann Blend zu Hilfe genommen werden – und Animationen bei den Statewechsel definiert.

Christian

CN innovation

Weitere Infos zu Windows Store Apps in meinen Workshops und im Buch Professional C# 2012.

Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.