在许多开源项目中,设置过程往往复杂且令人望而却步。本文旨在简化这一流程,介绍如何快速创建并运行一个基于FubuMVC的Web应用程序。
首先,创建一个空的Web应用程序项目。然后,通过“添加库包引用…”对话框,添加FubuMVC.FastPack。这个包不仅包含了FubuMVC的核心组件,还集成了NHibernate、StructureMap、HtmlTags等其他有用的库。
FubuMVC的配置方式与其他框架不同,它将约定明确地展示出来,并且允许用户进行修改。以下是配置FubuMVC的步骤:
public class ConfigureFubuMVC : FubuRegistry
{
public ConfigureFubuMVC()
{
IncludeDiagnostics(true);
Actions.IncludeClassesSuffixedWithController();
Views.TryToAttachWithDefaultConventions();
Routes.IgnoreControllerNamespaceEntirely();
}
}
在上述代码中,可以看到:
FubuMVC允许通过约定来简化控制器和视图的配置。例如,可以通过ViewModel、命名空间和方法名来查找视图。如果找不到,会依次尝试只使用ViewModel和命名空间,或者只使用ViewModel。
Views.TryToAttach(x =>
{
x.by_ViewModel_and_Namespace_and_MethodName();
x.by_ViewModel_and_Namespace();
x.by_ViewModel();
});
这种约定方式使得大多数情况下,只需要为每个动作方法提供一个视图即可。但是,如果需要从单个动作方法渲染不同的视图,可能需要进一步了解FubuMVC的高级特性。
在FubuMVC中,路由配置是第一步。通过以下代码,告诉FubuMVC在URL中不包含控制器的命名空间:
Routes.IgnoreControllerNamespaceEntirely();
此外,FubuMVC还默认忽略了"Controller"后缀,这与ASP.NET MVC的行为一致。虽然这种默认行为在配置类中没有明确写出,但它是FubuMVC的内置特性之一。
FubuMVC并不是什么奇怪的极客玩意儿,实际上它比ASP.NET MVC更简单。尽管还没有尝试过高级功能,但从听到的来看,高级功能也同样简单。更重要的是,使用FubuMVC工作起来非常有趣!