Инструменты для построения OCA (иногда подключенное приложение)

StackOverflow https://stackoverflow.com/questions/2103918

Вопрос

Я буду строить собственное, иногда подключенное приложение (OCA). Какие технологии вы бы предложили использовать.

Вот мои параметры:

  1. .Net Shop (3.5sp1)
  2. C# для кода позади (Winform, WPF, Silverlight)
  3. SQL Server Backend (2005 или возможно 2008 г. ожидая одобрения)
  4. Соло -разработчик
  5. Соло SQL Администратор
  6. Низкие технологические конечные пользователи
  7. Низкая полоса пропускания до 5 филиалов
  8. Это приложение LOB, но не POS.
  9. У большинства пользователей есть ноутбуки, которые они берут в дом участника
  10. Данные для этого приложения хранятся в 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, если бы это сделал сейчас или нет.

Сказав все это, это не проект для кого -либо неопытного. Так что я также получил бы очень опытную помощь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top