Windows phone source code

Windows phone source code

1.Вопрос:И кто нибудь может объяснить, как работать с памятью телефона? К примеру открывать и сохранять файлы, создавать папки и т.д.?
Ответ:Работать с кусочком памяти телефона который является песочницей для программы
http://blog.zwezdin.com/ru/201

2.Вопрос:А не подскажите, как можно получить исходный код страницы сайта?
Ответ:Обычный GET запрос.

3.Вопрос:Кстать, кто знает что насчет нативного кода? Что-то раньше говорили про возможность использования COM.
Ответ:Взаимодействовать с неуправляемым кодом могут только OEM’ы.

4.Вопрос:Как зарегистрировать (или как там) страницу настроек, чтоб в Settings в Application Settings было видно?
Ответ:На данный момент никак, используйте отдельную страницу в своем приложении.

5.Вопрос:Подскажите, как можно в XNA приложение добавить в ресурсы текстовый файл или файл с параметрами(не настройки приложения), а потом считать его в программе?
Ответ:Я в своем проекте использую Application.GetResourceStream. Этот метод возвращает StreamResourceInfo, оттуда можно вытащить поток через свойство Stream. Но боюсь что с XNA это не получится, хотя для них обоих Application статичный класс, но попробовать стоит. И да, главное в свойствах самого файла поставить Build Mode на Content.
Вот приведу пример использования:
var stream = Application.GetResourceStream(new Uri(путь_к_файлу_относительно_пакета, UriKind.Relative)).Stream;

6.Вопрос:Как мне сделать блок с крупным текстом?Простой TextBlock выводит только в одну строчку.
Ответ:Просто выставьте свойство TextWrap = Wrap

7.Вопрос:Есть ли в WP7 что-то типо имени устройства, или имени владельца? По аналогии с WM 6.5 (CurrentUser\ControlPanel\Owner ключ Name)
Ответ:Не имя, но уникальный идентификатор, причем анонимный (не по Сеньке шапка простому разработчику знать имя пользователя)
string as string;
string realid = id.Substring(2, 32); //иначе будет неуникально

8.Вопрос:Насколько просто сломать приложение WP7 (*.xap)? Приложение написанные на .net, к примеру, редактируются в блокнотике, отдельным софтом можно просмотреть исходный код.
Ответ:Относительно просто для установки на разлоченный девайс

9.Вопрос: Есть ли какие-то способы защиты кода? По аналоги с обфуксацией в C#.
Ответ:Та же самая обфускация работает и на WP7. Preemptive Dofuscator с версии 4.9 умеет обфусцировать целые XAP.

10.Вопрос: Где и каким образом лучше хранить настройки приложения? На WM 6.5 пользовался готовым классом для работы с ini файлами, файл конфигурации хранил в папке программы.
Ответ:IsolatedStorageSettings или Isolated Storage. Первый вариант предпочтительней для небольших данных, т.к. сериализуется в XML.

11.Вопрос:Реально ли реализовать продажу приложений без AppHub? Хотелось бы сначала запустить продажи «локально», скажем на основе привязке серийника к какому-либо параметру КПК
Ответ:Непродвинутый пользователь (а их большинство) пошлет лесом. «Я должен ‘разлочить’ устройство извращенным методом, скачать непонятно что непонятно откуда, да еще и заплатить непонятно куда. «

12.Вопрос:Почему при использовании WebClient моё приложение зависает, даже на отдельном потоке.
Ответ:Текущая реализация WebClient работает в UI потоке приложения. Используйте HttpWebRequest.

Программы с открытым исходным кодом

Windows Phone Internal Source Code Has Been Published on GitHub

The operating system might be dead but there is still a small but strong community devoted to Windows 10 Mobile. In this community, Rene Lergner (Heathcliff74) is a known name for breaking into the OS to run a custom ROM on a Lumia or full Windows 10 on ARM, among other similar projects. It appears Rene is no longer interested in keeping up with the dead OS and has given up on this project. (He is thinking about breaking into iPhones instead)

Читайте также:  Как узнать занятый порт linux

Rene is now making «Windows Phone Internals» open source to enable anyone who is interested to keep tweaking with it. The full source code of WPinternals is now available on GitHub (via Neowin).

The developer said that he will also be making available some preliminary tools that were used to create Windows Phone Internals. «I also created some tooling which helped me developing Windows Phone Internals,» Rene wrote. «I will upload this to Github too somewhere soon.»

«I will still do some development, but don’t have much time for it lately. So I hope other developers and hackers can contribute too.»

As for future, if Microsoft ever finally releases a Surface phone, Rene said it will be a new challenge. «Maybe I will try to hack an iPhone in the meantime, LOL,» he quipped.

If interested, you can access Windows Phone Internals source code on GitHub.

Разработка под Windows Phone 7 для Android-разработчиков

Разработка приложений под платформу Windows Phone 7 похожа на разработку под платформу Android больше, чем вы могли ожидать. В этой статье Крис Беннетт исследует сходства между этими двумя платформами.

Также, как и мобильные приложения для платформы Android, приложения для Windows Phone 7 написаны на управляемом языке – Java для Android и C# для Windows Phone 7 – с сопроводительными библиотеками. Многие разичия между Java и C# связанны со стилем. Два современных языка имеют общее происхождение от языков C/C++ и имеют сильное сходство друг с другом.

Есть, безусловно, различия между .NET/ Windows Phone 7 и Java/Android API, но поскольку языки похожи, вы сможете сохранить большую часть логики, созданной вами в существующем приложении, при его портировании на Windows Phone 7. На самом деле, вы увидите, что начать очень легко. Для примера вы можете посмотреть статью Windows Phone 7 для Java-разработчиков.

Различия между платформами

Прежде чем углубиться в конкретные инструменты и процессы портирования и/или создания приложений для Windows Phone 7, давайте начнем с терминологии и технологических различий между Windows Phone 7 и Android. Первое большое отличие состоит в том, что приложения для Windows Phone 7 создаются как управляемые .NET сборки, написанные на C#. Платформа поддерживает два типа приложений: Silverlight и XNA игры.
Большинство приложений для Windows Phone 7 создаются с использованием Silverlight, который предоставляет основанный на формах (form-based) способ взаимодействия с пользователем через стандартные элементы управления, такие как надписи, текстовые поля, списки и т.д. Аналогом в Silverlight для Android Layout и сопровождающего его Activity является Page.
Другим типом приложения, поддерживаемого Windows Phone 7, является XNA, который позволяет разработчикам создавать 2D и 3D игры. Это эквивалент Android SurfaceView и GLSurfaceView для 2D и 3D соответственно. В отличие от Android, который ориентирован на использование OpenGL для игр, игры XNA используют Direct3D, что делает проще процесс портирования игр с платформ PC и Xbox 360.

Pages и Navigation

Silverlight Pages создаются в виде XML-файлов, также как и Android Layouts. Для описания Page в XML-файле используется XAML (Extensible Application Markup Language). XAML похож на Android Layout, но он обладает более широким диапазоном возможностей. XAML позволяет разработчикам реализовывать действия, связанные с Page, в том числе анимацию, привязку данных и многое другое, что позволяет уменьшить количество необходимого кода.
Android Layout отделен (decoupled) от Activity, используемого для выполнения действий. В итоге, вы вынуждены писать код для того, чтобы связать Activity с соответствующими элементами пользовательского интерфейса (UI). C# код для конкретного Page уже привязан к элементам UI и такой необходимости просто нет. Платформа автоматически создает необходимые «привязки» для объектов и событий для Page и пользовательского интерфейса. Это предотвращает беспорядок, обычно происходящий в методе OnCreate каждой задачи, где вы создаёте привязки к UI и различные необходимые обработчики.
Другим важным различием между платформами является навигация. В Android вы переключаетесь с одной задачи на другую, создавая Intent. Аналогом в Windows Phone 7 является Navigation, который позволяет перемещаться между различными Pages. Как и в Android Intent, вы можете передать данные Page, к которому вы перемещаетесь. Page в Windows Phone 7 обладает некоторыми свойствами, похожими на ASP.net Page. Например, обычно используется QueryString для того, чтобы передать информацию следующему Page.

Читайте также:  They climbing through your windows

Преобразование Layouts в Pages

Перед погружением в код, нам нужно посмотреть на преобразование Android Layout XML в Windows Phone 7 XAML Pages. Конечно, одним из достоинств бесплатных инструментов для Windows Phone 7 является качество дизайнереских инструментов, доступных для XAML. Дизайнер XAML, включенный в Visual Studio 2010 предназначен для использования в основном разработчиками, чтобы получить основные элементы управления для Page и начать разработку. Expression Blend предназначен для создания профессионального дизайна с более продвинутым набором инструментов для совершенствования пользовательского интерфейса. Как и в случае с Android Layout, вы всегда можете прибегнуть к редактированию XAML непосредственно в текстовом редакторе, так как это обычный XML-файл.
Windows Phone 7 Page предоставляет элементы разметки и управления, сходные с Android Layout. В следующей таблице показаны аналоги для обеих платформ.

Элементы разметки
Windows Phone 7 Android
Canvas AbsoluteLayout
Grid GridView
ScrollView ScrollView
StackPanel LinearLayout

Как вы можете видеть, Windows Phone 7 предоставляет те же самые возможности для создания разметки. В следующей таблице приведен перечень основных элементов управления.

Основные элементы управления
Windows Phone 7 Android
TextBlock TextView
TextBox EditText
Button Button
CheckBox CheckBox
RadioButton RadioButton
Image ImageView
ProgressBar ProgressBar
ListBox ListView
Map MapView
WebBrowser WebView

Обратите внимание, Windows Phone 7 имеет однозначные соответствия для базовых элементов разметки и управления. Но для некоторых из специализированных элементов разметки и управления соответствия не существует. Причина этого лежит в богатых возможностях XAML, который дает возможность очень легко вставлять элементы управления друг в друга. Таким образом можно, например, добавить список (ListBox) с флажками (CheckBoxes) рядом с каждым элементом без необходимости писать какой-либо код. Это означает, что вам не нужны все эти сложные идущие в комплекте элементы управления, они могут быть созданы и изменены в пределах вашего приложения.

Хранение данных

  1. //Create XML
  2. XDocument doc = new XDocument ();
  3. doc.Add( new XElement ( «DataRoot» ,
  4. new XElement ( «Record» ,
  5. new XElement ( «value» , «data1» )),
  6. new XElement ( «Record» ,
  7. new XElement ( «value» , «data2» ))
  8. ));

* This source code was highlighted with Source Code Highlighter .

  1. DataRoot >
  2. Record >
  3. value > data1 value >
  4. Record >
  5. Record >
  6. value > data2 value >
  7. Record >
  8. DataRoot >

* This source code was highlighted with Source Code Highlighter .

  1. //Save the XML
  2. using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
  3. <
  4. using (IsolatedStorageFileStream file = isf.OpenFile( «data.xml» , FileMode .OpenOrCreate))
  5. <
  6. doc.Save(file);
  7. file.Close();
  8. >
  9. >

* This source code was highlighted with Source Code Highlighter .

  1. //Load the XML
  2. using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
  3. <
  4. using (IsolatedStorageFileStream file = isf.OpenFile( «data.xml» , FileMode .OpenOrCreate))
  5. <
  6. XDocument d = XDocument .Load(file);
  7. var query = from r in d.Root.Elements( «Record» )
  8. select r;
  9. //Process the list of record
  10. >
  11. >

* This source code was highlighted with Source Code Highlighter .

Хотя приведенный выше пример очень прост, он иллюстрирует, как легко реализовать хранение данных в телефоне без необходимости создания и использования базы данных. Этот код также может быть расширен для хранения более сложных данных.

Читайте также:  Подключение локальной сети ubuntu windows

Инструменты разработки

Как Android-разработчик вы, скорее всего, привыкли к хорошей и плохой стороне open-source разработки. Использование IDE Eclipse для Android, конечно, часть хорошей стороны. Но Android Development Toolkit (ADT) не хватает многих необходимых инструментов, таких, как надлежащие инструменты разметки. Хотя ADT, на самом деле, предоставляет подобные инструменты, но они не являются достаточно надежными, чтобы вы смогли легко создать разметку – скорее всего, вам придётся погружаться в XML.
Microsoft предоставляет надежные инструменты для разработки на протяжении уже многих лет. И платформа Windows Phone 7 не стала исключением. Microsoft, как обычно, позволяет просто и недорого сразу начать разработку. Java-разработчики могут скачать и попробовать эти инструменты, не тратя денег.
В настоящее время на create.msdn.com доступны следующие инструменты:

  • Microsoft Visual Studio 2010 Express for Phone
  • Microsoft Expression Blend for Phone
  • Microsoft XNA Game Studio for Phone

Эти три инструмента позволят вам бесплатно начать создавать приложения для Windows Phone 7.
Microsoft Visual Studio 2010 Express for Phone является основной комплексной средой разработки (IDE), используемой для создания приложений для Windows Phone 7. Она включает в себя все инструменты, которые вам нужны для создания приложений, в том числе инструмент для создания разметки Page, компилятор С #, эмулятор Windows Phone 7 и многое другое.
Microsoft Expression Blend for Phone является инструментом, ориентированным прежде всего на профессиональных дизайнеров и используется для совершенствования Pages в Silverlight-приложении. Разработчики могут использовать этот инструмент для создания страниц с нуля или улучшать Pages уже существующего приложения, не затрагивая его код.
Microsoft XNA Game Studio for Phone предоставляет набор инструментов, необходимых для создания 2D и 3D игр для платформы. Studio также включает XNA Framework, а также инструменты, необходимые для включения аудио и графики, необходимой при создании закольцованных (loop-based) игр.

Заключение

Windows Phone 7 предлагает новый подход к операционной системе для смартфонов, но она по-прежнему основана на проверенных технологиях, таких как Silverlight, WPF, C# и многие другие. Как вы могли увидеть из этой статьи различия между Android и Windows Phone 7 не так уж и велики.

UPD: Я опубликовал перевод этой статьи с целью показать, что изучить разработку под платформу Windows Phone 7 не так сложно, если уже имеется опыт разработки под Android. Здесь не говорится о том, что какая-то из этих мобильных платформ лучше или хуже.
Пожалуйста, не загоняйте мою карму в минус, чтобы я смог опубликовать другие статьи по разработке под Windows Phone 7. Если вам это не интересно, проходите мимо, не лишайте возможности узнать что-то новое тех, кому это интересно.

Оцените статью