小编Jon*_*eel的帖子

从Jetbrains Rider发布Web项目

我试试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中的选项或设置吗?

编辑: UPDATE

rider

25
推荐指数
1
解决办法
5863
查看次数

SemaphoreSlim 等待优先级

我想知道SemaphoreSlim调用 Await 时是否有类似优先级的事情。

我找不到任何东西,但也许以前有人做过类似的事情。

这个想法是,如果我需要,稍后可以以更高的优先级在信号量上调用等待,并且它将允许等待首先返回。

.net c# asynchronous semaphore async-await

4
推荐指数
1
解决办法
1414
查看次数

为什么嵌套的使用块会多次配置对象?

为什么嵌套的使用块会多次处理一个对象?

参考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它的建议,我只想知道它为何如此有用.

它只是解释生成的代码的最佳方式,"好吧,因为使用块正在关闭,让我处理所有对象." 或者是否有理由以这种方式工作?

.net c#

3
推荐指数
2
解决办法
1584
查看次数

如何使用 ASP.Net Core 3、SPA 应用程序返回无效 api 请求的错误

我在 ASP.Net Core 3 中使用 SPA (React) 应用程序。

正在发生的是任何请求将首先进入后端并允许 .Net 尝试路由它,如果没有找到路由,它会返回index.html并假设 SPA 可以处理路由。

大多数时候我对此很满意,但我想知道是否有办法排除任何路由器api/

我觉得很烦人,在任何虚构的 .html 上返回 index.html(带有 200)api/MadeUp/Request。我不能让它在无效的 api 请求上返回 500,但仍然允许 SPA 管理任何其他请求(即返回 index.html)?

asp.net-web-api asp.net-spa asp.net-core

3
推荐指数
1
解决办法
477
查看次数

MVC EF上下文实例

如果我的问题看起来很愚蠢,我很抱歉,我已经尝试了谷歌搜索,而没有找到我要找的东西,所以任何建议都会受到赞赏.

我对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 asp.net-mvc entity-framework asp.net-mvc-4

2
推荐指数
1
解决办法
171
查看次数