Oct 27 2010

Slides from Atlanta Silverlight Meeting Talk

Category: Mobile | PresentationJoel Ivory Johnson @ 13:03

For those interested I have uploaded the slides from the Windows Phone 7 talk I did earlier today from Skydrive here

I had previously written about the Dynamic Sound Effect Instance class. If you are looking for that code it can be found here and on CodeProject.com.

Tags:

Oct 13 2010

At the Next Atlanta Silverlight Meeting: WP7

Category: Mobile | PresentationJoel Ivory Johnson @ 03:49

I'll be speaking at the next Atlanta Silverlight Developer's Meeting. If you're in the Atlanta area stop by and say "Hi!". Here's the info.

When: Wednesday, October 27, 2010 6:30 PM
Where: Five Seasons Brewing

Windows Phone: How Did We Get Here and Where are We Headed?

On Wednesday, October 27th, Joel Johnson will be presenting on the past, present and future of Silverlight development on Windows Phone. We will meet at 6:30 pm at 5 Seasons Brewing at the Prado.

Bio

Joel Johnson is a Device Application Development MVP and is currently transitioning in the Windows Phone Development MVP program. He has extensive experience with Windows Mobile, Silverlight and XNA. He has also been the caretaker of one of the rare early Windows Phone devices for several months.

Abstract

With Microsoft's official WP7 launch with AT&T Monday, we should soon be seeing signs of the much anticipated Windows Phone marketing blitz. The Windows Phone marketplace is now open for early submissions and AT&T has announced three new phones which will become available in the US in early November.

Now that we are at the end of the year-long rush by Microsoft to get a phone out before Christmas, Joel will help us to take a moment to see how we got to this point. The Microsoft phone strategy was once guided by a desire for a feature rich device targeted at the enterprise. It is now a guided by a desire for a user-experience rich device targeted at consumers. Moreover, the old developer platform has not only been overhauled but completely replaced with a Silverlight + XNA development platform. Joel will show how these two technologies work together on the phone, demonstrating native XNA features as well as how we as Silverlight developers can tap into the XNA APIs to develop rich Silverlight applications for the Phone.

RSVP to this Meetup:
http://www.meetup.com/The-Atlanta-Silverlight-Meetup-Group/calendar/15095608/

Tags:

May 14 2009

Mobile Code Camp ATL

The Mobile Camp Atlanta 2009 is an (un)conference event with people interested in the Windows Mobile, Google Android, Palm Pre and Blackberry.

On July 18th, this ad hoc event will be created organically by the participants in a BarCamp-style format. It will likely cover topics such as mobile app development, demos, game creation, strategies, technologies, techniques, mobile solutions, successes & failures and just about everything orbiting around the mobile universe.

www.mobilecampatlanta.org

Tags:

Apr 21 2009

24 Hours of Windows Mobile : WCF Development and Embedded Databases

The "24 Hours of Windows Mobile" series is back! In the next presentation Nick Landry talks about WCF on Windows Mobile on 22 April 2009.  The following week Chris Craft is presenting on Mobile Databases.

BTW: If you've missed any of the "24 Hours of Windows Mobile" series I've got the links to all of them below.

TitleLevelDescription
Introduction to Windows Mobile Development 200 High level introduction to developing managed applications for mobile devices
Interoperability Between Native and Managed Code 300 Basic's of P/Invoke and using COM objects
Creating Adaptive Applications 300 Creating applications that work with a wide variety of formfactors
Using Pocket Outlook Data within a Managed Application 300 Retrieving and manipulating data stored within Pocket Outlook
Live Update from PDC 300 Sharing news announced at PDC time and other demonstrations
Developing Battery Friendly Applications for Windows Mobile 300 Demonstration of the State and Notifications broker and other features of Windows Mobile that can assist in developing applications that consume less power
Unit Testing for Mobile Devices 300 Explore using the unit testing functionality of Windows Mobile for devices
Testing Your Mobile Applications 300 Strategies for testing your Mobile Application
IPC and True Push 300 Asynchronous programming techniques inside your managed application
Windows Mobile Networking 300 Negotiating and establishing a network connection
Location Awareness 300 Location services available for Windows Mobile
Windows Mobile Power Toys 200 Tools to assist you in diagnosing information about your running applications.
App Dev with VS 2008 and SDK tools 300 what is new in the Microsoft .NET Compact Framework 3.5 and how to develop Windows Mobile client applications effectively.
Device Security 300 Explains how the Windows Mobile Security model works, and they show you how you can mimic device security using the emulator.
Tips for App Devs 300 Tips to improve your productivity in developing for Windows Mobile in Visual Studio.
Asynchronous Development Techniques 300 Learn how to properly start and terminate threads, update user interface controls inside multiple threads, and call Web services asynchronously.

 

Source: blogs.msdn.com/croman

Tags:

Apr 3 2009

Upcoming Windows Mobile Webcast for April 2009

There's no "24 hours of Windows Mobile" webcast on the calendar this month.  But there are several Windows Mobile presentations coming up, some of which have nothing to do with programming.   I receive an occasional e-mail  and see an occasional post in which some one is trying to write a program to perform some some level of device management through code.  More times than not the functionality desired is already available through Microsoft Management tools.  In general the day-to-day activities of developers don't require them to have much awareness of these tools, However based on the e-mails that I've seen I think a developer should be aware that these tools exists to prevent him or her from engaging in a task that equates to reinventing the wheel. Here's the list of both programming related and management related webcast for Windows Mobile from Microsoft this month:

Tags:

Apr 3 2009

Upcoming Webcast on Silverlight Data Visualization

Category: Silverlight | PresentationJoel Ivory Johnson @ 13:56

There's an upcoming webcast from Microsoft on Practical Applications Silverlight Data Visualizations. From the presentation description:

Building high-fidelity, interactive web pages and business intelligence dashboards are now a reality with the Rich Internet Applications (RIA) features in Microsoft Silverlight 2.  In this talk, you will be introduced to the various controls from Infragistics that target real-world, data-driven scenarios for delivering information in a rich, useful manner in your web applications.  You will be exposed to various best practice techniques of hosting multiple Silverlight players on a page and cross-player communication with the Silverlight controls on your pages. Fundamentals such as data binding design best practices will also be explored in this code-focused talk.

Presenter: Jason Beres, Director of Product Management, Infragistics

Tags:

Mar 20 2009

Charlotte Code Camp at the CPCC Levine Campus

I'm still undecided about attending the Charlotte Code Camp a week from now.  I've got to be back in Atlanta by 9:00pm that night for an event.  If I do go to charlotte will I drive or will I fly? 

If you are interested in going you can find the details here: http://www.developersguild.org

From the site:


Developing for Dollars: Registration is now open for the Charlotte Code Camp – Spring 2009 to be held on Saturday, March 28 at the CPCC Levine Campus in Matthews, NC. It's all about developing successful applications and connecting with the right organization to make money from your work.

This event features mobile and component development tracks including DNN, Windows Mobile, iPhone, Blackberry, XNA and web development for smart phones. We offer a limited choice of various software development books for each attendee along with programmer oriented "swag" from contributors such as Microsoft. We also provide a printed schedule and a "take away CD" with sponsors page, code samples, presentation slide decks and hands-on-lab instruction documents as files.
Tentative Schedule

 

Time Day Job Win Mobile Mobility XNA Portal Business
7:30 AM to
8:00 AM
Registration
Coffee & doughnuts from Dunkin Donuts provided by Logical Advantage.
8:00 AM to
8:30 AM
Welcome & Announcements
8:45 AM
to
10:00 AM
Metadata Code Generation
Dave Catherman
Building Mobile Applications Using VS 2008 & .NET Compact Framework 3.5
Peter Mourfield
iPhone & WCF
Thomas Jaeger
Getting Started with XNA. What do need?
Alberto Botero
Integrating Reporting Services Reports & SharePoint
Doris Phillips
The Four "P"s of Marketing Your Application
Eric Notheisen
10:15 AM
to
11:30 AM
Metric Driven Refactoring
Nick Harrison
Microsoft Sync Framework
Bill Jones Jr., MVP
iPhone & WCF
Thomas Jaeger
Lab: How to start writing your own games on XNA.
Alberto Botero
SharePoint Security & SharePoint Designer
Brian Gough, MVP & Dan Lewis
Enhance Your Career
Chris Eargle, MVP
11:30 PM to
12:15 PM
Lunch
Boxed lunches from McAlister's Deli provided by Culminis.
12:30 PM
to
1:45 PM
Microsoft ASP.NET MVC
Brian Hitney
Create REST Web Services for Mobile Devices
Brian Spencer
Android
Ed Crookshanks
Getting Started with XNA. What do need?
Alberto Botero
Building & Serving Ads with Silverlight
Page Brooks, MVP
Lab: Win Mobile
2:00 PM
to
3:15 PM
C# 4.0 & VB 10
Chris Eargle, MVP
Windows Mobile Marketplace & Creating Advanced Mobile User Experiences
Chris Craft, MVP
BlackBerry Jam for Beginners
Marty Turner
Lab: How to start writing your own games on XNA.
Alberto Botero

Lab: Microsoft Sync Framework
Bill Jones Jr., MVP
3:15 PM to
3:30 PM
Afternoon Refreshments
Provided by Logical Advantage.
3:30 PM
to
4:45 PM
Deepen your Debugging: Tips & Tricks for the Visual Studio 2008 Debugger
Brian Hitney
Making Your Windows Mobile Phone Work for You
Lou Vega, MVP


SharePoint Q&A
Brian Gough, MVP & Dan Lewis, & Doris Phillips
The Four "P"s of Marketing Your Application
Eric Notheisen
5:00 PM to
5:30 PM
Closing & Giveaways
Time Day Job Win Mobile Mobility XNA Portal Business

Tracks:

Day Job .NET topics to enhance your performance on your day job
Win Mobile Windows Mobile development and distribution topics
Mobility iPhone, Blackberry, Andriod development and distribution topics
XNA Development topics for the Xbox and Windows gaming community
Portal DNN, SharePoint, and Web Part development topics
Business How to promote and distribute software you develop

Tags:

Mar 16 2009

24 Hours of Windows Mobile : Customizing .Net Compact Framework Controls

The next presentation in the 24 Hours of Windows Mobile webcast will be next week.  In this upcoming presentation Alex Yakhnin continues speaking about making compelling UIs.  You can register now at the following link.

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

Tags:

Feb 16 2009

Steve Ballmer's Press Conference at the Mobile World Congress

If you would like to see Steve Ballmer's press conference at the Mobile World Congress Microsoft will be streaming it live through Silverlight at 17:00 GMT.  You can catch it live (or the recorded version afterwards) at http://www.microsoft.com/windowsmobile/en-us/business/cmpn/mwc2009/default.mspx

Tags:

Jan 26 2009

Sneak Peak of Windows Mobile 6.5

Michael Herald of Mobility Today has posted a video of Windows Mobile 6.5 with IE6 running on his HTC Diamond.  It runs incredibly well.  See the Mobility Today site for more details.

Tags:

Jan 25 2009

Custom Actions in a Cab Installation

Creating a cab installer for a Windows Mobile program is easy.  After making a cab project you add your files and Visual Studio does everything else for you.  But when you uninstall your application what happens to all of the registry entries and data files that your application has made?  They get left behind unless you erase them yourself. Chances are your program won't ever receive any notification that it is about to be uninstalled, so your program won't be able to cleanup after itself.  Instead you will need to create a DLL that contains custom actions.   The installer build into the Windows Mobile device will call your DLL once before installation, once after installation, once before deinstallation, and right after deinstallation.  So how to you make this custom DLL?

The custom DLL will be a Win32 DLL smart device project. The DLL must define four functions, Install_Init, Install_Exit, Uninstall_Init, and Uninstall_Exit. To cleanup after your program has been uninstalled you will place cleanup code in Uninstall_Exit Here is the code for the custom actions DLL that I wrote. I've added code to clean up the registry.  If there are other programs that I've written still on the device they will be using the same registry hive to store their keys.  If other programs are found the program will leave behing the \HKCU\Software\J2i.Net key as not to accidentally erase the keys that my other programs use.  If there are no other programs found then J2i.Net will be removed.

BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
void RemoveRegistryKeys();
///////////////////////////////////////////////////////////////
codeINSTALL_INIT Install_Init
(
HWND hWndParent,
BOOL fFirstCall,
BOOL fPreviouslyInstalled,
LPCSTR pszInstallDir
)
{
MessageBeep(0);
return codeINSTALL_INIT_CONTINUE;
}
///////////////////////////////////////////////////////////////
codeINSTALL_EXIT Install_Exit
(
HWND hWndParent,
LPCSTR pszInstallDir,
WORD cFailedDirs,
WORD cFailedRegKeys,
WORD cFailedRegVals,
WORD cFailedShortcuts
)
{
MessageBeep(0);
return codeINSTALL_EXIT_DONE;
}
///////////////////////////////////////////////////////////////
codeUNINSTALL_INIT Uninstall_Init
(
HWND hwndParent,
LPCSTR pszInstallDir
)
{
MessageBeep(0);
return codeUNINSTALL_INIT_CONTINUE;
}
///////////////////////////////////////////////////////////////
codeUNINSTALL_EXIT Uninstall_Exit
(
HWND hwndParent
)
{
RemoveRegistryKeys();
MessageBeep(0);
return codeUNINSTALL_EXIT_DONE;
}
void RemoveRegistryKeys()
{
HKEY hCompanyKey = NULL;
HKEY hSoftwareKey = NULL;
TCHAR buffer[MAX_PATH];
DWORD bufferSize = MAX_PATH;
bool canEraseCompanyKey = false;
//Delete the application key
RegOpenKeyEx(HKEY_CURRENT_USER,L"Software", 0,0,&hSoftwareKey);
if(hSoftwareKey)
{
RegOpenKeyEx(hSoftwareKey, L"J2i.Net",0,0,&hCompanyKey);
if(hCompanyKey)
{
RegDeleteKey(hCompanyKey, L"MyColourPreferences");
canEraseCompanyKey = (ERROR_SUCCESS!=RegEnumKeyEx(hCompanyKey,0,buffer,&bufferSize,0,0,0,0));
RegCloseKey(hCompanyKey);
RegCloseKey(hCompanyKey);
if(canEraseCompanyKey)
RegDeleteKey(hSoftwareKey,L"J2i.Net");
}
if(hSoftwareKey)
RegCloseKey(hSoftwareKey);
}
}

To export the four functions the DLL will also need to contain a Module Definition file that exports the four functions. The contents of that file must look like the following.

EXPORTS
Install_Init
Install_Exit
Uninstall_Init
Uninstall_Exit

That's all that needs to be in the DLL. When you create your installer you will need to add both the primary output of your program and this DLL to the project. The last thing that you need to do is change the CE Setup DLL setting on the CAB project. Select the CAB project from the Solutions Explorer and you will see the CE Setup DLL setting in the property editor. Click on the dropdown to the right of the setting and select Browse. Navigate to the native DLL that you created and your done. All you need to do is compile and build the CAB.

As an example there is a Visual Studio project attached to this entry.  The project contains a program of trivial simplicity.  All that you need to know about that program is that it will save the information you enter to the registry.  Without the custom action when you uninstall this program that information would be left in the registry.   But thanks to the custom action it will be removed.

Tags:

Jan 13 2009

Top 5 Searches

In reading through my Google Analytics report I see that there are a few searches that are always at the top of the list. 

 

 

Beyond having mentioned the Windows Mobile Power Toys once in refering to the "24 Hours of Windows Mobile" webcast I've not actually spoken about it.  But given the level of popularity I've decided to write an article covering it along with the EQATEC Profiler and the EQATEC Tracer.  All of these are free tools.  I wrote my outline for the article last night and am now working on the example code.  This will be something usable by both those that use Visual Studio and those that develop for Windows Mobile without Visual Studio. 

Tags:

Dec 19 2008

24 Hours of Windows Mobile - Halfway Point

As of yesterday the 24 hours of Windows Mobile series has reached its halfway point. .  I thought this would be a good time to post the links to all of the recorded presentations for those that may have missed one. 

 

TitleLevelDescription
Introduction to Windows Mobile Development 200 High level introduction to developing managed applications for mobile devices
Interoperability Between Native and Managed Code 300 Basic's of P/Invoke and using COM objects
Creating Adaptive Applications 300 Creating applications that work with a wide variety of formfactors
Using Pocket Outlook Data within a Managed Application 300 Retrieving and manipulating data stored within Pocket Outlook
Live Update from PDC 300 Sharing news announced at PDC time and other demonstrations
Developing Battery Friendly Applications for Windows Mobile 300 Demonstration of the State and Notifications broker and other features of Windows Mobile that can assist in developing applications that consume less power
Unit Testing for Mobile Devices 300 Explore using the unit testing functionality of Windows Mobile for devices
Testing Your Mobile Applications 300 Strategies for testing your Mobile Application
IPC and True Push 300 Asynchronous programming techniques inside your managed application
Windows Mobile Networking 300 Negotiating and establishing a network connection
Location Awareness 300 Location services available for Windows Mobile
Windows Mobile Power Toys 200 Tools to assist you in diagnosing information about your running applications.

 

Tags:

Nov 22 2008

Solution for Tilt Screen Flashing Problem

After I posted the page on Windows Mobile MEssage Queues I decided to use the Power Manager sample in it to diagnose a problem that I have had with my AT&T Tilt since the firmware update.  The problem was that after turning the device on many times it would immediatly turn back off.  Using the RequestPowerNotifications sample I was able to see what was going on with the power manager when this problem occured.  It appears the the device would go into a resuming state and then immediatly go back to the suspended state. Refering back to the article I published on Windows Mobile Power Management I remembered that if the device enters the resuming state and does not switch to another state then the device will suspend itself.  The time to change state is usually 15 seconds.  But OEMs have the option to change this time. Upon opening the registry path [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\Timeouts]  I found the keys [ACResumingFromSuspendTimeout] and [BatteryResumingFromSuspendTimeout] were both set to 1 second.  I set them to 5 seconds and I have not seen the problem since then.  So it would appear the problem was caused by the new power manager that on the device being unable to change the power state of the device fast enough.

Tags:

Nov 7 2008

24 Hours of Windows Mobile Review

The 24 Hours of Windows Mobile webcast series is still underway.  If you've missed one of the presentations then you can catch the recorded version.  The links to the presentations are below. 

 

Title Level Description
Introduction to Windows Mobile Development 200 High level introduction to developing managed applications for mobile devices
Interoperability Between Native and MAnaged Code 300 Basic's of P/Invoke and using COM objects
Creating Adaptive Applications 300 Creating applications that work with a wide variety of formfactors
Using Pocket Outlook Data within a Managed Application 300 Retrieving and manipulating data stored within Pocket Outlook
Live Update from PDC 300 Sharing news announced at PDC time and other demonstrations
Developing Battery Friendly Applications for Windows Mobile 300 Demonstration of the State and Notifications broker and other features of Windows Mobile that can assist in developing applications that consume less power
Unit Testing for Mobile Devices 300 Explore using the unit testing functionality of Windows Mobile for devices

Tags: