출처 : Scottgu 형님 사이트


http://weblogs.asp.net/scottgu/archive/2010/03/18/building-a-windows-phone-7-twitter-application-using-silverlight.aspx

개발환경다운로드
Windows Phone Developer Tools CTP

 

Building a “Hello World” Windows Phone 7 Application

First make sure you’ve installed the Windows Phone Developer Tools CTP – this includes the Visual Studio 2010 Express for Windows Phone development tool (which will be free forever and is the only thing you need to develop and build Windows Phone 7 applications) as well as an add-on to the VS 2010 RC that enables phone development within the full VS 2010 as well.

After you’ve downloaded and installed the Windows Phone Developer Tools CTP, launch the Visual Studio 2010 Express for Windows Phone that it installs or launch the VS 2010 RC (if you have it already installed), and then choose “File”->”New Project.”  Here, you’ll find the usual list of project template types along with a new category: “Silverlight for Windows Phone”. The first CTP offers two application project templates. The first is the “Windows Phone Application” template - this is what we’ll use for this example. The second is the “Windows Phone List Application” template - which provides the basic layout for a master‑details phone application:

image

After creating a new project, you’ll get a view of the design surface and markup. Notice that the design surface shows the phone UI, letting you easily see how your application will look while you develop. For those familiar with Visual Studio, you’ll also find the familiar ToolBox, Solution Explorer and Properties pane.

image

For our HelloWorld application, we’ll start out by adding a TextBox and a Button from the Toolbox. Notice that you get the same design experience as you do for Silverlight on the web or desktop. You can easily resize, position and align your controls on the design surface. Changing properties is easy with the Properties pane. We’ll change the name of the TextBox that we added to username and change the page title text to “Hello world.”

image

We’ll then write some code by double‑clicking on the button and create an event handler in the code-behind file (MainPage.xaml.cs).

image

We’ll start out by changing the title text of the application. The project template included this title as a TextBlock with the name textBlockListTitle (note that the current name incorrectly includes the word “list”; that will be fixed for the final release.)  As we write code against it we get intellisense showing the members available.  Below we’ll set the Text property of the title TextBlock to “Hello “ + the Text property of the TextBox username:

image

We now have all the code necessary for a Hello World application.  We have two choices when it comes to deploying and running the application. We can either deploy to an actual device itself or use the built‑in phone emulator:

image

Because the phone emulator is actually the phone operating system running in a virtual machine, we’ll get the same experience developing in the emulator as on the device. For this sample, we’ll just press F5 to start the application with debugging using the emulator.  Once the phone operating system loads, the emulator will run the new “Hello world” application exactly as it would on the device:

image

Notice that we can change several settings of the emulator experience with the emulator toolbar – which is a floating toolbar on the top right.  This includes the ability to re-size/zoom the emulator and two rotate buttons.  Zoom lets us zoom into even the smallest detail of the application:

image

The orientation buttons allow us easily see what the application looks like in landscape mode (orientation change support is just built into the default template):

image

Note that the emulator can be reused across F5 debug sessions - that means that we don’t have to start the emulator for every deployment. We’ve added a dialog that will help you from accidentally shutting down the emulator if you want to reuse it.  Launching an application on an already running emulator should only take ~3 seconds to deploy and run.

Within our Hello World application we’ll click the “username” textbox to give it focus.  This will cause the software input panel (SIP) to open up automatically.  We can either type a message or – since we are using the emulator – just type in text.  Note that the emulator works with Windows 7 multi-touch so, if you have a touchscreen, you can see how interaction will feel on a device just by pressing the screen.

image

We’ll enter “MIX 10” in the textbox and then click the button – this will cause the title to update to be “Hello MIX 10”:

image

We provide the same Visual Studio experience when developing for the phone as other .NET applications. This means that we can set a breakpoint within the button event handler, press the button again and have it break within the debugger:

image

Building a “Twitter” Windows Phone 7 Application using Silverlight

Rather than just stop with “Hello World” let’s keep going and evolve it to be a basic Twitter client application.

We’ll return to the design surface and add a ListBox, using the snaplines within the designer to fit it to the device screen and make the best use of phone screen real estate.  We’ll also rename the Button “Lookup”:

image

We’ll then return to the Button event handler in Main.xaml.cs, and remove the original “Hello World” line of code and take advantage of the WebClient networking class to asynchronously download a Twitter feed. This takes three lines of code in total: (1) declaring and creating the WebClient, (2) attaching an event handler and then (3) calling the asynchronous DownloadStringAsync method.

In the DownloadStringAsync call, we’ll pass a Twitter Uri plus a query string which pulls the text from the “username” TextBox. This feed will pull down the respective user’s most frequent posts in an XML format. When the call completes, the DownloadStringCompleted event is fired and our generated event handler twitter_DownloadStringCompleted will be called:

image

The result returned from the Twitter call will come back in an XML based format.  To parse this we’ll use LINQ to XML. LINQ to XML lets us create simple queries for accessing data in an xml feed. To use this library, we’ll first need to add a reference to the assembly (right click on the References folder in the solution explorer and choose “Add Reference):

image

We’ll then add a “using System.Xml.Linq” namespace reference at the top of the code-behind file at the top of Main.xaml.cs file:

image

We’ll then add a simple helper class called TwitterItem to our project. TwitterItem has three string members – UserName, Message and ImageSource:

image

We’ll then implement the twitter_DownloadStringCompleted event handler and use LINQ to XML to parse the returned XML string from Twitter.  What the query is doing is pulling out the three key pieces of information for each Twitter post from the username we passed as the query string. These are the ImageSource for their profile image, the Message of their tweet and their UserName. For each Tweet in the XML, we are creating a new TwitterItem in the IEnumerable<XElement> returned by the Linq query. 

We then assign the generated TwitterItem sequence to the ListBox’s ItemsSource property:

image

We’ll then do one more step to complete the application. In the Main.xaml file, we’ll add an ItemTemplate to the ListBox. For the demo, I used a simple template that uses databinding to show the user’s profile image, their tweet and their username.

<ListBox Height="521" HorizonalAlignment="Left" Margin="0,131,0,0" Name="listBox1" VerticalAlignment="Top" Width="476">
    <ListBox.ItemTemplate>
        <DataTemplate>
           <StackPanel Orientation="Horizontal" Height="132">
              <Image Source="{Binding ImageSource}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
              <StackPanel Width="370">
                 <TextBlock Text="{Binding UserName}" Foreground="#FFC8AB14" FontSize="28" />
                 <TextBlock Text="{Binding Message}" TextWrapping="Wrap" FontSize="24" />
              </StackPanel>
           </StackPanel>
        </DataTemplate>
     </ListBox.ItemTemplate>
</ListBox>

Now, pressing F5 again, we are able to reuse the emulator and re-run the application. Once the application has launched, we can type in a Twitter username and press the  Button to see the results. Try my Twitter user name (scottgu) and you’ll get back a result of TwitterItems in the Listbox:

image

Try using the mouse (or if you have a touchscreen device your finger) to scroll the items in the Listbox – you should find that they move very fast within the emulator.  This is because the emulator is hardware accelerated – and so gives you the same fast performance that you get on the actual phone hardware.

 

GPS를 테스트할수 있게해주는 프로그램

http://msdn.microsoft.com/en-us/library/bb158722.aspx

image

image

모바일 기기에 옴겨서 실행하고 GPS 프로그램 테스트 하면된다

  • Cradle your device or emulator and wait for ActiveSync to connect.

  • Click the Explore button in the ActiveSync application window.

  • Copy and paste the FakeGPS.cab file from your desktop computer to a folder in the Mobile Device window.

  • On your device or on the emulator, navigate to the folder where you copied the FakeGPS.cab file and click on the file. This will install the FakeGPS application.

  • Select Programs from the Start menu and select Fake GPS.

  • When the Fake GPS application launches, select Enabled from the Fake GPS drop-down list. Choose any value from the NMEA File drop-down list.

  • using System;
    using System.Collections;
    using System.Runtime.InteropServices;
    using System.Text; 
    
    namespace ToolHelp
    {
        #region Process class
        /// <summary>
        /// Summary description for Process.
        /// </summary>
        public class Process
        {
            private string processName;
            private IntPtr handle;
            private int threadCount;
            private int baseAddress; 
    
            //default constructor
            public Process()
            {
            } 
    
            private Process(IntPtr id, string procname, int threadcount, int baseaddress)
            {    
                handle = id;
                processName = procname;
                threadCount = threadcount;
                baseAddress = baseaddress;
            } 
    
            //ToString implementation for ListBox binding
            public override string ToString()
            {
                return processName;
            } 
    
            public int BaseAddress
            {
                get
                {
                    return baseAddress;
                }
            } 
    
            public int ThreadCount
            {
                get
                {
                    return threadCount;
                }
            } 
    
            public IntPtr Handle
            {
                get
                {
                    return handle;
                }
            } 
    
            public string ProcessName
            {
                get
                {
                    return processName;
                }
            } 
    
            public int BaseAddess
            {
                get
                {
                    return baseAddress;
                }
            } 
    
            public void Kill()
            {
                IntPtr hProcess;
                hProcess = OpenProcess(PROCESS_TERMINATE, false, (int) handle); 
    
                if(hProcess != (IntPtr) INVALID_HANDLE_VALUE) 
                {
                    bool bRet;
                    bRet = TerminateProcess(hProcess, 0);
                    CloseHandle(hProcess);
                }
    
            } 
    
            public static Process[] GetProcesses()
            {
                ArrayList procList = new ArrayList(); 
    
                IntPtr handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
    
                if ((int)handle > 0)
                {
                    try
                    {
                        PROCESSENTRY32 peCurrent;
                        PROCESSENTRY32 pe32 = new PROCESSENTRY32();
                        //Get byte array to pass to the API calls
                        byte[] peBytes = pe32.ToByteArray();
                        //Get the first process
                        int retval = Process32First(handle, peBytes); 
    
                        while(retval == 1)
                        {
                            //Convert bytes to the class
                            peCurrent = new PROCESSENTRY32(peBytes);
                            //New instance
                            Process proc = new Process(new IntPtr((int)peCurrent.PID), peCurrent.Name, (int)peCurrent.ThreadCount, (int)peCurrent.BaseAddress);
                            procList.Add(proc); 
    
                            retval = Process32Next(handle, peBytes);
                        }
                    }
                    catch(Exception ex)
                    {
                        throw new Exception("Exception: " + ex.Message);
                    }
                    //Close handle
                    CloseToolhelp32Snapshot(handle); 
                    return (Process[])procList.ToArray(typeof(Process)); 
    
                }
                else
                {
                    throw new Exception("Unable to create snapshot");
                } 
    
            } 
    
            #endregion 
    
            #region PROCESSENTRY32 implementation 
    
    //        typedef struct tagPROCESSENTRY32 
    //        { 
    //            DWORD dwSize; 
    //            DWORD cntUsage; 
    //            DWORD th32ProcessID; 
    //            DWORD th32DefaultHeapID; 
    //            DWORD th32ModuleID; 
    //            DWORD cntThreads; 
    //            DWORD th32ParentProcessID; 
    //            LONG pcPriClassBase; 
    //            DWORD dwFlags; 
    //            TCHAR szExeFile[MAX_PATH]; 
    //            DWORD th32MemoryBase;
    //            DWORD th32AccessKey;
    //        } PROCESSENTRY32; 
    
            private class PROCESSENTRY32
            {
                // constants for structure definition
                private const int SizeOffset = 0;
                private const int UsageOffset = 4;
                private const int ProcessIDOffset=8;
                private const int DefaultHeapIDOffset = 12;
                private const int ModuleIDOffset = 16;
                private const int ThreadsOffset = 20;
                private const int ParentProcessIDOffset = 24;
                private const int PriClassBaseOffset = 28;
                private const int dwFlagsOffset = 32;
                private const int ExeFileOffset = 36;
                private const int MemoryBaseOffset = 556;
                private const int AccessKeyOffset = 560;
                private const int Size = 564;
                private const int MAX_PATH = 260; 
    
                // data members
                public uint dwSize; 
                public uint cntUsage; 
                public uint th32ProcessID; 
                public uint th32DefaultHeapID; 
                public uint th32ModuleID; 
                public uint cntThreads; 
                public uint th32ParentProcessID; 
                public long pcPriClassBase; 
                public uint dwFlags; 
                public string szExeFile;
                public uint th32MemoryBase;
                public uint th32AccessKey;
                //Default constructor
                public PROCESSENTRY32()
                { 
    
                } 
    
                // create a PROCESSENTRY instance based on a byte array        
                public PROCESSENTRY32(byte[] aData)
                {
                    dwSize = GetUInt(aData, SizeOffset);
                    cntUsage = GetUInt(aData, UsageOffset);
                    th32ProcessID = GetUInt(aData, ProcessIDOffset);
                    th32DefaultHeapID = GetUInt(aData, DefaultHeapIDOffset);
                    th32ModuleID = GetUInt(aData, ModuleIDOffset);
                    cntThreads = GetUInt(aData, ThreadsOffset);
                    th32ParentProcessID = GetUInt(aData, ParentProcessIDOffset);
                    pcPriClassBase = (long) GetUInt(aData, PriClassBaseOffset);
                    dwFlags = GetUInt(aData, dwFlagsOffset);
                    szExeFile = GetString(aData, ExeFileOffset, MAX_PATH);
                    th32MemoryBase = GetUInt(aData, MemoryBaseOffset);
                    th32AccessKey = GetUInt(aData, AccessKeyOffset);
                } 
    
                #region Helper conversion functions
                // utility:  get a uint from the byte array
                private static uint GetUInt(byte[] aData, int Offset)
                {
                    return BitConverter.ToUInt32(aData, Offset);
                }
                // utility:  set a uint int the byte array
                private static void SetUInt(byte[] aData, int Offset, int Value)
                {
                    byte[] buint = BitConverter.GetBytes(Value);
                    Buffer.BlockCopy(buint, 0, aData, Offset, buint.Length);
                } 
    
                // utility:  get a ushort from the byte array
                private static ushort GetUShort(byte[] aData, int Offset)
                {
                    return BitConverter.ToUInt16(aData, Offset);
                }
                // utility:  set a ushort int the byte array
                private static void SetUShort(byte[] aData, int Offset, int Value)
                {
                    byte[] bushort = BitConverter.GetBytes((short)Value);
                    Buffer.BlockCopy(bushort, 0, aData, Offset, bushort.Length);
                }
                // utility:  get a unicode string from the byte array
                private static string GetString(byte[] aData, int Offset, int Length)
                {
                    String sReturn =  Encoding.Unicode.GetString(aData, Offset, Length);
                    return sReturn;
                }
                // utility:  set a unicode string in the byte array
                private static void SetString(byte[] aData, int Offset, string Value)
                {
                    byte[] arr = Encoding.ASCII.GetBytes(Value);
                    Buffer.BlockCopy(arr, 0, aData, Offset, arr.Length);
                }
                #endregion 
    
                // create an initialized data array
                public byte[] ToByteArray()
                {
                    byte[] aData;
                    aData = new byte[Size];
                    //set the Size member
                    SetUInt(aData, SizeOffset, Size);
                    return aData;
                } 
    
                public string Name
                {
                    get
                    {
                        return szExeFile.Substring(0, szExeFile.IndexOf('\0'));
                    }
                } 
    
                public ulong PID
                {
                    get
                    {
                        return th32ProcessID;
                    }
                } 
    
                public ulong BaseAddress
                {
                    get
                    {
                        return th32MemoryBase;
                    }
                } 
    
                public ulong ThreadCount
                {
                    get
                    {
                        return cntThreads;
                    }
                }
            }
            #endregion 
    
            #region PInvoke declarations
            private const int TH32CS_SNAPPROCESS = 0x00000002;
            [DllImport("toolhelp.dll")]
            public static extern IntPtr CreateToolhelp32Snapshot(uint flags, uint processid);
            [DllImport("toolhelp.dll")]
            public static extern int CloseToolhelp32Snapshot(IntPtr handle);
            [DllImport("toolhelp.dll")]
            public static extern int Process32First(IntPtr handle, byte[] pe);
            [DllImport("toolhelp.dll")]
            public static extern int Process32Next(IntPtr handle, byte[] pe);
            [DllImport("coredll.dll")]
            private static extern IntPtr OpenProcess(int flags, bool fInherit, int PID);
            private const int PROCESS_TERMINATE = 1;
            [DllImport("coredll.dll")]
            private static extern bool TerminateProcess(IntPtr hProcess, uint ExitCode);
            [DllImport("coredll.dll")]
            private static extern bool CloseHandle(IntPtr handle);
            private const int INVALID_HANDLE_VALUE = -1; 
    
            #endregion
        }
    }
    

     

    image

    장치에 연결선택

    image

    Device 선택 끝~

     

     

    image

     

    image

    여러번 메세지가 뜨는데 동의해주시면됩니다.

    Windows 탐색기에서 다음 파일을 장치의 폴더에 복사합니다.

    1. sqlce.platform.processor.cab

    2. sqlce.dev.platform.processor.cab - 쿼리 분석기 응용 프로그램(선택 사항)

    3. sqlce.repl.platform.processor.cab - 복제 지원(선택 사항)

    Featured Video: Use Bing inside a Windows Mobile Application

     


    .NET Framework


    How Do I: Establish Network Connections with Connection Manager?

    (21 Minutes 2 seconds)

    How Do I: Convert a .NET Compact Framework DateTime to a Win32 SystemTime Structure?

    (9 Minutes 40 seconds)

    How Do I: Use Existing COM Objects in .NET Compact Framework Applications?

    (33 minutes 14 seconds)

    How Do I: Programmatically Determine the Windows Mobile Device Type Using .NET Compact Framework 3.5?

    (10 minutes, 31 seconds)


    How Do I: Build a .NET Compact Framework 3.5 Application for Windows Mobile 6 Devices?

    (10 minutes, 29 seconds)

    How Do I: Implement Universal Download Capabilities?

    (22 minutes, 4 seconds)

    How Do I: Create an E-mail Attachment and Display to a Device for Review?

    (20 minutes 48 seconds)

    How Do I: Implement a Managed Application Requiring Callbacks from a Native API?

    (21 minutes 28 seconds)


    How Do I: Create a Desktop Project for Installing CAB Files to a Windows Mobile Device?

    (19 minutes 21 seconds)

    Data and Services


    How Do I: Use Bing inside a Windows Mobile Application?
    (28 Minutes 07 seconds)

    How Do I: Display Virtual Earth Maps inside a PictureBox Control?
    (35 Minutes 28 seconds)

    How Do I: Use the MapPoint Web Service on Windows Mobile Devices?
    (24 Minutes 40 seconds)

    How Do I: Use Custom Extension Methods to Improve the Efficiency of LINQ Queries?
    (33 minutes 14 seconds)


    How Do I: Work Around LINQ to DataSet Limitations in Visual Basic Device Projects?
    (23 minutes, 3 seconds)

    How Do I: Efficiently Query a SQL Server Compact Database Using LINQ?
    (34 minutes, 33 seconds)

    How Do I: Use Windows Communications Foundation to Safely Send Messages to Offline Devices?
    (34 minutes, 3 seconds)

    How Do I: Maximize Communication Efficiency of SQL Server Compact Edition Data Synchronization?
    (26 minutes, 53 seconds)


    How Do I: Programmatically Determine Whether a Specific SQL Table Exists?
    (15 minutes 40 seconds)

    How Do I: Merge Replication for Windows Mobile Device Access? (Part 1)
    (12 minutes, 50 seconds)

    How Do I: Merge Replication for Windows Mobile Device Access? (Part 2)
    (13 minutes, 29 seconds)

    How Do I: Improve Data Performance Using Visual Studio 2005?
    (17 minutes, 22 seconds)

    How Do I: Create Localized Applications on Windows Mobile Devices?
    How Do I: Create Localized Applications on Windows Mobile Devices?
    (29 minutes, 57 seconds)
    How Do I: Use the Virtual Earth Geocode Web Service on Windows Mobile Devices?
    How Do I: Use the Virtual Earth Geocode Web Service on Windows Mobile Devices?
    (25 minutes, 19 seconds)

    Hardware, Performance, and Resource Management


    How Do I: Preserve Battery Power When My Application is in the Background?

    (11 Minutes 15 seconds)

    How Do I: Assure That My Application Code Continues Running When the Device is in Suspended Mode?

    (18 minutes 47 seconds)

    How Do I: Respond to the Windows Mobile Request to Release Resources?

    (29 Minutes 2 seconds)

    How Do I: Monitor for an Application to Exit Without Draining the Device Battery?

    (35 Minutes 32 seconds)


    How Do I: Use the GPS Intermediate Driver to Retrieve Location Information?

    (28 Minutes 57 seconds)

    How Do I: Use Custom Extension Methods to Improve the Efficiency of LINQ Queries?

    (33 minutes 14 seconds)

    How Do I: Use the .NET Compact Framework 3.5 Remote Performance Monitor?

    (38 minutes, 55 seconds)

    How Do I: Detect Managed Memory Leaks Using Remote Performance Monitor?

    (16 minutes, 57 seconds)


    How Do I: Efficiently Query a SQL Server Compact Database Using LINQ?

    (34 minutes, 33 seconds)

    How Do I: Use the CLR Profiler to Detect Finalization Problems on My Device?

    (30 minutes, 23 seconds)

    How Do I: Programmatically Determine the Windows Mobile Device Type Using .NET Compact Framework 3.5?

    (10 minutes, 31 seconds)

    How Do I: Run One Instance Only of My .NET Compact Framework Application?

    (23 minutes, 13 seconds)


    How Do I: Maximize Communication Efficiency of SQL Server Compact Edition Data Synchronization?

    (26 minutes, 53 seconds)

    How Do I: Find the List of Storage Cards Loaded into My Device?

    (21 minutes, 46 seconds)

    How Do I: Programmatically Monitor for a Specific Time of Day Without Draining a Device Battery?

    (39 minutes 53 seconds)

    How Do I: Detect and Verify a Network Connection?

    (33 minutes, 6 seconds)


    How Do I: Detect and Identify a Mobile Device?

    (28 minutes 45 seconds)

    How Do I: Programmatically Determine If a Device Has a Physical Keyboard Connected?

    (16 minutes 22 seconds)

    How Do I: Improve Data Performance Using Visual Studio 2005?

    (17 minutes, 22 seconds)

    How Do I: Devices: Create a superfast starting Managed Windows Mobile application?

    (42 minutes, 54 seconds)


    How Do I: Use Reflection to Access Private Members in .NET Compact Framework Types?

    (43 minutes 08 seconds)

    How Do I: Use Windows Mobiles 6.5 Gestures in Managed Code?

    (37 minutes 02 seconds)

    Multithreaded Programming


    How Do I: Use the ThreadPool to Execute Worker Threads?
    (15 minutes 21 seconds)

    How Do I: Use a Monitor Object for Thread Synchronization?
    (13 minutes 18 seconds)

    How Do I: Synchronize Multiple Threads?
    (18 Minutes 45 seconds)

    How Do I: Update User Interface Controls in Multithreaded Applications?
    (25 minutes, 33 seconds)


    How Do I: Correctly Terminate Multithreaded .NET Compact Framework Applications?
    (16 minutes, 47 seconds)

    How Do I: Implement a Managed Application Requiring Callbacks from a Native API?
    (21 minutes 28 seconds)

    Office


    How Do I: Update Pocket
    Outlook Items Without
    Invalid Operation Exceptions?
    (21 minutes, 36 seconds)

    How Do I: Search the
    Pocket Outlook Tasks, Contacts,
    and Appointments Folders?
    (29 minutes, 37 seconds)

    Security and Deployment


    How Do I: Use Windows Communications Foundation to Safely Send Messages to Offline Devices?
    (34 minutes, 3 seconds)

    How Do I: View and Manage the List of Certificates Installed on a Device?
    (8 minutes, 49 seconds)

    How Do I: Use Visual Studio 2008 Device Security?
    (16 minutes, 47 seconds)

    How Do I: Ensure My Application Includes Necessary Security Privileges?
    (22 minutes 58 seconds)


    How Do I: Use Development Test Certificates to Sign an Application?
    (15 minutes, 2 seconds)

    Testing and Debugging


    How Do I: Enable Windows Mobile Device Emulator UDP Support?
    (13 Minutes 52 seconds)

    How Do I: Successfully Debug Application Code that Establishes a Cellular or Wi-Fi Connection?
    (13 Minutes 52 seconds)

    How Do I: Attach the Debugger to a .NET Compact Framework Application that is Already Running?
    (35 Minutes 32 seconds)

    How Do I: Run Smart Device Unit Tests from a Command Prompt?
    (10 Minutes 4 seconds)


    How Do I: Use The Remote Logging Configuration Tool?
    (20 Minutes 29 seconds)

    How Do I: Automate the Setup of a Debug and Test Environment That Uses the Cellular Emulator?
    (32 minutes, 33 seconds)

    How Do I: Use the CLR Profiler to Detect Finalization Problems on My Device?
    (30 minutes, 23 seconds)

    How Do I: Test Unit Tests for Devices?
    (17 minutes, 38 seconds)


    How Do I: Build and Run a Unit Test for a Smart Device Application?
    (27 minutes, 6 seconds)

    How Do I: Upgrade My Mobile Device Projects from Visual Studio 2005 to Visual Studio 2008?
    (27 minutes, 53 seconds)

    How Do I: Programmatically Control the Configuration of a Running Device Emulator?
    (38 minutes, 54 seconds)

    How Do I: Use Visual Studio 2008 Device Security?
    (16 minutes, 47 seconds)


    How Do I: Programmatically Control Device Emulators and the Device Emulator Manager in Visual Studio 2008?
    (41 minutes, 46 seconds)

    How Do I: Use the Microsoft Hopper Test Tool to Stress Test My Windows Mobile Application?
    (18 minutes, 27 seconds)

    How Do I: Use Development Test Certificates to Sign an Application?
    (15 minutes, 2 seconds)

    How Do I: Launch Smartphone Applications from Visual Studio?
    (10 minutes 15 seconds)


    How Do I: Automate the Device Emulator Configuration for Windows Mobile?
    (20 minutes, 30 seconds)

    How Do I: Create a Test Server Using the Local Server Framework in the Windows Mobile 6 SDK?
    (42 minutes, 23 seconds)

    How Do I: Configure the Device Emulator to Use an Emulated Cellular Connection?
    (12 minutes 6 seconds)

    How Do I: Debug Native Code in a Managed Windows Mobile Application?
    (11 minutes, 41 seconds)

    User Interface Programming


    How Do I: Display a Background Image on a Form?
    (12 Minutes 4 seconds)

    How Do I: Associate an Application with the Hardware Buttons on a Windows Mobile Device?
    (13 Minutes 3 seconds)

    How Do I: Create a Process-based Splash Screen Inside a .NET Compact Framework Application?
    (44 Minutes 16 seconds)

    How Do I: Create a Form-based Splash Screen Inside My .NET Compact Framework Application?
    (19 Minutes 13 seconds)


    How Do I: Update User Interface Controls in Multithreaded Applications?
    (25 minutes, 33 seconds)

    How Do I: Monitor and Manage Display Orientation Changes?
    (27 minutes 5 seconds)

    How Do I: Hide Standard Device UI Elements in a .NET Compact Framework Application?
    (22 minutes, 4 seconds)

    How Do I: Know if a Combo Box Drop-Down List is Visible in the .NET Compact Framework?
    (12 minutes 59 seconds)

    How Do I: Create Localized Applications on Windows Mobile Devices?
    (29 minutes 57 seconds)

    Web Technologies


    How Do I: Create a Visual Studio 2005 ASP.NET AJAX Application to Work with Windows Mobile Devices?
    (21 minutes, 29 seconds)

    How Do I: Send and Receive Short Message Service (SMS) Messages?
    (26 minutes, 45 seconds)

    How Do I: Download Script Code On-Demand to My Internet Explorer Mobile AJAX Pages?
    (19 minutes, 45 seconds)

    How Do I: Make Dynamic JavaScript Object Notation Calls From Internet Explorer Mobile?
    (37 minutes 30 seconds)


    How Do I: Determine Whether a Windows Mobile Device Supports ASP.NET AJAX?
    (27 minutes, 56 seconds)

    State and Notification Broker


    How Do I: Automatically Start an Application on a System State Change?

    (17 Minutes 58 seconds)

    How Do I: Add User-Defined States?

    (19 Minutes 45 seconds)

    How Do I: Limit System Notifications to Only Those Containing Specific Data?

    (13 minutes 8 seconds)

    How Do I: Auto-Start an Application?

    (11 minutes 15 seconds)


    How Do I: Schedule an Application to Run at a Specific Time?

    (12 minutes 6 seconds)

    How Do I: Get an Application to Automatically Start When a Mobile Device Wakes Up?

    (21 minutes 35 seconds)

    PowerToys


    How Do I: Use NETCFCFG to Run My Application Against a Specific Version of the .NET Compact Framework?
    (29 minutes 09 seconds)

    How Do I: Use the .NET Compact Framework 3.5 Remote Performance Monitor?
    (38 minutes, 55 seconds)

    How Do I: Detect Managed Memory Leaks Using Remote Performance Monitor?
    (16 minutes, 57 seconds)

    How Do I: Use the CLR Profiler to Detect Finalization Problems on My Device?
    (30 minutes, 23 seconds)


    How Do I: View and Control a Windows Mobile 5.0 or Windows Mobile 6 Device from My Desktop?
    (15 minutes 4 seconds)

    + Recent posts