Giter Club home page Giter Club logo

netcore_yoyofx's Introduction

YOYOFx框架

YOYOFx是支持Owin协议的MVC框架,基于Dotnet Core 1.0构建。

YOYOFx基于NETStandard1.6和NET451编译,完美支持在Core和full framework(如.net framework 4.5x或mono 4.x)上的运行。

YOYOFx集成了dotnet core上第一款验证码组件。

特性: YOYOFx的Mvc是基于Owin跑在Core的Web框架 , YOYOFx并没有基于Asp.Net Core MVC进行开发,而选择了使用Owin协议自己来封装Http协议的方式。

跨平台特性:

  • .NET framework 4.5x和Mono4.x上直接SelfHost或使用Tinyfox跨平台运行;
  • .NET Core 1.0 RTM 实现跨平台运行;
  • 使用Tinyfox独立版,可支持绿色部署,不需要安装Mono和Framework。
  • 通过dotnet publish将Core版本进行打包后,可支持绿色部署,不需要运行时。

Owin与Core

YOYOFx的Http实现都是基于Owin协议的,并提供两个独立版本NETSTANDRD1.x和NET45x版本。

###目前完成:

  1. 封装Owin协议的HttpContext(IOwinContext),包括Request、Response、Http Headers、Cookie等;
  2. 路由机制,通过添加自定义路由表为框架添加处理事件;
  3. 基于IOwinContext的MVC框架,支持多语言扩展;支持Session和自定义的Action拦截器;
  4. 可替换的视图引擎,目前实现Razor视图引擎,加入了缓存机制;
  5. 已移植到dotnet core 1.0 RTM版本

###接下来的工作:

  1. 将项目的目录结构整合到dotnet core的项目文件中。 (已完成)
  2. 完成框架整体的DI,将框架级依赖对象全部通过依赖注入的方式构建和对象创建工厂;首先完成Controller的创建工厂。 (已完成)
  3. 完善路由系统 (进行中)
    • 支持方法特性[HttpGet] [HttpPost] 等定义路由。
    • 支持自定义路由路径。
    • 支持为路由规则指定特定的Handler处理函数。

netcore_yoyofx's People

Contributors

yoyofx avatar yoyofx7 avatar zanpen2000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netcore_yoyofx's Issues

project.json 编译参数

buildOptions:

编译设置

  1. compile : 文件编译,是一个数组,确定一组要编译的文件, **.cs 表示 包含子目录下的所有.cs文件。
  2. defines : 编译变量的定义,用于条件编译,如多平台判断。
  3. frameworks : 所包含的平台,用于定义平台(要编译平台集体)和定义某个平台的特定依赖。
    netcoreapp1.0 平台,是最新的 core平台 , 替换之前的 DNX Core。DNX是为 ASP.NET 5 平台提供的程序集集合。 DNX包含 MVC 6的 Beta4 以前的版本。 最新的netcoreapp1.0 平台不包含ASP.NET Core 1.0和MVC 6的任何程序集,ASP.NET以后会独立发布。目前netcoreapp1.0基本等同于netstandard1.5平台。

总结:

新的project.json意味着

DI 注入

目前我正在想将nhibernate听过服务的方式注入到程序中,不知道您走过这条路可以给我提供一些帮助吗?我的想法是通过服务方式注册,其次在应用中将nhibernate session工厂绑定在http请求实例上,完成数据库访问的重复使用

mvc

    public dynamic UserLoginAction(string name, string password,string code)
    {
        if (name == "maxzhang" && password == "123" && code == Session["captchacode"].ToString())
        {
            this.Session["username"] = "maxzhang";
            return Redirect("/Home/Index/1");  ==>  Index(1);
        }
        else
            return View("/Views/Login.cshtml");   ==> Login();

    }

能否根据逻辑跳转到想要的方法上,直接可以返回给前端。

希望路由支持命名空间

路由可否支持命名空间,比如;

namespace CoreHost.Controllers.abc
{
public class Home : Controller
{
public dynamic Login()
{
return View("/Views/Login.cshtml");
}
}
}

  1. 路由到 /abc/Home/Login

2.添加一个从方法名转换获取路由的方法,如:string aaa = xxxxx(new abc.Home().Login)
aaa=>"/abc/Home/Login "

  1. return View("/Views/Login.cshtml"); ==> 简化为 return View() 默认找 /Views/abc/Home/Login.cshtml文件,

action参数匹配bug

当函数的参数为string ,前端传来空字符串时候框架提示参数不匹配。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.