<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Русский блог Windows Mobile</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/windowsmobile_ru/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/feed.xml</link>
    <description />
    <lastBuildDate>Wed, 17 Apr 2019 03:27:15 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Windows Phone 7 для разработчиков</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/windows-phone-7</link>
      <pubDate>Mon, 15 Mar 2010 13:31:05 GMT</pubDate>
      <dc:creator><![CDATA[Marat F Bakirov]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2010/03/15/windows-phone-7/</guid>
      <description><![CDATA[&#160;  Как известно, сейчас проходит конференция MIX . На этой конференции анонсировали средства...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Как известно, сейчас проходит конференция MIX . На этой конференции анонсировали средства разработки для Windows Phone 7.</p>  <p>Также стали доступными предварительные версии (CTP) средств для разработчика. Также выложена предварительная версия training kit. </p>  <p>&#160;</p>  <p>В наборе находятся</p>  <p style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpFirst"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt; mso-fareast-font-family: arial"><span style="mso-list: ignore">-<span style="font: 7pt &#39;Times New Roman&#39;">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt">CTP of Visual Studio 2010 Express for Windows Phone – бесплатная версия Visual Studio для Windows Phone.&#160; Я еще сам не смотрел, но утверждают что если есть нормальная студия Vs2010 Rc Pro или выше то к ней поставится Addin.</span></p>  <p style="margin: 0in 0in 0pt 0.5in" class="MsoListParagraphCxSpMiddle"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt"></span></p>  <p>&#160;</p>  <p></p>  <p></p>  <p style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt; mso-fareast-font-family: arial"><span style="mso-list: ignore">-<span style="font: 7pt &#39;Times New Roman&#39;">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt">Windows Phone 7 Series Emulator – ну как без эмулятора?. </span></p>  <p></p>  <p></p>  <p></p>  <p style="margin: 0in 0in 0pt 0.5in" class="MsoListParagraphCxSpMiddle"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt"></span></p>  <p>&#160;</p>  <p></p>  <p></p>  <p style="text-indent: -0.25in; margin: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt; mso-fareast-font-family: arial"><span style="mso-list: ignore">-<span style="font: 7pt &#39;Times New Roman&#39;">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt">Silverlight для Windows Phone. </span></p>  <p style="margin: 0in 0in 0pt 0.5in" class="MsoListParagraphCxSpMiddle"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt"></span></p>  <p>&#160;</p>  <p></p>  <p></p>  <p style="text-indent: -0.25in; margin: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt; mso-fareast-font-family: arial"><span style="mso-list: ignore">-<span style="font: 7pt &#39;Times New Roman&#39;">&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="line-height: 115%; font-family: &#39;Arial&#39;,&#39;sans-serif&#39;; font-size: 10pt">XNA Game Studio для Windows Phone.</span></p>  <p>К сожалению я пока не нашел stand alone installer, только web. </p>  <p>&#160;</p>  <p>Ссылки</p>  <p>Windows Phone Developer Tools CTP</p>  <p><a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&amp;displaylang=en#filelist">https://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&amp;displaylang=en#filelist</a></p>  <p>&#160;</p>  <p>Видео с показом Windows Phone 7</p>  <p><a href="https://channel9.msdn.com/posts/LauraFoy/First-Look-Windows-Phone-7-Series-Hands-on-Demo/">https://channel9.msdn.com/posts/LauraFoy/First-Look-Windows-Phone-7-Series-Hands-on-Demo/</a></p>  <p>&#160;</p>  <p>Пост Сомы Сомасигара</p>  <p><a title="https://blogs.msdn.com/somasegar/archive/2010/03/15/introducing-windows-phone-7-development-tools.aspx" href="https://blogs.msdn.com/somasegar/archive/2010/03/15/introducing-windows-phone-7-development-tools.aspx">https://blogs.msdn.com/somasegar/archive/2010/03/15/introducing-windows-phone-7-development-tools.aspx</a></p>  <p>&#160;</p>  <p>MSDN дкументация</p>  <p><a href="https://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx">https://msdn.microsoft.com/en-us/library/ff402535(VS.92).aspx</a></p>  <p>&#160;</p>  <p>Блог Чарли Киндела</p>  <p><a href="https://blogs.msdn.com/ckindel/">https://blogs.msdn.com/ckindel/</a></p>  <p>&#160;</p>  <p>Training Kit на channel 9</p>  <p><a href="https://channel9.msdn.com/learn/courses/WP7TrainingKit/">https://channel9.msdn.com/learn/courses/WP7TrainingKit/</a></p>  <p>С уважением,</p>  <p>Марат Бакиров</p>  <p>crossposted from</p>  <p><a href="https://blogs.msdn.com/mbakirov/archive/2010/03/16/9978954.aspx">https://blogs.msdn.com/mbakirov/archive/2010/03/16/9978954.aspx</a></p>  <p>Еще ссылка</p>  <p><a href="https://blogs.msdn.com/rusaraford/archive/2010/03/15/9978914.aspx">https://blogs.msdn.com/rusaraford/archive/2010/03/15/9978914.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Александр Яхнин (Alex Yakhnin) в России!</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/alex-yakhnin</link>
      <pubDate>Mon, 07 Dec 2009 20:54:11 GMT</pubDate>
      <dc:creator><![CDATA[Marat F Bakirov]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/12/07/alex-yakhnin/</guid>
      <description><![CDATA[Александр Яхнин, статьи которого мы неоднократно переводили в русском блоге windows mobile, сегодня...]]></description>
      <content:encoded><![CDATA[<p><a href="https://blogs.msdn.com/priozersk/">Александр Яхнин</a>, статьи которого мы неоднократно переводили в <a href="https://blogs.msdn.com/windowsmobile_ru/">русском блоге windows mobile</a>, сегодня ( 8 декабря) будет выступать на юзер группе в Санкт Петербурге.</p>  <p>Ссылка на регистрацию тут</p>  <p><a title="https://sp.ineta.ru/Events/EventOneSessionInfo.aspx?Id=bb2b31de-59c7-4b98-8b03-7b37998818b9" href="https://sp.ineta.ru/Events/EventOneSessionInfo.aspx?Id=bb2b31de-59c7-4b98-8b03-7b37998818b9">https://sp.ineta.ru/Events/EventOneSessionInfo.aspx?Id=bb2b31de-59c7-4b98-8b03-7b37998818b9</a></p>  <p>&#160;</p>  <p>Не упустите редкую возможность задать вопросы мировому эксперту по Windows Mobile.</p>  <p>crossposted from</p>  <p><a href="https://blogs.msdn.com/mbakirov/archive/2009/12/08/9933894.aspx">https://blogs.msdn.com/mbakirov/archive/2009/12/08/9933894.aspx</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Сбор обратной связи.</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/43</link>
      <pubDate>Tue, 10 Nov 2009 15:39:26 GMT</pubDate>
      <dc:creator><![CDATA[Marat F Bakirov]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/11/10/43/</guid>
      <description><![CDATA[Уважаемые пользователи Windows phone! Мы надеемся, что многие из вас уже пользуются телефонами с...]]></description>
      <content:encoded><![CDATA[<p>Уважаемые пользователи Windows phone! Мы надеемся, что многие из вас уже пользуются телефонами с новой ОС. Пока ваши впечатления ещё свежие и яркие, хотелось бы узнать, чего по вашему не хватает в новой ОС? Также хотелось бы знать, не заметили ли вы каких-либо ошибок? Мы готовы услышать Ваш feedback. Присылайте свои впечатления по адресу i-maratb@microsoft.com до 16 ноября с темой письма &quot;Windows Phone feedback&quot; . </p>  <p>Интересуют телефоны с русской системой Windows Mobile 6.5 (Windows Phone) и именно они. </p>  <p>С уважением, Марат Бакиров i-maratb@microsoft.com </p>]]></content:encoded>
    </item>
    <item>
      <title>Конкурс для разработчиков Windows Mobile Developers – 2009</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/windows-mobile-developers-20</link>
      <pubDate>Mon, 19 Oct 2009 01:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/10/19/windows-mobile-developers-20/</guid>
      <description><![CDATA[Microsoft совместно с Softline Venture Partners объявляет о старте конкурса приложений для...]]></description>
      <content:encoded><![CDATA[<P><IMG style="WIDTH: 148px; HEIGHT: 171px" src="https://ms4press.ru/image.axd?picture=2009%2f10%2fron_aradmediacite_web.jpg" width=317 height=866 mce_src="https://ms4press.ru/image.axd?picture=2009%2f10%2fron_aradmediacite_web.jpg"></P>
<P>Microsoft совместно с Softline Venture Partners объявляет о старте конкурса приложений для платформы Windows Mobile «Windows Mobile Developers – 2009». <BR>Разработчики будут соревноваться в четырех номинациях: «Выбор жюри», «Выбор сообщества», «Лучшее приложение, или виджет для Windows Mobile 6.5» и специальная номинация «Лучший доступ к музыке и видео с мобильного устройства» от компании МТС.<BR>
<DIV class=more><A href="https://www.wmdev.ru/" mce_href="https://www.wmdev.ru">Читать далее</A></DIV>]]></content:encoded>
    </item>
    <item>
      <title>Телефоны с Windows уже доступны!</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/windows</link>
      <pubDate>Sun, 18 Oct 2009 22:51:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/10/18/windows/</guid>
      <description><![CDATA[Оригинал: https://blogs.msdn.com/robcamer/archive/2009/10/06/windows-phone-is-now-available.aspx...]]></description>
      <content:encoded><![CDATA[<P mce_keep="true">Оригинал: <A href="https://blogs.msdn.com/robcamer/archive/2009/10/06/windows-phone-is-now-available.aspx" mce_href="https://blogs.msdn.com/robcamer/archive/2009/10/06/windows-phone-is-now-available.aspx">https://blogs.msdn.com/robcamer/archive/2009/10/06/windows-phone-is-now-available.aspx</A> </P>
<DIV>Найдите подробную информацию о телефонах с Windows на <A href="https://www.windowsphone.com/" mce_href="https://www.windowsphone.com/"><SPAN>https://www.windowsphone.com</SPAN></A>.&nbsp;Впервые телефоны с Windows ориентированы, как на бизнес, так и частных пользователей. Традиционно Windows Mobile ориентирована была на &nbsp;бизнес пользователей, но за последние несколько лет рынок сильно изменился. Вот несколько новых доступных устройств:</DIV>
<DIV><A href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/robcamer/WindowsLiveWriter/WindowsPhoneIsNowAvailable_12E21/image_thumb_2.png" original-url="https://blogs.msdn.com/blogfiles/robcamer/WindowsLiveWriter/WindowsPhoneIsNowAvailable_12E21/image_thumb_2.png" mce_href="https://blogs.msdn.com/blogfiles/robcamer/WindowsLiveWriter/WindowsPhoneIsNowAvailable_12E21/image_thumb_2.png"><SPAN><IMG border=0 src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/robcamer/WindowsLiveWriter/WindowsPhoneIsNowAvailable_12E21/image_thumb_2.png" original-url="https://blogs.msdn.com/blogfiles/robcamer/WindowsLiveWriter/WindowsPhoneIsNowAvailable_12E21/image_thumb_2.png" width=364 height=253 mce_src="https://blogs.msdn.com/blogfiles/robcamer/WindowsLiveWriter/WindowsPhoneIsNowAvailable_12E21/image_thumb_2.png" v:shapes="Рисунок_x0020_3"></SPAN></A></DIV>
<DIV>Вы можете перейти по <A href="https://www.microsoft.com/windowsmobile/en-us/devices/devices.mspx#none" mce_href="https://www.microsoft.com/windowsmobile/en-us/devices/devices.mspx#none">этой ссылке</A> для получения более подробной информации о телефонах с Windows. Может быть, у вас уже имеется телефон с Windows, который может быть обновлен. Эта <A href="https://www.microsoft.com/windowsmobile/en-us/meet/wm65-upgrade.mspx" mce_href="https://www.microsoft.com/windowsmobile/en-us/meet/wm65-upgrade.mspx">ссылка</A> проинформируется вас о том, <A href="https://www.microsoft.com/windowsmobile/en-us/meet/wm65-upgrade.mspx" mce_href="https://www.microsoft.com/windowsmobile/en-us/meet/wm65-upgrade.mspx">как можно обновить ваш телефон до Windows <SPAN>Mobile &nbsp;6.5.</SPAN></A> &nbsp;Microsoft ожидает порядка 30 новых телефонов с Windows, в более чем 20 странах к концу года. Вы можете прочитать о новых возможностях и функциях Windows Mobile 6.5 по этой <A href="https://windowsteamblog.com/blogs/windowsphone/archive/2009/10/06/new-windows-phones-are-here.aspx" mce_href="https://windowsteamblog.com/blogs/windowsphone/archive/2009/10/06/new-windows-phones-are-here.aspx">ссылке</A>.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Перевод: <A href="https://vkovall.blogspot.com/" mce_href="https://vkovall.blogspot.com">Василий В. Коваль</A></DIV>]]></content:encoded>
    </item>
    <item>
      <title>Затемнение фона в WM приложении</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/wm</link>
      <pubDate>Thu, 15 Oct 2009 03:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/10/15/wm/</guid>
      <description><![CDATA[Оригинал: https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx
На днях...]]></description>
      <content:encoded><![CDATA[<P>Оригинал: <A href="https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx" target=_blank mce_href="https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx">https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx</A></P>
<P>На днях мой заказчик спросил меня, как можно сделать в его Windows Mobile приложении эффект затемняющегося фона при показе окна сообщения (MessageBox). В принципе, это достаточно несложно сделать, используя метод DrawAlpha класса GraphicsExtender, как я рассказывал об это в этом вебкасте. Взгляните на этот отрывок кода:</P>
<FORM id=aspnetForm method=post name=aspnetForm action=https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx>
<DIV id=content>
<DIV id=main>
<DIV class=post>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'">protected</SPAN><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"> <SPAN style="COLOR: blue">override</SPAN> <SPAN style="COLOR: blue">void</SPAN> OnPaint(<SPAN style="COLOR: #2b91af">PaintEventArgs</SPAN> e)<?xml:namespace prefix = o /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'">{<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">// Create a temp bitmap<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: #2b91af">Bitmap</SPAN> dimBackGround = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Bitmap</SPAN>(<SPAN style="COLOR: blue">this</SPAN>.Width, <SPAN style="COLOR: blue">this</SPAN>.Height);<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: #2b91af">Graphics</SPAN> gxTemp = <SPAN style="COLOR: #2b91af">Graphics</SPAN>.FromImage(dimBackGround);<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">// Color it black<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>gxTemp.Clear(<SPAN style="COLOR: #2b91af">Color</SPAN>.Black);<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">// Draw it with alpha transparency<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>e.Graphics.DrawAlpha(dimBackGround, 100, 0, 0);<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">// Clean up<o:p></o:p></SPAN></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>gxTemp.Dispose();<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>dimBackGround.Dispose();<SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-fareast-font-family: calibri; mso-ansi-language: en-us; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: en-us; mso-fareast-theme-font: minor-latin; mso-bidi-language: ar-sa"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN>} <SPAN style="mso-spacerun: yes">&nbsp;</SPAN></SPAN></P></DIV></DIV></DIV></FORM>
<P>Написанный выше код является перегруженным методом OnPaint класса BackgroundForm, который я добавил в свой демонстрационный проект. Я установил свойство этой формы FormBorderStyle в None, а WindowState в Maximized, чтобы она отображалась на полный экран. 
<P>И теперь, перед отображением окна сообщения (MessageBox) нужно показать форму BackroundForm:</P>
<FORM id=aspnetForm method=post name=aspnetForm action=https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx>
<DIV id=content>
<DIV id=main>
<DIV class=post>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes"></SPAN><SPAN style="COLOR: #2b91af">BackgroundForm</SPAN> form = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">BackgroundForm</SPAN>();<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>form.Show();<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><SPAN style="COLOR: #2b91af">MessageBox</SPAN>.Show(txtMessage.Text);<o:p></o:p></SPAN></P>
<P style="MARGIN: 0pt 0pt 10pt" class=MsoNormal><SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>form.Close();</SPAN></P></DIV></DIV></DIV></FORM>
<P mce_keep="true">&nbsp;</P>
<P>И вот результат: 
<P><IMG src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/09/52/30/12/Dimming.PNG" original-url="https://blogs.msdn.com/photos/priozersk/images/9523012/original.aspx" width=291 height=465 mce_src="https://blogs.msdn.com/photos/priozersk/images/9523012/original.aspx"> 
<P><A href="https://blogs.msdn.com/priozersk/attachment/9522720.ashx" target=_blank mce_href="https://blogs.msdn.com/priozersk/attachment/9522720.ashx">Скачать пример.</A> 
<P>Перевел: <A href="mailto:alant@student-partners.com" target=_blank mce_href="mailto:alant@student-partners.com">Антонов Алексей</A>. </P>]]></content:encoded>
    </item>
    <item>
      <title>Как начать разработку мобильных приложений, используя Visual Studio и Windows Mobile 6 SDK</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/83</link>
      <pubDate>Wed, 07 Oct 2009 22:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/10/07/83/</guid>
      <description><![CDATA[Оригинал: https://msdn.microsoft.com/en-us/library/dd721907.aspx
Автор оригинальной статьи: Андрей...]]></description>
      <content:encoded><![CDATA[<P>Оригинал: <A href="https://msdn.microsoft.com/en-us/library/dd721907.aspx" mce_href="https://msdn.microsoft.com/en-us/library/dd721907.aspx">https://msdn.microsoft.com/en-us/library/dd721907.aspx</A></P>
<P>Автор оригинальной статьи: Андрей Радингер (Andrej Radinger), соучредитель компании <A href="https://go.microsoft.com/fwlink/?LinkId=148815" mce_href="https://go.microsoft.com/fwlink/?LinkId=148815">APPAMundi Limited</A>.</P>
<P>Оригинальная статья опубликована 30 июля 2009 года.</P>
<H2>Summary</H2>
<P>В этой статье рассказывается, как начать разработку приложений для устройств, работающих под управлением Windows Mobile®, используя для этого привычные инструменты – Microsoft® Visual Studio® 2008 и Microsoft .NET Compact Framework 3.5, специально созданный для Windows Mobile. Также в статье объясняется, как расширить возможности приложений с помощью инструментов, включенных в Windows Mobile SDK.</P>
<H2>Инструменты для работы и примеры</H2>
<UL>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=148953" mce_href="https://go.microsoft.com/fwlink/?LinkId=148953">Windows Mobile 6 SDK</A></LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=148956" mce_href="https://go.microsoft.com/fwlink/?LinkId=148956">Образы эмулятора Windows Mobile 6.1</A></LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=148957" mce_href="https://go.microsoft.com/fwlink/?LinkId=148957">Microsoft ActiveSync 4.5</A></LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=149155" mce_href="https://go.microsoft.com/fwlink/?LinkId=149155">Windows Mobile Device Center 6.1 (WMDC)</A></LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=148960" mce_href="https://go.microsoft.com/fwlink/?LinkId=148960">Microsoft SQL Server Compact 3.5 SP 1 для Windows Mobile</A></LI>
<LI>Microsoft .NET Compact Framework 3.5 Redistributable</LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=149219" mce_href="https://go.microsoft.com/fwlink/?LinkId=149219">Пример приложения</A></LI></UL>
<H2>Продукты и технологии</H2>
<UL>
<LI>Microsoft Visual Studio 2005 и Visual Studio 2008</LI>
<LI>Windows Mobile 6</LI>
<LI>Инструменты Windows Mobile 6 SDK</LI>
<LI>Microsoft .NET Compact Framework 3.5</LI></UL>
<H2>Содержание</H2>
<P>Эта статья посвящена разработке клиентских приложений для Window Mobile, работающих в автономном режиме и использующих .NET Compact Framework. .NET Compact Framework (.NET CF) включает некоторые библиотеки из полной версии Microsoft .NET Framework и содержит все необходимое для создания полноценного Windows Mobile приложения. Visual Studio 2008 поддерживает работу с .NET Compact Framework версий 2.0 и 3.5.</P><A title=#Visual_Studio_and_NET_Compact_Framework name=#Visual_Studio_and_NET_Compact_Framework></A>
<H2>Visual Studio и .NET Compact Framework</H2>
<P>Если вы используете Visual Studio для разработки настольных приложений, то создать мобильное приложение для вас не проблема – у вас уже есть все необходимые для этого знания и инструменты. Конечно, между платформой для настольных компьютеров и платформой для мобильных устройств есть некоторые различия, и подходы к разработке несколько отличаются, однако общие принципы остаются те же.</P>
<P>Прежде чем начать разработку мобильного приложения, нужно ответить на следующие вопросы:</P>
<UL>
<LI>Какие инструменты разработки у вас есть, и с какими вам нравится работать?</LI>
<LI>На какой мобильной платформе должно работать ваше приложение – на Windows Mobile для смартфонов или на Windows Mobile для карманных компьютеров и коммуникаторов?</LI>
<LI>Какую версию .NET Compact Framework вы хотите использовать?</LI></UL>
<P>От ответов на эти вопросы зависит как общее направление будущего проекта, так и то, как к нему приступить. Вот еще несколько важных вопросов, над которыми следует поразмыслить:</P>
<UL>
<LI>Ваше приложение будет работать автономно, или ему потребуется подключение к Интернет?</LI>
<LI>Сколько стоит Интернет-трафик у вашего провайдера сотовой связи?</LI>
<LI>Хотите ли вы использовать возможности сенсорного экрана?</LI>
<LI>Должно ли будущее приложение работать на нескольких типах устройств, или только на одном?</LI>
<LI>Каковы ваши требования к безопасности?</LI></UL>
<P>Проанализируйте свои ответы, это поможет вам выбрать верное направление. В этой статье рассказано, как с помощью .NET Compact Framework создать мобильное приложение, работающее автономно.</P>
<H3>Visual Studio</H3>
<P>Возможность разрабатывать мобильные приложения появилась еще Visual Studio 5.0. В Visual Studio 2005 средства разработки приложений для Windows Mobile стали важной частью среды, и теперь разработчики настольных приложений могут легко перейти к разработке приложений для мобильных устройств.</P>
<P>Visual Studio 2005 позволяет создавать приложения, использующие .NET CF 2.0 и 1.0. Вместе с Visual Studio 2005 идут инструменты и SDK, позволяющие создавать приложения для смартфонов (Smartphone 2003), для карманных компьютеров (Pocket PC 2003 SE) и Windows CE. Если в Visual Studio 2005 нужна поддержка Windows Mobile 5.0 (редакции для смартфонов, карманных компьютеров и коммуникаторов) или Windows Mobile 6 (редакции Standard, Classic и Professional), необходимо дополнительно установить соответствующие SDK. Для Windows Mobile 5.0 существует два SDK – один для смартфонов, другой для карманных компьютеров и коммуникаторов. Для Windows Mobile 6 тоже есть два SDK – один для редакции Standard, второй для редакции Classic и Professional. В SDK входит набор инструментов, которые помогут ускорить процесс разработки и сделают его более приятным – это эмуляторы устройств, средства для работы с GPS, эмулятор оператора сотовой связи и многое другое.</P>
<P>В Visual Studio 2008 расширены возможности среды разработки и введена дополнительная функциональность. По умолчанию Visual Studio 2008 поддерживает Windows Mobile 5.0, для разработки приложений для Windows Mobile 6 требуется дополнительно установить нужную редакцию SDK. Visual Studio 2008 позволяет создавать приложения, использующие .NET Compact Framework версий 2.0 и 3.5. Некоторые новые возможности Visual Studio 2008 перечислены ниже:</P>
<UL>
<LI>Поддержка разработки unit-тестов для мобильных устройств (доступна в редакциях Visual Studio Developer Edition и Visual Studio Team Suite).</LI>
<LI>Удаленный монитор производительности.</LI>
<LI>Диспетчер безопасности устройств (компонент Visual Studio 2008 IDE).</LI>
<LI>Новые эмуляторы устройств и диспетчер эмуляторов устройств (Device Emulator Manager) версии 3.0.</LI>
<LI>Усовершенствованный мастер новых проектов для Windows Mobile приложений.</LI></UL>
<P>Поддержка ранних версий .NET CF в Visual Studio 2005 и Visual Studio 2008 дает возможность начать использовать последнюю версию средств разработки, и при этом сохранить совместимость с уже существующими проектами, которые были написаны на более ранних платформах.</P>
<P>Выбор среды разработки и платформы может зависеть от ответа на вопрос – как обеспечить совместимость с текущими проектами, над которыми вы сейчас работаете?</P>
<H3>.NET Compact Framework</H3>
<P>.NET Compact Framework унаследовал архитектуру полной версии .NET Framework, но, как несложно догадаться из названия, .NET CF меньше – он содержит только подмножество библиотек классов полной версии. Кроме всего прочего это означает, что большая часть приложений, написанных для .NET CF, будет без каких-либо модификаций работать на настольном компьютере. Функциональность .NET CF была сокращена по двум причинам – во-первых, для компактных устройств не нужно поддерживать некоторые возможности настольных приложений, а во-вторых, объемы памяти в смартфонах и карманных компьютерах ограничены. В документации к Visual Studio подробно описано, чем .NET Compact Framework отличается от .NET Framework. Наиболее важные отличия .NET CF 2.0 от .NET Framework перечислены ниже:</P>
<UL>
<LI>• .NET CF не поддерживает чтение файлов конфигурации. Для этого используются внешние инструменты, например, Mobile Client Software Factory (MCSF) или «фреймворк интеллектуального устройства» (“smart device framework ”), который является частью OpenNetCF (OpenNETCF SDF).</LI>
<LI>.NET CF не поддерживает ClickOnce.</LI>
<LI>.NET CF не поддерживает Remoting.</LI>
<LI>.NET CF не поддерживает двоичную сериализацию.</LI>
<LI>.NET CF не поддерживает печать.</LI>
<LI>По сравнению с версией 1.0 в .NET CF 2.0 внесены некоторые усовершенствования – улучшена производительность и совместимость с .NET Framework и с элементами управления Windows Forms. Некоторые новые и усовершенствованные элементы управления перечислены ниже: 
<UL>
<LI><B>MonthCalendar</B>. Добавлен в .NET CF 2.0.</LI>
<LI><B>DataGrid</B>. Существенно улучшен.</LI>
<LI><B>DateTimePicker</B>. Добавлен в .NET CF 2.0.</LI>
<LI><B>LinkLabel</B>. Добавлен в .NET CF 2.0.</LI>
<LI><B>Splitter</B>. Добавлен в .NET CF 2.0.</LI>
<LI><B>WebBrowser</B>. Добавлен в .NET CF 2.0.</LI></UL></LI></UL>
<P>Поскольку Visual Studio 2005 и 2008 позволяют разрабатывать приложения для разных разрешений и ориентаций экрана, в .NET CF 2.0 усовершенствованы средства для управления экраном и расположением элементов интерфейса. При изменении ориентации с книжной на альбомную и наоборот все элементы формы должны уместиться на экран, а само приложение не должно потерять часть функциональности. Для этого в .NET CF 2.0 были добавлены:</P>
<UL>
<LI>Механизмы для докирования и привязки элементов.</LI>
<LI>Автоматические полосы прокрутки. Если при изменении ориентации экрана какие-то элементы формы окажутся вне видимой области, автоматически будут созданы вертикальные и/или горизонтальные полосы прокрутки, благодаря чему никакие элементы интерфейса не потеряются.</LI>
<LI>Возможность переключения между элементами управления с помощью клавиши TAB.</LI></UL>
<P>Работа с данными в .NET CF 2.0 происходит почти так же, как в полной версии .NET Framework – ADO.NET поддерживается практически в полном объеме, поддерживается взаимодействие с различными версиями Microsoft SQL Server Compact Edition, работа с XML, веб-службами и файлами. .NET CF поддерживает наборы данных (datasets), привязку данных (data binding) и коллекции (collections). В .NET CF появился класс <B>SqlCeResultSet</B>, предоставляющий новый механизм доступа к данным и управления ими прямо из приложения, использующий в качестве хранилища данных SQL Server CE. Класс <B>SqlCeResultSet</B> – это своеобразная комбинация набора данных (dataset) и курсора (data reader). <B>SqlCeResultSet</B> может быть определен как обновляемый и прокручиваемый курсор, и, по сравнению с dataset, работает с базами данных SQL Server CE более оптимально.</P>
<P>.NET Compact Framework 3.5 работает на тех же платформах, что и .NET CF 2.0, но его функциональность несколько расширена, что дает разработчикам и пользователям больше возможностей. В .NET CF 3.5 добавлены:</P>
<UL>
<LI>Поддержка Windows Communication Foundation (WCF).</LI>
<LI>Поддержка компактной версии LINQ – синтаксиса интегрированных в язык запросов.</LI>
<LI>Поддержка сертификатов клиентов для аутентификации вызовов веб-служб.</LI>
<LI>Различные новые API.</LI>
<LI>Улучшена поддержка отладки.</LI></UL><A title=#Windows_Mobile_6_SDK_Tools name=#Windows_Mobile_6_SDK_Tools></A>
<H2>Инструменты Windows Mobile 6 SDK</H2>
<P>Инструменты Windows Mobile 6 SDK дополняют имеющиеся в Visual Studio и .NET CF средства разработки. Этот пакет включает примеры кода, документацию, заголовочные файлы и библиотеки для создания приложений, работающих на платформе Windows Mobile 6. Кроме этого, в SDK 6 добавлены полезные утилиты для разработки и тестирования приложения без реальных устройств и инфраструктуры. <A href="https://www.microsoft.com/downloads/details.aspx?FamilyID=06111A3A-A651-4745-88EF-3D48091A390B&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyID=06111A3A-A651-4745-88EF-3D48091A390B&amp;displaylang=en">Загрузить</A> Windows Mobile 6 SDK можно бесплатно. Для установки пакета на компьютере должны быть уже установлены Visual Studio 2005 или 2008 и .NET CF. Существует две редакции SDK: Windows Mobile 6 Standard SDK (ранее эта редакция называлась Windows Mobile SDK для смартфонов) и Windows Mobile 6 Professional SDK, предназначенная для редакций Windows Mobile Classic и Professional (ранее эти редакции назывались Windows Mobile SDK для карманных компьютеров и Windows Mobile SDK для коммуникаторов, соответственно).</P>
<H3>Диспетчер эмуляторов устройств</H3>
<P>Диспетчер эмуляторов устройств позволяет управлять всеми установленными на компьютер разработчика эмуляторами устройств. Используя диспетчер, можно выполнить перечисленные ниже действия:</P>
<UL>
<LI>Запустить эмулятор.</LI>
<LI>Перезапустить эмулятор.</LI>
<LI>Завершить работу эмулятора.</LI>
<LI>«Поместить устройство в крэдл». Чтобы воспользоваться этой функцией на компьютере с Windows XP должен быть установлен Microsoft ActiveSync® 4.5, а на компьютере с Windows Vista – Windows Mobile Device Center (WMDC). Так как многие приложения могут менять свое поведение при наличии соединения с ActiveSync, это замечательная функция,которая позволяет тестировать ваши приложения на эмуляторе устройств!</LI>
<LI>«Вынуть устройство крэдла».</LI>
<LI>Сохранять различные состояния эмулятора. По умолчанию для каждого эмулятора сохраняется только одно состояние, но функция «Save As» позволяет сохранить в папке My Device Emulators несколько состояний, и при необходимости возвращаться к ним.</LI></UL>
<P>Запустить диспетчер эмуляторов устройств можно из Visual Studio, из проводника Windows или из командной строки.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.6afa4800-0c9c-4671-a51d-4c37f2333796(en-us,MSDN.10).png" width=398 height=440 mce_src="https://i.msdn.microsoft.com/Dd721907.6afa4800-0c9c-4671-a51d-4c37f2333796(en-us,MSDN.10).png"> 
<H3>Эмуляторы устройств, работающих под управлением Windows Mobile</H3>
<P>В Visual Studio включены эмуляторы устройств, работающих под управлением мобильных операционных систем, которые поддерживает сама Visual Studio. В SDK включены эмуляторы для других платформ, которые поддерживает тот или иной SDK. Эмуляторы очень удобны при программировании, отладке и тестировании приложения, поскольку они позволяют провести весь цикл разработки на рабочей станции и не использовать реальные мобильные устройства. Это особенно актуально, когда работу над проектом ведет команда – отпадает необходимость приобретать реальные устройства для каждого разработчика, достаточно настроить один эмулятор и раздать его всем разработчикам.</P>
<P>Эмуляторы имитируют поведение и внешний вид реальных устройств на базе процессора ARM. Однако, несмотря на все прелести работы с эмуляторами, мы настоятельно рекомендуем перед выпуском готового приложения, протестировать его на реальном устройстве.</P>
<P>Эмулятор устройства можно запустить либо в среде Visual Studio (сделать это можно вручную или автоматически при развертывании приложения), либо, как уже упоминалось, из диспетчера устройств. После запуска эмулятора, его можно настроить под свои задачи. Чтобы открыть окно настроек, в главном меню нужно выбрать пункт <B>File -&gt; Configure</B>.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.da03d8a3-771b-4be6-9afa-e2633e4756fd(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.da03d8a3-771b-4be6-9afa-e2633e4756fd(en-us,MSDN.10).png"> 
<H3>Доступ к файловой системе рабочей станции</H3>
<P>Зачастую из эмулятора устройства нужно получить доступ к файлам и папкам рабочий станции. На приведенном ниже снимке экрана показано, как в настройках эмулятора задать путь к разделяемой папке.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.998c9e87-20da-4e0a-b34f-ab8b3827416b(en-us,MSDN.10).png" width=386 height=357 mce_src="https://i.msdn.microsoft.com/Dd721907.998c9e87-20da-4e0a-b34f-ab8b3827416b(en-us,MSDN.10).png"> 
<P>Теперь из эмулятора устройства можно получить доступ к разделяемой папке, в проводнике эмулятора эта папка называется Storage Card.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.6e3c87fd-9676-4a7f-b7fd-c5766eb13a58(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.6e3c87fd-9676-4a7f-b7fd-c5766eb13a58(en-us,MSDN.10).png"> 
<H3>Подключение эмулятора устройства к сети</H3>
<P>В некоторых случаях эмулятору, как и настоящему устройству, нужно подключение к сети. Чтобы настроить это подключение, нужно указать, какой сетевой адаптер рабочей станции должен использовать эмулятор.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.b3688ccd-40b4-4d5e-9299-39a2f42941b3(en-us,MSDN.10).png" width=398 height=159 mce_src="https://i.msdn.microsoft.com/Dd721907.b3688ccd-40b4-4d5e-9299-39a2f42941b3(en-us,MSDN.10).png"> 
<P>После этого необходимо настроить адаптер в самом эмуляторе (<B>Start/Settings/Connections/Network Cards/NE2000 Compatible Ethernet Driver</B>).</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.f6f3cda6-70e2-4c47-b5f4-b38852ac91b3(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.f6f3cda6-70e2-4c47-b5f4-b38852ac91b3(en-us,MSDN.10).png"> 
<P>Если все сделано правильно, эмулятор получит доступ к сетевым ресурсам рабочей станции и к Интернету.</P>
<P>Подключиться к рабочей станции можно также через ActiveSync или через Windows Mobile Device Center. Как это сделать, описано чуть ниже.</P>
<H3>Cellular Emulator</H3>
<P>Cellular Emulator – это утилита, входящая в Windows Mobile 6 SDK. Она имитирует подключение к сети сотовой связи и может использоваться для тестирования на эмуляторе устройства приложений, использующих возможности телефона. Чтобы подключить Cellular Emulator к эмулятору устройства, необходимо ассоциировать COM-порт утилиты с физическим портом эмулятора.</P><IMG style="WIDTH: 468px; HEIGHT: 211px" alt="" src="https://i.msdn.microsoft.com/Dd721907.b34c827f-9b27-4dd9-a2c0-2d442af32b9f(en-us,MSDN.10).png" width=894 height=306 mce_src="https://i.msdn.microsoft.com/Dd721907.b34c827f-9b27-4dd9-a2c0-2d442af32b9f(en-us,MSDN.10).png"> 
<P>После того, как утилита будет настроена и запущена, эмулятор устройства для Windows Mobile 6 Professional сможет обрабатывать входящие и исходящие звонки, получать и отправлять SMS и использовать службы передачи данных, такие как GPRS и 3G.</P><IMG style="WIDTH: 480px; HEIGHT: 375px" alt="" src="https://i.msdn.microsoft.com/Dd721907.ca801fc9-999f-48f2-b5cf-0050e014346f(en-us,MSDN.10).png" width=555 height=459 mce_src="https://i.msdn.microsoft.com/Dd721907.ca801fc9-999f-48f2-b5cf-0050e014346f(en-us,MSDN.10).png"> 
<H3>Fake GPS</H3>
<P>Как несложно догадаться, утилита Fake GPS позволяет эмулятору или реальному устройству работать с GPS, даже при отсутствии реального GPS-приемника. Другой вариант использования этой утилиты – тестирование работы приложения при отсутствии GPS покрытия. Вы должны изучить оба, как реальный, так и эмулируемый GPS. Как вы сможете убедиться чуть позже, когда будете работать с учебным приложением, для того чтобы получить доступ к GPS, вам нужно использовать сборку <B>Microsoft.WindowsMobile.Samples.Location</B>, включенную в пример работы с GPS из SDK. Откройте в Visual Studio «GPS sample solution» из SDK и соберите проект. Получившая сборка потребуется для приложений, которые, так или иначе, используют GPS.</P>
<P>Fake GPS – это небольшое приложение, которое устанавливается на эмулятор устройства и работает как служба. Утилита случайным образом выбирает GPS-координаты из текстового файла, а ваше приложение работает так, как будто имеет дело с реальным GPS-приемником и получает настоящие GPS-координаты.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.ed83d020-efd9-4eea-bc15-684c327bc676(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.ed83d020-efd9-4eea-bc15-684c327bc676(en-us,MSDN.10).png"> 
<H3>Другие инструменты Windows Mobile 6 SDK</H3>
<P>В SDK входят и другие утилиты, но так как они не используются в учебном приложении, мы только коротко упомянем о некоторых из них.</P>
<P>Библиотека <A href="https://msdn.microsoft.com/en-us/library/bb415413.aspx" mce_href="https://msdn.microsoft.com/en-us/library/bb415413.aspx">Local Server Framework</A> (FakeServer) помогает тестировать работу приложения с различными удаленными сервисами. Эта библиотека позволяет создавать «виртуальные» сервера, работающие прямо на эмуляторе устройства.</P>
<P>Еще одна утилита, <A href="https://blogs.msdn.com/windowsmobile_ru/archive/2009/08/04/9857032.aspx" mce_href="https://blogs.msdn.com/windowsmobile_ru/archive/2009/08/04/9857032.aspx">Hopper</A>, предназначена для нагрузочного тестирования интерфейса приложений на эмуляторе или на реальном устройстве. Hopper случайным образом имитирует события ввода – нажатия на клавиши и касания экрана. </P><A title=#ActiveSync_or_Windows_Mobile_Device_Center name=#ActiveSync_or_Windows_Mobile_Device_Center></A>
<H2>ActiveSync или Windows Mobile Device Center (WMDC)</H2>
<P>Эмулятор может получить доступ к ресурсам рабочей станции – файловой системе, Интернету, веб-службам, службам WCF, базам данных, - но для этого нужно специально настраивать как сам эмулятор, так и рабочую станцию. Есть другой подход, и он кажется более простым и понятным – подключить эмулятор устройства через ActiveSync или через WMDC. При этом имитируется ситуация, как будто устройство вставлено в крэдл и получило доступ к ресурсам рабочей станции.</P>
<P>Приложение Microsoft ActiveSync 4.5 и более поздних версий устанавливается на Windows XP независимо и может быть использовано для работы с Windows Mobile 6. ActiveSync позволяет установить соединение между компьютером и подключенным к нему устройством (или эмулятором устройства) и задать настройки синхронизации данных, например, содержимого Microsoft Office Outlook, файлов и т.д. С помощью ActiveSync можно получить доступ к файловой системе устройства и копировать данные с устройства на рабочую станцию и с рабочей станции на устройство, для этого можно использовать проводник Windows.</P>
<P>Window Vista не поддерживает ActiveSync, вместо него здесь используется Windows Mobile Device Center (WMDC). Основная идея WMDC осталась такая же, как у ActiveSync, но пользовательский интерфейс и архитектура приложения значительно улучшены.</P>
<P>На устройствах, использующих Windows Mobile, ActiveSync уже установлен, т.к. является компонентом операционной системы.</P><IMG style="WIDTH: 486px; HEIGHT: 424px" alt="" src="https://i.msdn.microsoft.com/Dd721907.9e6b99da-b476-4955-ab4a-c2b25741c145(en-us,MSDN.10).png" width=482 height=487 mce_src="https://i.msdn.microsoft.com/Dd721907.9e6b99da-b476-4955-ab4a-c2b25741c145(en-us,MSDN.10).png"> <A title=#Setup_for_the_Development_Environment name=#Setup_for_the_Development_Environment></A>
<H2>Настройка среды разработки</H2>
<P>Итак, вы познакомились с инструментами разработки приложений для Windows Mobile 6. Но перед тем как приступить к разработке первого приложения вам нужно настроить среду разработки, т.е. установить следующие продукты:</P>
<OL>
<LI>Visual Studio 2005 или 2008.</LI>
<LI>Последние обновления для Visual Studio, .NET Framework и .NET Compact Framework.</LI>
<LI>Инструментарий Windows Mobile 6 SDK редакции Standard или Professional (можно обе).</LI>
<LI>Последние версии эмуляторов устройств, не включенные в SDK.</LI>
<LI>ActiveSync (если у вас установлена Windows XP) или Windows Mobile Device Center (если вы работаете на Windows Vista).</LI>
<LI>SQL Server CE 3.5 SP1 (и все доступные для него обновления) для работы с локальными базами данных.</LI></OL>
<P>Теперь вы готовы создать свое первое Windows Mobile приложение.</P><A title=#Developing_your_First_Application name=#Developing_your_First_Application></A>
<H2>Разработка первого приложения</H2>
<P>Проект мобильного приложения создается точно так же, как и проект обычного настольного приложения. Создайте в Visual Studio новый проект, выберите язык, затем выберите шаблон проекта «Smart Device» и укажите имя проекта и его расположение.</P><IMG style="WIDTH: 481px; HEIGHT: 445px" alt="" src="https://i.msdn.microsoft.com/Dd721907.d3b3b0d9-a27e-4cfe-aeeb-0562c298390d(en-us,MSDN.10).png" width=481 height=494 mce_src="https://i.msdn.microsoft.com/Dd721907.d3b3b0d9-a27e-4cfe-aeeb-0562c298390d(en-us,MSDN.10).png"> 
<P>Следующий шаг специфичен для Windows Mobile – необходимо указать платформу, на которой приложение будет работать (Target Platform), и версию .NET Compact Framework, которую приложение будет использовать. Как уже упоминалось, Visual Studio 2005 поддерживает .NET CF 1.0 и 2.0, а Visual Studio 2008 – .NET CF 2.0 и 3.5. Платформа может быть любой: Windows Mobile 5.0 или 6, Windows CE, или даже Pocket PC 2003.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.02f7c84d-d48a-49bc-84e6-5dec309ca6fd(en-us,MSDN.10).png" width=445 height=210 mce_src="https://i.msdn.microsoft.com/Dd721907.02f7c84d-d48a-49bc-84e6-5dec309ca6fd(en-us,MSDN.10).png"> 
<P>Теперь у вас есть стандартное решение, содержащее каркас простейшего приложения. Обратите внимание, что форма Form1 представлена как форма на мобильном устройстве. Обрамление формы можно выключить. Среда Visual Studio выглядит привычно, присутствуют все стандартные панели инструментов и окна: <B>Solution Explorer</B>, <B>Properties</B>, <B>Form Designer</B>, <B>Code Editor</B>, и т.д. Правда, добавилась панель инструментов, специально предназначенная для мобильных решений – здесь можно выбирать и настраивать устройства и эмуляторы, подключаться к ним, менять ориентацию экрана в конструкторе форм с книжной на альбомную и наоборот.</P><IMG style="WIDTH: 441px; HEIGHT: 409px" alt="" src="https://i.msdn.microsoft.com/Dd721907.b118af75-2415-4632-81e6-4e1aa38cb47f(en-us,MSDN.10).png" width=441 height=531 mce_src="https://i.msdn.microsoft.com/Dd721907.b118af75-2415-4632-81e6-4e1aa38cb47f(en-us,MSDN.10).png"> 
<P>Поскольку .NET Compact Framework – это подмножество .NET Framework, вам доступны некоторые элементы управления, знакомые вам по .NET Framework. Принципиально подход к разработке и созданию пользовательского интерфейса такой же, как и при создании настольных приложений, поэтому мы не будем на этом останавливаться.</P>
<H3>Создание пользовательского интерфейса</H3>
<P>Создавая пользовательский интерфейс мобильного приложения, нужно помнить о некоторых ограничениях, специфичных для маленьких форм. Копировать в мобильную версию интерфейс настольного приложения – это не самое лучшее решение. В настольных приложениях полосы прокрутки естественны и удобны, но они не годятся для мобильных приложений, т.к. прокручивать экран мобильного устройства очень неудобно. Как вариант, можно использовать другие элементы управления – закладки, панели и т.д.</P>
<P>Меню в Windows Mobile расположено внизу экрана. Оно создается точно так же, как и меню для настольных приложений, однако, лучше не создавать для мобильных приложений меню более чем с тремя уровнями вложенности, иначе меню становится нечитаемым. Два пункта меню первого уровня можно связать с левой и правой программируемыми клавишами устройства. Обычно с левой программируемой клавишей связывают действие по умолчанию, а с правой – все остальные действия и вложенные меню.</P>
<P>На устройствах, работающих под управлением Windows Mobile 6, можно изменять ориентацию экрана. Для разработчика интерфейса это означает, что интерфейс должен остаться удобным при любой ориентации. Автоматические полосы прокрутки, как уже говорилось, - не самое хорошее решение, гораздо лучше использовать механизмы привязки и докирования элементов, которые поддерживаются начиная с .NET CF 2.0.</P>
<P>.NET CF доступны все стандартные элементы управления: текстовое поле, надпись, диалоговое окно, закладки, таблицы-сетки и т.д. Кроме того, имеется множество дополнительных элементов управления, перенесенных из .NET Framework, например, веб-браузер.</P>
<P>Кнопка «Х» в правом верхнем углу формы минимизирует окно, а не закрывает его. Чтобы эта кнопка закрывала окно, свойству формы MinimizeBox нужно присвоить значение False. Тогда вместо крестика появится надпись «ok», и кнопка будет закрывать окно.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.7b55060c-c62a-46f4-a7d2-20b56ff0f095(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.7b55060c-c62a-46f4-a7d2-20b56ff0f095(en-us,MSDN.10).png"> 
<H3>Управление вводом</H3>
<P>В мобильных устройствах способы ввода несколько отличаются от стандартных способов с использованием клавиатуры и мыши. Впрочем, клавиатура есть на многих устройствах, и клавиатурный ввод становится стандартом и для мобильных приложений, однако более распространены касания, экранная панель ввода и кнопки мобильного устройства.</P>
<P>Касание – это способ ввода для мобильных устройств с сенсорным экраном, касание эквивалентно двойному щелчку левой кнопкой мыши. Касание и удерживание эквивалентно щелчку правой кнопкой мыши – открывается контекстное меню выбранного элемента. Касания обрабатываются точно так же, как события мыши <B>MouseDown</B>, <B>MouseUp</B>, <B>MouseMove</B>, <B>Click</B>, <B>DoubleClick</B> в настольном приложении. </P>
<P>Экранная панель ввода имитирует работу настоящей клавиатуры. Прикосновения к «клавишам» вызывают события, аналогичные тем, что возникают при нажатии на клавиши настоящей клавиатуры: <B>KeyUp</B>, <B>KeyDown</B> и <B>KeyPress</B></P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.57b479ce-8500-4649-9108-11f4e54f5edf(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.57b479ce-8500-4649-9108-11f4e54f5edf(en-us,MSDN.10).png"> 
<P>Панель ввода – это элемент управления .NET CF. Панелью ввода, размещенной на форме, можно управлять программно. Например, когда текстовое поле получает фокус, панель ввода можно сделать видимой:</P><PRE><SPAN style="COLOR: black">inputPanel1.Enabled&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">true</SPAN><SPAN style="COLOR: black">;</SPAN>
</PRE>
<P>Или невидимой, когда текстовое поле теряет фокус:</P><PRE><SPAN style="COLOR: black">inputPanel1.Enabled&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">false</SPAN><SPAN style="COLOR: black">;</SPAN>
</PRE>
<H3>Отладка и обработка ошибок</H3>
<P>Ошибки в .NET CF обрабатываются точно так же, как в полной версии .NET Framework – с помощью конструкции try/catch/finally. В Microsoft Visual Basic так же поддерживаются конструкции On Error GoTo и Resume [Next], но все же блок try/catch/finally предпочтительнее, поскольку такая конструкция требует меньше ресурсов. Средства отладки в .NET CF тоже стандартные. Развертывание и отладку приложений можно осуществлять как на реальных устройствах, так и на эмуляторах.</P>
<P>Unit-тесты в проектах для Windows Mobile поддерживается, начиная с версии .NET Compact Framework 3.5.</P>
<H3>Работа с данными</H3>
<P>.NET CF может работать с различными источниками данных: SQL Server CE, XML, SQL Server, веб-службы и службы WCF. Принципы работы с данными здесь такие же, как в .NET Framework, и что очень важно, .NET CF практически полностью поддерживает возможности ADO.NET.</P>
<P>XML – это очень распространенный формат, и большинство источников данных могут экспортировать данные в XML или импортировать данные из XML. Несмотря на то, что XML «понимают» почти все источники данных, мы не рекомендуем использовать это формат, поскольку для работы с ним требуются значительные ресурсы. XML не оптимизирован, данные не индексированы, а значит, их обработка будет происходить гораздо медленнее, чем, например, в реляционной базе данных. Так что XML стоит использовать, только когда нет другого выхода.</P>
<P>Из мобильного приложения можно получить прямой доступ к SQL Server. Если нет необходимости создавать приложение, работающее в автономном режиме, а так же если вы гарантируете наличие постоянного соединения, используйте SQL Server. Хранимые данные будут всегда актуальны и доступны в реальном времени, кроме того будет меньше конфликтов. Хороший пример мобильного приложения, использующего SQL Server, – это «Склад». Для этого типа приложений постоянное соединение с SQL Server не просто применимо в полном объеме, а даже желательно.</P>
<P>Веб-службы и службы WCF можно использовать для передачи данных в n-уровневую среду при отсутствии прямого доступа к SQL Server, либо для репликации. При этом источник данных может быть любым, лишь бы его поддерживал .NET CF.</P>
<H3>SQL Server Compact Edition</H3>
<P>SQL Server Compact Edition – это, пожалуй, наиболее оптимальный источник данных для мобильных приложений. SQL Server CE – это только источник данных, и ничего больше, в нем есть только таблицы. Однако для таблиц предусмотрено все необходимое – индексы, первичные и внешние ключи, ссылочная целостность и ограничивающие условия. В SQL Server CE нет триггеров, т.к. он не поддерживает выполнение кода, хранящегося на сервере. Помимо того, что SQL Server CE – это реляционная база данных, у него есть еще одно существенное преимущество - SQL Server CE может выступать как подписчик при репликации с SQL Server. Репликацией в этом случае очень просто управлять программными средствами, а все конфликты будут разрешаться централизовано, администратором.</P>
<P>Процедура добавления в проект Windows Mobile приложения нового источника данных точно такая же, как в полной версии .NET Framework. В качестве источника данных необходимо выбрать Microsoft SQL Server Compact Edition 3.x, затем нужно указать путь к файлу базы данных (все файлы баз данных SQL Server CE имеют расширение «.sdf»). База данных может находиться на локальном диске или на устройстве, подключенном к хосту через ActiveSync или WMDC.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.e26209e1-649e-4bd7-a667-de95bd4f3d19(en-us,MSDN.10).png" width=389 height=507 mce_src="https://i.msdn.microsoft.com/Dd721907.e26209e1-649e-4bd7-a667-de95bd4f3d19(en-us,MSDN.10).png"> 
<P>Поскольку SQL Server CE - это локальный источник данных, во время развертывания приложения база данных копируется на устройство. Следовательно, в приведенном выше примере строка подключения (connection string), которая была создана при выборе файла базы данных, окажется некорректной. Вам будет задан вопрос – следует ли изменить строку подключения так, чтобы она всегда ссылалась на папку приложения, которая расположена на устройстве.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.a7655ce2-013d-4bb0-a442-d11fe672d664(en-us,MSDN.10).png" width=447 height=184 mce_src="https://i.msdn.microsoft.com/Dd721907.a7655ce2-013d-4bb0-a442-d11fe672d664(en-us,MSDN.10).png"> 
<H3>Привязка данных</H3>
<P>Как только в проект будет добавлена база данных, с ней можно начинать работать, используя стандартные средства ADO.NET. Элемент управления можно связать с источником данных напрямую или через объект Data Binding. Для работы с данными на устройстве можно воспользоваться стандартными наборами данных (datasets), правда тут есть одна проблема – в памяти создается копия данных, которые и так хранятся на устройстве, т.е. ресурсы устройства используются очень неэффективно. Обойти эту проблему можно – в SQL Server CE существует специальный адаптер для обработки данных <B>SqlCeResultset</B>. Это оптимизированный, обновляемый, прокручиваемый курсор, который позволяет получить доступ к таблицам SQL Server CE прямо из приложения, при этом нет необходимости подключать наборы данных. Поэтому мы рекомендуем использовать именно <B>SqlCeResultset</B>.</P>
<P>Для работы с данными, хранящими в БД SQL Server CE, необходимо подключить к проекту пространство имен <B>System.Data.SqlServerCe</B>.</P>
<P>В приведенном ниже примере показано, как задать пространство имен и как создать и использовать объект <B>SqlCeResultset</B>.</P><PRE><SPAN style="COLOR: blue">using</SPAN> <SPAN style="COLOR: black">System.Data.SqlServerCe;</SPAN>
...
<SPAN style="COLOR: #2b91af">SqlCeResultSet</SPAN> <SPAN style="COLOR: black">rs;</SPAN>
<SPAN style="COLOR: #2b91af">SqlCeCommand</SPAN> <SPAN style="COLOR: black">cmd&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">SqlCeCommand</SPAN><SPAN style="COLOR: black">(commandText,&nbsp;sqlCeConnection);</SPAN>
<SPAN style="COLOR: black">rs&nbsp;=&nbsp;cmd.ExecuteResultSet(</SPAN><SPAN style="COLOR: #2b91af">ResultSetOptions</SPAN><SPAN style="COLOR: black">.Scrollable);</SPAN>
<SPAN style="COLOR: black">dataGrid1.DataSource&nbsp;=&nbsp;rs;</SPAN>
</PRE><A title=#Deployment_and_Packaging name=#Deployment_and_Packaging></A>
<H2>Установка и упаковка</H2>
<P>Последний этап в цикле разработки – это установка готового решения на устройство и его упаковка для последующего распространения. Существует несколько способов развертывания установки приложения на устройстве или эмуляторе: инсталляция во время разработки (Development IDE deployment), создание инсталлятора для устройства (Device Installer) и создание инсталлятора для настольного компьютера (Desktop Installer). Мы рассмотрим только первые два способа.</P>
<H3>Инсталляция во время разработки</H3>
<P>Самый простой способ установить приложение на устройство – это подключить устройство к рабочей станции, где велась разработка, через ActiveSync или WMDC. Этот способ позволяет установить приложение в процессе разработки и отладки.</P>
<P>Сначала нужно выбрать устройство или эмулятор, где будет установлено приложение.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.97e33c99-7a1c-4a5c-b9f3-4ca692a29f8c(en-us,MSDN.10).png" width=362 height=130 mce_src="https://i.msdn.microsoft.com/Dd721907.97e33c99-7a1c-4a5c-b9f3-4ca692a29f8c(en-us,MSDN.10).png"> 
<P>После этого нужно подключиться к устройству. Сделать это можно вручную (на панели инструментов для этого есть специальная кнопка), или же соединение будет выполнено автоматически во время установки.</P>
<P>Для начала установки нужно, как обычно, нажать клавишу <B>F5</B> или выбрать пункт <B>Start</B> из меню <B>Debug</B>. Будет запрошено подтверждение – правильно ли указано устройство или эмулятор, на которое будет установлено приложение (кстати, вызов этого подтверждения можно запретить). Сначала Visual Studio проверяет, установлены ли на устройстве все необходимые компоненты для запуска приложения. Если какие-то компоненты отсутствуют, они будут установлены автоматически. Понятно, что обязательный компонент – это .NET Compact Framework, кроме него приложению может потребоваться SQL Server CE и другие компоненты, не входящие в состав .NET CF. На приведенной ниже иллюстрации показана строка состояния, которая уведомляет, что во время развертывания на устройство был установлен .NET CF 3.5.</P><IMG style="WIDTH: 399px; HEIGHT: 21px" alt="" src="https://i.msdn.microsoft.com/Dd721907.7074d2f3-a48c-4307-ab7d-3354241f6c6f(en-us,MSDN.10).png" width=401 height=25 mce_src="https://i.msdn.microsoft.com/Dd721907.7074d2f3-a48c-4307-ab7d-3354241f6c6f(en-us,MSDN.10).png"> 
<P>Инсталляция во время разработки – это достаточно надежный и быстрый способ установить на подключенном к рабочей станции устройстве корректно работающее приложение.</P>
<H3>Инсталлятор для устройства</H3>
<P>Крайне маловероятно, что все мобильные устройства, куда нужно установить приложение, попадут на рабочий стол к разработчику. Впрочем, в этом и нет никакой необходимости, к тому же такой подход не решит проблему – как делать обновления продукта в будущем. Есть другой способ – создание инсталлятора приложения, который будет запущен прямо на мобильном устройстве, при этом никаких подключений к компьютеру разработчика не потребуется. Все нужные сборки проекта и необходимые для работы компоненты упаковываются в один или несколько CAB-файлов, эти файлы копируются на устройство и уже там запускаются. Приложение будет установлено со всеми предопределенными параметрами. Готовый CAB-файл можно распространять по электронной почте, через веб-сайт, копировать на внешние карты памяти, или переписать на устройство, подключив его к рабочей станции через ActiveSync или WMDC.</P>
<P>Для создания проекта инсталлятора нужно открыть диалоговое окно <B>Add New Project</B>, выбрать тип проекта <B>Setup and Deployment</B>, затем в списке готовых шаблонов выбрать <B>Smart Device CAB Project</B>.</P><IMG style="WIDTH: 436px; HEIGHT: 346px" alt="" src="https://i.msdn.microsoft.com/Dd721907.c4285fda-fb14-4cbe-85e5-316a59e34b3e(en-us,MSDN.10).png" width=436 height=369 mce_src="https://i.msdn.microsoft.com/Dd721907.c4285fda-fb14-4cbe-85e5-316a59e34b3e(en-us,MSDN.10).png"> 
<P>Теперь нужно указать, где находится готовое приложение (то, что получилось на выходе проекта, с которым вы работали).</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.6064c018-01e4-4bdd-a098-ee5f98932635(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.6064c018-01e4-4bdd-a098-ee5f98932635(en-us,MSDN.10).png"> 
<P>После этого выходные файлы проекта автоматически будут добавлены в папку «Application Folder» инсталлятора.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.a9f03cd1-ead1-41a2-ab02-4c666c7282fe(en-us,MSDN.10).png" width=442 height=119 mce_src="https://i.msdn.microsoft.com/Dd721907.a9f03cd1-ead1-41a2-ab02-4c666c7282fe(en-us,MSDN.10).png"> 
<P>На закладке <B>File System</B> показаны различные системные папки: Global Assembly Cache (GAC), Program Files, Windows, Startup и Fonts. Файлы проекта можно помещать, где угодно, а при необходимости можно создать дополнительные папки.</P>
<P>Кроме того, в проекте инсталлятора можно, например, указать, что требуется создать ярлык для приложения, который появится в папке <B>Programs</B> в меню <B>Start</B>.</P>
<P>При развертывании проекта можно изменить настройки реестра и добавить для приложения новые ключи.</P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.6dc828fd-0670-4279-b74c-50d680331e60(en-us,MSDN.10).png" width=448 height=126 mce_src="https://i.msdn.microsoft.com/Dd721907.6dc828fd-0670-4279-b74c-50d680331e60(en-us,MSDN.10).png"> 
<P>Считается хорошей практикой распространять и устанавливать необходимые для работы приложения компоненты (.NET CF, SQL Server CE) отдельно от самого приложения, чтобы основной CAB-файл был небольшим. По умолчанию, компоненты не включены в выходной CAB-файл, но их можно добавить в проект. </P><IMG alt="" src="https://i.msdn.microsoft.com/Dd721907.b490b2cd-2884-41d6-ac22-4e86022c55a9(en-us,MSDN.10).png" mce_src="https://i.msdn.microsoft.com/Dd721907.b490b2cd-2884-41d6-ac22-4e86022c55a9(en-us,MSDN.10).png"> 
<P>После того, как все необходимые для развертывания параметры заданы, проект нужно собрать. На выходе получится CAB-файл, который можно распространять и запускать прямо на мобильном устройстве.</P><A title=#Advanced_Features name=#Advanced_Features></A>
<H2>Дополнительные возможности</H2>
<P>Мы в общих чертах рассказали об этапах разработки мобильного приложения. Теперь остановимся на более интересных возможностях, которые улучшат приложение и сделают его более удобным.</P>
<H3>Интеграция с Pocket Outlook Object Model (POOM)</H3>
<P>POOM API – это компонент библиотеки <B>Microsoft.WindowsMobile.PocketOutlook</B>. Используя POOM, можно получить доступ к объектам <B>Calendar</B>, <B>Contacts</B> и <B>Tasks</B>. Вся функциональность, которую использует POOM, основана на классе <B>OutlookSession</B>, поэтому на уровне приложения всегда должен присутствовать экземпляр этого объекта.</P>
<P>В приведенном ниже примере видно, что объект <B>OutlookSession</B> продекларирован впервые, и что создан экземпляр этого объекта.</P><PRE><SPAN style="COLOR: blue">using</SPAN> <SPAN style="COLOR: black">Microsoft.WindowsMobile.PocketOutlook;</SPAN>
 
<SPAN style="COLOR: blue">namespace</SPAN> <SPAN style="COLOR: black">WP_FirstApp</SPAN>
<SPAN style="COLOR: black">{</SPAN>
    <SPAN style="COLOR: blue">public</SPAN> <SPAN style="COLOR: blue">partial</SPAN> <SPAN style="COLOR: blue">class</SPAN> <SPAN style="COLOR: #2b91af">Form1</SPAN> <SPAN style="COLOR: black">:&nbsp;</SPAN><SPAN style="COLOR: #2b91af">Form</SPAN>
    <SPAN style="COLOR: black">{</SPAN>
        <SPAN style="COLOR: blue">private</SPAN> <SPAN style="COLOR: #2b91af">OutlookSession</SPAN> <SPAN style="COLOR: black">outlook;</SPAN>
 
        <SPAN style="COLOR: blue">private</SPAN> <SPAN style="COLOR: blue">void</SPAN> <SPAN style="COLOR: black">Main_Load(</SPAN><SPAN style="COLOR: blue">object</SPAN> <SPAN style="COLOR: black">sender,&nbsp;</SPAN><SPAN style="COLOR: #2b91af">EventArgs</SPAN> <SPAN style="COLOR: black">e)</SPAN>
        <SPAN style="COLOR: black">{</SPAN>
            <SPAN style="COLOR: black">outlook&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">OutlookSession</SPAN><SPAN style="COLOR: black">();</SPAN>
</PRE>
<P>После создания экземпляра объекта <B>OutlookSession</B> его можно использовать для всех функций, связанных с объектами и коллекциями Outlook.</P>
<P>В этом примере показано, что создать новую задачу из приложения очень просто.</P><PRE><SPAN style="COLOR: #2b91af">Task</SPAN> <SPAN style="COLOR: black">task&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Task</SPAN><SPAN style="COLOR: black">();</SPAN>
<SPAN style="COLOR: black">task.Subject&nbsp;=&nbsp;textBox1.Text;</SPAN>
<SPAN style="COLOR: black">task.Body&nbsp;=&nbsp;textBox2.Text;</SPAN>
<SPAN style="COLOR: black">outlook.Tasks.Items.Add(task);</SPAN>
</PRE>
<P>Новая задача будет добавлена в список задач Pocket Outlook, и теперь к ней можно обратиться либо прямо из списка задач, либо из приложения. Из приложения можно получить доступ и к другим задачам и вносить в них какие-либо изменения.</P>
<P>Точно так же, из приложения можно получить доступ к контактам, для этого будет использоваться родительский объект, похожий на тот, что мы использовали для работы с задачами. Все поля контакта необязательные, однако, при создании стоит указать хотя бы минимальную информацию, чтобы позже контакт можно было распознать. Следующий пример показывает, как создается контакт.</P><PRE><SPAN style="COLOR: #2b91af">Contact</SPAN> <SPAN style="COLOR: black">contact&nbsp;=&nbsp;outlook.Contacts.Items.AddNew();</SPAN>
<SPAN style="COLOR: black">contact.FirstName&nbsp;=&nbsp;textBox1.Text;</SPAN>
<SPAN style="COLOR: black">contact.LastName&nbsp;=&nbsp;textBox2.Text;</SPAN>
<SPAN style="COLOR: black">contact.Update();</SPAN>
</PRE>
<P>Для выбора существующего контакта следует использовать объект класса <B>ChooseContactDialog</B>. Этот же объект предоставляет доступ к выбранному контакту и его свойствам. С помощью свойства <B>RestrictContacts</B> и установленного фильтра можно фильтровать контакты, которые будут показаны пользователю. Фильтровать контакты можно по любому полю.</P>
<P>Следующий пример показывает, как использовать экземпляр класса <B>ChooseContactDialog</B>, чтобы показать пользователю диалоговое окно <B>Contacts</B>, и как найти рабочий телефон выбранного пользователем человека.</P><PRE><SPAN style="COLOR: #2b91af">ChooseContactDialog</SPAN> <SPAN style="COLOR: black">dialog&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">ChooseContactDialog</SPAN><SPAN style="COLOR: black">();</SPAN>
<SPAN style="COLOR: black">dialog.RestrictContacts&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: #a31515">"[Department]&nbsp;=&nbsp;\"Field\""</SPAN><SPAN style="COLOR: black">;</SPAN>
<SPAN style="COLOR: black">dialog.Title&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: #a31515">"Assign&nbsp;To"</SPAN><SPAN style="COLOR: black">;</SPAN>
 
<SPAN style="COLOR: blue">if</SPAN> <SPAN style="COLOR: black">(dialog.ShowDialog()&nbsp;==&nbsp;</SPAN><SPAN style="COLOR: #2b91af">DialogResult</SPAN><SPAN style="COLOR: black">.OK)</SPAN>
<SPAN style="COLOR: black">{</SPAN>
    <SPAN style="COLOR: black">str&nbsp;=&nbsp;dialog.SelectedContact.BusinessTelephoneNumber;</SPAN>
<SPAN style="COLOR: black">}</SPAN>
</PRE>
<P>Если предопределенного набора свойств коллекций <B>Tasks</B>, <B>Calendar</B> или <B>Contacts</B> недостаточно, можно создать <B>Custom Properties</B>. Такие свойства нельзя синхронизировать через ActiveSync, и в Pocket Outlook они недоступны.</P>
<H3>Обмен сообщениями</H3>
<P>Про обмен сообщениями рассказано в следующих разделах – Электронная почта и SMS-сообщения.</P>
<H3>Электронная почта</H3>
<P>Доступ к электронной почте предоставляет объект <B>EmailMessage</B>, который включает все стандартные свойства электронного письма: <B>Attachments</B>, <B>Bcc</B>, <B>BodyText</B>, <B>CC</B>, <B>Importance</B>, <B>Subject</B>, <B>To</B> и т.д.</P>
<P>В приведенном ниже примере показано, как создать электронное письмо, задать его свойства и отправить созданное письмо выбранному в предыдущем примере адресату.</P><PRE><SPAN style="COLOR: #2b91af">EmailMessage</SPAN> <SPAN style="COLOR: black">email&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">EmailMessage</SPAN><SPAN style="COLOR: black">();</SPAN>
<SPAN style="COLOR: black">email.To.Add(</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Recipient</SPAN><SPAN style="COLOR: black">(dialog.SelectedContact.Email1Address));</SPAN>
<SPAN style="COLOR: black">email.Subject&nbsp;=&nbsp;textBox1.Text;</SPAN>
<SPAN style="COLOR: black">email.BodyText&nbsp;=&nbsp;textBox2.Text;</SPAN>
<SPAN style="COLOR: black">email.Send(</SPAN><SPAN style="COLOR: #a31515">"ActiveSync"</SPAN><SPAN style="COLOR: black">);</SPAN>
</PRE>
<P>Этот фрагмент кода поместит электронное письмо в папку Outbox, и оно будет там находиться, пока пользователь не выполнит синхронизацию. Синхронизацию можно вызвать программными средствами, для этого существует метод <B>Synchronize</B>.</P>
<H3>SMS-сообщения</H3>
<P>Обработка SMS-сообщений похожа на обработку электронных писем. Не считая нескольких свойств, разница в том, что SMS-сообщение отправляется сразу же при вызове метода Send, а электронное письмо ждет синхронизации.</P>
<P>В этом примере показано, как создать и отправить SMS-сообщение.</P><PRE><SPAN style="COLOR: #2b91af">SmsMessage</SPAN> <SPAN style="COLOR: black">sms&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">SmsMessage</SPAN><SPAN style="COLOR: black">();</SPAN>
<SPAN style="COLOR: black">sms.To.Add(</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Recipient</SPAN><SPAN style="COLOR: black">(</SPAN><SPAN style="COLOR: #a31515">"123456"</SPAN><SPAN style="COLOR: black">));</SPAN>
<SPAN style="COLOR: black">sms.Body&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: #a31515">"WP_FirstApp&nbsp;SMS&nbsp;message"</SPAN><SPAN style="COLOR: black">;</SPAN>
<SPAN style="COLOR: black">sms.Send();</SPAN>
</PRE>
<H3>Перехват SMS-сообщений</H3>
<P>Приложение может перехватывать SMS-сообщения с помощью объекта <B>MessageInterceptor</B>. Этот объект включен в пространство имен <B>Microsoft.WindowsMobile.PocketOutlook.MessageInterception</B>. Перехватываемые сообщения можно фильтровать по тексту, теме или отправителю. Использование SMS как транспорта для сообщений позволяет передавать данные в приложение без вмешательства пользователя. Сообщения можно перехватывать, даже если приложение не запущено.</P>
<P>Этот пример показывает, как реализовать перехват SMS-сообщений.</P><PRE><SPAN style="COLOR: green">//&nbsp;SMS&nbsp;Interception&nbsp;Setup</SPAN>
<SPAN style="COLOR: black">smsInterceptor&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN>
    <SPAN style="COLOR: #2b91af">MessageInterceptor</SPAN><SPAN style="COLOR: black">(</SPAN><SPAN style="COLOR: #2b91af">InterceptionAction</SPAN><SPAN style="COLOR: black">.NotifyAndDelete);</SPAN>
<SPAN style="COLOR: black">smsInterceptor.MessageCondition&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">MessageCondition</SPAN><SPAN style="COLOR: black">(</SPAN>
    <SPAN style="COLOR: #2b91af">MessageProperty</SPAN><SPAN style="COLOR: black">.Sender,</SPAN>
    <SPAN style="COLOR: #2b91af">MessagePropertyComparisonType</SPAN><SPAN style="COLOR: black">.Equal,</SPAN>
    <SPAN style="COLOR: #a31515">"+14254448851"</SPAN><SPAN style="COLOR: black">);</SPAN>
<SPAN style="COLOR: black">smsInterceptor.MessageReceived&nbsp;+=</SPAN>
    <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">MessageInterceptorEventHandler</SPAN><SPAN style="COLOR: black">(</SPAN>
        <SPAN style="COLOR: black">smsInterceptor_MessageReceived);</SPAN>
 
<SPAN style="COLOR: green">//&nbsp;SMS&nbsp;Interception&nbsp;event&nbsp;handler</SPAN>
<SPAN style="COLOR: blue">private</SPAN> <SPAN style="COLOR: blue">void</SPAN> <SPAN style="COLOR: black">smsInterceptor_MessageReceived(</SPAN>
    <SPAN style="COLOR: blue">object</SPAN> <SPAN style="COLOR: black">sender,</SPAN>
    <SPAN style="COLOR: #2b91af">MessageInterceptorEventArgs</SPAN> <SPAN style="COLOR: black">e)</SPAN>
<SPAN style="COLOR: black">{</SPAN>
    <SPAN style="COLOR: blue">if</SPAN> <SPAN style="COLOR: black">(e.Message.GetType()&nbsp;==&nbsp;</SPAN><SPAN style="COLOR: blue">typeof</SPAN><SPAN style="COLOR: black">(</SPAN><SPAN style="COLOR: #2b91af">SmsMessage</SPAN><SPAN style="COLOR: black">))</SPAN>
    <SPAN style="COLOR: black">{</SPAN>
        <SPAN style="COLOR: #2b91af">SmsMessage</SPAN> <SPAN style="COLOR: black">message&nbsp;=&nbsp;(</SPAN><SPAN style="COLOR: #2b91af">SmsMessage</SPAN><SPAN style="COLOR: black">)e.Message;</SPAN>
        <SPAN style="COLOR: green">//do&nbsp;something&nbsp;with&nbsp;message</SPAN>
</PRE>
<H3>Телефония</H3>
<P>Делать звонки можно прямо из приложения, без обращения к встроенному в устройство номеронабирателю. Для этого используется класс <B>Phone</B>, входящий в библиотеку <B>Microsoft.WindowsMobile.Telephony</B>. Приведенный ниже пример показывает, как позвонить по номеру, который был набран в последний раз.</P><PRE><SPAN style="COLOR: blue">using</SPAN> <SPAN style="COLOR: black">Microsoft.WindowsMobile.Telephony;</SPAN>
 
<SPAN style="COLOR: blue">private</SPAN> <SPAN style="COLOR: blue">void</SPAN> <SPAN style="COLOR: black">MakeVoiceCall()</SPAN>
<SPAN style="COLOR: black">{</SPAN>
    <SPAN style="COLOR: #2b91af">Phone</SPAN> <SPAN style="COLOR: black">phone&nbsp;=&nbsp;</SPAN><SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Phone</SPAN><SPAN style="COLOR: black">();</SPAN>
    <SPAN style="COLOR: black">phone.Talk(dialog.SelectedContact.BusinessTelephoneNumber);</SPAN>
<SPAN style="COLOR: black">}</SPAN>
</PRE><A title=#Conclusion name=#Conclusion></A>
<H2>Заключение</H2>
<P>Разработка приложений для платформы Windows Mobile не сложнее, чем разработка настольных приложений. Для создания мобильного приложения используются похожие инструменты и приемы, но между .NET Compact Framework и .NET Framework есть некоторые существенные различия. .NET Compact Framework поддерживает большую часть классов и элементов управления полной версии, но некоторая функциональность специально приспособлена для использования на мобильных устройствах и учитывает их ограничения.</P>
<P>Чтобы мобильное приложение было более удобным, в него очень часто добавляется характерная для мобильных устройств функциональность – интеграция с POOM, использование возможностей телефона, GPS и т.д. Для разработки в Visual Studio приложений, которые будут работать на платформе Windows Mobile 6, необходимо установить Windows Mobile 6 SDK. В SDK входят эмуляторы устройств и другие полезные инструменты, которые позволяют разрабатывать и тестировать все специфичные для мобильного телефона функции (например, GPS) даже без наличия реальных устройств.</P>
<P>Самое главное, при разработке архитектуры мобильных приложений нужно помнить о существенных ограничениях мобильных устройств – размере экрана, доступной памяти, мощности процессора – тогда с приложением будет приятно работать. Все необходимые инструменты у вас есть, нужно просто использовать их правильно.</P>
<H3>Об авторе</H3>
<P>Андрей Радингер (Andrej Radinger) является MVP (ценным профессионалом) по разработке приложений для мобильных устройств, MCSD (сертифицированным разработчиком Майкрософт), MCDBA (сертифицированным администратором баз данных Майкрософт), и MCT (сертифицированным тренером Майкрософт). Андрей – соучредитель компании <A href="https://go.microsoft.com/fwlink/?LinkId=148815" mce_href="https://go.microsoft.com/fwlink/?LinkId=148815">APPAMundi Limited</A>, которая специализируется на разработке и внедрении корпоративных мобильных решений. Андрей занимается разработкой, консультированием и подготовкой специалистов уже более 13 лет, из них 10 лет он специализируется на всех направлениях, связанных с мобильными решениями и технологиями компании Майкрософт. Кроме этого Андрей считается Technology Champ в сообществе профессионалов по мобильным решениям и локальной группе новостей, а так же регулярно делает доклады на мероприятиях, которые проводит компания Майкрософт в регионе EMEA (Европа, Ближний Восток и Африка), включая Tech Ed.</P>
<P>Связаться с Андреем можно по электронной почте: <A href="mailto:andrej@appamundi.com" mce_href="mailto:andrej@appamundi.com">andrej@appamundi.com</A></P>
<H3>Дополнительная информация</H3>
<UL>
<LI>Статья на MSDN: <A href="https://go.microsoft.com/fwlink/?LinkId=148961" mce_href="https://go.microsoft.com/fwlink/?LinkId=148961">Differences between .NET FX and .NET CF</A> (Различия между .NET FX и .NET CF)</LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=149365" mce_href="https://go.microsoft.com/fwlink/?LinkId=149365">Windows Mobile Developer Center</A>. Один из лучших сайтов для начинающих разработчиков приложений для Windows Mobile. Здесь можно найти множество примеров, массу документации и технических описаний, блогов и ресурсов для загрузки.</LI>
<LI><A href="https://go.microsoft.com/fwlink/?LinkId=149366" mce_href="https://go.microsoft.com/fwlink/?LinkId=149366">Microsoft Mobile Development Handbook</A>. Очень полезная книга, полностью описывающая аспекты разработки приложений для мобильных устройств.</LI></UL>
<H2>Смотрите также</H2>
<H3>Другие ресурсы</H3>
<P>Официальный сайт Windows Mobile: <A href="https://www.microsoft.com/windowsmobile" mce_href="https://www.microsoft.com/windowsmobile">https://www.microsoft.com/windowsmobile</A></P>
<P>Перевод: <A href="mailto:sssveta@gmail.com" mce_href="mailto:sssveta@gmail.com">Светлана Шиблева</A></P>]]></content:encoded>
    </item>
    <item>
      <title>Управляемый wrapper для Gesture API</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/wrapper-gesture-api</link>
      <pubDate>Mon, 05 Oct 2009 12:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/10/05/wrapper-gesture-api/</guid>
      <description><![CDATA[Ron&nbsp;и Alex записали веб-каст, в котором они рассказывают про Gesture API в Windows Mobile 6.5...]]></description>
      <content:encoded><![CDATA[<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><IMG style="WIDTH: 255px; HEIGHT: 69px" src="https://www.mobiletechaddicts.com/wp-content/uploads/2009/01/microsoft_windows_mobile_logo.jpg" width=599 height=189 mce_src="https://www.mobiletechaddicts.com/wp-content/uploads/2009/01/microsoft_windows_mobile_logo.jpg"></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><A href="https://blogs.msdn.com/rbuckton/"><FONT color=#0000ff>Ron</FONT></A>&nbsp;</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>и </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><A href="https://blogs.msdn.com/priozersk/default.aspx">Alex</A></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU"> <SPAN lang=RU>записали веб-каст, в котором они рассказывают про </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>Gesture</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=EN> </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>API</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU> в </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>Windows</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=EN> </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>Mobile</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU> 6.5 и управляемый </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>wrapper</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>, который они создали. В первой части они рассказывают про класс </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>GestureRecognizer</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>. Данный веб-каст вы можете посмотреть <A href="https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?culture=en-US&amp;EventID=1032422141&amp;CountryCode=US">здесь</A>.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>Во второй части они рассказывают про физический движок и функциональность </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=EN>WAG</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=RU>, которые входят в </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=EN>Gesture</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=EN> </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=EN>API</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=RU>. Вторую часть можно посмотреть</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-no-proof: yes; mso-bidi-font-family: Arial"><A href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032422150&amp;Culture=en-US"><SPAN style="mso-ansi-language: RU"><FONT color=#0000ff> <SPAN lang=RU>здесь</SPAN></FONT></SPAN></A></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=RU>. </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>&nbsp;</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>&nbsp;</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=RU>Код упраляемого </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=EN>wrapper</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU; mso-no-proof: yes; mso-bidi-font-family: Arial" lang=RU>’а можно скачать <A href="https://code.msdn.microsoft.com/gestureswm"><FONT color=#0000ff>тут</FONT></A>. </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU><o:p></o:p></SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>Определение разрешения экрана на WM устройствах</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/103</link>
      <pubDate>Sat, 03 Oct 2009 08:52:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/10/03/103/</guid>
      <description><![CDATA[Оригинал:...]]></description>
      <content:encoded><![CDATA[<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU><STRONG>Оригинал:</STRONG> <A href="https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx">https://blogs.msdn.com/priozersk/archive/2009/03/31/dimming-the-background.aspx</A>&nbsp;</SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>Когда вы разрабатываете управляемые приложения для </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">Windows</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU"> </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">Mobile</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>, обращайте внимание на разрешение экрана вашего мобильного устройства, вам требуется проверять оба разрешения, как </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">VGA</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU"> <SPAN lang=RU>(480</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">x</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>640) так и более старые </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">QVGA</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU> (240</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">x</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>320). Если в свойстве </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">AutoScaleMode</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU"> <SPAN lang=RU>вашей формы установленно значение </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">Dpi</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>, ваши контролы такие как </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">TextBox</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>’ы, </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">Label</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>’ы, кнопки и т.д. будут масштабированны автоматически. Тем не менее, если вы самостоятельно отрисовываете образы или утилизируете </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">ImageList</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>’ы, они не будут масштабированны автоматически. Вовремя выполнения программы вы можете достаточно просто определить разрешение экрана вашего телефона, использую следуший код:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>public</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN> <SPAN style="COLOR: blue">static</SPAN> <SPAN style="COLOR: blue">bool</SPAN> IsHighResolution(<SPAN style="COLOR: blue">this</SPAN> <SPAN style="COLOR: #2b91af">Form</SPAN> form)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: #2b91af">SizeF</SPAN> currentScreen = form.CurrentAutoScaleDimensions;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN> (currentScreen.Height == 192)<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">true</SPAN>;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">return</SPAN> <SPAN style="COLOR: blue">false</SPAN>;<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>}</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>Данный метод является расширением, который является частью класса </SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">ControlExtension</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU"> <SPAN lang=RU>из проекта </SPAN></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'">ListViewDemo</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>, который можно загрузить по <A href="https://code.msdn.microsoft.com/uiframework/Release/ProjectReleases.aspx?ReleaseId=2315" mce_href="https://code.msdn.microsoft.com/uiframework/Release/ProjectReleases.aspx?ReleaseId=2315"><FONT color=#0000ff>следущей ссылке</FONT></A>.<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>Если вы хотите использовать данный метод, это можно сделать следующим образом:<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN><SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>private</SPAN><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN> <SPAN style="COLOR: blue">void</SPAN> HandleHiRes()<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN> (<SPAN style="COLOR: blue">this</SPAN>.IsHighResolution())<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">this</SPAN>.imageList1.ImageSize = <SPAN style="COLOR: blue">new</SPAN> <SPAN style="COLOR: #2b91af">Size</SPAN>(32 * 2, 32 * 2);<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}<o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt" class=MsoNormal><SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-no-proof: yes; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>}</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN><o:p></o:p></SPAN></P>
<P style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 10pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=RU>Используйте</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN" lang=EN>...</SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: RU" lang=EN> </SPAN><SPAN style="FONT-FAMILY: Wingdings; FONT-SIZE: 12pt; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-char-type: symbol; mso-symbol-font-family: Wingdings"><SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings">J</SPAN></SPAN><SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt; mso-fareast-font-family: 'Times New Roman'"><o:p></o:p></SPAN></P>]]></content:encoded>
    </item>
    <item>
      <title>Обзор веб-браузеров для ОС Windows Mobile</title>
      <link>https://docs.microsoft.com/archive/blogs/windowsmobile_ru/windows-mobile</link>
      <pubDate>Sun, 27 Sep 2009 22:41:00 GMT</pubDate>
      <dc:creator><![CDATA[Ilya Vorobiev]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/windowsmobile_ru/2009/09/27/windows-mobile/</guid>
      <description><![CDATA[Оригинал:...]]></description>
      <content:encoded><![CDATA[<H2><FONT size=3 face="Times New Roman">Оригинал: </FONT><A href="https://blogs.msdn.com/windowsmobile/archive/2009/01/05/survey-of-web-browsers-for-windows-mobile.aspx" target=_blank mce_href="https://blogs.msdn.com/windowsmobile/archive/2009/01/05/survey-of-web-browsers-for-windows-mobile.aspx"><FONT color=#0000ff size=3 face="Times New Roman"><B><U>https://blogs.msdn.com/<WBR>windowsmobile/archive/2009/01/<WBR>05/survey-of-web-browsers-for-<WBR>windows-mobile.aspx</U></B></FONT></A></H2>
<P><A title=0.2__Hlt231839986 name=0.2__Hlt231839986></A><FONT size=3 face="Times New Roman">Меня зовут Джим Кози (Jim Causey) и я подготавливаю документацию для разработчиков ядра операционной системы Windows Mobile. Я занимаюсь разработками для ОС Windows в сфере высшего образования и частном бизнесе на протяжении 15 лет, работая в качестве писателя и редактора для SAMS, Microsoft Press, а теперь Майкрософт большую часть этого времени. Дополнительные сведения см. в моем блоге MSDN, </FONT><A href="https://blogs.msdn.com/far_pointer/" target=_blank mce_href="https://blogs.msdn.com/far_pointer/"><FONT color=#0000ff size=3 face="Times New Roman"><U>Far Pointer</U></FONT></A><FONT size=3 face="Times New Roman">.</FONT></P>
<P><FONT size=3 face="Times New Roman">Одним из моих любимых преимуществ обладания телефоном с ОС Windows Mobile (модель Samsung BlackJack II, работающая под управлением версии Windows Mobile 6.1) является многообразная экосистема разработчиков, создающих приложения для моего устройства. Наличие сообщества опытных разработчиков позволяет использовать альтернативные варианты, учитывающие индивидуальные особенности пользователя в работе и развлечениях. Что касается веб-браузеров для Windows Mobile, наряду с приложением корпорации Майкрософт Internet Explorer Mobile доступны версии других производителей. Рассмотрим несколько браузеров, готовых к использованию в данный момент, и один, находящийся в разработке.</FONT></P>
<P><FONT size=3 face="Times New Roman"><B>Skyfire</B></FONT></P>
<P><FONT size=3 face="Times New Roman">В Skyfire используется подсистема графической обработки Gecko из браузера Mozilla, это приложение загружает и обрабатывает все содержимое на серверах Skyfire Labs. Подобный принцип позволяет браузеру правильно обрабатывать любую страницу, которую можно просмотреть на ПК, включая веб-сайты, использующие Silverlight, Adobe Flash, QuickTime компании Apple и другие технологии. Небольшой экран мобильных устройств компенсируется в Skyfire возможностью избирательного прокручивания и масштабирования элементов на странице.</FONT></P>
<P><FONT size=3 face="Times New Roman">На снимке экрана ниже показан экран-заставка браузера Skyfire на телефоне BlackJack II:</FONT></P>
<P><A title=0.2_graphic10 name=0.2_graphic10></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/skyfire_startup_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/skyfire_startup_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/skyfire_startup_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Поскольку Skyfire не предоставляет веб-сайтам сведений об использовании мобильного браузера, каждая посещенная страница отображается в качестве полной версии для настольных систем. Я получил огромное удовольствие от использования Skyfire на телефонах Q9H и BlackJack II; браузер выполнял все возможные задачи, начиная с развлечений в сети Facebook и заканчивая доступом к сведениям о состоянии банковских счетов или просмотром телевизионных передач на Hulu.com! </FONT></P>
<P><FONT size=3 face="Times New Roman">Ниже представлена корневая страница ресурса </FONT><A href="https://www.arstechnica.com/" target=_blank mce_href="https://www.arstechnica.com/"><FONT color=#0000ff size=3 face="Times New Roman"><U>Ars Technica</U></FONT></A><FONT size=3 face="Times New Roman">, обработанная браузером Skyfire:</FONT></P>
<P><A title=0.2_graphic11 name=0.2_graphic11></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_technica_skyfire_1_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_technica_skyfire_1_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_technica_skyfire_1_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Как можно видеть, браузер визуализирует все содержимое, включая Flash-объявление справа. На следующем снимке изображена страница, увеличенная на два уровня:</FONT></P>
<P><A title=0.2_graphic12 name=0.2_graphic12></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_technica_skyfire_zoom2_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_technica_skyfire_zoom2_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_technica_skyfire_zoom2_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Затем переместимся на веб-сайт </FONT><A href="https://www.youtube.com/" target=_blank mce_href="https://www.youtube.com/"><FONT color=#0000ff size=3 face="Times New Roman"><U>YouTube</U></FONT></A><FONT size=3 face="Times New Roman"> для просмотра видеоролика об эффектном бурундуке; масштаб увеличен, чтобы вы могли увидеть его маленькие глаза-бусинки:</FONT></P>
<P><A title=0.2_graphic13 name=0.2_graphic13></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/chipmunk_youtube_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/chipmunk_youtube_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/chipmunk_youtube_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Далее посмотрим телесериал «Звездный крейсер «Галактика» (классические серии) на сайте </FONT><A href="https://www.hulu.com/" target=_blank mce_href="https://www.hulu.com/"><FONT color=#0000ff size=3 face="Times New Roman"><U>Hulu.com</U></FONT></A><FONT size=3 face="Times New Roman">:</FONT></P>
<P><A title=0.2_graphic14 name=0.2_graphic14></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/hulu_galactica_1_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/hulu_galactica_1_3.jpg" width=244 height=185 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/hulu_galactica_1_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">…и версию аналогичного эпизода в увеличенном масштабе:</FONT></P>
<P><A title=0.2_graphic15 name=0.2_graphic15></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/hulu_galactica_2_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/hulu_galactica_2_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/hulu_galactica_2_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Производительность достаточно высокая… следует отметить, что журнал Laptop Magazine недавно провел </FONT><A href="https://blog.laptopmag.com/mobile-browser-showdown-iphone-3g-vs-opera-mobile-and-skyfire" target=_blank mce_href="https://blog.laptopmag.com/mobile-browser-showdown-iphone-3g-vs-opera-mobile-and-skyfire"><FONT color=#0000ff size=3 face="Times New Roman"><U>тестирование мобильных браузеров</U></FONT></A><FONT size=3 face="Times New Roman">, по результатам которого скорость работы Skyfire на iPhone оказалась выше, чем даже у Opera Mobile или Safari. При прокручивании страницы время от времени наблюдались задержки в отображении, однако не стоит ожидать безупречного качества от предварительной версии программного обеспечения. </FONT></P>
<P><FONT size=3 face="Times New Roman">Браузер Skyfire </FONT><A href="https://www.skyfire.com/product" target=_blank mce_href="https://www.skyfire.com/product"><FONT color=#0000ff size=3 face="Times New Roman"><U>бесплатно доступен</U></FONT></A><FONT size=3 face="Times New Roman"> на веб-сайте Skyfire Labs при участии в общественной программе тестирования бета-версии; на данный момент выпущена бета-версия 0.8.5.</FONT></P>
<P><FONT size=3 face="Times New Roman"><B>Opera Mini и Opera Mobile</B></FONT></P>
<P><FONT size=3 face="Times New Roman">Компания Opera Software также представила две версии популярного веб-браузера для ОС Windows Mobile: Opera Mini и Opera Mobile.</FONT></P>
<P><FONT size=3 face="Times New Roman">Браузер<B> Opera Mini</B> бесплатно доступен для загрузки с веб-сайта Opera Software. Opera Mini — это приложение Java, удаленно загружающее и визуализирующее содержимое. Текущая версия, </FONT><A href="https://www.opera.com/mini/download/" target=_blank mce_href="https://www.opera.com/mini/download/"><FONT color=#0000ff size=3 face="Times New Roman"><U>Opera Mini 4.2</U></FONT></A><FONT size=3 face="Times New Roman">, также содержит компонент Opera Link, синхронизирующий закладки и другие личные настройки между приложением Opera, запущенным на настольной системе, и другими мобильными устройствами с браузером Opera Mini. Особенностью Opera Mini является также широкий диапазон представлений, позволяющий выбрать привлекательный внешний вид для интерфейса браузера. Однако по сравнению со Skyfire возможности Opera Mini по отображению различных типов информативного содержимого ограничены; например, ресурс </FONT><A href="https://m.youtube.com/" target=_blank mce_href="https://m.youtube.com/"><FONT color=#0000ff size=3 face="Times New Roman"><U>YouTube</U></FONT></A><FONT size=3 face="Times New Roman"> в настоящее время загружается в браузере Opera Mini только на телефонах Sony Ericsson и Nokia.</FONT></P>
<P><FONT size=3 face="Times New Roman">Первым шагом по запуску приложения Opera Mini является определение каталога его установки; чтобы найти его на телефоне BlackJack II, мне пришлось открыть программу запуска Java:</FONT></P>
<P><A title=0.2_graphic16 name=0.2_graphic16></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_java_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_java_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_java_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Затем загружается экран-заставка:</FONT></P>
<P><A title=0.2_graphic17 name=0.2_graphic17></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_splash_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_splash_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_splash_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Чтобы сохранить паритет, перейдем на домашнюю страницу Ars Technica:</FONT></P>
<P><A title=0.2_graphic18 name=0.2_graphic18></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_ars_technica_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_ars_technica_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_ars_technica_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Как вы видите, Opera Mini не загружает Flash-объявление справа. Затем я увеличил масштаб, чтобы прочитать текст:</FONT></P>
<P><A title=0.2_graphic19 name=0.2_graphic19></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_arstechnica_zoom_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_arstechnica_zoom_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mini_arstechnica_zoom_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman"><B>Opera Mobile</B> — это основное мобильное решение Opera для просмотра веб-страниц. Новейшая версия (8.65) </FONT><A href="https://www.opera.com/buy/" target=_blank mce_href="https://www.opera.com/buy/"><FONT color=#0000ff size=3 face="Times New Roman"><U>доступна для индивидуального приобретения</U></FONT></A><FONT size=3 face="Times New Roman"> либо входит в комплект поставки телефона или пакет услуг мобильной связи. Также можно загрузить бесплатную бета-версию </FONT><A href="https://www.opera.com/mobile/download/" target=_blank mce_href="https://www.opera.com/mobile/download/"><FONT color=#0000ff size=3 face="Times New Roman"><U>Opera Mobile 9.5</U></FONT></A><FONT size=3 face="Times New Roman">.</FONT></P>
<P><FONT size=3 face="Times New Roman">В отличие от Opera Mini приложение Opera Mobile — это полнофункциональный веб-браузер, локально загружающий и обрабатывающий все содержимое. По умолчанию Opera Mobile отображает веб-страницу полностью, позволяя прокручивать и масштабировать ее при необходимости. Opera Mobile также содержит функцию просмотра с несколькими вкладками и инструменты браузера Opera Dragonfly для веб-разработки и отладки. И, наконец, по утверждению Opera Software, Opera Mobile — один из наиболее быстрых мобильных браузеров, доступных в настоящее время. Ниже изображен экран-заставка Opera Mobile:</FONT></P>
<P><A title=0.2_graphic1A name=0.2_graphic1A></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mobile_splash_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mobile_splash_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/opera_mobile_splash_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Браузер Opera Mobile разработан для устройств с сенсорным экраном и в моем телефоне BlackJack II работает недостаточно эффективно. Однако мне удалось настроить устройство; различия можно видеть на следующем снимке экрана Opera Mobile, демонстрирующем обновленную страницу Ars Technica:</FONT></P>
<P><A title=0.2_graphic1B name=0.2_graphic1B></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_opera_mobile_3.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_opera_mobile_3.jpg" width=244 height=184 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/ars_opera_mobile_3.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman"><B>Fennec (Firefox для мобильных устройств)</B></FONT></P>
<P><FONT size=3 face="Times New Roman">Fennec — это кодовое название продукта компании Mozilla, разработавшей версию браузера Firefox для мобильных устройств, в том числе Windows Mobile. Брэд Лэсси (Brad Lassey), ведущий разработчик проекта Fennec, опубликовал в блоге серию статей, посвященных установке и запуску Fennec в </FONT><A href="https://blog.mozilla.com/blassey/2008/10/10/windows-mobile-progress-update/" target=_blank mce_href="https://blog.mozilla.com/blassey/2008/10/10/windows-mobile-progress-update/"><FONT color=#0000ff size=3 face="Times New Roman"><U>эмуляторе Windows Mobile</U></FONT></A><FONT size=3 face="Times New Roman">. </FONT></P>
<P><FONT size=3 face="Times New Roman">В настоящее время Fennec находится в разработке, поэтому сборки Windows Mobile, доступные для загрузки, отсутствуют. Однако можно </FONT><A href="https://www.mozilla.org/projects/fennec/1.0a1/releasenotes/" target=_blank mce_href="https://www.mozilla.org/projects/fennec/1.0a1/releasenotes/"><FONT color=#0000ff size=3 face="Times New Roman"><U>запустить раннюю версию браузера от разработчиков</U></FONT></A><FONT size=3 face="Times New Roman"> (на данный момент это альфа-версия 1) на настольных ПК с ОС Windows, Mac OS X или Linux. На снимке ниже показана страница Ars Technica, загруженная в Fennec, в ОС Windows Vista с пакетом обновления 1:</FONT></P>
<P><A title=0.2_graphic1C name=0.2_graphic1C></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_ars_technica_1.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_ars_technica_1.jpg" width=235 height=244 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_ars_technica_1.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Fennec имеет наглядный интерфейс, позволяющий перемещаться вправо для просмотра всех открытых вкладок:</FONT></P>
<P><A title=0.2_graphic1D name=0.2_graphic1D></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_tabs_1.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_tabs_1.jpg" width=235 height=244 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_tabs_1.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">…или влево для доступа к элементам управления:</FONT></P>
<P><A title=0.2_graphic1E name=0.2_graphic1E></A><FONT size=3 face="Times New Roman"><IMG alt="Возможно, формат этой картинки не поддерживается браузером." src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_controls_1.jpg" original-url="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_controls_1.jpg" width=235 height=244 mce_src="https://blogs.msdn.com/blogfiles/windowsmobile/WindowsLiveWriter/SurveyofWebBrowsersforWindowsMobile_EA61/fennec_controls_1.jpg"></FONT></P>
<P><FONT size=3 face="Times New Roman">Кроме того, поскольку Fennec является проектом с «открытым кодом», разработчики могут самостоятельно попробовать </FONT><A href="https://wiki.mozilla.org/Mobile/Build/Windows_Mobile_Build_Instructions" target=_blank mce_href="https://wiki.mozilla.org/Mobile/Build/Windows_Mobile_Build_Instructions"><FONT color=#0000ff size=3 face="Times New Roman"><U>создать версию Fennec для Windows Mobile</U></FONT></A><FONT size=3 face="Times New Roman">.</FONT></P>
<P><FONT size=3 face="Times New Roman">Я активно использую Firefox на компьютерах с ОС Windows на протяжении многих лет, поэтому с нетерпением жду выхода сборки Fennec для Windows Mobile.</FONT> <BR></P>
<P><FONT size=3 face="Times New Roman">Автор перевода: </FONT><A href="mailto:ubutenko@gmail.com" target=_blank mce_href="mailto:ubutenko@gmail.com"><FONT color=#0000ff size=3 face="Times New Roman"><U>Ульяна Бутенко</U></FONT></A></P>]]></content:encoded>
    </item>
  </channel>
</rss>