Just another side of me

My name is Veri, MSP from ITB. Enjoy my blog...
See also: Other Geeks@INDC

May 2010 - Posts

Download Visual Studio 2010 Web Deployment Projects RTW Available from Microsoft

A Visual Studio add-in released by Microsoft is designed to make it easier for developers to build websites and Cloud-based applications using the latest iteration of the development platform. Visual Studio 2010 Web Deployment Projects RTW went live on the Microsoft Download Center on May 24th, and is available free of charge. The add-in integrates seamlessly with all the editions of Visual Studio 2010, with the exception of Visual Studio 2010 Express. However, devs running the Professional, Premium or Ultimate SKUs of VS2010 will have no problems leveraging the extension for their projects.

“Visual Studio 2010 Web Deployment Projects provide additional functionality to build and deploy Web sites and Web applications in Visual Studio 2010. This add-in provides a comprehensive UI to manage build configurations, merging, and using pre-build and post-build tasks with MSBuild,” Microsoft stated.

According to the Redmond company, one of the selling points of Visual Studio 2010 Web Deployment Projects is that it ensures backward compatibility with previous releases of the add-in. In this regard, even if devs upgrade to the latest version of Visual Studio and the most recent release of the Web Deployment Projects, they will still be able to enjoy compatibility with Visual Studio 2008 Web Deployment Projects and Visual Studio 2005 Web Deployment Projects.

“Web Deployment Projects provides developers with advanced compilation options. A Web Deployment Project is an extensible msbuild script, enabling web developers to create pre-build and post-build actions,” the company added. “Web Deployment projects do not change the way Visual Studio 2010 Web Sites or Web Application Projects build. Instead, they take an existing Visual Studio Web project as input and generate a precompiled Web as an output. A Web Deployment Project does not change the files in the source Web site project in any way.”

Visual Studio 2010 Web Deployment Projects RTW is available for download here.

Visual Studio 2010 Premium is available for download here.
Visual Studio 2010 Professional is available for download here.
Visual Studio 2010 Ultimate is available for download here.
Visual Studio Test Professional 2010 is available for download here.

.NET Framework 4 RTM is available for download here.

 

Sumber: http://news.softpedia.com/news/Download-Visual-Studio-2010-Web-Deployment-Projects-RTW-142938.shtml

Share this post: | | | |
Clustering With Bing Maps Silverlight Control

Postingan saya kali ini masih berhubungan dengan postingan saya yang ini karena konsep yang digunakan masih sama yaitu mengambil koordinat dari database, lalu menampilkannya pada Bing Maps dalam bentuk Pushpin.

Apabila jumlah Pushpinnya sedikit, katakanlah kurang dari 10, tampilan pada map tidak akan banyak terganggu. Namun coba bayangkan apabila jumlah Pushpinnya sudah mencapain ratusan bahkan ribuan. Hal itu akan sangat mengganggu dan tulisan-tulisan pada map akan tidak terlihat lagi seperti pada contoh gambar dibawah.

image3%207D891E58

Gambar diatas terlihat sangat tidak enak dipandang bukan? Selain itu, akan dibutuhkan banyak waktu untuk mengquery semua Pushpin tersebut. Akan lebih enak jika kita hanya mnegquery Pushpin yang perlu saja kan? Nah, solusinya adalah dengan menggunakan metode clustering. Untuk teorinya, bisa di baca disini.

Oke, mari kita mulai mengkoding…

 

Pertama-tama, kita membutuhkan sebuah web service yang nantinya akan kita konsumsi. Kodenya seperti dibawah ini:

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Configuration;
   4:  using System.Data.SqlClient;
   5:  using System.Globalization;
   6:  using System.Linq;
   7:  using System.Runtime.Serialization;
   8:  using System.ServiceModel;
   9:  using System.ServiceModel.Activation;
  10:  using System.Threading;
  11:   
  12:  namespace BingMapsClustering.Web
  13:  {
  14:      [ServiceContract(Namespace = "ClusterService")]
  15:      [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
  16:      public class ClusterService
  17:      {
  18:          private const double MinLatitude = -85.05112878;
  19:          private const double MaxLatitude = 85.05112878;
  20:          private const double MinLongitude = -180;
  21:          private const double MaxLongitude = 180;
  22:   
  23:          private const int GridSize = 40;
  24:   
  25:          private static double Clip(double n, double minValue, double maxValue)
  26:          {
  27:              return Math.Min(Math.Max(n, minValue), maxValue);
  28:          }
  29:   
  30:          public static UInt32 Offset(int lvl)
  31:          {
  32:              return (uint)256 << lvl;
  33:          }
  34:   
  35:          public static void LatLongToPixel(double latitude, double longitude, int lvl, out int pixelX, out int pixelY)
  36:          {
  37:              latitude = Clip(latitude, MinLatitude, MaxLatitude);
  38:              longitude = Clip(longitude, MinLongitude, MaxLongitude);
  39:   
  40:              double x = (longitude + 180) / 360;
  41:              double sinLatitude = Math.Sin(latitude * Math.PI / 180);
  42:              double y = 0.5 - Math.Log((1 + sinLatitude) / (1 - sinLatitude)) / (4 * Math.PI);
  43:   
  44:              uint mapSize = Offset(lvl);
  45:              pixelX = (int)Clip(x * mapSize + 0.5, 0, mapSize - 1);
  46:              pixelY = (int)Clip(y * mapSize + 0.5, 0, mapSize - 1);
  47:          }
  48:   
  49:          [OperationContract]
  50:          public List<ClusterPoint> GetCluster(double NWlat, double NWlon, double SElat, double SElon, int lvl, int mapWidth, int mapHeight)
  51:          {
  52:              //mengeset kultur agar tidak ada masalah dengan angka desimal
  53:              Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-UK");
  54:   
  55:              int numXCells = (int)(Math.Ceiling((decimal)mapWidth / (decimal)GridSize));
  56:              int numYCells = (int)(Math.Ceiling((decimal)mapHeight / (decimal)GridSize));
  57:              int numCells = numXCells * numYCells - 1;
  58:              object[][] gridCells = new object[numCells + 1][];
  59:   
  60:              int ulTotalX;
  61:              int ulTotalY;
  62:              LatLongToPixel(NWlat, NWlon, lvl, out ulTotalX, out ulTotalY);
  63:   
  64:              int poiTotalX;
  65:              int poiTotalY;
  66:              int poiMapX;
  67:              int poiMapY;
  68:              //Connection String dibuat di dalam Web.config
  69:              ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings["Location"];
  70:   
  71:              SqlConnection myConn = new SqlConnection(settings.ConnectionString);
  72:              myConn.Open();
  73:              string myQuery = "Select Latitude, Longitude FROM Location WHERE (Latitude BETWEEN " + SElat.ToString() + " AND " + NWlat.ToString() + ")"
  74:                                + " AND (Longitude BETWEEN " + NWlon.ToString() + " AND " + SElon.ToString() + ")";
  75:              SqlCommand myCMD = new SqlCommand(myQuery, myConn);
  76:              SqlDataReader myReader = myCMD.ExecuteReader();
  77:              while (myReader.Read())
  78:              {
  79:                  LatLongToPixel((double)myReader[0], (double)myReader[1], lvl, out poiTotalX, out poiTotalY);
  80:                  poiMapX = poiTotalX - ulTotalX;
  81:                  poiMapY = poiTotalY - ulTotalY;
  82:   
  83:                  for (int x = 0; x <= (numXCells - 1); x++)
  84:                  {
  85:                      if ((x * GridSize <= poiMapX) && (poiMapX < (x + 1) * GridSize))
  86:                      {
  87:                          for (int y = 0; y <= (numYCells - 1); y++)
  88:                          {
  89:                              if ((y * GridSize <= poiMapY) && (poiMapY < (y + 1) * GridSize))
  90:                              {
  91:                                  object[] myClusteredPin = new object[3];
  92:                                  if (gridCells[x * y] == null)
  93:                                  {
  94:                                      myClusteredPin[0] = 1;
  95:                                      myClusteredPin[1] = myReader[0];
  96:                                      myClusteredPin[2] = myReader[1];
  97:                                  }
  98:                                  else
  99:                                  {
 100:                                      myClusteredPin = gridCells[x * y];
 101:                                      myClusteredPin[0] = (int)myClusteredPin[0] + 1;
 102:                                  }
 103:                                  gridCells[x * y] = myClusteredPin;
 104:                              }
 105:                          }
 106:                      }
 107:                  }
 108:              }
 109:              myReader.Close();
 110:              myConn.Close();
 111:   
 112:              List<ClusterPoint> myPins = new List<ClusterPoint>();
 113:              for (int i = 0; i <= numCells; i++)
 114:              {
 115:                  if (gridCellsIdea != null)
 116:                  {
 117:                      var myClusteredPin = gridCellsIdea;
 118:                      ClusterPoint myPin = new ClusterPoint((double)myClusteredPin[1], (double)myClusteredPin[2]);
 119:                      myPins.Add(myPin);
 120:                  }
 121:              }
 122:              return myPins;
 123:          }
 124:      }
 125:   
 126:      [DataContract]
 127:      public class ClusterPoint
 128:      {
 129:          [DataMember]
 130:          private double _Lat;
 131:   
 132:          public double Lat
 133:          {
 134:              get { return _Lat; }
 135:              set { _Lat = value; }
 136:          }
 137:   
 138:          [DataMember]
 139:          private double _Lon;
 140:   
 141:          public double Lon
 142:          {
 143:              get { return _Lon; }
 144:              set { _Lon = value; }
 145:          }
 146:   
 147:          public ClusterPoint(double _Lat, double _Lon)
 148:          {
 149:              Lat = _Lat;
 150:              Lon = _Lon;
 151:          }
 152:      }
 153:  }
.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Apabila Anda bingung dari mana saya bisa mendapatkan fungsi-fungsi kayak diatas, baca dulu referensi ini deh. Dijamin langsung ngerti. Hehehehe…

 

Nah, selanjutnya kita bakal mengkonsumsi web service tadi di sisi client. Untuk memanggil web service yang telah kita buat secara asynchronous, kita perlu menambahkan event ViewChangeEnd yang terdapat pada map.

   1:  public void myMap_ViewChangeEnd(object sender, Microsoft.Maps.MapControl.MapEventArgs e)
   2:          {
   3:              Map map = sender as Map;
   4:              LocationRect bounds = map.TargetBoundingRectangle;
   5:              ClusterServiceClient svc = new ClusterServiceClient();
   6:              svc.GetClusterCompleted += new EventHandler<GetClusterCompletedEventArgs>(svc_GetClusterCompleted);
   7:              svc.GetClusterAsync(bounds.Northwest.Latitude, bounds.Northwest.Longitude, bounds.Southeast.Latitude, bounds.Southeast.Longitude, (int)map.TargetZoomLevel, mapWidth, mapHeight);
   8:          }

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Setelah itu, baru kita menambahkan Pushpin ke dalam map.

   1:  public void svc_GetClusterCompleted(object sender, GetClusterCompletedEventArgs e)
   2:          {
   3:              if (e.Error == null)
   4:              {
   5:                  for (int i = 0; i <= (e.Result.Count - 1); i++)
   6:                  {
   7:                      Pushpin myPin = new Pushpin();
   8:                      myPin.Location = new Location(e.ResultIdea._Lat, e.ResultIdea._Lon);
   9:                      _pushpinLayer.Children.Add(myPin);
  10:                  }
  11:              }
  12:              else
  13:              {
  14:                  MessageBox.Show(e.Error.Message);
  15:              }
  16:          }

.csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

Hasilnya dapat dilihat pada gambar di bawah:

Untitled

Setelah di zoom in:

Untitled1

Setelah di zoom in lagi:

Untitled2

 

Source code program bisa didownload disini. Enjoy…

Share this post: | | | |
Data Binding with Bing Maps Silverlight Control and SQL Server 2008 R2

Postingan kali ini adalah permintaan dari mas SofianWan. Dalam Bing Maps, kita dapat melakukan data binding dengan menggunakan WCF Services. Berikut ini adalah salah satu caranya..

Pertama-tama, Anda harus membuat sebuah WCF Service yang meng-query koordinat (latitude dan longitude) dari database untuk kita konsumsi nantinya.

using System.Collections.Generic;

using System.Linq;

using System.Runtime.Serialization;

using System.ServiceModel;

using System.ServiceModel.Activation;

namespace BingMapsPushpinDatabase.Web

{

[ServiceContract(Namespace = "DataService")]

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

public class DataService

{

[OperationContract]

public List<Location> GetLocation(double NWlat, double NWlon, double SElat, double SElon)

{

LocationDataDataContext datacontext = new LocationDataDataContext();

var query = from Location in datacontext.Locations

where (Location.Latitude <= NWlat & Location.Latitude >= SElat) & (Location.Longitude >= NWlon & Location.Longitude <= SElon)

select new { Location.Latitude, Location.Longitude }; List<Location> myPins = new List<Location>();
foreach (var x in query)

{

Location myPin = new Location();

myPin.Latitude = x.Latitude;

myPin.Longitude = x.Longitude;

myPins.Add(myPin);

}

return myPins;

}

}

}

Setelah itu, konsumsi WCF Service tersebut dengan cara menambahkan Service Reference pada project Anda dan manfaatkan koordinat yang telah di ambil tadi untuk menampilkan pushpin atau apapun yang Anda inginkan pada Bing Maps.

using System;

using System.Windows;

using System.Windows.Controls;

using BingMapsPushpinDatabase.DataServiceReference;

using Microsoft.Maps.MapControl;

namespace BingMapsPushpinDatabase

{

public partial class MainPage : UserControl

{

private MapLayer _pushpinLayer;public MainPage()

{

InitializeComponent();

Loaded +=
new RoutedEventHandler(MainPage_Loaded);myMap.ViewChangeEnd += new EventHandler<MapEventArgs>(myMap_ViewChangeEnd);

}

private void MainPage_Loaded(object sender, RoutedEventArgs e)

{

_pushpinLayer = new MapLayer();

myMap.Children.Add(_pushpinLayer);

}

private void myMap_ViewChangeEnd(object sender, MapEventArgs e)

{

Map map = sender as Map;

LocationRect bounds = map.TargetBoundingRectangle;

DataServiceClient svc = new DataServiceClient();svc.GetLocationCompleted += new EventHandler<GetLocationCompletedEventArgs>(svc_GetLocationCompleted);

svc.GetLocationAsync(bounds.Northwest.Latitude, bounds.Northwest.Longitude, bounds.Southeast.Latitude, bounds.Southeast.Longitude);

}

private void svc_GetLocationCompleted(object sender, GetLocationCompletedEventArgs e)

{

if (e.Error == null)

{

for (int i = 0; i <= (e.Result.Count - 1); i++)

{

Pushpin pushpin = new Pushpin();pushpin.Location = new Microsoft.Maps.MapControl.Location(e.ResultIdea.Latitude, e.ResultIdea.Longitude);

_pushpinLayer.Children.Add(pushpin);

}

}

else

{

MessageBox.Show(e.Error.Message);

}

}

}

}

Hit F5 and see the result for yourself. Enjoy...

 

Source code program bisa di download disini.

Share this post: | | | |
Download Silverlight 4 Tools for Visual Studio 2010 RTM

Microsoft has wrapped up Silverlight 4 Tools for Visual Studio 2010 and is already allowing developers to download the new resources. Early adopters that have been keeping up with the development process of Silverlight 4, but, most importantly, Visual Studio 2010, were already able to download and test the Release Candidate version of the tools in the second half of March 2010. Testers that took Silverlight 4 Tools for Visual Studio 2010 RC out for a spin will need to remove the pre-release builds ahead of installing the RTM milestone.

Silverlight 4 Tools for Visual Studio 2010 RTM “provides developers with essential new features to help them take advantage of the rich set of capabilities in Silverlight 4. This news is a result of Microsoft’s continued work ensuring developers are equipped with the tools they need to create robust, rich Internet applications using Microsoft’s full developer platform and toolset,” a Microsoft spokesperson told Softpedia.

Both Silverlight 4 RTW and Visual Studio 2010 RTM are currently available for download, having been finalized earlier this year. With the latest iteration of Silverlight, Microsoft has focused on allowing developers to create content that is not limited to running in the Cloud. In this regard, Silverlight 4-rich Internet and media applications can be tailored not only to the web, but also to the desktop, and devices.

With the advent of Silverlight 4 tools for Visual Studio 2010, Microsoft was offering devs a way to simplify development, by providing “support for targeting Silverlight 4 in the Silverlight designer and project system; RIA Services application templates and libraries, and; Support for Silverlight 4 elevated trust and out-of-browser applications,” the Microsoft representative added.

Mark Wilson-Thomas, program manager, Silverlight & WPF Designer in Visual Studio, revealed that Silverlight 4 Tools for Visual Studio 2010 RTM also brought to the table “enhanced support for other new Silverlight 4 features; Sample Data Support; and working with Silverlight 4 Out-of-Browser applications.”

Silverlight 4 Tools for Visual Studio 2010 RTM are available for download here.

Silverlight 4 Build 4.0.50401.0 RTW is available for download here.

Visual Studio 2010 Premium is available for download
here.
Visual Studio 2010 Professional is available for download
here.
Visual Studio 2010 Ultimate is available for download
here.
Visual Studio Test Professional 2010 is available for download
here.

.NET Framework 4 RTM is available for download here.


Sumber: http://news.softpedia.com/news/Download-Silverlight-4-Tools-for-Visual-Studio-2010-RTM-142308.shtml

Share this post: | | | |
Accessing Webcam and Microphone in Silverlight 4

Sudah cukup lama sejak postingan terakhir saya di blog ini gara-gara UAS dan banyak tugas lainnya. Yang akan saya posting sekarang pun bukan hal yang baru saya eksplorasi belakangan ini tapi gak kalah bermanfaat kok. Hehehe...

Salah satu fitur baru yang dibawa oleh Silverlight 4 adalah kemampuan untuk mengakses webcam, microphone dan printer. Nah, yang baru saya eksplorasi sekarang adalah cara mengakses webcam dan microphone. Sebenarnya hal ini tidak terlalu sulit dan tidak perlu menambahkan reference macam-macam. Cukup menambahkan 

CaptureDeviceConfiguration.GetAvailableAudioCaptureDevices();

untuk mengambil semua audio source yang tersedia dan menambahkan 

CaptureDeviceConfiguration.GetAvailableVideoCaptureDevices();

untuk mengambil semua video source yang tersedia.

Source code program ini bisa di download disini.

Enjoy...

Share this post: | | | |
Bing Maps Web Services Part 1: Geocode Service

Postingan kali ini merupakan postingan tentang salah satu Bing Maps Web Services SDK, yaitu Geocode Service. Menurut Wikipedia, Geocode yang merupakan kependekan dari Geospatial Entity Object Code, adalah a standardized all-natural number representation format specification for geospatial coordinate measurements that provide details of the exact location of geospatial point at, below, or above the surface of the earth at a specified moment of time. Jadi singkatnya, geocode menunjukan sebuah lokasi tertentu pada sebuah peta.

Nah, Bing Maps menyediakan Geocode Service agar kita bisa mencari lokasi suatu tempat tanpa perlu susah payah. Tinggal ketik dan secara otomatis peta akan menunjukkan lokasi yang Anda cari. Penasaran kan? So, mari kita mulai bagian paling menyenangkannya..

 

Seperti biasa, buat project baru dan tambahkan reference Microsoft.Maps.MapControl.dll dan Microsoft.Maps.MapControl.Common.dll ke dalam project Anda. Silakan lihat postingan saya yang ini sebagai penyegar pikiran Anda bila lupa.

Setelah itu, tambahkan Service Reference Geocode Service ke dalam project Anda agar Anda bisa menggunakan Bing Maps Geocode Service. Alamat Web Service tersebut bisa Anda lihat di link ini.

Apabila sukses, dalam jendela solution explorer Anda akan muncul folder Service Reference yang berisi GeocodeServices..

 

Jadi, persiapan utamanya sudah selesai dan Anda siap untuk mulai menuliskan kodenya. Sebenarnya, Anda bisa belajar sendiri melalui situs Bing Maps Silverlight Interactive SDK karena saya juga belajar dari sana.

Source code project ini bisa di download disini. Enjoy...

Share this post: | | | |
Using Microsoft Bing Maps Extended Mode

Sebenarnya, selain mode-mode yang sudah ada seperti Aerial Mode dan Road Mode, masih ada 2 mode lain yang bisa digunakan di Bing Maps yaitu Bird's Eye dan Streetside. Namun, kedua mode ini masih dalam tahap beta dan untuk mendapatkannya, Anda bisa mengakses link ini. Jadi, penasaran gimana cara menggunakannya? Let's begin the fun part...

 

Oke, sebelumnya, Anda harus menginstall Bing Maps Extended Mode yang telah Anda download dari Microsoft Connect. Setelah itu, buat project baru dan tambahkan reference Bing Maps serta Bing Maps Extended Mode ke dalam project Anda...

 

Saat ini, Anda sudah memiliki 3 buah reference..

 

Jangan lupa tambahkan baris berikut ke dalam MainPage.xaml (as always...)

xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl"

 

 Oke, sekarang tambahkan kode berikut ke dalam file MainPage.xaml.cs..

BirdseyeMode.AddModeToNavigationBar(myMap);

StreetsideMode.AddModeToNavigationBar(myMap);

 

Hit F5 and see how amazing the Streetside View and Bird's Eye View really are... Source code program ini bisa di download disini.

Akhir kata, enjoy...

Share this post: | | | |
Windows Phone Developer Tools CTP Refresh!

Beginning today you can download the Windows Phone Developer Tools CTP Refresh (WPDT CTP) from http://developer.windowsphone.com, which means you can now build Windows Phone 7 apps on the final release of Visual Studio 2010 (VS2010). While this update is primarily intended to enable development using the final release of VS2010 there are a few new things here too.

Examples of what’s new & changed include:

  • This release has been tested to work with the final release of Visual Studio 2010.
  • An updated Windows Phone 7 OS image for the Windows Phone Emulator.
  • A few APIs in the frameworks have been added and or changed. See this MSDN page for more details.
  • The documentation has been updated with new and expanded topics. See this MSDN page for more details.
  • We’ve provided limited support for launchers and choosers. In cases where the underlying built-in experience is not present launchers and choosers are still not available (i.e. the email chooser asks you to select a contact, but there are no contacts in the emulator and no way to add one).
  • Pause/Resume events are now supported.
  • If the tools are installed as the admin user, non-admin users are now able to deploy to the emulator.
  • A problem with incremental deployment of projects has been fixed.
  • A problem resulting in the error "Connection failed because of invalid command-line arguments" being displayed during project creation has been fixed.
  • A problem where the Windows Phone node was not appearing in VS 2010 on non-system drives has been fixed.
  • Design time skin refresh issues have been addressed.

Please read the release notes before installing this refresh. A few tips:

  • Uninstall the previous CTP first (the item in Add/Remove programs to uninstall is “Microsoft Windows Phone Developer Tools CTP-ENU”)
  • If you have the RC of VS2010 installed, uninstall it first and then install the final release.
  • You can install Windows Phone Developer Tools CTP even if you do not have Visual Studio already installed.
  • We’ve introduced a few ‘breaking changes’ with this release. The one that will impact almost everyone who used the existing release is a requirement that all WMAppManifest.xml files have a filled out <CAPABILITIES> section. The release notes describe this in more detail and the tools will warn you when you open an existing project.

Documentation links include Developing Windows Phone Games and Silverlight for Windows Phone as a part of the XNA Game Studio 4.0 and Silverlight 4 RC documentation sets, respectively. If you have feedback about our documentation, join the discussion in the Windows Phone forums or use the ratings control in the upper right-hand side of the pages on MSDN.

As noted above this refresh is intended primarily to ensure compatibility with the RTM version of Visual Studio 2010. We are working additional releases that we will make available through the launch of Windows Phone 7 in the fall. So please keep sending us your feedback, as we take it all to heart and want to  get you what you need in the final product which we can only do with your continued partnership.  We can’t wait to see the apps you’re building!

Added bonus: In case you missed it, check out this cool post from Andre Vrignaud about the 3 pillars of Xbox Live on Windows Phone.

Update [4/29 1:30PM PST]:  We’ve identified an issue in this release with regard to the loading of signed precompiled assemblies in the context of your application.  If, when you try to run your application in the emulator you get a ‘System.IO.FileLoadException’ error, please see Brandon Watson’s blog for a workaround.

 

Sumber: http://windowsteamblog.com/blogs/wpdev/archive/2010/04/29/windows-phone-developer-tools-ctp-refresh.aspx

Share this post: | | | |