ASP.NET MVC Форум приложений
Мне нужно написать заявку на форуме для сайта друга. Я хочу написать это в C# 3.0 против структуры ASP.NET MVC, с базой данных SQL Server.
Итак, у меня есть два вопроса:
- Должен ли я использовать Linq для SQL или Entity Framework в качестве абстракции базы данных?
- Должен ли я использовать ASP.NET Membership API или добавить таблицу Users и реализовать ее самостоятельно?
Благодарю.
6 ответов
- В Интернете есть много примеров использования ling с ASP.NET MVC. Но, может быть, вы можете добавить свой список NHibernate. Если вы не хотите добавлять, я предлагаю Entity Framework. Использование ORM является плюсом.
- Я всегда выбирал написать свой собственный уровень управления членством. Если вам нравится человек (напишите свой собственный код и будьте счастливы, когда будете вносить изменения в будущем.) Напишите свой собственный уровень членства. Если вы ищете быстрое решение, ASP.NET Membership API является хорошим выбором.
- Entity Framework определенно - см. Ниже.
- ASP.net Членский API - прост в обслуживании.
Причина: Entity Framework против LINQ to SQL
Я не буду отвечать на первый вопрос, так как я поклонник nhibernate для второго вопроса, добавив таблицу пользователей и внедрив членство самостоятельно. Я не думаю, что вы сможете сделать это по крайней мере правильно (многие люди пытались чтобы сделать свое собственное членство API, но они испортили!)
1) Как насчет обоих? Просто создайте абстракцию, и вы можете просто использовать любой. Я рекомендую использовать шаблон репозитория.
2) Поставщик членства имеет свои сильные и слабые стороны. Для некоторых проектов это было слишком сложно для моих нужд. Тем не менее, это здорово, если вам нужно что-то запустить в короткие сроки.
1) Полностью зависит от того, как сложные вещи собираются получить. Если вам нужен быстрый DAL, который более или менее отражает ваши таблицы в формате 1:1, выберите L2S (или SubSonic, если вы хотите что-то более зрелое и поддерживаемое). Если вы предпочитаете более n-уровневый тип, где ваши таблицы и модель предметной области совершенно разные, выберите OR/M, такой как Entity Framework (или NHibernate, если вы хотите что-то намного лучше во всех отношениях)
2) Членство в ASP.net является чрезвычайно сложным, и есть некоторые моменты, которые довольно плохо спроектированы. Тем не менее, это зависит от того, сколько у вас опыта с этими вещами. Если вам достаточно знать, как предпринять шаги, чтобы избежать атак с фиксацией сеанса, просто сверните свои собственные, потому что скорее всего, это будет лучше, чем стандартное решение. Если вы не знаете, что это такое, найдите время, чтобы узнать, что по умолчанию.
SubSonic 3 - довольно мощный инструмент для создания доступа к данным. Насколько я понимаю, он в основном заключает Linq в Sql внутри некоторых очень полезных оболочек и делает использование Linq немного более интуитивным. При использовании SubSonic вы можете создать довольно мощное приложение в кратчайшие сроки. Одна небольшая проблема, однако, если вы используете общий хостинг (скажем, GoDaddy), вы столкнетесь с проблемой среднего доверия. В этом случае вы всегда можете вернуться к Linq To Sql, не внося много изменений в вашу кодовую базу.
Что касается Aspnet_Membership. Просто из-за количества инструментов, которые он предоставляет, я бы рекомендовал использовать его.
Удачи, и надеюсь, это поможет.