В настоящее время я разрабатываю решение ERP для компании. Требования следующие:
Им нужно одно приложение на основе winforms, которое позаботится о таких модулях, как HR, BSC, Inventory и т. Д.
Интернет-решение, которое требует, чтобы все сотрудники получили доступ к своим личным данным, подали заявку на отпуск и т. Д. Это должно быть решение на основе Интернета, к которому можно получить доступ из любого места.
В будущем они также захотят создать систему управления документами, основанную на сети.
Сейчас мы уже закончили работу с некоторыми модулями в приложении winforms, так как это было срочным требованием. Для winforms мы использовали горизонтальный подход к многоуровневой архитектуре. т.е. каждый модуль представляет собой один проект со своим собственным уровнем данных и бизнес-уровнем внутри проекта. Теперь мне нужно начать работу над веб-решением. Мне просто интересно, какой подход будет лучшим подходом для совместного использования уровня данных и уровня модели между приложением winforms и веб-приложением. Кроме того, веб-приложение должно иметь надлежащую безопасность, поскольку это будут конфиденциальные данные. Я подумал о двух подходах, которые могут не охватывать все доступные возможности.
Подходы, о которых я могу думать, следующие:
а. создать веб-сервис, который позаботится о слое данных и моделях. разместите его на сервере и получите доступ к нему через приложение winforms и веб-приложение. Для этого мне нужно будет изменить кодировку, которую я уже сделал. Но это приемлемо, поскольку потребует минимальных усилий в качестве многоуровневой архитектуры. здесь единственное сомнение, которое у меня есть, это то, что приложение winforms будет без необходимости проходить через слой веб-службы и замедлять его.
б. Преобразуйте слой данных и модели в библиотеки DLL. Получите доступ к этим dll в winforms и веб-приложении.
Также относительно веб-приложения, которое будет лучшим подходом:
а. Стоит ли мне использовать веб-приложение на основе MVC3.
б. ИЛИ asp.net и WCF?
Ситуация такова, что я работаю над этим проектом вместе с коллегой, а нас команда состоит всего из двух человек. Так что мы сами принимаем решения обо всем.
У меня довольно хороший опыт работы с winforms, но сравнительно меньший опыт работы с веб-технологиями. Я буду очень признателен за ваше мнение по этому поводу.