C# 不为模型使用实体框架

C# 不为模型使用实体框架,c#,.net,asp.net-mvc-4,sharepoint-2010,dynamics-crm-2011,C#,.net,Asp.net Mvc 4,Sharepoint 2010,Dynamics Crm 2011,我将尝试将MVC4用于ASP.NET web门户(第一次我将使用ASP的MVC),但我认为这些模型不会太多地使用实体框架 可能只有用户模型将包含用户配置文件数据,但提供给用户的大多数数据将来自Sharepoint或CRM 2011 因此,本质上,我的模型将是Sharepoint项目和CRM实体 我查看了MVC4提供的示例应用程序(模板中的titleinternetapplication),发现该模型使用EF(AccountModel.cs) 这是MVC4的最佳实践要求,还是您可以从任何来源构建模

我将尝试将MVC4用于ASP.NET web门户(第一次我将使用ASP的MVC),但我认为这些模型不会太多地使用实体框架

可能只有
用户
模型将包含用户配置文件数据,但提供给用户的大多数数据将来自
Sharepoint
CRM 2011

因此,本质上,我的模型将是Sharepoint项目和CRM实体

我查看了MVC4提供的示例应用程序(模板中的title
internetapplication
),发现该模型使用EF(
AccountModel.cs

这是MVC4的最佳实践要求,还是您可以从任何来源构建模型,并且仍然在“最佳实践”范围内

根据我将要构建的门户应用程序的需求判断,您是否看到使用MVC4有任何明显的“禁忌”

我正在考虑为UI使用一些内容丰富的JavaScript库(Knockout、ExtJS等)


谢谢。

模型只是传递给视图的数据的表示形式。它可以是您想要的任何东西,并且绝对不必来自实体框架

public class MyModel
{
  public string Name {get;set;}
}

public class MyController
{
  public ActionResult MyAction
  {
     var account = service.GetCrmEntity("account", myaccountId);

     var myModel = new MyModel();
     myModel.Name = account.name;

     return View(myModel)
  }
}

它是为了辅助功能而建造的;我不知道这个模型是否是值得关注的最佳实践领域。模型应该只包含要发送到视图的数据


注意:如果您使用knockout,您的应用程序将不再使用服务器端模型,而是使用JavaScript中的客户端模型;当您切换到客户端时,整个范例是不同的。

实体框架是介于数据库和应用程序代码之间的ORM。你当然可以使用任何ORM,或者根本不使用ORM,如果你愿意的话——MVC框架在这方面是不可知的。根据我的经验,后端可能只是一个XML/JSON喷出的软件,具体取决于客户端请求中发送的参数。如果您只是在控制器中返回JSON/XML,那么请查看ASP.NET Web API,它正是为此而构建的。MVC或Web API都可以工作;WebAPI是专门为此而构建的。对于客户端前端,一定要使用JSON,因为JavaScript很容易使用JSON。@BrianMains我计划使用ExtJS作为UI库,它将与Web API项目进行通信。您将在哪种类型的项目中托管解决方案的所有UI部分?我认为在这一点上,MVC项目并没有真正的帮助,因为可以说它不包含任何视图。你是对的。您可以使用MVC或web表单作为shell,但可以使用.html文件作为视图。如果不想使用客户端身份验证,则可以使用服务器端登录。