Несколько не по теме, но я столкнулся с очень похожей проблемой, пытаясь установить Erlang, используя kerl .
У меня все работало до шага "сборка керла ...". Журнал сборки показал следующую ошибку:
odbcserver.c:117:10: fatal error: 'sql.h' file not found #include "sql.h"
Проблема в том, что ODBC больше не является частью установки Mavericks (т.е. MacOS 10.6 SDK не установлен). Собирая воедино советы с разных сайтов, ни один из которых не работал сам по себе, следующий набор шагов позволил решить проблему:
Установите CFLAGS так, чтобы он указывал на каталог include для установки unixodbc как часть команды сборки kerl (например,):
CFLAGS = "- I / usr / local / Cellar / unixodbc / 2.3.2 / include "./kerl build R15B R15B
Это указывает на сборку для включаемых файлов ODBC.
Моя среда - Mavericks, инструменты командной строки xcode и xcode v5.1.1.
MVC - это в основном шаблон для уровня представления, и он фокусируется на взаимодействии между представлением и контроллером. Модель может рассматриваться как компоненты приложения, которые отвечают за поддержание состояния , включая сохранение.
В простом приложении модель может быть просто моделью LINQ-To-SQL. В большом корпоративном приложении модель может содержать уровень доступа к данным, бизнес-уровень и уровень домена. ASP.NET MVC не ограничивает вас тем, как следует реализовать M.
Паттерн Репозиторий - это один из способов реализации части сохраняемости M. Другой - ActiveRecord . Какой узор выбрать, зависит от сложности приложения и ваших предпочтений.
Взгляните на Шаг 3 учебника NerdDinner, где они создают простой репозиторий с использованием Linq to SQL.
Linq to SQL не погибнет. Microsoft по-прежнему будет улучшать ядро и добавлять запросы клиентов там, где это имеет смысл, но Entity Framework будет в центре внимания. Взгляните на этот пост для изменений LINQ to SQL в .NET 4.0 .
EF можно использовать аналогично LINQ to SQL, но он также более гибкий, поэтому его можно использовать другими способами. Например, EF4 будет более или менее поддерживать сохранение ваших собственных объектов POCO в проекте, более ориентированном на предметную область.
Да, я думаю, что MVC - это другой подход, чем «» трехуровневая архитектура, которую, я думаю, вы имели в виду здесь (архитектура, в которой вы создаете в основном 3 проекта DAL, BL и UI). Основная идея MVC - разделение задач между каждым из его компонентов (модель, представление и контроллер). Контроллер - это компонент, отвечающий за обработку пользовательских запросов, и в большинстве случаев он объединяется с компонентом «Модель», чтобы отображать желаемое представление в качестве ответа на пользовательский запрос. Разница между этой и традиционной трехуровневой архитектурой заключается в том, что DAL и BL теперь сгруппированы и названы Model, и да, вам все еще нужно создавать эти компоненты.
Что такое репозитории?
Мартин Фаулер упоминает определение репозитория как " они являются посредниками между доменом и объектами отображения данных, и, конечно, они должны быть помещены в папку / проект вашей модели.
Будет ли Linq to SQL устаревшим?
NO и в той же книге говорится, что так же Дэмиен Гвард (разработчик из группы ADO.NET) упомянул в одном из своих сообщений в блоге, что Linq to SQL будет включен в .NET 4.0.
Как взаимодействовать с EF?
они являются посредниками между доменом и объектами отображения данных, и, конечно, они должны быть помещены в папку / проект вашей модели.
Будет ли Linq to SQL устаревшим?
NO и в той же книге говорится, что так же Дэмиен Гвард (разработчик из группы ADO.NET) упомянул в одном из своих сообщений в блоге, что Linq to SQL будет включен в .NET 4.0.
Как взаимодействовать с EF?
Как и с Linq to SQL. Подобно Linq to SQL, Entity Framework будет вашими объектами сопоставления и также будет находиться в проекте модели.
Надеюсь, это поможет!
Думаю, вы немного запутались в этих вещах, и они сбивают с толку, поэтому давайте рассмотрим их медленно.
N-Tiered Architecture и MVC - это разные, но взаимосвязанные. N-Tier обычно говорит о разделении доступа к данным, бизнес-логики и пользовательского интерфейса. Однако некоторые люди могут возразить, что невозможно полностью отделить BLL от пользовательского интерфейса; MVC решает эту проблему таким образом, что соответствующий контроллер взаимодействует с вашим BLL и с вашим представлением, в отличие от того, чтобы ваше представление напрямую взаимодействовало с вашим BLL.
Да, наличие репозиториев - это один из подходов к созданию DAL . Есть много способов сделать это, и вы не должны ограничиваться тем, что обсуждается в книге.
В книге используется LINQ to SQL только для максимально быстрой демонстрации ASP.NET MVC, но это НЕ единственный способ. Перестаньте думать о LINQ to SQL ни на минуту; ASP.NET MVC можно использовать независимо от того, используете ли вы ORM, например NHibernate, или используете обычную фабрику ADO.NET + DAL или что-то еще - вы не сможете использовать те ASP.NET ObjectDataSources
, который вы перетаскиваете с помощью пользовательского интерфейса.
Что касается Entity Framework, Брэд Абрамс написал хорошее руководство по , как использовать Entity Framework с ASP.NET MVC , которое должно ответить на ваш последний вопрос.
HTH
Да, вам все равно нужно самостоятельно создавать уровни доступа к данным и бизнес-логики. Некоторые могут возразить, что уровень Контроллера IS является бизнес-логикой, но я лично предпочитаю разделение между реальной бизнес-логикой (например, расчет цен) и экранной бизнес-логикой (например, обработчик событий для кнопки «ОК»). Затем вы вызовете их из своего класса контроллера. Класс контроллера управляет логикой вашего экрана и управляет преобразованием из уровня данных / бизнес-логики в значение экрана.
платформа ASP.NET MVC не накладывает ограничений на уровень «Модель», что означает, что вы можете использовать все, что угодно. вы хотите включить NHibernate, LINQ to SQL или структуру сущностей. Я использую LINQ to SQL, потому что это просто.
Не уверен, никогда не читайте эту книгу. Я только что скачал Скотта Хансельмана ' s Проект Nerddinner из codeplex и используйте его в качестве руководства для написания веб-сайтов ASP.NET MVC.