What’s New in Windows Phone 8 : A SmartPhone for Smarter People


Windows Phone 8 comes with some of the latest features like fast-fluid Internet Explorer , exciting Live Tiles for Peoples, Contacts hub with Cloud Connected Skydrive , NFC (Near Field Communications) for sharing data between two smart phones, enhanced Nokia & Bing Maps.

Lets connect about new features of Windows Phone 8

Demonstrate Bing Finance Dashboard on Windows 8 Metro Business App with Interactive Charts, Dynamic Gauges Along with Active SplashScreens


Windows 8 Metro Business apps are strongly B2C (Business to Consumer) focused apps which targets mainly Financial, Airline, HealthCare, Retail Enterprise apps. These apps have a strong customer focus along with a considerable amount of tight coupling of business models, view models , enterprise scalability. The Windows Store is targeting more & more on levearging this Business Enterprise apps which has ethical Proof-of Concepts along with all enterprise feasibility.

Lets start to demonstrate to implement Bing Financial App model Dashboard which targets Windows Store of Business apps.

  • To implement the screen, definitely its needed to adopt controls like Charts , Gauges for Windows 8 Metro XAML from Third Party Providers. So , lets first concentrate in order to  build the Live Bing Finance data model.
  • The Data model is named as StockDataProvider which provides live stock markets updates.

using  System;

using  System.Collections.Generic;

using  System.Collections.ObjectModel;

using  System.Linq;

using  System.Text;

using  System.Threading.Tasks;

namespace  Finance.Data

{

public  class  StockDataSource : Finance.Common.BindableBase

{

public StockDataSource()

{

LoadSampleData();

}

private  ObservableCollection<StockSymbol> _symbols = newObservableCollection<StockSymbol>();

public  ObservableCollection<StockSymbol> Symbols

{

get { return  this._symbols; }

}

private  StockSymbol _selectedSymbol;

public  StockSymbol SelectedSymbol

{

get { return  this._selectedSymbol; }

set { this.SetProperty(ref this._selectedSymbol, value); }

}

private  string[] symbols = new string[] { “MSFT”, “DOW”, “AAPL”, “NASDAQ”,“GOOG”,“YHOO” };

privatestring[] names = new  string[] { “Microsoft”, “Dow Jones”, “Apple”, “NASDAQ”,“Google”,“YAHOO” };

private  constint NUMPOINTS = 2555;

private  DateTime date;

private  void LoadSampleData()

{

Random rnd = newRandom();

_symbols.Clear();

for (int i = 0; i < symbols.Length; i++)

{

StockSymbol ss1 = newStockSymbol();

ss1.Name = names[i];

ss1.Symbol = symbols[i];

ss1.Change = rnd.Next(500, 1500) + rnd.NextDouble();

ss1.ChangePercent = rnd.NextDouble();

ss1.Open = rnd.Next(100, 500);

   if (rnd.Next(10) % 2 == 0)

{

ss1.Change = 0 – ss1.Change;

ss1.ChangePercent = 0 – ss1.Change;

ss1.Close = rnd.Next(100, ( int)ss1.Open);

}

else

{

ss1.Close = rnd.Next((int)ss1.Open, 500);

}

ss1.Date = DateTime.Now;

int previous = rnd.Next(50, 100);

date = newDateTime(DateTime.Now.Subtract(newTimeSpan(NUMPOINTS / 7, NUMPOINTS % 7, 0, 0)).Ticks);

for (int j = 0; j < NUMPOINTS; j++)

{

var value = rnd.Next(previous – 5, previous + 6);

StockHistoricalData  shd = newStockHistoricalData();

shd.Volume = value;

shd.Date = date;

UpdateDate();

ss1.Items.Add(shd);

previous = value;

}

_symbols.Add(ss1);

}

}

private  void UpdateDate()

{

date = date.AddHours(1);

if (date.Hour > 16)

{

date = date.AddDays(1);

date = date.Subtract(newTimeSpan(7, 0, 0));

}

}

}

public  class  StockSymbol : Finance.Common.BindableBase

{

public StockSymbol()

{

}

private  string _name = string.Empty;

public   string Name

{

get { return  this._name; }

set { this.SetProperty(ref  this._name, value); }

}

private  string _symbol = string.Empty;

public  string Symbol

{

get { return  this._symbol; }

set { this.SetProperty(ref  this._symbol, value); }

}

private   double _change = double.NaN;

public  double Change

{

get { return   this._change; }

set { this.SetProperty(ref  this._change, value); }

}

public  double _changePercent = double.NaN;

public double ChangePercent

{

get { return this._changePercent; }

set { this.SetProperty(ref this._changePercent, value); }

}

private  float _open = float.NaN;

public  float Open

{

get { return  this._open; }

set { this.SetProperty(ref this._open, value); }

}

private float _close = float.NaN;

public float Close

{

get { return  this._close; }

set { this.SetProperty(ref this._close, value); }

}

private bool _isPositive = true;

public bool IsPositive

{

get { return  this._isPositive; }

set { this.SetProperty(ref this._isPositive, value); }

}

private  DateTime _date = DateTime.Now;

public  DateTime Date

{

get { return  this._date; }

set { this.SetProperty(ref  this._date, value); }

}

private  ObservableCollection<StockHistoricalData> _items = newObservableCollection<StockHistoricalData>();

public  ObservableCollection<StockHistoricalData> Items

{

get { return  this._items; }

}

}

public class  StockHistoricalData : Finance.Common.BindableBase

{

public StockHistoricalData()

{

}

private DateTime _date = DateTime.Now;

public DateTime Date

{

get { return this._date; }

set { this.SetProperty(ref this._date, value); }

}

private float _open = float.NaN;

public float Open

{

get { return this._open; }

set { this.SetProperty(ref this._open, value); }

}

private float _close = float.NaN;

public float Close

{

get { return this._close; }

set { this.SetProperty(ref this._close, value); }

}

private float _high = float.NaN;

public float High

{

get { return this._high; }

set { this.SetProperty(ref this._high, value); }

}

private float _low = float.NaN;

public float Low

{

get { return this._low; }

set { this.SetProperty(ref this._low, value); }

}

private float _volume = float.NaN;

public float Volume

{

get { return this._volume; }

set { this.SetProperty(refthis._volume, value); }

}

}

}

  • Lets decorate the MainPage.Xaml with Area Charts in order to display vertical Market updates.

<c1:C1Chart x:Name=”c1Chart1″ ChartType=”Area” Grid.Row=”3″ Margin=”0 10 0 40″>

<c1:C1Chart.Data>

<c1:ChartData ItemsSource=”{Binding SelectedSymbol.Items}”>

<c1:XYDataSeries ValueBinding=”{Binding Volume}” XValueBinding=”{Binding Date}” ConnectionFill=”LimeGreen” ConnectionStrokeThickness=”0″/>

</c1:ChartData>

</c1:C1Chart.Data>

</c1:C1Chart>

  • Render the Market updates according to Week, Month & Year basis which will display the updated stock info with current Dates & Time(Since Market Closing) with Charts along with Speedometers (Gauges).

  • The App has in built support of Search Contracts , so in order to search the app, open Windows Charm , Click Search & check the Bing Financial Dashboard App Live Tile.

 

  • The App has support of Interactive Logo to easily isolate in Windows Store as Live Stock updates app powered by Bing Finance API.

  • Search the Bing Finance App over all of the installed app on your Windows 8 box.

  • Active Splash Screen:  The app has excellent support of Live Splash Screen which helps to process the loading of the app with default Progress Ring along with Splash Image.

  • During loading , when you click on Bing Finance App Button , the default view of the app would be loaded.