Skip to content

enlipan/objnull

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 

Repository files navigation

objnull

象空 - 开源Github用户社区 http://objnull.com/ QQ群:612309214

项目结构

001  

  • MVCWeb.Redis   Redis缓存项目,提供Redis的访问。Redis用于存储经常访问的权限控制数据,消息通知,有时效性的临时数据。  
  • MVCWeb.Model
    EntityFramework数据模型定义项目,包括了模型定义类和DBContext的定义和设置。
  • MVCWeb.DataSvc
    数据CURD服务层,包括一个基础操作接口和实现和其他模型类的具体实现。
  • MVCWeb
    具体网站项目。  

项目运行注意事项

  1. 数据库
    修改Web.config中连接字符串对应你本地计算机数据库,推荐使用MySQL。
    MVCWeb.Model项目中DBContext文件夹修改类MyDBContext,切换注释设置数据库初始化器。
    005
    直接运行就会生成对应数据库,不要手动建立。

  2. Redis
    安装Redis并启动,推荐安装一个新的系统服务,端口和密码设置如下图则不用修改代码。
    MVCWeb.Redis项目中Base文件夹下MyRedisDBFactory类修改Redis连接配置。
    006  

  3. 文件存储路径
    在Web.config中appSettings节点下设置KeyBlogFilePathNewBeeFilePath的值为你想要的路径。

  4. cookie加密用向量和密钥
    E:\ObjNullFile\添加文件Config.txt,文件写两行文本,第一行16个随机字符作为向量,第二行32个随机字符作为密钥,不要是汉字。
    E:\ObjNullFile\实际来自Web.config中配置NewBeeFilePath项的路径,有问题在Global.asax文件中查看文件读取代码。

  5. 权限控制
    第一次运行注释MVCWeb项目App_Start文件夹Filters.cs文件中以下代码关闭权限控制
    007
    运行成功后,访问http://localhost:2221/Manager/Manage页面进行后台管理。点击一键生成ActionRule后就可以取消注释开启权限控制。

  6. OAuth登录
    运行成功后点击登录会跳转至域名为changetolocalhost.com的一个链接,访问失败修改这个域名为localhost:2221后再访问该链接即可实现本地OAuth登录。
    OAuth的用户名密码在appSettings中配置,默认使用的开发环境OAuth账号,Release版Web.config会替换为正式OAuth账号。
    如果使用正式OAuth账号运行则需要在IIS中调试项目,并修改Host文件,让objnull.com重定向实现本地登录。

一旦项目成功运行,具体结构和实现大家看看代码应该就能很快了解,有任何问题欢迎入群提问,下面对每个项目大概介绍一下。

项目介绍

MVCWeb.Redis

002
该项目使用StackExchange.Redis连接和操作Redis。
Models文件夹中为Redis中保存的对象的定义。
Base文件夹中有三个文件  

  • MyRedisDB
    该文件为Redis基础操作的接口和实现。
  • MyRedisDBFactory
    该文件为Redis连接配置和Redis管理对象的提供器。
  • MyRedisKeys
    该文件为Redis中Key或Key前缀的常量定义。

MVCWeb.Model

003
Models文件夹中数据模型的定义。
DBContext文件夹中有三个文件  

  • MyDBContext
    该文件为DBContext的配置文件。
  • MyDBInitializer
    该文件为数据初始化器。
  • MyDBMapping
    该文件为模型和表映射配置,主要是外键映射配置。

UpdateSQL文件夹中文件用于记录后期手动添加表和字段的语句,发布时使用,不用关心。

MVCWeb.DataSvc

004
Base文件夹中为基础数据操作的泛型接口和实现。
Svc文件夹中为对应模型类的具体数据服务的实现。
该项目的关键是文件BaseDataSvc.cs中的泛型接口和实现。一个模型只需添加一个具体实现即可获得基础操作,如下:

    //继承基础操作接口获得基础操作
    public interface IBlogCommentDataSvc : IBaseDataSvc<BlogComment>
    {
    }

    //继承基础操作实现
    public class BlogCommentDataSvc : BaseDataSvc<BlogComment>, IBlogCommentDataSvc
    {

    }

如有特殊的操作在此实现中添加接口和操作即可。

MVCWeb

008  

  • App_Data文件夹中为日志文件。
  • App_Start文件夹
    009
    Autofac.cs为Autofac的配置,提供DependencyResolver实现属性注入。
    Filters.cs为全局过滤器的定义,使用全局过滤器实现身份认证、权限管理和异常处理。
    RouteConfig.cs为路由配置文件。  
  • Assist文件夹
    010
    OAuth文件夹中为GitHub OAuth登录所需的方法和接收数据的模型定义。
    BaseController.cs为Controller的基类,提供获取当前用户和管理员的属性。
    Enums.cs中为所有Enum类型的定义。   Extensions.cs中为扩展方法的定义。
    Principals.cs中为实现IPrincipal的用户模型,用于身份认证中存储当前登录用户的信息。
    Utils.cs为静态工具类,加解密方法在此。
  • Scripts文件夹中Views文件夹中为具体页面引用的JavaScript文件,其他文件夹对应一个插件。  
  • SignalRHubs文件夹
    011
    MsgHub.cs为SignalR中客户端JS调用的服务端方法定义。
    MyUserIdProvider.cs为SignalR客户端ID获取方法定义。
    Startup.cs为使用Owin启动SignalR服务的启动器。  
  • StaticHtml为用于展示特效的静态html页所在文件夹。

其他文件或文件夹意义同默认ASP.NET MVC项目,对应功能也顾名思义,不再赘述。

haha

About

象空网 - 开源Github用户社区 QQ群:612309214

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 67.7%
  • C# 28.3%
  • CSS 3.9%
  • Other 0.1%