ServiceStack 项目实例 009 ServiceStack.Northwind - 1

      这个示例是基于经典的微软官方北风数据库基础上实现的,北风的数据是一个网店管理和产品销售管理的案例。在这个案例中主要是演示了客户、订单以及缓存方式数据处理,还有VCard自定义输出格式。

      此解决方案中包含有三个项目,

      ServiceStack 项目实例 009 ServiceStack.Northwind - 1  对外服务的主项目,发布时只用这个项目即可。


        ServiceStack 项目实例 009 ServiceStack.Northwind - 1  提供服务的项目,此处为类库形式。


       ServiceStack 项目实例 009 ServiceStack.Northwind - 1 模型类定义,其中包含有入口类出口类的定义,以及实体类,路由可定义在入口类出口类上。


        示例中使用了轻量级的Sqlite数据库

        在Global.asax文件的public class AppHost : AppHostBase 类中的 Configure函数中定义数据库连接:        

container.Register<IDbConnectionFactory>(
     new OrmLiteConnectionFactory("~/Northwind.sqlite".MapHostAbsolutePath(), SqliteOrmLiteDialectProvider.Instance));

        

      下面这句注册MemoryCahce 内存缓存,注意这个不是大名鼎鼎的memcahced,是SS内置的内存式缓存,

container.Register<ICacheClient>(new MemoryCacheClient());


     如果已经安装了Redis,也可以使用Redis缓存:

container.Register<ICacheClient>(new PooledRedisClientManager());


      下面这段并不是原示例中的,提供一些配置选项:

SetConfig(new EndpointHostConfig
            {
                DebugMode = true, // 用在开发过程中,显示服务器响应数据
                WriteErrorsToResponse = false, //禁止写操作异常处理
                DefaultContentType = ContentType.Json, //默认输出类型
                AllowJsonpRequests = true //允许JsonP模式请求
            });

     注册VCard格式支持,是一种用于名片交换等的数据格式,

VCardFormat.Register(this);

      VCard的详细转换和处理见ServiceStack.Northwind.ServiceInterface项目下的VCardFormat.cs ,自定义输出格式和结构可以参考这个文件的实现方法,自定义生成的数据也可以用来提供给用户下载。