2011-01-31 4 views
2

Я только начинаю разработку на новом веб-сайте и пытаюсь сделать это правильно, то есть с DAL, а не с запросами в коде, который у меня был раньше.ASP.NET C# подключение к базе данных впустую

Я понимаю принципы всего этого, но я нахожу этот DAL с адаптерами таблиц и мастерами, которые слишком много делают, чтобы быть действительно грязными для работы. Кто-нибудь есть какие-то рекомендации относительно того, что я должен использовать вместо этого, и ссылку на учебник о том, как быстро идти с ним?

+0

Какая версия .net? Вы когда-нибудь слышали о LINQ? –

+0

Я слышал о linq, но никогда не использовал его, не знал, для чего он нужен. Я думаю, что использую 2.0 –

ответ

1

У меня есть инструмент генерации кода, который я опубликовал в своем блоге (включая исходный код). Data Access Layer CodeGen По существу он будет выдавать большую часть кода DAL для вас. Это 100% кода для «Gets» и параметров команды и назначений и т. Д. Для Insert, Update, Delete хранимых процедур.

В гене кода используется ADO.NET Core (и ничего больше). Вы можете просто взглянуть на код, чтобы вы поняли, как писать код (как инструмент обучения).

Надеюсь, это поможет.

0

Я предлагаю вам рассмотреть легкий и простой в использовании ORM, такой как Linq to SQL. Компания, в которой я работаю, - это компания по производству солнечной энергии стоимостью 2,5 млрд долларов, и мы используем L2S в качестве основы для следующего поколения наших производственных приложений. Это позволяет нам выполнять все наши запросы в Linq (запросы с большим типом - огромная выгода), и с ним очень легко работать.

+0

Нет, если он работает .NET 2.0. –

+0

Помните, что L2S по существу «заморожен». Короче говоря, он и Entity Framework вышли из двух разных групп внутри Microsoft, одна группа получила обе технологии, а EF является предпочтительной технологией доступа к данным ORM/доступа к данным с L2S AFAIK, которая не получила дальнейшей работы. Таким образом, L2S, вероятно, сейчас в порядке, но скоро будет считаться унаследованным. – pelazem

+0

Том, я бы предложил, что независимо от того, что еще вы делаете, посмотрите, можете ли вы работать с .NET 3.5 или лучше/лучше, 4.0. 4.0 предоставит вам больше возможностей (например, Entity Framework 4.0), а также позволит вам исследовать LINQ и современные ORM-модули третьего порядка и т. Д. Мне нравится Subsonic (Google/Bing it) для прототипирования, это так быстро и быстро, и вы будете кодировать с ним в течение нескольких минут. – pelazem

0

Как и все другие вещи: не забудьте указать. Если вы хотите написать DAL самостоятельно, тогда напишите код, необходимый для выполнения операций с базой данных.

public class MyDal 
{ 
    private SqlConnection _connection; 
    public MyDal() 
    { 
    _connection = new SqlConnection("connection string here");
} public DataSet GetSomeData() { // write the code that reads from the database and parses the data in a DataSet } }
Конечно, если вы хотите, есть множество хороших решений, которые мешают вам писать свой собственный DAL. Лично мне нравится Castle ActiveRecord, так как это так просто. Вы просто пишете свои объекты данных и даете им некоторые атрибуты, а ActiveRecord заботится обо всех связях с базой данных.

Если вы работаете на большие проекты, вы можете исследовать другие решения, ORMs, как Microsoft Entity Framework (EF) и т.д.

0

Если у вас есть возможность, я хотел бы предложить, что вы идете с .NET 4.0 и посмотрите, как построить свой сайт, используя WebMatrix. Зайдите в сообщение Thoughts on WebMatrix от Rob Conery за дополнительной информацией об использовании WebMatix и стратегии доступа к данным, которые он использует.

1

Создание собственного полезного упражнения - это даст вам понимание того, что задействовано.

В качестве первого прохода, почему бы не свернуть свои собственные объекты и доступ к данным с помощью комбинации Codesmith и некоторых общих подпрограмм DB для выполнения операций CRUD? Если ваше приложение не массивно, возможно, это все, что вам нужно.

Двигаясь дальше, LINQ, вероятно, будет способ пойти с этим материалом в будущем, но, конечно, зависит от языка.

Смежные вопросы