Friday, April 19, 2013

Global Windows Azure Bootcamp

 
  Windows Azure enables you to quickly build, deploy and manage applications across a global network of Microsoft managed datacenters.

Join us for the Global Windows Azure Bootcamp! On April 27th, 2013 and explore capabilities of Windows Azure.
 
     
  Agenda highlights:  
     
 
  Windows Azure Overview
  Windows Azure IaaS: Technical Overview.
  Storage Options in Windows Azure.
  Deep Dive into Windows Azure Mobile Services.
  Windows Azure Big Data - HDInsight
  Building Hybrid Cloud Environment using Windows Azure & System Center
 
     
  Session details:  
     
 
Day & Time
Saturday, 27th April, 2013 9:30 AM - 5:30 PM
  Venue:
Dewang Mehta Auditorium,
Persistent Systems Ltd.
Bhageerath,
402, Senapati Bapat Road,
Pune, 411016, Maharashtra, India
     
 
     
  Click here to register for event and agenda details.  
if You are not from Pune and want to be part of this BootCamp then visit our global website to serach for your nearest location - https://globalwindowsazure.azurewebsites.net/
 

Friday, April 05, 2013

How to clear Page NavigationCache in Windows 8 Store App

Windows 8 Store App got a nice concept of Page navigation, it supports users to navigate from pages within App, somewhat similar how you navigate on any single website.

I am not going to explain how Page Navigation works in Windows 8 store App. you can check this article on MSDN to learn Page Navigations.

I am going explain one small trick or workaround which I used in my 2 Apps and it’s worked well for me.

I faced an issue in my app where I want to maintain NavigationCache  but based on some condition. like in my TechEd India 2013 App if value of City is changed then I want to reload data from service but if city value is same then I want to use data from Cache, and there was another scenario in my Gold store kiosk App where I found this workaround.

Scenario: In my App I have a Page named as “CategoryDetails”, in this page I list out all the products based on Category. User can select a category on main page which navigate him to this page and display all items in that category.  I used GridView to display all items. On click on Item user will get navigated to ItemDetails page. Also there is another feature which allow user to select multiple items and from bottom App Bar he can add them to wish list. Many times after selecting 2-3 items user click on some item to check details and then again come back. here. Main issue is I was not able to maintain the selection of the items if you navigate to ItemDetails page and then come back.

To maintain selection I decided to enable PageNavigationCache and it worked . But it results me in another problem, since i use this same page to load items from different categories. user can select category on Home page or from Top App bar and then page load items for that particular category.

Issue: when user go to Home/Main using top app bar and select different category and come again back to this “CategoryDetails” page to view items in that,  it fails to load those new items, by default it shows the old data as page get loaded from Cache, with debugger I checked it doesn’t hit Load state method where i have my code to load the Items collection based on Parameter value (category id).

Expected result is – when I select some items on CategoryDetails page and if I navigate to ItemDetails page and then navigate back then it should maintain the Selection of items, if I navigate to Home page and select different category and come on this page then I should have New items related to New category and it should not show mi old data.

After lots of try, errors and studying the exact process of page navigation and page loading by adding break points I came to know that In “LayoutAwarePage.cs” there is “_pageKey” which plays important role in navigation cache. I tried following code and it worked for me.

I added following small method to “LayoutAwarePage.cs”

protected void ClearNavigationCache()
{
this._pageKey = null;
}

And I added following code to CategoryDetails.xaml.cs page.

protected override void OnNavigatedT(Windows.UI.Xaml.Navigation.NavigationEventArgs e)
{
// If Navigation is not Back then this code clears the NvigationsCache
// and which force system to run the load state method for new data.

if (e.NavigationMode != NavigationMode.Back)
{
base.ClearNavigationCache();
}

base.OnNavigatedTo(e);
}




and last step is enable Cache mode on CategoryDetails.xaml page by adding following line at top of XAML page where we declare our namespaces on XAML page.

NavigationCacheMode="Enabled" 



Or you can also add it on CategoryDetails.xaml.cs inside Contractor of your page after you call InititializeComponent method.


public CategoryDetails()
{
this.InitializeComponent();

this.NavigationCacheMode =
Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
}


thats what I did and I got control on Page NavigationCache, now I can use data from cache or I can force my page to get new data.


similarly you can use it to clear navigation cache on any conditions. I used same trick in my TechEd India 2013 App. where I want to clear the page cache if SelectedCity of my App is changed.


protected override void OnNavigatedTo(Windows.UI.Xaml.Navigation.NavigationEventArgs e)
{
if (DefaultViewModel.Keys.Contains("SelectedCity"))
{
if (DefaultViewModel["SelectedCity"] != App.SelectedCity)
{
base.ClearNavigationCache();
}
}

base.OnNavigatedTo(e);

}



I am sure many of you must be facing similar issue so sharing this with you. use it and enjoy !!!


Please Note: this is workaround I found while working on my app. It worked for me But please note that I am not aware any other side effect of nullifying “_pageKey” property so use this on your own risk. if you come to know any issue please do share with me.

Wednesday, August 01, 2012

The procedure entry point _ Atomic_fetch_sub_4 could not be located in the dynamaic link library

 

I was facing this issue with my Visual Studio 2012 RC on my Windows 8 Machine from the day I installed Office 15, I thought VS got crashed and today I tried to fix it by reinstalling it but it didn’t worked then I found solution in a comment on ACS Blogs which worked for me, so sharing with you.

Following was the Error I got when I try to start my visual studio

“The procedure entry point _ Atomic_fetch_sub_4 could not be located in the dynamaic link library C:\Program Files(x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe”

VS-error

Why ?

As Dave Lubash mentioned on ACS Blogs, “The CRT that ships with Office 15 Beta has a breaking change that prevents Visual Studio RC from running.”

Fix:

Download and Install July 2012 Update for Microsoft Visual Studio 2012 RC from http://www.microsoft.com/en-us/download/details.aspx?id=30178

that’s All. it will start working again. thanks to Dave Lubash for sharing this suggestion on ACS Blogs.

Monday, April 16, 2012

Mouse without Borders–Excellent tool I ever seen

From last couple of months I always use to think how if I can use my two laptops just like as extended desktop? How if I can use one single mouse and use it on both screens? how if I can I can just drag and drop some file from one laptop/desktop to other? but I never thought that there could be some tool which can allow me to do this.

And today the dream came true, I got this excellent tool called as “Mouse without Borders”. The tool developed as part of Garage projects program in Microsoft. Initially this tool was available only for internal use but now its available publically.

I downloaded it and tested it on my two laptops, its Excellent!!! simply great that’s why I can say. Trust me this is one of the best tool I even came to know.

Monday, February 20, 2012

PUG I Love Windows Phone Contest



Express your love for Windows Phone and win cool exciting prizes.
Pune User Group is hosting a contest for all the enthusiasts who love Windows Phone. All you need to do is submit a simple video expressing your love for Windows Phone and you can win a Windows Phone device or free entry to Microsoft Tech-ed India.
Competition Guidelines :
Key dates of competition :

Competition open for Entries :   14th February 2012Competition closed for Entries : 29th February 2012Announcement of the winners : 10th March 2012