Собрался писать софт под сабж на до-диезе. В связи с этим и с тем, что процесс обучения находится в начальной фазе, у меня возникло несколько довольно простых вопросов — буду признателен, если черкнете пару строк:
1. Как сохранять/загружать настройки? Есть ли реестр на сабже? В общем, как принято?
2. Как запустить задачу в бэкграунде? Например, мне надо, чтобы программа периодически дергала сайт и оповещала юзера об изменениях?
3. Автостарт программы при включении покета — как?
4. Deploy программы на покет? Т.е. есть сама программа + кучу дополнительных файлов — что нужно для deploy? Что-то типа сетапа, я так мыслю...
5. Масштабирование окна — студия создала окошко, уж очень больно по пропорциям напоминающее размеры окна покета. Но меня терзают смутные сомнения — допустим, я хочу рисовать на контексте окна: как грамотней — завязываться на четкие размеры окна или делать отрисовку с учетом масштабирования? В общем, "здесь у меня сплошные пробелы" (с) "Достучаться до небес".
Подозреваю, что знающим людям данные вопросы покажутся ламерскими — в любом случае, мне будет достаточно ссылок на материалы, т.к. общий объем материалов велик, а для быстрого старта обучения конкретика уже необходима.
Здравствуйте, Flamer, Вы писали:
F>1. Как сохранять/загружать настройки? Есть ли реестр на сабже? В общем, как принято?
как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено... F>2. Как запустить задачу в бэкграунде? Например, мне надо, чтобы программа периодически дергала сайт и оповещала юзера об изменениях?
просто запусти и все. не закрывай... F>3. Автостарт программы при включении покета — как?
как в любой Windows — ярлык в Windows\Startup F>4. Deploy программы на покет? Т.е. есть сама программа + кучу дополнительных файлов — что нужно для deploy? Что-то типа сетапа, я так мыслю...
Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска) F>5. Масштабирование окна — студия создала окошко, уж очень больно по пропорциям напоминающее размеры окна покета. Но меня терзают смутные сомнения — допустим, я хочу рисовать на контексте окна: как грамотней — завязываться на четкие размеры окна или делать отрисовку с учетом масштабирования? В общем, "здесь у меня сплошные пробелы" (с) "Достучаться до небес".
имхо, с учетом. пользователь может запустить программу на QVGA, VGA покете, в Landscape или Portrait режиме.. а может вообще на HPC2000(640x200 экран) F>Подозреваю, что знающим людям данные вопросы покажутся ламерскими — в любом случае, мне будет достаточно ссылок на материалы, т.к. общий объем материалов велик, а для быстрого старта обучения конкретика уже необходима.
MSDN www.opennetcf.org www.pocketpcdn.com
в общем случае все очень похоже на десктоп, за исключением того, что .NET CF сильно урезан по сравнению с большим братом.
[]
A>Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска)
Вот этот момент можно поподробнее (сама студия дома, и сйчас нет возможности проверить просто)? Допустим, мне надо еще пяток файлов в CAB запихнуть — визард эту возможность предоставляет? И к слову — где именно этот пункт меню, дабы не рыскать в поисках?
Здравствуйте, Flamer, Вы писали:
A>>Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска) F>Вот этот момент можно поподробнее (сама студия дома, и сйчас нет возможности проверить просто)? Допустим, мне надо еще пяток файлов в CAB запихнуть — визард эту возможность предоставляет? И к слову — где именно этот пункт меню, дабы не рыскать в поисках?
добавляется в проект эти файлы, в свойствах файла ставим — Content. все файлы с таким свойством — будут закинуты в каб.
пункт — Build / Build CAB File.
F>>4. Deploy программы на покет? Т.е. есть сама программа + кучу дополнительных файлов — что нужно для deploy? Что-то типа сетапа, я так мыслю... A>Visual Studio 2003.NET имеет встроеный визард — говоришь Build CAB file — получаешь готовый файл, который можно запустить на покете а-ля инсталлятор(скопирует что и куда нужно, создаст ярлыки для запуска)
Если нужно красивый инсталлятор для десктопа (т.е. чтобы не напрягать юзера скопировать файл на девайс и запустить его) есть утилитка, которая ставится вместе с ActiveSync — CEAppMgr.exe.
Куда она установлена, можно узнать из HKEY_LOCAL_MACHINE\software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe.
Только еще прийдется создавать ini файлы примерно такого содержания:
Я лично использую в связке с NullSoft Script Installer System, очень удобно .
... << RSDN@Home 1.1.4 beta 4>>
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Здравствуйте, artko, Вы писали:
A>как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...
Вот что меня заинтересовало в процессе изучения: как я понял, поддержка Xml в .NET CF урезана. Собственно, как-то можно поиметь чтение/запись XML, или придется текстовик читать?
И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, artko, Вы писали:
A>>как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...
F>Вот что меня заинтересовало в процессе изучения: как я понял, поддержка Xml в .NET CF урезана. Собственно, как-то можно поиметь чтение/запись XML, или придется текстовик читать?
Можно здесь
А можно на MSDN
F>И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.
Это не зависит от C#. Получение текущей директории на PPC вообще проблематично
Нет такого понятия. Так что читайте/пишите файл как на обычной винде. Только имя указывайте абсолютное
Кстати, Вам указывали, что путь для автозапуска директория >как в любой Windows — ярлык в Windows\Startup
не пользуйтесь этим советом. Все относительно в мире этом. Надо пользоваться функциями получения специальных директорий:
BOOL WINAPI SHGetSpecialFolderPath(...);
с параметром
#define CSIDL_STARTUP 0x0007
Этот путь может меняться в зависимости от локализации и конкретной имплементации системы.
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, artko, Вы писали:
A>>как хочешь. винда реестр есть. лично я сохраняю в обычный текстовик, мне так удобнее. и настройки сохранять проще — скопировал программу после ХР назад на покет — все уже настроено...
F>Вот что меня заинтересовало в процессе изучения: как я понял, поддержка Xml в .NET CF урезана. Собственно, как-то можно поиметь чтение/запись XML, или придется текстовик читать?
Про CF не знаю, а вот на eVC у меня с XML проблем не было.
F>И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.
Нету d WinCE такого понятия, как текущий каталог.
На C++ достаточно плясать от того, что возвращает GetModuleFileName.
Не знаю, есть ли аналог в CF.
Вообще на С++ сейчас реально проще писать продукт для покетов.
Все под контролем и обходные пути почти не требуются.
Здравствуйте, Flamer, Вы писали:
F>И еще по ходу непонятка: в ходе прочтения статей выяснилось, что получение текущей директории под покетом на C# — вроде как проблема (я могу ошибаться). В общем, если вас не затруднит — можно кусочек сэмплового кода по загрузке/чтению файла? Буду очень признателен.
Как таковой текущей директории в покете нет, точнее она есть /My Documents/ (и с этим я как работник службы сопровождения на 100% сгласен — нечего разбрасывать по файловой системе всё что ни попадя, куда попадёшь ). Откуда запущено приложение можно узнать так:
Файлы читаются точно также как и на большом брате:
using (StreamReader sr = new StreamReader(Apppath + @"\filelist.ini")) {
string line;
while ((line = sr.ReadLine()) != null) {
listIni.Items.Add(line);
}
}
пример несколько кривой, но просто пример почти из книжки
По поводу чтения xml:
Если xml можно загрузить в DataSet через DataSet.ReadXml и потом для дальнейших операций пройти по строкам таблицы — это самый быстрый способ работы с xml файлом на чистом С#. Правда есть одна тонкость — лишь-бы хватило памяти.
Но быстрее всего читать текстовый файл (если он конечно упорядочен по некоторому ключевому значению) через StreamReader
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
S>По поводу чтения xml: S>Если xml можно загрузить в DataSet через DataSet.ReadXml и потом для дальнейших операций пройти по строкам таблицы — это самый быстрый способ работы с xml файлом на чистом С#. Правда есть одна тонкость — лишь-бы хватило памяти.
Это точно...
MSXML довольно прожорливый. Для покетов могли бы его поаккуратнее сделать.
У меня бывали случаи, что при загрузке большого файла покет просто вешался,
хотя вроде и памяти предостаточно.
Иногда не всегда удается сохранять файл, который вроде был успешно загружен.
Но с небольшими файлами он работает вполне терпимо.
[] G_T>Это не зависит от C#. Получение текущей директории на PPC вообще проблематично G_T>Нет такого понятия. Так что читайте/пишите файл как на обычной винде. Только имя указывайте абсолютное
Вот именно с выделенным непонятки: допустим, юзер установил программу куда ему захотелось: какое-такое абсолютное имя? А рядом с exe лежит несколько файлов, которые надо прочитать. Имхо, тут как раз надо текущую директорию и вперед читать в ней файлы, так? Абсолютное имя — оно на то и абсолютное
Здравствуйте, stele, Вы писали:
S>Здравствуйте, Flamer, Вы писали:
S>Как таковой текущей директории в покете нет, точнее она есть /My Documents/ (и с этим я как работник службы сопровождения на 100% сгласен — нечего разбрасывать по файловой системе всё что ни попадя, куда попадёшь ).
Странно конечно... особенно от работника службы поддержки
у меня, например, нет директории \My Documents... Называется \Мои документы
в других локализованых версиях она называется по-другому
на Smartphones 2003 она называется \Storage\My Documents
на локализованых смартфонах — \Storage\по-другому.
Так что если хочется проблем с поддержкой — привязывайтесь конкретно к \My Documents
Хотя... это, наверное, и есть хлеб для службы поддержки
S>По поводу чтения xml: S>Если xml можно загрузить в DataSet через DataSet.ReadXml и потом для дальнейших операций пройти по строкам таблицы — это самый быстрый способ работы с xml файлом на чистом С#. Правда есть одна тонкость — лишь-бы хватило памяти. А что XmlReader`ы уже не кошерны ?
G_T>Странно конечно... особенно от работника службы поддержки G_T>у меня, например, нет директории \My Documents... Называется \Мои документы G_T>в других локализованых версиях она называется по-другому G_T>на Smartphones 2003 она называется \Storage\My Documents G_T>на локализованых смартфонах — \Storage\по-другому.
G_T>Так что если хочется проблем с поддержкой — привязывайтесь конкретно к \My Documents
G_T>Хотя... это, наверное, и есть хлеб для службы поддержки
Я не совсем корректно выразился (поздно было ). Я имел в виду что есть некая абстракная папка %Мои документы% и располагаться она может в основной памяти на карте памяти или где ещё. Но самое главное что пользователь встроенным диалогом открытия сохранения дальше её ни куда не попадёт и ни чего не изувечет (только диалог этот они через одно место сделали ).
... << RSDN@Home 1.1.4 411 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, Gandalf_The_Grey, Вы писали:
F>Вот именно с выделенным непонятки: допустим, юзер установил программу куда ему захотелось:
Штатными средствами, если для инсталяции использовать cab файл, пользователю может захотеться установить прогграмму в 2 произвольных места (или в 3 или в 4 в зависимости от количества карт памяти) в папку %Program Files% основной памяти или в корень съёмных носителей памяти (включая встроенную флеш память).
F>какое-такое абсолютное имя? А рядом с exe лежит несколько файлов, которые надо прочитать. Имхо, тут как раз надо текущую директорию и вперед читать в ней файлы, так? Абсолютное имя — оно на то и абсолютное и других слов нет.
... << RSDN@Home 1.1.4 411 >>
В задаче спрашивается:
Сколько вытечет портвейна из открытого бассейна?