Welcome to MSDN Blogs Sign in | Join | Help

Communications Sector Conversations

Rob Cameron, Industry Evangelist
Kodu Game Lab Enables Amateurs to Build XBOX Games

This article has more details but here is a quick summary:

Kodu Game Lab, a visual programming tool that allows just about anybody with an imagination and a spare $5 to make their own games, has released on the XNA Community Games channel on the Xbox Live dashboard. The entire tool was built using XNA Games Studio, the same development platform made publicly available to anybody interested in making their own XNA games.

I will have to check it out this weekend.  My daughters love in game level editors.  I think they will love this.

Xaml and Bing Maps – Part 2

This is the second in a two part series (link to Part 1) where I cover Xaml development with Bing Maps for Enterprise.  In Part 2 below, I cover building this Silverlight Application.

 image image image
(Sample code attached to this blog post below.  Please review the code usage guidelines
here.)

Setup

This Silverlight 3 application requires the .NET RIA Services May 2009 Preview available here.  If you have not had a chance to install Silverlight 3 beta or Expression Blend 3 beta, download the Mix beta bits here.  You will also need the Bing Maps Silverlight Map Control CTP bits from Mix 09.   If you don’t have the Northwind sample database, please download it here.

This application requires that the Customers and Suppliers tables in the Northwind sample database have fields for the following data:

  • Latitude
  • Longitude
  • LatLong (This field stores the Latitude followed by a comma and then the Longitude)

Please check out Part 1 to download a utility that uses the WPF Bing Map web services to populate the location data in the Customers and Suppliers tables (or for any other database).  Also, here is a link to my teammate Michael Scherotter's blog post regarding adding attached properties to the Bing Maps Silverlight control. 

The Application 

The application has two map layers, one for customers and one for suppliers, that it plots on top of the Bing Maps Silverlight control.  The other two tabs display a master / detail form for the Suppliers and Customers tables from Northwind (Images of the application are above).

There isn’t actually a tremendous amount of coding involved because the application takes advantage of Silverlight 3 data binding, the Bing Maps Silverlight control,  and the .NET RIA Services framework.  Much of the effort is understanding how to wire up everything along with a little bit of code:-).  Here is the presentation.  (Go to about 1:30 in the player to skip the overview.)

Link to Part 1.

Xaml and Bing Maps – Part 1

This is the first in a two part series where I cover Xaml development with Bing Maps for Enterprise.  In part 1, I cover building this application. (Link to Part 2)

image
(Sample code attached to this blog post below.  Please review the code usage guidelines here.)

It is a WPF application that collects information from the application user about a  database table containing address information, it looks up the address information for each record, geocodes the address to Latitude and Longitude, and then the application updates the database record with the geocode data.

The user interface is fairly simple and could be made more visual by allowing the user to visually navigate a database, select a table, select fields, etc. but then the presentation would have to be much much longer:-). 

Essentially, the user provides a .NET Connection string to a database, the table name, and then the fields where the address information is located.  In this demonstration I use the sample Northwind database.  I modify the Customers and Suppliers table adding fields for Latitude, Longitude, and LatLong.

In this webcast there is a 2 minute presentation overview followed by a screencast where I cover the following steps:  (Go to about 1:50 in the player to skip the overview).

  • How to modify a .NET class to support databinding
  • How to databind a UI to a .NET class
  • How to execute work on a background thread with updates to the UI without using System.Threading directly.
  • How to make GeoCode calls using Bing Maps for Enterprise.

In Part 2, I build a Silverlight 3 beta application that pulls data from the updated database with the added geocode data and displays the data in a Silverlight 3 Navigation Business Application using the .NET RIA Services May 2009 Preview and the Bing Maps for Enterprise Silverlight control CTP that released at MIX 09.  Here is a screenshot of the application I cover in Part 2.

image

XNA Game Studio 3.1 Now Available!

If you are not sure what XNA is, XNA Game Studio enables hobbyists, academics, and independent game developers to easily create video games for Windows, Xbox 360, and the Zune digital media player by using optimized cross-platform gaming libraries based on the .NET Framework in the C# programming language.

This release is incremental to XNA Game Studio 3.0 and contains many new features, including avatars, Xbox LIVE Party support, and video as well as enhancements to existing features. For the full list of improvements in this release, see the “What’s New in XNA Game Studio 3.1” section of the documentation once you have installed the product.

Download XNA Game Studio 3.1 here.  The readme file highlights that you have to uninstall XNA Game Studio 3.0 before proceeding.  Here is a link that details what’s new in XNA Game Studio 3.1.

Some great Tutorials for developers new to game development using short and effective screen casts:

A few links to help get you started (by no means all inclusive):

Windows Mobile and the Social Web

With Windows Mobile 6.5, Microsoft is investing with its partners to bring consumer experiences available on the desktop and other mobile platforms to Windows Mobile.  Here is a great quote from a very interesting blog post on extending social experiences to mobile devices:

“These extensions are invaluable to the success of a social website for they allow the experience to travel with the user and continue the flow of data wherever they are, and as the value of a website is found in the content, it’s critical to provide as many input points as possible and keep them open at all times.”

I look forward to seeing the great applications and experiences that our developer and customer partners deliver to the Windows Marketplace for Mobile when Windows Mobile 6.5 ships!

Windows Mobile 6.5 Developer Toolkit Released!

Download the toolkit here.  It is available in six languages for both the the Professional and Standard platforms.  It includes the device emulators (details here) as well as new documentation, sample code, header and library files for Visual Studio. 

The toolkit introduces a new set of APIs to enable application developers to take advantage of the new Windows Mobile 6.5 touch gesture framework.

Note: There is also the new Widget Framework as well.  Check out the link below for more information. 

The gesture APIs allow an application to handle touch gesture input and provide a visually consistent experience with the rest of the device UI.

Note: The gesture APIs are only available on the Windows Mobile Classic and Professional SKUs, and only for Windows Mobile 6.5 devices.

The headers and libraries are installed in the Windows Mobile SDK\Pocket PC\ folder. Samples that make use of these APIs are installed into the C:\Program Files (x86)\Windows Mobile 6 SDK\Windows Mobile 6.5 Developer Tool Kit\ folder. The Gesture APIs are defined in the following header files:

<gesture.h>
<GesturePhysicsEngine.h>
<WindowAutoGesture.h>

Here is a screenshot of the physics sample in the Windows Mobile VGA device emulator:

image

When you drag and release the mouse on the device emulator, it simulates a touch gesture movement and the photo slides and bounces as you would expect with a physics engine. 

Notice the red arrows in the screen capture above that point to the new look for Scrollbars and Menu items.  These are the common controls but redesigned to be more touch friendly.  So, applications get the improved look and function “for free” when your existing C++ or .NET Compact Framework applications run on Windows Mobile 6.5.

Before installing the Windows Mobile 6.5 Toolkit, you will first need to install the Windows Mobile 6 SDK’s available here if you have not done so already.  It is important to note that Windows Mobile 6.5 has great compatability with and shares the Windows Mobile 6 SDK.  The one change that I want to highlight is that applications should remove any dependencies on GAPI as detailed in this blog post by the Windows Mobile product team.

After installing the Toolkit, please review the 6.5 Dev Tool Kit Readme.htm located in this folder (on an x65 machine, otherwise just Program FIles):

C:\Program Files (x86)\Windows Mobile 6 SDK\6.5 Dev Tool Kit Readme.htm

When you open the gesture API samples, the solution upgrade wizard appears if you are running Visual Studio 2008.  The samples ship for Visual Studio 2005 for backwards compatibility but they solution will upgrade fine.  Also, be sure to change the target device to a Windows Mobile 6.5 emulator from the default Windows Mobile 6 Classic Emulator.

image

Other Stuff:

For information on the Windows Mobile 6.5 Widget Framework please check out this post. For information on the Windows Marketplace for Windows Mobile please check out this post.

If you create a cool sample or application ping me and I will post a link on my blog.  Have fun!

ARCHITECT COUNCIL | Pragmatic Patterns for Architects

image

“Cloud computing will supersede traditional IT”, “SOA will enable business agility”, “my way or the highway”, etc. We’ve all heard this type of proclamations before, as many look to the “next big things” in technology to exact sweeping changes and solve many issues; truth is, technologies and tools aren’t as instrumental in influencing progress, as the design and discipline in applying them to specific issues. When used appropriately, technologies and tools can be powerful enablers that bring about change.

One of the things we hear a lot working with the community is a desire for more guidance about how to use the technology instead of just talking about features and functions.  To address this, our team has put together a series of live webcasts on June 9th – 11th which will focus on guidance and patterns for some of today’s hottest topics. 

DAY 1 – June 9, 2009 at Noon PST

Patterns for Moving to the Cloud

Larry Clarkin & Wade Wegner

Everything that you read these days seems to suggest that you should be moving to the cloud. But where do you start? Which applications and services should be moving to the cloud? How do you build the bridge between on-premises and the cloud? And more importantly, what should you be looking out for along the way? In this session, learn architectural patterns and factors for moving to the cloud. Based on real-world projects, the session explores building block services, patterns for exposing applications, and challenges involving identity, data federation, and management. This session provides the tools and knowledge to determine whether cloud computing is right for you, and where to start.

DAY 2 – June 10, 2009 at Noon PST

Building Silverlight & WPF Applications with Prism

David Hill

Prism provides guidance, via design patterns, to help you build robust, flexible and modular Silverlight and WPF applications. These patterns support unit testing, separation of concerns, loose coupling and the ability to share application logic between Silverlight and WPF applications. Prism includes source code for the library itself, extensive documentation, and a sample application that shows how the patterns work together in a real-world application. It also includes a Visual Studio add-in to help you easily share code between WPF and Silverlight. This session provides an overview of Prism, and shows how you can use Prism to design and build composite Silverlight applications.

DAY 3 – June 11, 2009 at Noon PST

Patterns for Parallel Computing

David Chou

With recent advances in cloud computing, service-oriented architectures, distributed computing, server virtualization, multi-core processors; we are now seeing parallel computing techniques being implemented across the spectrum. It’s moving towards mainstream applications such as internet-scale web applications, massive data processing, graphics rendering, but the myriad of choices also present a number of questions on when and how to utilize parallel computing. This session explores the architectural patterns and trade-offs between different forms of parallel computing including: approaches for utilizing them to improve application performance, optimizing the use of existing infrastructure, and applying concurrency towards day-to-day enterprise information processing needs.

WEBCAST AGENDA

11:45 AM (PST)

Open for Dial-in

12:00 PM (PST)

Day’s Content

12:50 PM (PST)

Q&A

01:00 PM (PST)

Raffle and Close

REGISTER

To register, please click on the link below for each day:

 

Title

Event ID

Link to Register

Day 1 6/9/09

Patterns for Moving to the Cloud

1032416875

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032416875&EventCategory=2&culture=en-US&CountryCode=US

Day 2 6/10/09

Building Silverlight & WPF Applications with Prism

1032416983

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032416983&EventCategory=2&culture=en-US&CountryCode=US

Day 3 6/11/09

Patterns for Parallel Computing

1032416984

http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032416984&EventCategory=2&culture=en-US&CountryCode=US

We will email you with the LIVEMEETING information and log-in detail a few days before the actual event. We will use the email address you provide in the registration. Thanks!

SPEAKER BIOS

Larry Clarkin - SR ARCHITECT EVANGELIST, Microsoft

Wade Wegner - SR ARCHITECT EVANGELIST, Microsoft

Architect in the Developer & Platform Evangelism division at Microsoft, tasked to collaborate with organizations in the advanced and emergent areas of enterprise architecture, SOA, Web 2.0, and cloud computing, as well as to support decision makers on defining technology adoption strategies. You can reach Wade at his blog http://www.architectingwith.net/ or through twitter at http://twitter.com/wadewegner.

David Hill – PRINCIPAL ARCHITECT, Microsoft Patterns & Practices Team

David Chou – ARCHITECT, Microsoft

Architect in the Developer & Platform Evangelism organization at Microsoft, focused on collaborating with enterprises and organizations in many areas such as cloud computing, SOA, Web, RIA, distributed systems, security, etc., and supporting decision makers on defining evolutionary strategies in architecture. Drawing on experiences from his previous jobs at Sun Microsystems and Accenture, David enjoys helping customers create value from using objective and pragmatic approaches to define IT strategies, roadmaps, and solution architectures.

Windows Mobile RampUP – The Place to Start

There is a ton of information and resources available on the Internet to get up to speed on Windows Mobile development.  However, it can be daunting to know where to dive in, even for a seasoned developer.  That’s where the Windows Mobile RampUp is the place to start.  This link provides a great overview but here is some quick info:

RampUp is a free online learning program that helps developers to acquire skills in specific technologies and development areas, such as Windows Mobile Development, SharePoint Development and many others. RampUp is completely free. It provides easy-to-access content, in a guided path that defines the important lessons and the order in which you learn them.

RampUp content is offered in a variety of forms that allow you to choose the best way to learn; we have articles, codecasts, slidecasts and v-labs. All the content has been authored by well-known experts in the field, such as well-known book and article authors and MVPs.

To access the Windows Mobile track for RampUp, click here. The Windows Mobile RampUp track consists of 7 modules, each of which takes you one step further to master Windows Mobile Application Development.

What I like about the RampUp program is that it focuses on the tools first to help you understand how to work to put your existing development skills to use but it also moves on to more advanced topics to tackle the challenging issues such as developing an application that works on both Standard and Professional devices as well as on Portrait and Landscape mode.

After completing RampUp, move on to the Windows Mobile development center for more info.

Zune HD Announced – I want one!
zuneHD

“Zune HD is the first portable media player that combines a built-in HD Radio receiver, high-definition (HD) video output capabilities, organic light-emitting diode (OLED) touch screen, Wi-Fi and an Internet browser.”

http://www.zune.net/en-us/mp3players/zunehd/default.htm

http://www.engadget.com/2009/05/26/zune-hd-is-official-heading-your-way-this-fall/

Check out the My Phone Service beta – no more promo codes!

The My Phone service has gone into Public Beta –no more promotional codes!  Anyone with a WM 6.0/6.1/6.5 phone can sign up for free backup and online management of their phone data by visiting http://myphone.microsoft.com.   

TechEd 09 Update on Windows Mobile 6.5 Development

Quick Facts from links below:

  • You can register for the marketplace now, application submissions will open up soon.
  • The application fee for submission of an application is $99. This applies to both paid and free apps. To lower the cost, we are offering a promotion through the end of 2009, in which developers and ISVs will get five free application submissions with initial registration.
  • Windows Marketplace for Mobile enables distribution of both free and paid applications. Developers are allowed to encourage users to purchase and download paid versions of applications, which have been downloaded for free. These free versions can be feature-limited.
  • If your application has been previously certified and published in the catalog, you can submit subsequent updates without incurring any additional fees. The application update will be made available through Windows Marketplace for Mobile to all customers that have downloaded your application.
  • If your app is rejected, you will receive an adequate explanation and any associative tests or policy rules that have failed. As the developer, you are expected to address these issues before submitting the app again. Submission fees are not refundable, and you’ll have to repay the submission fee for each time you submit the app (i.e. resubmission counts against one of the five free application submissions listed above.)

Marketplace certification is comprised of four components:

  • Testing to technical standards represented by the Designed for Windows Mobile criteria.
  • Code signing with a normal or privileged mode Microsoft Windows Mobile certificate.
  • Policy checking.
  • Geographic market validation.

To review the guidelines, go to this link and click “Sign Up Now” to display a web dialog with these links:

Updated 5/18 - A link to the Prohibited Application List.  Here is a blog post by one of my peers Frank Prengel who provides additional background and comments.

Here are additional links that became available around TechEd to help developers prepare for Windows Mobile 6.5 and the Application Store:

  • Windows Mobile for Developers home page
  • Windows Marketplace FAQ
  • Engadget has a video covering Windows Mobile 6.5 from TechEd 2009 here

Additional links on Windows Mobile development:

  • Update on Windows Mobile 6.5 from Mix 2009 here
  • Background on the new Widget Framework in WM 6.5 here
  • Windows Mobile Developers Blog here
  • Windows Mobile Developer Center on MSDN here

Hopefully this post helps you navigate the application store guidelines and requirements as well as help you get started building applications for Windows Mobile 6.5.

Check out the New York Times API Silverlight Toolkit

A nice blog post with links to the toolkit and background information over at the New York Times Open blog.  You can find the toolkit here created by my teammate Michael Scherotter.

Sync Services for Devices Working Sample Download

There is a walkthrough here on how to create a Sync Services for Devices application on MSDN but it doesn’t quite work, at least I had to modify it to make things work. 

Note: You can download the Northwind database here.  Best bet with SQL Server 2008 is to open and run the script, not attach the database files.

There are some comments at the bottom that can help but it is still incomplete/not clear so I am posting some tips here that I hope will show how easy it really is to get things working, once you know what to do:-)

Pretty much you can follow all of the steps in the walkthrough to get mostly completed.  Where I had to deviate is primarily in two areas:

  • Updating the web reference proxy after adding the web reference
    • These steps also have to be done if you update the IP address for the web service call if  the local machine’s IP address changes
  • Synchronization code

To get started, follow the walkthrough at the above link until about the step titled “Adding a Web reference from the project to the WCF service”.  Complete that step but also perform the actions below.

Additional steps for the section titled “Adding a Web reference from the project to the WCF service”

In addition to removing all classes except the first class in reference.cs and adding the two using statements per the walkthrough instructions:

using Microsoft.Synchronization.Data; using Microsoft.Synchronization;

I also had to remove the three generated datasets located under Reference.map

  • SyncContext.datasource
  • SyncSchema.datasource
  • SyncServerInfo.datasource
Note: if you move your laptop between networks such that the IP of your desktop changes, you will need to do a search and replace of your old IP with the new IP.  This will auto-generate reference.cs as well as the three datasets above so you will have to repeat this step.

Next add code to perform the synchronization.

Code to synchronize the data between the device .sdf database and server database

This code would be placed in the “Synchronize Now” button event handler.  First, I added a using statement at the top of frmMain to bring in the web service reference proxy class namespace:

using NorthwindMobile.NorthwindDataCacheSyncServiceRef;

The sample attached to this blog post has additional code around it but here are the important lines of code required to perform the synchronization.

NorthwindDataCacheSyncAgent _syncAgent = new NorthwindDataCacheSyncAgent(new NorthwindDataCacheSyncService());

_syncAgent.Synchronize();

The class NorthwindDataCacheSyncService is located in the NorthwindMobile.NorthwindDataCacheSyncServiceRef and is the class for the web service.

The NorthwindDataCacheSyncAgent is also autogenerated when you add sync services to the mobile project and is located in theNorthwindDataCache.Client.Sync.Designer.cs file. 

When you add the database cache project and the web reference to the middle-tier, there are auto-generated names for various objects required to perform synchronization. So calling the sync code is a matter of running down the auto-generated names for the above to objects.  The attached sample should help you understand what’s going on. 

Other Functionality

In addition to the above changes, the attached code deviates somewhat from the walkthrough when creating a data-bound form, but I think in a somewhat useful way.  I added a DataGrid to the frmMain object and set its DataSource property to the customers table located in the generated dataset called NorthwindDataSet.xsd.  The generated dataset was created as part of adding the local database cache components to the Smart Device application.

If you select the DataGrid in the forms designer, click the arrow for design-time options, and then click “Generate Data Forms…” it will generate a view and edit data form for the data displayed in the grid, making for an easy way to test out editing data and verifying updates are happening after synchronization.

The one important additional step is to show is how to persist changes made to the NorthwindDataSet.xsd back to the Northwind.sdf CE database on the device:

private void menuItemSaveChanges_Click(object sender, EventArgs e)
{
   customersTableAdapter.Update(northwindDataSet);
   northwindDataSet.AcceptChanges();
   menuItemSaveChanges.Enabled = false;
}

You must call Update on the auto-generated TableAdapter class for the Customers table before calling AcceptChanges.  Otherwise the changes will not persist to the local CE database and therefore will not be synchronized back to the server database.

When you successfully run the application, the WCF Test Client should look like this:

image

When the application runs, click on a record to go to the View / Edit Page:

 

image image

Live Search is Cool

I haven’t had the need to search using Google in a long time.  Every once in a while I search using multiple search engines because I cannot find what I am looking for but it has been a long time since I found something using Google that I haven’t been able to find using Live Search.  Of course, your mileage may vary….

Why do I think Live Search is cool?  I have it set as my home page because I enjoy the photos that are in the background and the pop-up tidbits of information as shown in this screen shot:

image

They come up with amazing photos of places around the world that are spectacular to look at for a few seconds after staring at text on a page for hours at a time:-)

“WPF for LOB” Tour Coming to a City Near You

Jaime Rodriguez is delivering a great set of WPF for LOB content that you will want to check out.  Please go to this link for more information and registration tips but here is a quick summary of dates / locations:

Location

Dates

Click here to register

Los Angeles, CA

4/24 -4/25

www.msregistration.com/wpflobLA

London, UK

5/15 -5/16

www.msregistration.com/wpflobUK

New York, NY

6/5- 6/6

www.msregistration.com/wpflobNY

Chicago, IL

6/12-6/13

www.msregistration.com/wpflobIL

Phoenix, AZ

6/26- 6/27

www.msregistration.com/wpflobAZ

I would not wait long to register.  Based on our experience, XAML (WPF or Silverlight) events fill up very fast.

More Posts Next page »
Page view tracker