Кэширование + обмен сообщениями + коллекции + сервисы + коммуникации + диагностика + контролы = WP7Contrib
Сегодняшний проект – один из тех, о которых я упоминал в прошлом сообщении, но отложил на более позднее время. И сейчас это время пришло.
Создание приложений для WP7.x состоит более чем из построения бизнес/прикладной/игровой логики. Также вы должны создать все типы объединяющей инфраструктуры. Хотя некоторым нравиться все делать самостоятельно, контролируя все нули и единицы приложения, большинство предпочло бы сфокусироваться на конкретных проблемах, которые они пытаются решить.
Так как мы разработчики, то нам не нравятся черные ящики. Нам нужна возможность видеть весь код, используемый в инфраструктуре наших приложений, нужна уверенность в том, что если понадобиться, то мы самостоятельно сможем дернуть код, с которым есть проблемы, даже если автор отсутствует. Наконец, что мы сможем исследовать его, и убедиться, что он настолько хорош, насколько требуется. Нам нужно лучшее от обоих миров, от потрясающих инфраструктурных библиотек и наших кодов.
Нам нужно что-то вроде ...
WP7 Contrib (WP7C) похож на многие другие попытки сообщества двигаться в направлении объединения ресурсов вместе, решения общих проблем и помощи в придатнии формы новым способам подхода к общим проблемам платформы.
WP7C содержит не только результаты проделанной нами работы по объединению, основанной на опыте разработки для WP7, но и результаты широкой общественности. Всё что мы бы хотели сделать – это упаковать всё в одном месте, чтобы облегчить людям, занимающимся разработкой для WP7, доступ к примерам использования этих материалов. Другой причиной было побуждение сообщества к оставлению отзывов по новым возможностям, а также поощрение людей к присоединению к нашим поискам, возможно даже с включением выполненной ими работы.
...
Мы увидим подтекст для всех этих компонентов, которые пересматриваем в настоящий момент, включая сами эти подходы; использование везде, где возможно Rx, чтобы помочь с производительностью при передаче данных из конечных точек; персональную ответственность; и шаблоны «спрашивай, но не говори». Олли более глубоко напишет об этих подходах в следующих сообщениях, а также о том, почему мы считаем, что они помогут разработке в целом.
Итак, что же содержится в проекте, какие сервисы он обеспечивает? В названии сообщения они все перечислены: кэширование, обмен сообщениями, коллекции, сервисы, коммуникации, диагностика и отладка и элементы управления пользовательским интерфейсом.
Вот снимок фрагмента главной страницы проекта WP7Contrib, касающийся элементов управления пользовательским интерфейсом:
Исполняемые файлы распространяются в двух формах – нормальной и ILMerged, обе для версий 7.0 и 7.1.
ILMerged? Это когда все различные DLL-библиотеки сливаются в одну DLL с помощью утилиты Microsoft ILMerge, существенно упрощая развертывание.
Вот снимок нормальной формы нормальной формы 1.0.0.12 для выпуска 7.1;
А вот для версии ILMerged;
Вместо одиннадцати DLL – только одна!
Теперь всё, что вам нужно – одна DLL вместо одиннадцати, и вы должны использовать эту одну (если, конечно, для чего-нибудь не понадобиться большое число библиотек). Поэтому применение версии 11 в одной имеет смысл.
Наконец обратимся исходным кодам. Вот исходное решение для версии 7.1
Есть ли там примеры или демонстрации? О да … В каталоге Spikes их целый букет.
Короче, если вы создаете приложения для WP7.x и ищете надежную основу для сервисов, и вам хочется глубже и полнее постичь код, проект WP7Contrib может оказаться тем местом, которое надо проверить в первую очередь.
Вот несколько ссылок, которые могут оказаться интересными: