本文主要介绍ServiceStack的安装,与第一个项目的创建。

详细了解ServiceStack,可参考官方网站: https://servicestack.net/ ,

Github上ServiceStack地址:https://github.com/ServiceStack/ServiceStackVS

一.安装

ServiceStack支持vs2012,2013. vs2012的用户安装还有2个前提条件:

1. 安装Microsoft Visual Studio Shell Redistributable 。

2. Update to the latest NuGet.

不安装上面2个包的话,创建项目会报错,至于NuGet,编译项目的时候用到。

安装ServiceStack步骤:

1. 打开vs. Tools->Extensions and Updates.

2. 在Online-> Visual Studio Gallery 里面搜索ServiceStackVS.

3. 搜到后直接安装,重启vs,就完成了。

二.创建项目

创建ServiceStackVS项目,打开vs,创建项目,在installed->template->visual C#中,会有8个ServiceStack模版。我们先创建一个空项目。

会有1个solution,4个project. 好了,第一个项目到此完成。

三. Hello world示例

ServiceStack由3部分构成:Request DTO (Data Transefer Object),Service implementation,Response DTO .

1. Request DTO和Response DTO在WebApplication2.ServiceModel项目中的hello.cs中:

[Route("/hello/{Name}")]
   public class Hello : IReturn<HelloResponse>
   { 
       public string Name { get; set; }
   }

public class HelloResponse
   {
      public string Result { get; set; }
   }

Route属性定义了服务访问服务的方式,部署服务或者运行服务,将浏览器地址栏输入http://<root_path>/hello/world,可以看到结果:

如果要返回json格式,可以在url后面加上 ?format=json 。

2 .Service implementation,在WebApplication2.ServiceInterface 项目中MyServices.cs文件中,

public class MyServices : Service
   {
      public object Any(Hello request)
     {
          return new HelloResponse { Result = "Hello, {0}!".Fmt(request.Name) };

}

}

这定义了返回结果,Any表示可以接受任何(post,get等)http请求。

github上面的英文文档有很详细的介绍。https://github.com/ServiceStack/ServiceStack/wiki .

ServiceStack 入门(一)的更多相关文章

  1. ServiceStack 入门(二)

    本文介绍创建一个简单的基于ServiceStack的项目. 1. 新建一个solution 2.创建完成后有4个project. ServiceModel是定义Request DTO 和 Reques ...

  2. ServiceStack.OrmLite 入门(一)

    软件环境: Win7 x64 SP1 SQL Server 2008r2 Visual Studio 2017 Professional 目标:取出示例数据库 ReportServer 的表 Role ...

  3. [你必须知道的NOSQL系列]专题二:Redis快速入门

    一.前言 在前一篇博文介绍了MongoDB基本操作,本来打算这篇博文继续介绍MongoDB的相关内容的,例如索引,主从备份等内容的,但是发现这些内容都可以通过官方文档都可以看到,并且都非常详细,所以这 ...

  4. 采访ServiceStack的项目领导Demis Bellot——第1部分(网摘)

    ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我 ...

  5. 采访ServiceStack的项目领导Demis Bellot——第1部分(转)

    ServiceStack是一个开源的.支持.NET与Mono平台的REST Web Services框架.InfoQ有幸与Demis Bellot深入地讨论了这个项目.在这篇两部分报道的第1部分中,我 ...

  6. 二:Redis快速入门及应用

    Redis的使用难吗?不难,Redis用好容易吗?不容易.Redis的使用虽然不难,但与业务结合的应用场景特别多.特别紧,用好并不容易.我们希望通过一篇文章及Demo,即可轻松.快速入门并学会应用. ...

  7. .Net Core使用Redis的一个入门简单Demo

    本例子讲述一个在.Net core环境中对Redis数据库进行增删改查操作. 首先,要安装好Redis数据库,至于怎么安装,本文不再赘述,可以自行百度,有很详细的教程. 安装好之后,在CMD中输入 r ...

  8. .NET分布式缓存Memcached从入门到实战

    一.课程介绍 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是 ...

  9. .NET分布式缓存Redis从入门到实战

    一.课程介绍 今天阿笨给大家带来一堂NOSQL的课程,本期的主角是Redis.希望大家学完本次分享课程后对redis有一个基本的了解和认识,并且熟悉和掌握 Redis在.NET中的使用. 本次分享课程 ...

随机推荐

  1. 【LeetCode练习题】Merge k Sorted Lists

    Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze and descr ...

  2. hdu 5532 Almost Sorted Array(模拟)

    Problem Description We are all familiar with sorting algorithms: quick sort, merge sort, heap sort, ...

  3. eclipse ctrl链接设置

    选择[Window]菜单 Preferences ——>General——>Editors——>Text Editors——>Hyperlinking

  4. Apple Mach-O Linker Warning 警告解决的方法

    此警告解决的方法: 项目名字 -> targets -> Build Settings -> search path 把里面无用的东西 点 减号 删掉 即可了. $(function ...

  5. UML视图(四)状态图

    以下是一个图书馆管理系统的状态图,非常典型,涵盖状态图的全部元素的使用,由于状态图相对照较简单,直接从看图就能非常好地掌握.假设想对状态图的元素严谨的概念进行了解,在图下方,有仔细的叙述. 看了上面的 ...

  6. 使用Struts 2框架、ajax提交中文数据在后台乱码的问题

    通过encodeURI()方法转码 encodeURI(url):

  7. Mvc4.0添加商品到Cookie

    /// <summary> /// 添加Cookie /// </summary> /// <param name="gc">GoodsToCo ...

  8. 《JavaScript 闯关记》

    为何写作此课程 stone 主要负责基于 Web 的企业内部管理系统的开发,虽然能够熟练地使用 JavaScript,但随着对 JavaScript 的理解越来越深,才发现自己尚未掌握其精髓. 201 ...

  9. javascript 中 offsetWidth,clientWidth;offsetHeight,clientHeight的区别

    javascript 中 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变 clientWidth.offsetWidth.clientHeight区别IE6.0.FF ...

  10. 7.19 SQL——函数

    select * from student select * from score select * from teacher select * from course select * from c ...