Инструменты для построения OCA (иногда подключенное приложение)
-
21-09-2019 - |
Вопрос
Я буду строить собственное, иногда подключенное приложение (OCA). Какие технологии вы бы предложили использовать.
Вот мои параметры:
- .Net Shop (3.5sp1)
- C# для кода позади (Winform, WPF, Silverlight)
- SQL Server Backend (2005 или возможно 2008 г. ожидая одобрения)
- Соло -разработчик
- Соло SQL Администратор
- Низкие технологические конечные пользователи
- Низкая полоса пропускания до 5 филиалов
- Это приложение LOB, но не POS.
- У большинства пользователей есть ноутбуки, которые они берут в дом участника
- Данные для этого приложения хранятся в 5 отдельных базах данных, хотя в одном экземпляре SQL.
Я ищу конкретные рекомендации по тому, какой путь к выбору. Слияние репликации или синхронизационной базы данных поставщиков синхронизации? SQL Express или SQL CE в подписчике? Могу ли я использовать LINQ для SQL для DAL?
Является ли Silverlight 'Offline/Out Off Browser App' Пример здесь, достижимый?
Это мое первое крупное бизнес -приложение, поэтому любые опытные комментарии приветствуются.
Как требуется здесь некоторая дополнительная информация о типе данных. Мои пользователи - медсестры и социальные работники, которые ходят в дома члена и создают для них «планы» или «обзоры оценки здоровья». Это такие вещи, как список лекарств или список существующих «поставщиков». Шаги по достижению целей участников или списка существующих/прошлых диагнозов. Такие вещи.
Также типичное название участников, адрес, номер телефона и т. Д. В основном это приложение для хранения данных и поиска, которое облегчает отчетность. Очень небольшая «обработка» происходит, и медсестры и социальные работники работают в командах, которым назначены участники, поэтому у меня обычно очень мало кроссоверов или потенциальных конфликтов данных. Медсестры и SW также несут ответственность за различные области MCP (План центрированного члена)
Дополнительный вопрос; Действительно ли синхронизационная структура - это только жизнеспособный вариант, если я могу использовать SQL 2008? Кажется, из -за отслеживания изменений и т. Д. .... Мысли?
Решение
Как только вы решите проблему обнаружения изменений и движения данных, все остальное станет тривиальным. Другими словами, такие технологии, как WPF, Silverlight, Forms и даже WCF, являются ортогональными для вашей основной проблемы, и ваш выбор должен основываться на ваших личных предпочтениях и опыте. Настоящий жесткий орех, чтобы взломать, работает отключен и синхронизирует изменения. Что оставляет два проспекта из ящика: синхронизация или репликация.
Я бы сказал, для вашего сценария определенно Синхронизация. Анкет Репликация слияния, как и все формы репликации, предназначена для систем, которые постоянно подключены с разъединениями. И большинство критически репликации могут работать только над статическими именами. Ноутбуки, соединяющие различные горячие точки и интернет-провайдеры, имеют неприятную привычку менять имена FQ с каждым соединением. Репликация может преодолеть это только в том случае, если используется своего рода VPN, а VPN обычно является основной проблемой поддержки. Репликация просто не предназначена для высокой мобильности систем OCA.
Синхронизация в значительной степени заставит вас к SQL 2008 Back End из -за необходимости Изменить захват данных или же Изменить отслеживание, оба являются только SQL 2008 функциями.
У вас все еще будет много сложных проблем для решения вперед (аутентификация, управление версиями и обновление, политики разрешения конфликтов данных, обеспечение данных на клиенте для случайных потерь среда и т. Д.)
Другие советы
Лично я бы сказал:
- .NET 3.5
- Data Services WCF (для связи между клиентским приложением и вашими данными)
- SQL Server 2K5/2K8 (в зависимости от того, что вы можете использовать)
- Silverlight с функциональностью браузера из браузера
- VISTADB (для локального хранилища данных на клиенте, пока вы не сможете перейти на сервер)
использовать уникальный идентификатор Для ключа, если вы создаете вещи, находясь в автономном режиме, а не подключены, а когда вы делаете подключение, обновление базы данных.
Это будет намного проще, чем использование ключа автоматического вступления
Работая над иногда подключенным приложением, я бы посоветовал вам заглянуть в SQL Server CE для клиентских машин, с службами синхронизации для обработки соединений. Вот хороший учебник.
Кажется, вы можете создать этот материал с нуля.
Тем не менее, это кажется очень очень похоже на приложение CRM, и меня не удивит, если бы вы могли найти пакет программного обеспечения для предприятия, чтобы сделать это без начала с нуля и вместо этого изменить одну из конфигураций для соответствия вашим бизнес -правилам.
В предыдущей жизни я был разработчиком конфигурации для этой вещи, называемой Зибель Это может быть близко к тому, что вы ищете. У них даже есть встроенный инструмент синхронизации под названием Siebel Remote.
Это может быть более дешевый путь, чем кататься с нуля с нуля.
Я написал программу «Принять заказ» для торговых представителей. Вот видео. Клиентское программное обеспечение установлено с помощью Click-Once. Это также устанавливает SQL Server Express и загружает базу данных. Я использовал фреймворк Microsoft Sync для синхронизации локальной базы данных с той на сервере (см. Последний раздел видео.)
С мощными клиентами теперь я не вижу причин не использовать SQL Server Express, он бесплатен с пределом 4 ГБ.
У SQL CE было слишком много ограничений - никаких хранимых Procs не является главным.
Вам нужно будет использовать GUID повсюду в качестве основного ключа - см. New SecliententialId ().
Я люблю Click-once, это большая экономия времени.
Я с нетерпением жду Silverlight, но просто не успел изучить его. Не уверен, что я бы сделал это с Silverlight, если бы это сделал сейчас или нет.
Сказав все это, это не проект для кого -либо неопытного. Так что я также получил бы очень опытную помощь.