我正在研究一个应用程序并试图遵循Robert C. Martin的SOLID原则.我正在使用命令模式,我想知道实现.在C#中的清洁代码和敏捷原则,模式和实践的所有示例中,他的命令对象永远不会返回任何内容.他的命令界面是;
public interface Command
{
void Execute();
}
Run Code Online (Sandbox Code Playgroud)
所有的例子都是"AddEmployee","DelEmployee","EditEmployee"等.我是否会有一个"GetAllEmployees"的命令,或者我是否会为此特定目的创建一些其他特殊的"Interactor"?我正在考虑处理这个特定情况的一种方法是让两个接口像上面那样非泛型和像这样的通用接口;
public interface Command<T>
{
T Execute();
}
Run Code Online (Sandbox Code Playgroud)
我要问的是,这是这种模式的可接受的实现还是我们有另一种方式从应用程序访问数据?
我正在构建一个面向公众的网站,我正在使用大量的jQuery和jQueryUI.我注意到的是,大多数使用jQuery和jQueryUI的互联网站点在他们的页面中都没有这样的代码.
<script type="text/javascript">
$(document).ready(function(){
$("a").click(function(event){
alert("Thanks for visiting!");
});
$( "input:submit" ).button();
});
</script>
Run Code Online (Sandbox Code Playgroud)
我知道这是一个简单的例子,但大多数网站,例如SO只有一个混淆的js文件包含在所有页面中.看起来他们似乎没有在任何地方使用$(document).ready.在我当前的网站上,似乎我需要为每个页面包含一个js文件.我的问题是它是如何完成的,是否有关于如何在页面中使用/包含javascript的最佳实践?
有没有办法以管理员身份更改用户个人资料图像.在我们公司,我们有一个中央存储库,包含我们想要在TFS Web Portal上用于其配置文件的每个人的图像.我知道每个人都可以单独做到,但可以在全球范围内为每个人完成吗?
我有一个突然停止工作的应用程序.我无法确定为什么这是我知道它应该工作.我必须在这里找到一些非常简单的东西.这是代码,Angular代码调用API,API方法调用,但方法的参数始终为null.该呼叫是PUT呼叫.
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{value}",
defaults: new { value = RouteParameter.Optional }
);
}
Run Code Online (Sandbox Code Playgroud)
这是我的路线以防万一.但我不这么认为,因为方法确实被调用只是参数没有传入.
[Authorize]
public class UsersController : ApiController
{
// PUT api/users/undelete
[HttpPut]
public void Undelete(long? value)
{
if (!value.HasValue)
{
throw new ArgumentNullException("[UsersController => Undelete(long? value)]");
}
new UsersBoundary(this.repository).UndeleteUser(value.Value);
}
public UsersController(IUsersRepository repository)
{
this.repository = repository;
}
public UsersController() : this(new UsersRepository()) { }
private readonly IUsersRepository …Run Code Online (Sandbox Code Playgroud) 我有这个代码,需要确保所有结果变量都相等?
long result1 = timer.CalculateElapsedTimeInMinutes();
long result2 = timer.CalculateElapsedTimeInMinutes();
long result3 = timer.CalculateElapsedTimeInMinutes();
long result4 = timer.CalculateElapsedTimeInMinutes();
long result5 = timer.CalculateElapsedTimeInMinutes();
Run Code Online (Sandbox Code Playgroud)
这就是我所做的,但我觉得它可以用更简单的方式完成,也许不是吗?
bool allEqual = (result1 == result2) && (result3 == result4) && (result1 == result3) && (result1 == result5);
Run Code Online (Sandbox Code Playgroud)
谢谢.
我在ASP.NET MVC网站上有这个代码:
x.For<AccountController>().TheDefault.Is.ConstructedBy(() => new AccountController());
Run Code Online (Sandbox Code Playgroud)
此代码抛出一个警告,似乎非常自我解释,但由于某些原因,当我使用"使用"方法时它似乎不起作用.我知道我做错了什么,并希望得到一些帮助.
警告是:
警告1'StructureMap.Configuration.DSL.Expressions.CreatePluginFamilyExpression.TheDefault'已过时:'"首选Use()方法"
谢谢.
我正在浏览W3C Javascript最佳实践,我注意到他们以不同的方式编写了for-loops.
var f = document.getElementById('mainform');
var inputs = f.getElementsByTagName('input');
for(var i=0,j=inputs.length;i<j;i++){
if(inputs[i].className === 'mandatory' &&
inputs[i].value === ''){
inputs[i].className += ' error';
}
}
Run Code Online (Sandbox Code Playgroud)
它们将输入长度值分配给j,然后将j与i进行比较.而不是直接将inputs.length与i进行比较.他们在某些地方的指南中并没有这样做.除了偏好以这种方式编写for循环之外,还有其他原因吗?
我有一个简单的post动作,试图从post方法返回一个新模型回到视图.出于某些原因,当我返回新模型时,我总是看到我发布的模型,为什么会发生这种情况?我需要在post动作中更改模型的值并将它们返回给用户但是由于某种原因我无法做到这一点?
public ActionResult Build()
{
return View(new Person());
}
[HttpPost]
public ActionResult Build(Person model)
{
return View(new Person() { FirstName = "THX", LastName = "1138" });
}
Run Code Online (Sandbox Code Playgroud)
这是视图代码;
@using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
Run Code Online (Sandbox Code Playgroud)
如果我打开表格并输入"John"作为名字,输入"Smith"作为姓氏并张贴表格我得到"John","Smith"从后期行动回来而不是"THX 1138"有没有办法覆盖此行为?我也想知道它为什么这样做?
c# ×3
asp.net ×2
asp.net-mvc ×2
javascript ×2
algorithm ×1
angularjs ×1
razor-2 ×1
structuremap ×1
tfs ×1
tfs2012 ×1