asp.net – 不使用.Net MVC犯了错误?
Microsoft Web应用程序架构相关…
想知道我是不是因为我的新网络应用程序没有使用.Net的MVC而犯了错误?我开始在ASP Classic中进行Web开发,并且每次迭代ASP.net都会向前推进.在过去的几个月里我和ASP.net MVC闲逛,只是不喜欢它的某些部分.我喜欢路由,剃刀和视图特定模型的想法.但是看起来我的应用程序在添加了一些功能之后变得过于复杂 – 当我看到nopCommerce和Umbraco等MVC版本的应用程序与之前的版本相比时,我觉得同样如此. 我回去了,基本上开始写一个.Net网站/ MVC混合.我为实现Data Annotation验证的“视图模型”创建了自己的基类;一个简单的映射器,用于将表单提交绑定到模型,并将实体属性映射到模型属性,反之亦然;为分页,检查,选择和偶数/奇数之类的东西创建扩展方法和帮助器;使用不需要视图状态的runat =“server”等控制器,如Repeater,Literals和标准HTML标签. 这种方法似乎让我拥有两全其美,让我的“控制器”代码接近“视图”,一切都在中信任中. 以下是一些示例代码: public partial class Admin_Users_RoleAdd : System.Web.UI.Page { protected class RoleAddModel : BaseModel { [Required,StringLength(100)] public string Name { get; set; } [StringLength(250)] public string Description { get; set; } public override bool Validate() { if (base.Validate() && Cortex.DB.Roles.Any(r => r.Name == Name)) Errors["Name"] = "Already in use"; return Errors.Count == 0; } } protected RoleAddModel model = new RoleAddModel(); protected override void OnInit(EventArgs e) { if (Request.Form["Submit"].HasValue()) { SimpleMapper.FormMap<RoleAddModel>(model); if (model.Validate()) { var entity = new Role(); SimpleMapper.Map<RoleAddModel,Role>(model,entity); Cortex.DB.Roles.AddObject(entity); Cortex.DB.SaveChanges(); Response.Redirect("Roles.aspx"); } } base.OnInit(e); } } 而“观点”: <h1>Add Role</h1> <div id="MainForm" class="form"> <%= model.GetErrorMessage("Error") %> <form action="<%= Request.RawUrl %>" method="post"> <div class="formField"> <label for="Name">Name</label> <%= model.GetErrorMessage("Name") %><br /> <input type="text" name="Name" value="<%: model.Name %>" class="required" maxlength="100" /> </div> <div class="formField"> <label for="Description">Description</label> <%= model.GetErrorMessage("Description") %><br /> <textarea rows="8" cols="40" name="Description" maxlength="250"><%: model.Description %></textarea> </div> <div class="buttons"> <input type="submit" name="Submit" value="Create" class="primary" /> <a href="Roles.aspx">Back</a> </div> </form> </div> 以后我会为这种方法后悔吗?目前我能想到的主要是测试能力,但VWD Express无论如何都不支持它. 解决方法
我不喜欢微软在MVC上的实现;使用魔术字符串,然后说控制器的动作似乎有点落后,因为它需要学习十几种新语言,因为它充满了微观解决方案(路由,剃刀).
我非常不喜欢它,所以我开始写自己的,但是我写的越多,我就越觉得它不灵活,我修复的越多,就越像微软的实现. 经过几个小时和几个小时的开发基本上是一个废话版本的MVC,我放弃了它.我已经开始回顾设计文档和代码,并在它们的顶部写下来 写较少的代码 我在大约八小时内将我糟糕的MVC应用程序的UI层重写为MS MVC.在那之前我已经做了大约八个星期了.当然,大部分思考已经完成,所以从头开始编写MVC可能并不那么快. 我使用的几乎所有东西都是开箱即用的,除了AuthorizeAttribute类,它只是没有做我想做的事情. 为什么这与您的问题相关? 在不需要时编写代码是错误的.如果您已经尝试并测试了库,那么重用它们,如果您没有,那么在编写自己的库之前,请从受信任的源中查找它们.我的问题都不是新问题,如果你们有任何问题,我也不会怀疑.他们都得到了比我们大多数人拥有更多资源的人所能解决的问题. 这种认识的一部分,我应该停止重新发明轮子,只是编码未预先包装的东西,我正在研究工作中的迁移项目,律师讨论与一些加密程序相关的IP的更好点.我们需要花费数周时间编写一些代码来将数据转换为另一种格式,因为我们无法“放弃”用于保护数据的IP.如果应用程序只是用固定库编写,那么它只是我们需要移交的数据和加密密钥.现在可以通过现在而不是第十稿来讨论律师. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – asp.net mvc多语言urls /路由
- asp.net – 浏览器的缓存是否考虑了URL中的参数? (ASPX页面
- 我应该使用用户名,还是用户ID来引用ASP.NET中的经过身份验证
- asp.net – 如何使用IIS7在web.config中设置处理程序?
- asp.net – 许多用户的许多表?
- asp.net-mvc – 我有15分钟向我的同事介绍ASP.NET MVC 我应
- asp.net-mvc-4 – 使用基于声明的授权
- asp.net – SQL Server集成身份验证模式
- ASP.NET实现的简单易用文件上传类
- asp.net-mvc – 如何调试此错误:’无法找到iisexpress.exe