我试试Rider,到目前为止,非常喜欢它.
我在Visual Studio中使用的一个功能通常是右键单击Web项目并发布到我们的测试服务器.
我在Rider中找不到类似的选项,所以我所做的是创建一个运行配置,使用以下设置:
Exe path: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/MSBuild/15.0/Bin/amd64/msbuild.exe
Arguments: MySolution.sln /m /p:DeployOnBuild=True /p:PublishProfile=My-Project "/p:platform=Any CPU" /p:configuration=Release /p:VisualStudioVersion=15.0 /p:Password=****
Working Directory: C:\SolutionFolder
Run Code Online (Sandbox Code Playgroud)
当我想发布时,我从下拉列表中选择它并单击运行.
这100%工作.
我的问题是,这是最好的方法吗,没有设置CI管道?我错过了IDE中的选项或设置吗?
我想知道SemaphoreSlim调用 Await 时是否有类似优先级的事情。
我找不到任何东西,但也许以前有人做过类似的事情。
这个想法是,如果我需要,稍后可以以更高的优先级在信号量上调用等待,并且它将允许等待首先返回。
为什么嵌套的使用块会多次处理一个对象?
参考CA2202:
在以下示例中,在外部using语句中创建的Stream对象在包含流对象的StreamWriter对象的Dispose方法中的inner using语句的末尾释放.在外部using语句的末尾,第二次释放流对象.第二个版本违反了CA2202.
using (Stream stream = new FileStream("file.txt", FileMode.OpenOrCreate))
{
using (StreamWriter writer = new StreamWriter(stream))
{
// Use the writer object...
}
}
Run Code Online (Sandbox Code Playgroud)
我知道在大多数情况下我都可以使用
using ()
using ()
{ }
Run Code Online (Sandbox Code Playgroud)
如果我不能,我很乐意回复try finally它的建议,我只想知道它为何如此有用.
它只是解释生成的代码的最佳方式,"好吧,因为使用块正在关闭,让我处理所有对象." 或者是否有理由以这种方式工作?
我在 ASP.Net Core 3 中使用 SPA (React) 应用程序。
正在发生的是任何请求将首先进入后端并允许 .Net 尝试路由它,如果没有找到路由,它会返回index.html并假设 SPA 可以处理路由。
大多数时候我对此很满意,但我想知道是否有办法排除任何路由器api/。
我觉得很烦人,在任何虚构的 .html 上返回 index.html(带有 200)api/MadeUp/Request。我不能让它在无效的 api 请求上返回 500,但仍然允许 SPA 管理任何其他请求(即返回 index.html)?
如果我的问题看起来很愚蠢,我很抱歉,我已经尝试了谷歌搜索,而没有找到我要找的东西,所以任何建议都会受到赞赏.
我对MVC的想法相当新,我已经做了很多年的Web Forms开发,但是我想尝试别的东西.
我使用Entity Framework(6)进行数据库连接,使用MVC4进行Web前端.
我的问题是,如何处理数据库上下文实例.
我正在运行的控制器操作代码是这样的
public ViewResult List(int buildingId)
{
var model = new Data.Model();
var query = from r in model.Rooms
where r.Building.Id == buildingId
select r;
/*
var q2 = model.Buildings.Where(b => b.Id == buildingId).SelectMany(b => b.Rooms);
var q3 = model.Buildings.Where(b => b.Id == buildingId).First().Rooms;
*/
return View(query);
}
Run Code Online (Sandbox Code Playgroud)
注释行只是我可以获得我正在寻找的查询结果的其他方式.
Data.Model是EF Db上下文.
我不喜欢这个是上下文是一次性的,我没有处理它.在我看来,这是懒惰和不好的做法.
我已经测试了model开始处理,我需要的第一个更改是返回查询列表,我不介意,但是因为上下文被处理,在视图上我无法访问属性,如@item.Building.Description.因此,如果处理我需要准确地返回我在视图上显示的内容(我有多种方法可以做到这一点,所以我不是很担心如何).
另一种选择是在项目中的某处具有静态/共享上下文,因此所有数据库请求都使用相同的上下文实例.这很好,因为它只会使用一个数据库连接,但EF可能已经为我处理,所以我不想反对使用EF的设计方式,如果这是它应该如何.
所以,我的问题是,什么是最佳实践?
谢谢
.net ×3
c# ×2
asp.net-core ×1
asp.net-mvc ×1
asp.net-spa ×1
async-await ×1
asynchronous ×1
rider ×1
semaphore ×1