Pages

Friday, August 31, 2012

Windows Phone 8 inside VMWare

    More than a month ago some Microsoft guy in Asia made a terrible mistake and the LKG25 of Windows Phone 8 SDK leaked to the web. As I am not one of the lucky people that are the development program (as Mary Jo Foley suspected in a tweet and I believe it is true) I was more than happy when I got my hands onto the leaked version. At start I wanted to start blogging about the news that Windows Phone 8 will bring, but then I decided that it wouldn't be fair so I will wait until the official SDK. This post is not intended as a spoiler of any feature from WP8, but more like a proof of concept.
    I am sure many of you read on twitter that the new emulator is a virtual x86 machine and it comes with the virtual hard drive (.vhd file) divided on the screen resolutions.
    The idea came to me today while I was installing a clean virtual machine for development. Till now developing in a virtual machine for Windows Phone and debugging on the emulator with a decent speed/quality was impossible as you would have a virtual machines inside a virtual machine that degrades the performance exponentially. So what if you could have the development environment inside a virtual machine and then the emulator on another virtual machine that runs side by side and communicate on TCP/IP. In this case the performance of the emulator would be good (as it is not a vm inside a vm) and also the speed of the development environment would be acceptable. The virtual machine for the emulator would need 512MB or a maximum of 1GB.
     So the first thing I did is to install a trial version of VMWare Workstation 9 (should work with VMWare Fusion and also Parallels/VirtualBox). Then I have used WinIMAGE to convert the Flash.vhd file to Flash.vmdk which is the format that VMWare uses and created a virtual machine where I've attached the newly created vmdk.


     The good news is that the virtual machine works in VMWare right from the start. Not everything works (more decent is to say that some things work :) ) but hey it runs and I did nothing. The networking is not working but the most annoying part is the mouse pointer which is invisible in the virtual machine so I am blind pressing the mouse and at some point I am able to hit some buttons as you can see in the video :



More important than what this video shows (which is almost nothing) is what it could mean (even if I doubt we will see any of these in the near feature)


  • Theoretically developing for Windows Phone 8 on Windows 7 should be possible and not so hard to achieve (the partition where I installed Vmware Workstation runs Windows 7)

  • With some collaboration between Microsoft and VMWare/Parallels it would be possible to develop on a virtual machine and debug/deploy on the emulator which is another virtual machine. This would be great for Mac users but also for everyone (I might say like me) that likes to keep his development environments clean and separated from each other (I have a VM with VS2008 and Compact Framework, soon VS2010 will pass in a virtual machine too, I don't want to install VS2010 on my Windows 8 partition etc.)


  • The emulator is an x86 virtual machine so it shouldn't be so hard to achieve plug-gable hardware into the emulator (like connect the webcam to the emulator camera, storage card to an USB key or shared folder, NFC hardware - here I might be mistaking but should be a serial connection after all). It would give us a better development environment.

P.S. Seeing that it is a virtual machine I beg the team which is in charge of the emulator to SAVE the emulator/virtual machine state between resets. It is really annoying to always start from 0 and none of the other major mobile platforms has this limitation.


Till next time NAMASTE to you my reader.

Wednesday, August 29, 2012

Getting started with building apps for SharePoint 2013

In SharePoint 2013 everything is an app now … but in strict sense apps are a new way to build and deliver self-contained pieces of functionality that extend the capabilities of a SharePoint site. Apps will be installable by site owners from either the SharePoint Store or from a private App catalog which is setup within your SharePoint 2013 environment.

The SharePoint Store (or marketplace) will be a public App Store which will allow you to publish your Apps world-wide and sell them through this new channel.

So how do you get started:

Other links which might be of interest:

Παρουσιαστηκαν τα πρωτα Windows Phone 8 απο την Samsung


Πριν απο λιγο με ενα δελτιο τυπου στη IFA 2012 η Samsung εδωσε στην δημοσιοτητα επισημα τα πρωτα στοιχεια για τα επερχομενα Windows Phone τηλεφωνα της αλλα και και τις ταμπλετες και τα φορητα που θα τρεχουν Windows 8 . Το ονομα των συσκευων αυτων θα ειναι ATIV SMART PC, ATIV Smart PC Pro, ATIV Tab, and ATIV S


Το Samsung ATIV S ειναι το νεο smartphone που θα τρεχει Windows Phone 8.. 
Με επεξεργαστη 1.5GHz dual-core και οθονη 4.8” HD Super AMOLED
ATIV Tab, Η ταμπλετα της εταιριας που θα τρεχει το νεο λειτουργικο της Miacrosoft τα Windows 8 

Monday, August 27, 2012

Presenting MSDN Webcast –SharePoint 2013: to app or not to app? on September 4th

I will be presenting a MSDN Belux Webcast on Tuesday , September 04, 2012 around the new App model in SharePoint Server 2013.

SharePoint 2013: to app or not to app?

SharePoint 2013 introduces a new mechanism for custom code solutions with the new App model. In this session, we'll examine why SharePoint Apps have been introduced and how it compares with the standard solution deployment model, the different architecture models and which technologies are used in the App model. We will also look in to the enhancements in the Client Side Object Model and the new REST API which will help you build SharePoint Apps. During this session the different scenarios are outlined using demos and after this session attendees will be ready to build Apps in SharePoint 2013.

Don’t forget to register for the MSDN Webcast – SharePoint 2013: to app or not to app? It is free.

Building a Windows Phone 7 client application for Office 365 and SharePoint Online

If you want to build a client application for SharePoint Online such as a Windows 8 Metro App or a Windows Phone 7 app you will need to understand how active authentication works in Office 365 – a great background article on this is How to do active authentication to Office 365 and SharePoint Online which has a code sample listed below the blog post. This code sample uses the Microsoft.IdentityModel.dll which is part of Windows Identity Foundation and which you can normally find underneath - <drive>:\Program Files\Reference Assemblies\Microsoft\Windows Identity Foundation\v3.5\Microsoft.IdentityModel.dll

But since there is no version of Windows Identify Foundation available for the Windows Phone platform so you will need to  create the SAML sign-in request programmatically if you want to build a Windows Phone 7 client for SharePoint Online. You can start by taking a look at the code sample Claims-SPOnline from Edin Kapic which does exactly that in a scenario with Windows 8. Unfortunately the code will become quite a lot more complex once you try to port it over to Windows Phone 7 since you can’t use the new async/await keywords which were introduced with .NET 4.5.

So if anyone has written a generic framework for authenticating against SharePoint Online from a Windows Phone 7.x – please leave a comment.

Sunday, August 26, 2012

Για οσους θελουν το wifi ανοιχτο οταν κλεινει η οθονη στο Windows Phone τους


Για οσους θελουν το wifi ανοιχτο οταν κλεινει η οθονη
Η εφαρμογη Keep Alive (απο τον jaxbot WindowsPhoneHacker ) ειναι στο Marketplace !!!!!!
Δεν ξερω πως περασε αλλα κατεβαστε την ολοι τωρα ....


Κατεβαστε την απο εδω
http://windowsphone.com/s?appid=cfabf92c-79ca-4015-a385-ef1a9edd085f

Quick workaround for Excel and PowerPoint 2010 startup problem after installing Visual Studio 2012

I recently installed Visual Studio 2012 Ultimate on my machine and now every time that I open Excel 2010 - I get a message "Please wait while Windows configures Microsoft Visual Studio Professional 2012..." and then I have to wait for 20 seconds…

The same thing happens with PowerPoint 2010. One of the workarounds seems to be to disable some of the COM add-ins which are added by Visual Studio 2012.

For Excel 2010:

  • Go to File > Options > Add-Ins.  Select COM Add-ins in the drop down on the bottom of the View and manage Microsoft Office Add-ins screen and click Go… Next you can uncheck the COM add-ins which seem to be causing problems
          • Team Foundation Add-in
          • Visual Studio Tools for Office Design-Time Adaptor for Excel
          • Load Test Report Add-in

For PowerPoint 2010:

  • Go to File > Options > Add-Ins. Select COM Add-ins in the drop down on the bottom of the View and manage Microsoft Office Add-ins screen and click Go… Next you can uncheck the COM add-ins which seem to be causing problems
          • Team Foundation Add-in

This seems to work for the moment – although the definite solution might be something else.

Tuesday, August 21, 2012

Building a Windows Phone 7 application integrated with SharePoint 2010 in authenticated scenarios

One of the hurdles you will be facing when building a Windows Phone 7 application which needs to integrate with SharePoint Server 2010 is the fact that WP7 does not support NTLM windows authentication. There are currently two different options:

For more information check out Security with SharePoint and Windows Phone Applications which is part of the SharePoint 2010 and Windows Phone 7 Training kit.

These are the two official ways of doing it  but I recently found a third option where you can access your SharePoint site from Windows Phone 7 using basic authentication as outlined on Darrin Bishop’s blog.

Thursday, August 16, 2012

Login for Visual Studio 2010 Team Explorer on tfs.codeplex.com

If you need to login to tfs.codeplex.com from Visual Studio you will need to use the following user name  - SND\myusername_cp as login. The domain is SND and you need to add extra _cp to the end of the user name that you use to normally login to www.codeplex.com

Tags van Technorati: ,,

Tuesday, August 7, 2012

Windows 8 - Πρωτες εντυπωσεις μετα απο 1 μηνα !!!


Σημερα θα ασχοληθω με την εκδοση των Windows 8 οχι για τηλεφωνα αλλα για υπολογιστες και tablets. Αν αναρωτιεσται γιατι ασχολουμαι ριξτε μια ματια στην εικονα απο πανω!!! Ειναι ιδιο με το περιβαλλον των Windows Phone !!
Την προηγουμενη ενδομαδα  η Microsoft ανακοινωσε την διαθεση του λειτουργικου στους κατασκευαστες και την επισημη διαθεση του στο κοινο στις 26 Οκτ. Δυο μερες μετα "διερευσαν" στο διαδυκτιο οι διαφορες εκδοσεις του λειτουργικου...


Απο τις πρωτες μερες κυκλοφοριας της εκδοσης RP χρησιμοποιω σαν κυριο λειτουργικο την νεα εκδοση των Windows 8. Οπως και τις προηγουμενες φορες η εγκατασταση εγινε σε νεο δισκο και αφου εβαλα και τις εφαρμογες  που "τρεχω" καθημερινα σταματησα να μπαινω σε windows 7 και δουλευω ολη μερα με την νεα εκδοση.
Η εγκατασταση ηταν πιο γρηγορη απο τις προηγουμενες εκδοσεις και ω του θαυματος οταν τελειωσε ειχε αναγνωρισει ολες τις συσκευες σωστα και ολα δουλευαν μια χαρα (αυτο ειναι κατι που αρχισε με την εκδοση 7 και απο οτι φαινεται συνεχιζεται)
Οι εφαρμογες που χρησιμοποιω καθημερινα ειναι το Office (εγκατεστησα την εκδοση 10) το Skype το TeamViewer ο Chrome και ο Firefox καθως και καποια βοηθητικα. Κατ αρχην να πω οτι δεν βρηκα καποιο προγραμμα που να μου παραπονεθει η να μην δουλευει.

Η εκκινηση του υπολογιστη ειναι απιστευτα γρηγορη σε σχεση με προηγουμενες εκδοσεις των Windows ..τολμω να πω οτι ειναι πιο γρηγορη ακομη και απο Ubuntu και MacOS ... η δε ταχυτητα με την οποια εκτελουνται καθημερινες εργασιες ειναι πολυ καλυτερη απο τα Windows 7.
(εχω εγκατεστημενα και τα τρια λειτουργικα στον ιδιο υπολογιστη και οι συγκρισεις ειναι ευκολες)

Το λειτουργικο ξεκιναει με το νεο interface που ειναι πανομοιοτυπο με τα Windows Phones. Σαν πρωτη εντυπωση θα φανει πολυ οικειο σε χρηστες WP αλλα και περιεργο σε αλλους που το βλεπουν για πρωτη φορα. Υπαρχει βεβαια η δυνατοτητα να αλλαξουμε και εχουμε την γνωστη απο προηγουμες εκδοσεις Επιφανεια εργασιας ..


Το νεο περιβαλον εργασιας ειναι φτιαγμενο για συσκευες με οθονες αφης. (tablets κλπ). Οταν το φθινοπωρο κυκλοφορησουν αυτες οι συσκευες τοτε θα ειναι και ευκολη η χρηση του. Με το ποντικι γινεται διαχειριση αλλα δεν ειναι σωστη και "φυσικη". Η οθονη σε "προτρεπει" να απλωσεις το δαχτυλο για να δουλεψεις ...


Aν και αρκετοι χρηστες εχουν εκφρασει επιφιλαξεις για το νεο interface η αποψη μου ειναι οτι ειναι αλλη μια πρωτοπορια της MS και μια κινηση για την ενοποίηση των λειτουργικων σε ολες τις συσκευες που χρησιμοποιουμε καθημερινα. Υπολογιστες ταμπλετες και τηλεφωνα θα ειναι ολα με το ιδιο λειτουργικο και θα εχουν το ιδιο interface και τροπο λειτουργιας. Αυτο ειναι πολυ σημαντικο για τον μεσο χρηστη που δεν θα χρειαζεται να μαθει πως λειτουργει το καινουργιο του τηλεφωνο η νεα του ταμπλετα.

Οι πρωτες εντυπωσεις μετα απο ενα μηνα χρησης του νεου λειτουργικου ειναι πολυ καλες.
Ταχυτατο (στην εκκινηση στην λειτουργια και στο κλεισιμο), σταθεροτατο (αν και beta) και μαζι με την επιφανεια εργασιας και ενα νεο διαφορετικο περιβαλον χρησης...!!!

Θα ηθελα να ακουσω και δικες σας αποψεις αν εχετε κανει την πρωτη επαφη σας με το λειτουργικο.


Friday, August 3, 2012

Wallpapers για Windows Phone




Θα αρχισω να ανεβαζω εδω καποια απο τα wallpapers που κατα καιρους φτιαχνω για προσωπικη χρηση
Οι αρχικες εικονες ειναι εικονες που εχω παρει απο το web και δεν ειναι φτιαγμενες απο μενα .. Εγω εκανα την επεξεργασια και την προσαρμογή για να ειναι καταληλες για wallpapers σε Windows Phone.













Θα ακολουθησει συντομα και δευτερη σειρα απο wallpapers ...

Wednesday, August 1, 2012

Windows Phone Tasks - Launchers and Choosers

 

In this part we are going to discussed about the Windows Phone Tasks - Launchers and Choosers.

image

Windows Phone tasks API allows you to invoke native tasks (phone’s applications) form your application using managed API, such as PhoneCallTask, EmailComposeTask, SmsComposeTask and MarketplaceSearchTask and so on.

Launchers and Choosers are straightforward to associate with your application.

See the following code snippet for Launchers

  1:  private void btnEmailComposeTask_Click(object sender, RoutedEventArgs e)
  2:         {
  3:             EmailComposeTask oEct = new EmailComposeTask();
  4:             oEct.To = "pavan.pareta@gmail.com";
  5:             oEct.Show();
  6:         }
  7: 
  8:         private void btnMarketplaceDetailTask_Click(object sender, RoutedEventArgs e)
  9:         {
 10:             MarketplaceDetailTask oMdt = new MarketplaceDetailTask();
 11:             oMdt.ContentType = MarketplaceContentType.Applications;
 12:             oMdt.ContentIdentifier = "1fa6b3b1-11f0-4265-ab3d-ac70df5edabc";
 13:             oMdt.Show();
 14:         }
 15: 
 16:         private void btnMarketplaceHubTask_Click(object sender, RoutedEventArgs e)
 17:         {
 18:             MarketplaceHubTask oMht = new MarketplaceHubTask();
 19:             oMht.ContentType = MarketplaceContentType.Music;
 20:             oMht.Show();
 21:         }
 22: 
 23:         private void btnMarketplaceReviewTask_Click(object sender, RoutedEventArgs e)
 24:         {
 25:             MarketplaceReviewTask oMrt = new MarketplaceReviewTask();
 26:             oMrt.Show();
 27:         }
 28: 
 29:         private void btnMarketplaceSearchTask_Click(object sender, RoutedEventArgs e)
 30:         {
 31:             MarketplaceSearchTask oMst = new MarketplaceSearchTask();
 32:             oMst.ContentType = MarketplaceContentType.Applications;
 33:             oMst.SearchTerms = "Games";
 34:             oMst.Show();
 35:         }
 36: 
 37:         private void btnMediaPlayerLauncher_Click(object sender, RoutedEventArgs e)
 38:         {
 39:             MediaPlayerLauncher oMpl = new MediaPlayerLauncher();
 40:             oMpl.Controls = MediaPlaybackControls.All;
 41:             oMpl.Media = new Uri("http://ecn.channel9.msdn.com/o9/ch9/1be6/d5819645-cf1e-4542-bb9d-9e10015a1be6/day01part1_ch9.wmv");
 42:             oMpl.Show();
 43:         }
 44: 
 45:         private void btnPhoneCallTask_Click(object sender, RoutedEventArgs e)
 46:         {
 47:             PhoneCallTask oPct = new PhoneCallTask();
 48:             oPct.PhoneNumber = "1234567890";
 49:             oPct.Show();
 50:         }
 51: 
 52:         private void btnSearchTask_Click(object sender, RoutedEventArgs e)
 53:         {
 54:             SearchTask oSt = new SearchTask();
 55:             oSt.SearchQuery = "Game";
 56:             oSt.Show();
 57:         }
 58: 
 59:         private void btnSmsComposeTask_Click(object sender, RoutedEventArgs e)
 60:         {
 61:             SmsComposeTask oSct = new SmsComposeTask();
 62:             oSct.To = "12345";
 63:             oSct.Body = "Hi! This Windows Phone";
 64:             oSct.Show();
 65:         }
 66: 
 67:         private void btnWebBrowserTask_Click(object sender, RoutedEventArgs e)
 68:         {
 69:             WebBrowserTask oWbt = new WebBrowserTask();
 70:             oWbt.Uri = new Uri("http://www.http://windows-mobile-dev.blogspot.in/");
 71:             oWbt.Show();
 72:         }


Code snippet for.Choosers

  1: private void btnCameraCaptureTask_Click(object sender, RoutedEventArgs e)
  2:         {
  3:             CameraCaptureTask oCct = new CameraCaptureTask();
  4:             oCct.Completed += (s, evnt) =>
  5:             {
  6:                 if (evnt.Error == null && evnt.TaskResult == TaskResult.OK)
  7:                 {
  8:                     BitmapImage bmpImage = new BitmapImage();
  9:                     bmpImage.SetSource(evnt.ChosenPhoto);
 10:                     ImageBrush imb = new ImageBrush();
 11:                     imb.ImageSource = bmpImage;
 12:                     LayoutRoot.Background = imb;
 13:                 }
 14:             };
 15:             oCct.Show();
 16:         }
 17: 
 18:         private void btnEmailId_Click(object sender, RoutedEventArgs e)
 19:         {
 20:             EmailAddressChooserTask oEact = new EmailAddressChooserTask();
 21:             oEact.Completed += (s, evnt) =>
 22:                 {
 23:                     if (evnt.Error == null && evnt.TaskResult == TaskResult.OK)
 24:                     {
 25:                         MessageBox.Show("Name:" + evnt.DisplayName + "\nEmail Id:" + evnt.Email);
 26:                     }
 27: 
 28:                 };
 29:             oEact.Show();
 30:         }
 31: 
 32:         private void btnPhoneNumberChooserTask_Click(object sender, RoutedEventArgs e)
 33:         {
 34:             PhoneNumberChooserTask oPnct = new PhoneNumberChooserTask();
 35:             oPnct.Completed += (s, evnt) =>
 36:             {
 37:                 if (evnt.Error == null && evnt.TaskResult == TaskResult.OK)
 38:                 {
 39:                     MessageBox.Show("Name:" + evnt.DisplayName + "\nPhone Number:" + evnt.PhoneNumber);
 40:                 }
 41: 
 42:             };
 43:             oPnct.Show();
 44:         }
 45: 
 46:         private void btnPhotoChooserTask_Click(object sender, RoutedEventArgs e)
 47:         {
 48:             PhotoChooserTask oPct = new PhotoChooserTask();
 49:             oPct.Completed += (s, evnt) =>
 50:             {
 51:                 if (evnt.Error == null && evnt.TaskResult == TaskResult.OK)
 52:                 {
 53:                     BitmapImage bmpImage = new BitmapImage();
 54:                     bmpImage.SetSource(evnt.ChosenPhoto);
 55:                     ImageBrush imb = new ImageBrush();
 56:                     imb.ImageSource = bmpImage;
 57:                     LayoutRoot.Background = imb;
 58:                 }
 59:             };
 60:             oPct.Show();
 61:         }
 62: 
 63:         private void btnSaveEmailAddressTask_Click(object sender, RoutedEventArgs e)
 64:         {
 65:             SaveEmailAddressTask oSeat = new SaveEmailAddressTask();
 66:             oSeat.Completed += (s, evnt) =>
 67:             {
 68:                 if (evnt.Error == null && evnt.TaskResult == TaskResult.OK)
 69:                 {
 70:                     MessageBox.Show("TaskResult is:" + evnt.TaskResult);
 71:                 }
 72:             };
 73:             oSeat.Show();
 74:         }
 75: 
 76:         private void btnSavePhoneNumberTask_Click(object sender, RoutedEventArgs e)
 77:         {
 78:             SavePhoneNumberTask oSeat = new SavePhoneNumberTask();
 79:             oSeat.Completed += (s, evnt) =>
 80:             {
 81:                 if (evnt.Error == null && evnt.TaskResult == TaskResult.OK)
 82:                 {
 83:                     MessageBox.Show("TaskResult is:" + evnt.TaskResult);
 84:                 }
 85:             };
 86:             oSeat.Show();
 87:         }

 


Download source code here


Happy CodingThumbs up