Инструменты для создания ОСА (иногда подключенного приложения) - PullRequest
9 голосов
/ 20 января 2010

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

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

  1. .NET Shop ( 3.5sp1 )
  2. C # для кода позади ( winform, wpf, silverlight )
  3. Серверная часть SQL Server ( 2005 или возможно 2008 в ожидании утверждения )
  4. Индивидуальный разработчик
  5. Solo SQL Administrator
  6. Конечные пользователи Low Tech
  7. Низкая пропускная способность до 5 филиалов
  8. Это приложение LOB, но не POS.
  9. У большинства пользователей есть ноутбуки, которые они берут в дом члена
  10. Данные для этого приложения хранятся в 5 отдельных базах данных, хотя в одном экземпляре SQL.

Я ищу конкретные рекомендации о том, какой путь выбрать. Слияние репликации или синхронизация базы данных провайдеров синхронизации? SQL Express или SQL CE у подписчика? Могу ли я использовать LINQ to SQL для DAL?

Является ли Silverlight 'Offline / Out of Browser App' Пример здесь , возможно?

Это мое первое БОЛЬШОЕ бизнес-приложение, поэтому любые опытные комментарии приветствуются.


В соответствии с запросом здесь приведена дополнительная информация о типе данных. Мои пользователи - медсестры и социальные работники, которые ходят по домам Участника и создают для них «Планы» или «Обзоры оценки здоровья». Это такие вещи, как Список лекарств или Список существующих «Поставщиков». Шаги для достижения целей членов или список текущих / прошлых диагнозов. Такие вещи.

Также типичное имя участника, адрес, номер телефона и т. Д. В основном это приложение для хранения и поиска данных, которое облегчает составление отчетов. Происходит очень мало «обработки», и медсестры и социальные работники работают в командах, которым назначены члены, поэтому у меня обычно очень мало перекрестных или потенциальных конфликтов данных. Медсестры и СР также несут ответственность за различные области MCP ( План для участников )


Дополнительный вопрос; Является ли Sync Framework действительно приемлемым вариантом, если я могу использовать SQL 2008? Кажется, так из-за отслеживания изменений и т.д .... мысли?

Ответы [ 6 ]

4 голосов
/ 20 января 2010

Как только вы решите проблему обнаружения изменений и перемещения данных, все остальное становится тривиальным. Другими словами, такие технологии, как WPF, Silverlight, Forms и даже WCF ортогональны вашей основной проблеме, и ваш выбор должен основываться на ваших личных предпочтениях и опыте. Настоящий крепкий орешек - это работа в автономном режиме и синхронизация изменений. Что оставляет два готовых способа: Synch Framework или Replication.

Я бы сказал, для вашего сценария, определенно Synch Framework . Репликация слиянием, как и все формы репликации, предназначена для систем, которые постоянно связаны с прерывистыми разъединениями. И наиболее критически репликация может работать только над статическими именами. Ноутбуки, подключающиеся из разных горячих точек и интернет-провайдеров, имеют неприятную привычку менять имена FQ при каждом подключении. Репликация может преодолеть это, только если используется своего рода VPN, и VPN обычно является основной проблемой поддержки. Репликация просто не предназначена для высокой мобильности систем ОСА.

Synch Framework в значительной степени заставит вас работать с SQL 2008 из-за необходимости Изменить сбор данных или Отслеживание изменений , обе функции SQL 2008.

У вас все еще будет много сложных проблем, которые предстоит решить заранее (аутентификация, управление версиями и обновление, политики разрешения конфликтов данных, защита данных на клиенте для случайной потери носителя и т. Д. И т. Д.)

2 голосов
/ 20 января 2010

Лично я бы сказал:

  • .NET 3.5
  • Службы данных WCF (для связи между клиентским приложением и вашими данными)
  • SQL Server 2k5 / 2k8 (в зависимости от того, что вы можете использовать)
  • Silverlight без функции браузера
  • VistaDB (для локального хранения данных на клиенте до отправки на сервер)
1 голос
/ 20 января 2010

Я написал программу приема заказов для торговых представителей. Вот видео. Программное обеспечение клиента устанавливается с помощью однократного нажатия.Это также устанавливает SQL Server Express и загружает базу данных.Я использовал Microsoft Sync Framework для синхронизации локальной базы данных с базой данных на сервере (см. Последний раздел видео.)

  • С мощными клиентами сейчас я не вижу никакой причиныне использовать SQL Server Express, это бесплатно с ограничением 4 ГБ.

  • В SQL CE было слишком много ограничений - ни один из хранимых процедур не являлся основным.

  • Вам потребуется везде использовать GUID в качестве первичного ключа- увидеть новый NewSequentialID ().

  • Я люблю щелкать один раз, это экономит много времени.

Я с нетерпением жду Silverlight, но просто не было времени изучить его.Не уверен, что я сделал бы это с Silverlight, если бы делал это сейчас или нет.

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

1 голос
/ 20 января 2010

Кажется, вы могли бы создать этот материал с нуля.

Тем не менее, это похоже на CRM-приложение, и меня не удивит, если вы найдете пакет корпоративного программного обеспечения для этого, не начиная с нуля, и вместо этого измените одну из конфигураций в соответствии с вашими бизнес-правилами.

В прошлой жизни я был разработчиком конфигурации для этой вещи под названием Siebel , которая может быть близка к тому, что вы ищете. У них даже есть встроенный инструмент синхронизации, который называется Siebel Remote.

Это может быть более дешевый маршрут, чем прокатка с нуля.

1 голос
/ 20 января 2010

Работая над периодически подключаемым приложением, я бы посоветовал вам обратиться к SQL Server CE для клиентских компьютеров со службами Sync для обработки соединений. Вот хороший учебник.

1 голос
/ 20 января 2010

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

это будет намного проще, чем использование клавиши автоинкремента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...