Заранее извините за стену текста!
Сценарий:
Мы смотрим, какую технологию выбрать для LOB-приложения, которое должно поддерживать «автономную» модель(frontend + backend работает на настольном компьютере), а также режим локального сервера (backend установлен на локальном сервере), а также программное обеспечение как услуга через Интернет (backend установлен на хост-сервере).
Мымы хотим свести к минимуму работу по разработке, поэтому выбрали интерфейс Silverlight.Мы намерены повторно использовать одну и ту же кодовую базу для всех 3 моделей.
LOB-приложение сильно загружает ввод данных и выполняет некоторую математическую работу с бэкэндом.У нас будет большое количество просмотров.И у нас будет база данных с более чем 80 таблицами.В настоящее время у нас есть собственный DAL, который позволяет нам использовать MSSQL, MySQL и Oracle в качестве СУБД.
В настоящее время мы стремимся использовать приложение Agile TDD Silverlight 4.0 MVVM в качестве интерфейса в C # с инфраструктурой Caliburn.И иметь службу WCF (RIA?) В качестве бэкэнда (не Silverlight, обычный .NET 4.0).Это хорошо подходит для разных моделей, так как это только вопрос, где установлен бэкэнд.Для модели SAAS у нас в Интернете есть сервер, на котором может находиться серверная часть.
Вопросы:
Является ли это звучит ли вообще жизнеспособно, или это продуманное мышление?что у нас может быть одна и та же кодовая база для разных моделей?
Что касается бэкэнда, мы рассматриваем службы RIA WCF, но хотели бы иметь «Безопасность сообщений», которая делаетне представляется возможным в реализации WCF Silverlight.Является ли WCF RIA правильным выбором?Или обычный WCF «лучше» в отношении безопасности каким-либо образом?
Что касается различных СУБД, которые мы должны поддерживать.Это жизнеспособно делать с WCF RIA Services?Или нам лучше создать свой собственный BLL / DAL и выставить его себе с помощью простого WCF?
Есть ли у кого-нибудь опыт установки нескольких СУБД без использования встроенного SQL, а только хранимых процедур?Исходное приложение сильно зависит от встроенного SQL, но нам интересно, насколько это приложение будет обслуживаться только с хранимыми процедурами в разных СУБД.
Последний вопрос, касающийся MVVM и безопасности:мы хотели бы «спрятать» как можно больше нашей логики в бэкэнде из соображений безопасности / защиты кода.Что было бы логичным для этого сделать?Нам нужно сделать TDD, поэтому мы должны иметь возможность макетировать модель, а это значит, что она должна быть доступна во внешнем интерфейсе.Но нам нужна вся логика, чтобы быть в бэкэнде.Должны ли мы просто использовать «оболочку» во внешнем интерфейсе, которая «связывает» «реальную модель» во внутреннем интерфейсе?Вид фиктивной модели, которая подходит 1-на-1 к базовой модели.Или есть «лучший» способ сделать это?
Заранее благодарим за любую помощь, которую вы можете оказать нам по любому из этих предметов!
Гурон.