Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Разделение кода на dll и aspx / 10 сообщений из 10, страница 1 из 1
16.04.2006, 15:58
    #33669518
PhD
PhD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
Здравствуйте, уважаемые участники форума!

Поделитесь опытом, пожалуйста, как правильно организовать разделение кода и интерфейса? Мне нужно в dll поместить все работу с БД. Как организовать взаимодействие между aspx и dll. И как написать саму dll (просто Windows проект C#, скомпилированный в dll или как)?

Заранее благодарен!

С уважением, PhD
...
Рейтинг: 0 / 0
16.04.2006, 16:34
    #33669541
vbnet2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
В ASP2 просто Add New Class. IDE тебе предложит добавить твой класс в App_Code. Туда и сваливай все свои функции общего пользования - они будут доступны с любой странички.

Насчет именно ОТДЕЛЬНОЙ dll - это тоже можно - только сто раз подумай, почему именно тебя не устраивает вышеназванное ОБЫЧНОЕ ШТАТНОЕ РЕШЕНИЕ.

Если ты хочешь DLL делать в отдельном проекте - так смотри какие там будут ссылки. Ссылки на Windows.Forms, например, делают полностью невозможным использование этой DLL в SQL-сервере, не уверен, что в среде IIS получится сработать со ссылкой на Windows.Forms.
...
Рейтинг: 0 / 0
17.04.2006, 01:33
    #33669954
profil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
vbnet2000Насчет именно ОТДЕЛЬНОЙ dll - это тоже можно - только сто раз подумай, почему именно тебя не устраивает
вышеназванное ОБЫЧНОЕ ШТАТНОЕ РЕШЕНИЕ.не понятно что вы подразумеваете под штатным решением?
как раз вынос в отдельную библиотеку функционала, который может быть использован во многих проектах (как то классы работы с базой),
имхо, является хорошей практикой

vbnet2000Если ты хочешь DLL делать в отдельном проекте - так смотри какие там будут ссылки. Ссылки на Windows.Forms,
например, делают полностью невозможным использование этой DLL в SQL-сервере, не уверен, что в среде IIS получится сработать со
ссылкой на Windows.Forms.хм... помоему бред


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
17.04.2006, 05:25
    #33669989
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
С трудом верится что SQL умничает в это смысле проверяя ссылки самостоятельно. IIS точно нет.
.Net начинает искать и грузить длл только когда идет обращение к чему-то, содержащемуся в длл. Пока этого нет, ее может вообще не быть, и никто не заплачет.
Функционал в длл - самое что ни на есть "штатное решение" (еще говорят, best practices :)).

По существу вопроса - для использования длл в приложении надо добавить в приложение ссылку (add reference) на проект длл либо на саму длл. Проект длл делаем как class library.
Для доступа к БД пишем тупые internal static classes, которые умеют только дергать ХП или другой IO. Над ними - public классы предметной области, реализующие, в том числе, кеширование. Все это в длл, которые и используем в приложении, либо в аппсервере, если делаем масштабируемое приложение. Проверено электричеством.
...
Рейтинг: 0 / 0
17.04.2006, 12:13
    #33670674
vbnet2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
Код: plaintext
С трудом верится что SQL умничает в это смысле проверяя ссылки самостоятельно
Точно. У меня несколько SQL-сборок работаю уже на боевых серверах. С SQL-сборками собаку сьел. Никак там не получается с ПРОИЗВОЛЬНЫМИ ссылками, а так хотелось поначалу...
...
Рейтинг: 0 / 0
17.04.2006, 12:34
    #33670742
Ющенко
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
PhDЗдравствуйте, уважаемые участники форума!

Поделитесь опытом, пожалуйста, как правильно организовать разделение кода и интерфейса? Мне нужно в dll поместить все работу с БД. Как организовать взаимодействие между aspx и dll. И как написать саму dll (просто Windows проект C#, скомпилированный в dll или как)?

Заранее благодарен!

С уважением, PhD

см. пользовательские элементы управления, специальные и составные
...
Рейтинг: 0 / 0
18.04.2006, 10:10
    #33672658
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
Ющенкосм. пользовательские элементы управления, специальные и составные
А каким боком они относятся к вопросу?
...
Рейтинг: 0 / 0
19.04.2006, 17:27
    #33677300
Crypto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
vbnet2000...Ссылки на Windows.Forms, например, делают полностью невозможным использование этой DLL в SQL-сервере, не уверен, что в среде IIS получится сработать со ссылкой на Windows.Forms.
Какая разница, какие dll-ки использует приложение, если это strong-named сборки, значит они должны находится в GAC, если нет, то в локальных каталогах приложения. Конфликтов IIS и Windows.Forms вообще нет, т.к. System.Windows.Forms.dll поставляется вместе с Framework'ом. Правда я не вижу причины использовать классы System.Windows.Forms в ASP.NET-проектах...
Насчет хорошей практики разделения кода я согласен с profil. Вообще в любом более менее нормальном проекте помимо слоя представления должно быть как минимум 2 дополнительных уровня, (желательно) выполненных в виде отдельных сборок (dll) - BLL (Business Logic Layer) и DAL (Data Access Layer).
...
Рейтинг: 0 / 0
19.04.2006, 18:09
    #33677435
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
самое грамотное решение - это, безуловно, отделение логики от представления. Имхо не важно будет ли эта логика разделена отдельными проэктами (что по-сути более удобно) или в одном проэкте на уровне, например, пространств имен (что менее удобно из-за излишнего загромождения классами, но для небольших проэктов вполне приемлемо).
Насчет тупых internal static classes немного не согласен (хотя это может быть делом вкуса). Предпочитаю не модульные классы (так называемые Table Modules) а бизнес объекты, которые на базовом уровне умеют работать с абстрактным источником данных (не зависимым от провайдера). А на верхнем уровне (конкретные реализации для доступа к отдельной ,например, табличке) содержат всю бизнес-логику/правила. Есть кстати хорошая книга по написанию н-уровневых приложений с использованием бызнес-объектов, правда примеры на vb:
Expert One-on-One Visual Basic .NET Business Objects
by Rockford Lhotka ISBN:1590591453


_______________________________________________________
Never ask users what they want, or they'll tell you.
...
Рейтинг: 0 / 0
20.04.2006, 00:44
    #33677877
Humpy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение кода на dll и aspx
Я предпочитаю резать по вертикали, отсюда и internal classes - длл тогда содержит BAL и DAL определенной части проекта. С точки зрения абстракции от источника данных это несколько напряжно, но в прикладном проекте обычно абстрагироваться надо только для написания тестов, а это решаемо. Зато удобно разделять работу - обычно ведь один человек или группа делает определенную часть - вот она, выделена в отдельный проект. Дробить это на еще более мелкие части зачастую не имеет смысла. А internal - это для того, чтобы UI программер ни при каких условиях даже не видел объектов DAL :)
И, кстати, речь вовсе не шла о табличных модулях. Всегда стараюсь избегать лишних обращений к данным и по максимуму кешировать и пользоваться данными из кеша, но если уж приходится - тогда стараюсь сделать все в один прием, одной ХП. Иногда получаются причудливые вещи, зато работают весьма шустро :)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Разделение кода на dll и aspx / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]