我正在使用LESS使用Bootstrap 2.0.3.我想广泛地自定义它,但我想尽可能避免对源进行更改,因为库的更改经常发生.我是LESS的新手,所以我不知道它的编译是如何完全有效的.使用基于LESS或LESS的框架有哪些最佳实践?
正统的MVVM实现是没有意义的吗?我正在创建一个新的应用程序,我考虑了Windows窗体和WPF.我之所以选择WPF,是因为它具有前瞻性,并提供了很大的灵活性.使用XAML的代码更少,更容易对UI进行重大更改.
由于WPF的选择是显而易见的,我认为我可以使用MVVM作为我的应用程序架构,因为它提供了可混合性,分离问题和单元可测试性.从理论上讲,它看起来很像UI编程的圣杯.这个简短的冒险; 然而,已经变成了一个真正的头痛.正如在实践中所预期的那样,我发现我已将一个问题换成了另一个问题.我倾向于成为一个强迫性的程序员,因为我想以正确的方式做事,这样我才能获得正确的结果,并可能成为更好的程序员.MVVM模式刚刚落后于我对生产力的考验,刚刚变成了一个令人讨厌的大黑客!
明显的例子是添加对模态对话框的支持.正确的方法是建立一个对话框并将其绑定到视图模型.让这个工作很难.为了从MVVM模式中受益,您必须在应用程序的各个层中的多个位置分发代码.您还必须使用深奥的编程结构,如模板和lamba表达式.让你盯着屏幕挠挠头的东西.正如我最近发现的那样,这使得维护和调试成为一场噩梦.我有一个关于盒子正常工作,直到我第二次调用它时出现异常,说它一旦关闭就无法再显示对话框.我必须为对话框窗口添加一个关闭功能的事件处理程序,在IDialogView实现中添加另一个,最后在IDialogViewModel中添加另一个.我以为MVVM会让我们免于这种奢侈的hackery!
有几个人为这个问题提供竞争解决方案,他们都是黑客,并没有提供一个干净,易于重复使用的优雅解决方案.大多数MVVM工具包都会掩盖对话框,当它们确实解决它们时,它们只是不需要自定义接口或视图模型的警报框.
我打算放弃MVVM视图模式,至少是它的正统实现.你怎么看?如果你有任何问题,是否值得为你带来麻烦?我只是一个不称职的程序员,还是MVVM不是它被炒作的东西?
我有一个简单的对象图,我想序列化,我无法找到解决这个问题的方法.这里是:
[XmlRoot]
public partial class MyData
{
private List<MyDatum> itemsField;
public MyData()
{
this.anyAttrField = new List<System.Xml.XmlAttribute>();
this.itemsField = new List<MyDatum>();
}
[XmlElement(Type = typeof(MyDatum))]
public List<MyDatum> Items
{
get
{
return this.itemsField;
}
set
{
this.itemsField = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这会产生以下XML:
<MyData>
<Items>
<MyDatum/>
<MyDatum/>
...
</items>
</MyData>
Run Code Online (Sandbox Code Playgroud)
我想删除"Items"容器标记来代替:
<MyData>
<MyDatum/>
<MyDatum/>
...
</MyData>
Run Code Online (Sandbox Code Playgroud)
我尝试了各种解决方案,但似乎无法找到解决方案.
我落后于VS2010,并从一个Web项目引用的图像文件夹中删除了一些图像作为内容.在解决方案导航器中,这些文件现在显示黄色警告图标,表示无法找到该文件.刷新文件夹无效.有没有办法告诉VS2010自动同步文件夹?VS网站项目默认执行此操作.
我正在尝试使用Less或者Sass使我的bootstrap 2.1标记更具语义.考虑Bootstrap标准导航栏的以下标记:
<header id="main-nav" class="navbar navbar-static-top" role="banner">
<nav class="navbar-inner" role="navigation">
<div class="container">
<!-- Collapse nav button -->
<button type="button" class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<!-- Nav -->
<nav id="navlinks" class="nav-collapse collapse pull-right">
<ul class="nav nav-pills">
<li class="active">@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
</ul>
</nav>
</div>
</nav>
</header>
Run Code Online (Sandbox Code Playgroud)
显然,将DIV更改为更多语义HTML 5标记很容易,但从标记中删除类链更加困难.如果你使用mixins,比如:
header #main-nav {
.navbar;
.navbar-static-top;
}
Run Code Online (Sandbox Code Playgroud)
以下定义不起作用,因为复合类不受影响:
.navbar .btn-navbar {
display: none; // hide button in full width (Why a compound class? …
Run Code Online (Sandbox Code Playgroud) 我有一个需要存储数据的应用程序.目前,我使用内置的应用程序设置来完成它,但它只给我两个选择:应用程序和用户范围.理想情况下,我想要一个"本地"范围,允许应用程序在另一个用户下运行,仍然可以找到它的数据,而不是为该用户重新创建它.应用程序范围可以执行此操作,但它是只读的.应用程序数据将由用户更改.如果只允许管理员对数据进行更改,则可以.
正如您可能猜到的,我有一个管理工具,允许用户更改数据和Windows服务运行器,它可以读取数据并对其执行某些操作.如果Windows服务运行器访问管理工具创建的数据,那将是很好的.