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

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

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

  1. Магазин.NET (3.5sp1)
  2. C# для кода позади (winform, wpf, Silverlight)
  3. Бэкенд SQL Server (2005 или возможно 2008 незаконченное одобрение)
  4. Сольный разработчик
  5. Соло администратор SQL
  6. Низкие Технические конечные пользователи
  7. Низкая пропускная способность к 5 Филиалам
  8. Это - Приложение отделов организации, но не POS.
  9. У большинства пользователей есть ноутбуки, которые они берут в Дом участника
  10. Данные для этого Приложения хранятся в 5 отдельных Базах данных, хотя в одном экземпляре SQL.

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

Является Silverlight 'Офлайновым/Из Приложением браузера' Пример Здесь, выполнимый?

Это - мое первое приложение Крупного бизнеса, таким образом, любые опытные комментарии приветствуются.


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

Также типичное членское Имя, Адрес, Номер телефона, и т.д. Главным образом это - приложение Хранения данных и Извлечения, которое упрощает создание отчетов. Очень мало "обработки" происходит и работа Медсестер и Социальных работников в командах, которые являются присвоенными участниками, таким образом, у меня обычно есть очень мало перекрестных или потенциальных конфликтов данных. Медсестры и SW также ответственны за другую область MCP (участник План В центре)


Дополнительный вопрос; Действительно ли синхронизирующая Платформа является действительно только жизнеспособным вариантом, если я могу использовать SQL 2008? Кажется что путь из-за Отслеживания изменений и т.д..... мысли?

9
задан Tom H 22 July 2010 в 08:30
поделиться

6 ответов

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

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

Синхронизация в значительной степени заставляет вас к концу SQL 2008, из-за необходимости изменить захват данных или отслеживание изменений , оба существа SQL 2008 только.

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

4
ответ дан 3 November 2019 в 01:56
поделиться

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

  • .NET 3.5
  • Услуги данных WCF (для связи между клиентским приложением и вашими данными)
  • SQL Server 2K5 / 2K8 (в зависимости от того, что вы можете использовать)
  • Silverlight w / из функциональности браузера
  • Vistadb (хранить данные локально на клиенте, пока вы не сможете нажать на сервер)
2
ответ дан 3 November 2019 в 01:56
поделиться

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

1
ответ дан 3 November 2019 в 01:56
поделиться

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

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

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

  • Вам нужно будет использовать GUID везде, как основной ключ - см. Новый NewsexentiD ().

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

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

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

1
ответ дан 3 November 2019 в 01:56
поделиться

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

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

1
ответ дан 3 November 2019 в 01:56
поделиться

Как насчет макро-трюки?

Испытали код ниже

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

myclass.h

@interface MyClass : NSObject {
#ifdef MYCLASS_CONTENT
    MYCLASS_CONTENT // Nothing revealed here
#endif
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, assign) int extra;
- (id)initWithString:(NSString*)str;
@end

myclass.m

// Define the required Class content here before the #import "MyClass.h"
#define MYCLASS_CONTENT \
  NSString *_name; \
  int _extra; \
  int _hiddenThing; 

#import "MyClass.h"

@implementation MyClass
@synthesize name=_name;
@synthesize extra=_extra;

- (id)initWithString:(NSString*)str
{
    self = [super init];
    if (self) {
        self.name = str;
        self.extra = 17;
        _hiddenThing = 19;
    }
    return self;
}

- (void)dealloc
{
    [_name release];
    [super dealloc];
}

@end
-121--4538104-

Вы можете создать эти вещи с нуля, похоже.

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

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

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

1
ответ дан 3 November 2019 в 01:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: