MVC,RAD和视图设计工具

时间:2012-07-18 23:56:13

标签: asp.net-mvc rad

我们公司需要构建一个包含50多种表单的基于Web的业务线解决方案。其中很多都是中央数据库上的CRUD。到目前为止,我们还没有解决过网络空间,所以这对我们来说都是相对较新的。

目前我们正在计划使用ASP.net MVC:

  • 可测试性(单元测试等)
  • 关注点分离
  • 更好的长期维护(这可能会成为我可以收集的WebForms的问题 来自其他帖子。)

然而,我们遇到了障碍。经过对各种论坛和教程视频的大量研究后,我们认识到ASP.net MVC不支持拖放式设计环境。

我们已经在ASP.net MVC中使用代码模板等进行了调查,这些肯定会加速在代码中构建视图。事实上,大多数论坛建议使用代码模板等。

然而,我们公司的应用程序构建和修改通常具有非常快的周转率。 有时我们需要推出第二天或第二周的更新。

我们觉得没有一个视图设计工具可能会妨碍我们。

到目前为止,我们已考虑/调查过以下内容:

  • 在代码中构建Visual Studio。在第二个屏幕上刷新在IDE旁边运行的网站。调整冲洗 并重复。

  • 使用Microsoft Expression产品。 (Expression Web等)。构建视图等然后在Visual中重新加载 Studio负责代码背后的工作。但是我认为我在这不是ASP.net MVC中测试了WebForms。

  • 使用Dreamweaver(或其他)等网页设计工具,然后将视图/页面的html复制到视觉效果中 工作室和挂钩代码等等。

  • 使用LightSwitch代替(我们不想要Silverlight,这似乎是一个liitle 对我们的要求过于简单,所以这是不可能的。)

我们认为也许其他人也有类似的经历,可以分享他们的想法。

所以我的问题是,如果你们中的任何一个人有类似的情况,你使用了哪些工具来设计ASP.net MVC视图,同时保持快速轻松地构建新UI或进行调整的能力?

2 个答案:

答案 0 :(得分:2)

在我看来,如果你遵循一些提示,在代码中构建UI的速度比在拖放环境中快得多:

使用表格进行布局

我知道语义狂热分子会试图用这句话来杀我,但是你的表单看起来会更好,你不必在几个浏览器中对抗CSS。节省了大量时间。

让您的观点尽可能裸露

对于裸体,我的意思是让你的输入看起来像:

<tr>
    <th>@Html.LabelFor(model => model.Name)</th>
    <td>@Html.EditorFor(model => model.Name)
        @Html.ValidationMessageFor(model => model.Name)
    </td>
</tr>

依靠MVC EditorFor,编辑模板和UIHint为您的应用制作标准输入类型。在我的应用程序中,我有文本,十进制数字,整数,日期,时间,月,笔记(textarea)的模板。我已经调整了模板,以便为自定义装饰提供更多属性。

使用静态SelectList构建器

这会以某种方式打破MVC规则,但它也节省了大量时间,并避免多次处理控制器中的SelectList

我通常有这样的代码

public class ProductType
    public static SelectList GetSelectList(int? ValorActualSeleccionado, string IncludeAllItemsText = "") {
        var lista = DbHelper.CurrentDb().Fetch<ProductType>(BaseQuery());
        if (!IncludeAllItemsText.IsEmpty()) {
            lista.Insert(0, new ProductType { Name = IncludeAllItemsText, ProductTypeID = 0 });
        }
        return new SelectList(lista, "ProductTypeID", "Name", ValorActualSeleccionado);
    }

并在视图中:

@Html.DropDownList("ProductTypeID", ProductType.GetSelectList(Model.ProductTypeID))

使用相同的视图添加和编辑

您无需查看收集几乎相同的数据,只需将其添加到您的控制器:

    public ViewResult NewProduct() {
        var VM = new Product();
        return View("Edit", VM );
    }

这是您的编辑视图:

@using (Html.BeginForm("Edit", "Product")) {

添加逻辑以在同一位置添加或编辑。

使用jQuery

使用jQuery,您可以在系统范围内插入一些插件(如数字或日期下拉),而无需更改视图中的代码

答案 1 :(得分:0)

如果您需要具有良好的拖放体验并且没有webdev经验,我将继续使用rad-controlls和旧式ASP.NET。

如果你更接近HTML,Javascript和HTTP,ASP.NET MVC会发光。你可以在不知道很多关于网络的情况下使用旧式的ASP.NET和rad-controlls进行相当远的研究。