Разработка приложений ASP.NET - Gotchas - PullRequest
1 голос
/ 16 июля 2009

Это может показаться немного общим, но у меня есть стартап, который работает над набором программных приложений ASP.NET (greenfield). Мы стремимся потратить значительное количество времени на этапе архитектуры, чтобы разработать прочную основу для нашего программного обеспечения. Мне было интересно, есть ли у кого-нибудь какие-либо советы, на чем мы должны сосредоточиться или какие-либо предложения для областей, на которых мы должны сосредоточиться, чтобы построить лучший набор.

Некоторые вещи, на которых мы сейчас сосредоточены: 1. Требования к состоянию сеанса - должны ли сеансы быть липкими или мы должны учитывать миграцию сеансов кластеризации серверов. 2. Аутентификация пользователя при входе в систему - каковы основные проблемы в этом пространстве - LDAP, AD, пользовательские системы аутентификации SQL и т. Д. 3. DAL - ORM против сохраненного процесса
4. Интеграция нескольких приложений ASP.NET в один программный пакет. Как это должно выглядеть / чувствовать. Как это должно быть спроектировано и т. Д.

Буду признателен за любые советы от любых архитекторов, которые создавали подобные системы с нуля.

Ответы [ 4 ]

3 голосов
/ 16 июля 2009

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

1 голос
/ 17 июля 2009

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

  • Начните с самого начала, используя Enterprise Library , особенно блоки приложений «Ведение журнала» и «Обработка исключений». Я также обнаружил, что их библиотека внедрения зависимостей Unity очень полезна.
  • Рассмотрите возможность использования Visual Studio Team Foundation Server . Это не только для контроля исходного кода, но может создать вам полное решение непрерывной интеграции, в комплекте с интегрированным отслеживанием ошибок, отслеживанием качества кода и т. Д. Если у вас есть время и люди, то стоит потратить месяц на изучение того, как сделать первоначальное развертывание.
  • Возможно, вы захотите купить одну или несколько лицензий одного из Visual Studio Team System выпусков. Вам не нужны эти версии для использования TFS, но они хорошо работают с ним.
  • Рассмотрим глобализацию с самого начала. То же самое с настройкой, если ваш пакет будет работать в помещениях клиентов и настраиваться ими.
  • Вы не сказали, насколько велика ваша команда, или, как ожидается, будет. Если он достаточно большой, вы захотите потратить хотя бы одну рабочую неделю, чтобы немного узнать о том, что вам доступно с точки зрения Расширяемость Visual Studio . Ваши разработчики (и, возможно, также ваши сотрудники по обеспечению качества) будут почти, кроме жить в Visual Studio, поэтому возможность настроить его в соответствии с вашими потребностями может быть большой победой. Будь то какие-то макросы или, может быть, некоторые настраиваемые шаблоны проектов или элементов, или вы хотите создавать надстройки или более, Visual Studio очень расширяема.
  • Обязательно используйте WCF для любой работы веб-служб. Более старая технология веб-службы ASMX в настоящее время рассматривается корпорацией Microsoft как «устаревшее программное обеспечение».
  • Наконец, обязательно выясните, имеете ли вы право на участие в программе BizSpark , «Программа, которая обеспечивает программное обеспечение, поддержку и доступность для запуска программ». И делает это почти бесплатно.
1 голос
/ 17 июля 2009

Вчера вечером я увидел демо-версию Silverlight 3 в группе пользователей PhillyDotNet - ВАУ. Ничего себе для бизнес-приложений, а не графических приложений. Есть кривая обучения, но вы получаете много за это. Например, демонстрация показала привязку сетки к таблице без необходимости написания кода.

Прямо из коробки у вас были сортировка, редактирование, разбиение по страницам и т. Д. Но это были не хламовые вещи, которые вы обычно получаете, а затем приходится переделывать. Например, подкачка была достаточно умной, чтобы написать sql, который вернул бы только 20 строк, необходимых для страницы.

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

И сетка, и форма детализации были доступны для редактирования, и когда вы меняете поле в одном, другое будет отражать новое значение. Редактирование было достаточно умным, чтобы проверить поле самостоятельно. Таким образом, вы не могли поместить букву в поле целочисленного типа и т. Д. Это также ограничивало количество символов, которые можно было ввести, исходя из размера столбца, найденного в базе данных. Все поля даты в форме сведений автоматически имеют календарь рядом с ними. Вы поняли - без кодирования для всего этого.

Если этого недостаточно, его можно использовать для создания иногда подключенных приложений. Поэтому он показал, как он обновил несколько записей на нескольких разных страницах, имел возможность позже вернуться к полю (ctrl-Z), а затем в конце отправил все измененные записи для сохранения.

Кроме того, они сказали, что он работает с Linq2SQL и фреймворком сущностей.

Так что, если бы я сейчас создавал новый продукт, я бы действительно рассматривал это как способ дифференциации своего продукта. И я подозреваю, что если вы не сделаете это сейчас с Silverlight, вы все равно будете переписывать его через несколько лет.

Здесь - это ссылка на демонстрацию (не та, которую я видел)

0 голосов
/ 17 июля 2009

Некоторые общие мысли. Если вы хотите, чтобы я разъяснил что-либо из этого, дайте мне знать.

  • Наследование от пользовательского подкласса Страница вместо самой страницы является отличный способ поделиться функциональностью через ваш сайт.
  • Вложенные MasterPages хороши.
  • Диаграмма: я пробовал DevExpress, Syncfusion, MSChart и контроль у всех есть свои проблемы.
  • Встроенная проверка подлинности форм довольно хорошо. Создание сайта, который позволяет как интегрированную аутентификацию и проверка подлинности форм сложно но можно сделать.
  • Я пытался использовать кросс-постбэки и я до сих пор не уверен, что мне нравится им.
  • Локализация занимает много времени
  • Придумайте хорошую структуру для ваших App_Themes и css.
  • Используйте Elmah для отслеживания необработанных исключений
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...