Я планирую разработать собственную простую и элегантную структуру веб-приложений на C# 3.5. У меня есть некоторые идеи, но еще не лучшая практика, как это должно быть реализовано. Может быть, вы можете помочь?
Мои идеи:
- Это библиотека С# (DLL)
- Он должен использовать XSLT в качестве языка шаблонов, поэтому XML должен быть выходом моего уровня данных/модели.
- Он должен подключаться к различным базам данных, таким как MySQL en SQL Server и ODBC.
- Это должна быть командная база, такая как шаблон проектирования команд, поэтому я могу опубликовать команду с некоторыми параметрами, сгруппированными в эту команду, и делать «вещи»
- Все команды и действия с БД из 1 поста нужно в 1 транзакцию, чтобы можно было все откатить
- Должна быть модель безопасности/авторизации (что хорошо?)
- Он должен иметь какое-то разрешение URL-адреса, например, /a/b/c разрешается в /?id=33.
- Он должен быть подключаемым, поэтому, когда я создаю веб-приложение для кого-то с особыми потребностями, мне не нужно изменять мою базовую библиотеку Engine.
- Он должен иметь методы кэширования и/или сжатия внутри
- Он должен быть быстрым, потокобезопасным и производительным.
- Он должен иметь журнал отладки
- Было бы неплохо иметь какие-то динамические сценарии, такие как IronPython, реализованные на уровне данных/модели для динамического написания сценариев моего вывода в XSLT, чтобы можно было быстро вносить коррективы, не входя в Visual Studio и не настраивая мою DLL.
У вас есть идеи, как лучше всего начать настройку такой структуры? Или уже есть такой фреймворк в C#?
Это одна маленькая идея, когда у вас есть таблицы "Клиент" и "Адрес", и вы хотите разместить html-форму для добавления записи в базу данных и отправить его по почте, вам нужно разместить эти поля в 1 постакции:
Customer.ACTION = add
Customer.Name = "John Smith"
Customer.Email = "[email protected]"
Address.ACTION = add
Address.CustomerId = #Customer.ResultId#
Address.Street = "Mainstreet"
Address.Number = "1"
Mail.ACTION = send
Mail.AFTER = Customer
Mail.To = #Customer.Email#
Mail.From = "[email protected]"
Mail.Subject = "Welcome"
Mail.Body = "Welcome new customer!"
Движок получает сообщение и путем Reflection собирает класс для нужной ему команды, в данном случае DatabaseCommand и MailCommand, и запускает ее. Видите ли, я хочу использовать какую-то очередь с сортировкой. В этом случае Customer-команда должна быть первой, после нее Mail (см. Mail.AFTER) и/или Address (см. зависимость #Customer.ResultId#).
Итак, что вы думаете об этом проекте?
С уважением