相关疑难解决方法(0)

ServiceStack新服务并行ASP.NET MVC网站

在ServiceStack 的示例中,我没有首先看到ASP.NET MVC网站的单个应用程序,然后将ServiceStack服务放在第二位.

我们来看一个非常简单的ASP.NET MVC Web应用程序,它通过Views呈现产品.它使用控制器,视图,模型和视图模型.

假设我们有一个模型Product被持久存储到文档DB中.假设我们有一个viewmodel,ProductViewModel它从ProductMVC Razor View/PartialView中映射并显示.

所以这是一个网络方面的东西..现在让我们假设我们想要添加一个服务返回产品到各种客户端,如Windows 8应用程序.

请求/响应类是否应该与我们已有的完全断开?我们ProductViewModel可能已经包含了我们想要从服务中返回的所有内容.

既然我们已经有了Product(模型类),我们就不能Product在API命名空间中拥有另一个类.我们可以但是这会使事情变得不清楚,我想避免这种情况.

那么,我们应该在API命名空间中引入独立ProductRequest类和ProductRequestResponse(继承ProductViewModel)类吗?

像这样ProductRequestResponse : ProductViewModel

我所说的是,我们已经拥有Model和ViewModel类,并为SS服务构建Request和Response类,我们必须创建另外两个文件,主要是通过复制我们已有的类中的所有内容.这对我来说看起来并不干净,它可能会遵循关注点分离指南,但DRY也很重要,实际上不仅仅是分离所有内容(将所有内容分开导致代码重复).

我希望看到的是一个已经建立了Web应用程序的情况,它目前具有Models和ViewModel,并返回适当的视图以便在Web上显示,但是可以扩展为支持程​​序化客户端的全功能服务?就像AJAX客户端......以及我们已经拥有的东西.

另一件事:

如果您看一下这个例子,请访问https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/ServiceStack.MovieRest/MovieService.cs

你会看到有MovieRequest类和MoviesRequest类(一个用于单个电影请求,另一个用于电影列表).因此,也有两个服务,MovieService并且MoviesService,一个交易与一个单一的电影,另一部分用于电影的流派的请求.

现在,虽然我喜欢SS服务方法而且我认为它是正确的,但我不喜欢这种分离只是因为请求的类型.如果我想要导演的电影怎么办?我是否会发明另一个具有Director属性的请求类以及另一个服务(MoviesByDirector)?

我认为样本应该面向一项服务.所有必须处理电影的东西都需要在一个屋檐下.如何通过ServiceStack实现这一目标?

public class ProductsService : Service
{
    private readonly IDocumentSession _session;
    private readonly ProductsHelperService _productsHelperService;
    private readonly ProductCategorizationHelperService _productCategorization;

    public class ProductRequest : IReturn<ProductRequestResponse> …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc servicestack

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

ServiceStack AppHostHttpListenerBase无法连接到远程服务器

我正在我的应用程序上进行一些功能测试,我想我已经非常接近了.我的问题是,当我运行第一次测试时,我得到了错误.

无法连接到远程服务器.

预期:好的
但是:0

我可以确认,如果我在断言上设置断点,然后尝试BaseUrl在我的浏览器中点击,则找不到它.

这是我的考试.

[Test]
public void MyTestTest ()
{
    var client = new RestClient( ServiceTestAppHostBase.BaseUrl );
    // client.Authenticator = new HttpBasicAuthenticator( NUnitTestLoginName, NUnitTestLoginPassword );
    var request = new RestRequest( "/users/", Method.GET );
    request.RequestFormat = DataFormat.Json;
    var response = client.Execute( request );

    // do assertions on the response object now
    Assert.That( response.StatusCode, Is.EqualTo( HttpStatusCode.OK ) );
}
Run Code Online (Sandbox Code Playgroud)

AppServerTestSetup这个样子的

[SetUpFixture]
public class AppServerTestSetup
{
    ServiceTestAppHostBase _appHost;

    [SetUp]
    public void SetUp()
    {
        _appHost = new ServiceTestAppHostBase(); …
Run Code Online (Sandbox Code Playgroud)

c# functional-testing servicestack

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