Я занимаюсь разработкой части приложения с именем A. Приложение, в которое я хочу подключить свою DLL, под названием приложение B, находится в vb 6, а мой код - в vb.net. (Приложение B будет со временем преобразовано в vb.net). Мой главный вопрос: как мне лучше организовать свой код (приложение A)?
Я хочу разделить приложение A на слои (Сервис, Бизнес, Доступ к данным), поэтому будет легко интегрировать приложение A в B, когда B преобразуется в vb.net. Я также хочу узнать обо всех темах, таких как многоуровневая архитектура, шаблоны, инверсия зависимостей, структура сущностей и так далее. Хотя мое приложение (A) небольшое, я хочу организовать свой код наилучшим образом.
Приложение, с которым я работаю (A), использует веб-службы для аутентификации пользователей и для отправки схемы в организацию. Пользователь приложения B выбирает пункт меню в приложении B, а затем некоторые функции в моем приложении A называются.
В приложении A у меня есть автоматически сгенерированный класс схемы из схемы xsd. Я заполняю этот объект схемы данными и сериализую объект в строку памяти (это хорошее решение для использования строки памяти, мне пока не нужно сохранять данные), оборачиваю XML внутри блока CDATA и возвращаю блок CDATA в виде строки и назначить блок CDATA строковому свойству веб-службы.
Я также использую Entity Framework для связи с базой данных (чтобы узнать, как это сделать для будущей работы с приложением B). У меня есть две сущности в моем .edmx, Пользователь и Плательщик.
Я также хочу использовать шаблон хранилища (это хороший выбор?), Чтобы сделать фасад между DAL и BLL.
В моем приложении есть функции для GeneratingSchema (заполнение объекта схемы данными), GetSchemaContent, GetSchemaInformation, GenerateCDATABlock, WriteToTextFile, MemoryStreamToString, EncryptData и некоторые функции, которые используют веб-сервисы, такие как SendShema, AuthenticateUser, GetAvalibelServServ и другие.
Я не уверен, куда мне все это положить?
Я думаю, что у меня должны быть некоторые интерфейсы, такие как IRepository, ISchema (контракт для автоматически сгенерированного класса схемы, как я могу это сделать?), ICryptoManager, IFileManager и т. Д., И классы, реализующие интерфейсы.
Мой DAL будет основой Entity. И мне нужен фасад хранилища в моем BLL (IRepository, UserRepository, PayerRepository) и классы для управления (как классы, о которых я упоминал выше), содержащие функции, такие как WriteToFile, EncryptData… ..
Является ли это хорошим решением (нужен ли мне сервисный уровень, весь мой графический интерфейс которого находится в приложении B) и как я могу организовать свои слои, интерфейсы, классы и функции в Visual Studio?
Заранее спасибо.