あまみや ゆうこ » PAGE6

Razor引擎解析

Razor作为ASP.Net MVC的模板引擎被人熟知,其语法简练,易于上手的优秀特点被人赞叹。

因此我开发的jFlick也希望支持这种模板引擎,首先就需要我们解析这种语法规则,将Razor与HTML分离,分离后动态执行Razor的语句即可。

Razor语法规则

规定HTML代码以<someTag>开始,以</someTag>结束,有个别标签是自闭合标签,比如<br />

规定Razor代码以@开始,带有括号(无论圆括号还是花括号)遇到匹配的结束括号为止,在花括号中可以嵌套HTML代码,嵌套的HTML代码将在相应逻辑下被输出。在特殊情况下,Razor代码可以简化成不带有括号的形式,具体表现为第1条与第3条。

1、@+单句表达式形式:

例:

@someArray.length
@someArray[0]

更多内容 »

Published on 3/13/2016 9:55:17 PM

jFlick - 移动端前端Mvc框架设计

最近在研究Cordova,使用HTML5与Javascript来写App固然是一个不错的选择,但是同时也存在着诸多的问题,比如使用HTML编写的app很难与原生系统体验一致,比如页面跳转时没有动画等。因此激起了我开发这样一套前端Mvc框架的兴趣。

我给它取名为jFlick(效仿jQuery),理论上讲,这套框架不仅仅局限于与Cordova配合,还可以用于制作手机网站。

也许ionic与cordova的配合被人们广泛认知,但是我简单了解ionic时,觉得它真的不是很方便,首先编写页面使用的标签都不是HTML规范中的标签,都是诸如<ionic-xxx></ionic-xxx>之类的标签,这样一来,开发者需要先了解ionic中都有什么标签,都能做什么,才能进行开发。而我的框架定位是轻量级、易上手。

我的框架中,设计了路由机制,可以根据路由规则来与前台绑定事件,比如我们建立一个homeController.js,那么可以按照下面的代码来编写程序逻辑:

router.get('/home/index', function (req, res, next) {
    alert('Hello world!');
});

router.get('/home/page', function (req, res, next) {
    alert('name=' + req.query.name);
    res.find('#btnCalc').click(function () {

更多内容 »

Published on 3/9/2016 8:03:59 PM

CodeComb.AspNet.Upload 拖拽或剪贴板粘贴图片

灵感源于GitHub的Issue,可以拖拽图片进编辑框,或直接Ctrl+V粘贴图片,这样一来非常方便,因此我尝试了实现这种功能。

项目地址:https://github.com/CodeComb/CodeComb.AspNet.Upload

步骤一:在project.json引用CodeComb.AspNet.Upload

在project.json中的dependencies节添加CodeComb.AspNet.Upload的引用,同时需要配合EntityFramework使用,因为图片会存储到数据库中。

步骤二:定义数据库上下文类

using CodeComb.AspNet.Upload.Models;
using Microsoft.Data.Entity;

namespace CodeComb.AspNet.Upload.Sample.Models
{

更多内容 »

Published on 1/21/2016 9:05:41 PM

Entity Framework 7 - (七)连接其他类型的数据库

在接触过了Entity Framework for SQLite后,我们已经大致熟悉了Entity Framework 7的使用方法,接下来将介绍Entity Framework 7连接其他类型数据库的方法。

Microsoft SQL Server

在project.json中dependencies节添加:

"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final"

在构建ServiceCollection时.AddSqlServer(),在AddDbContext时UseSqlServer,并相应的填写SQL Server的连接字符串。

PostgreSQL

在project.json中dependencies节添加:

"EntityFramework7.Npgsql ": "3.1.0-rc1-3"

更多内容 »

Published on 1/10/2016 4:29:21 PM

Entity Framework 7 - (六)迁移

Entity Framework 7 强制使用Code First模式,于是最大的困扰就是数据变化引起数据库的删除再新建,这样会造成数据丢失,于是在本篇文章中将介绍Entity Framework 7的迁移功能。

我们在Entity Framework 7系列教程第五篇的基础上,进行迁移的实验。

首先,在项目的project.json中添加EntityFramework.Commands的引用:

  "dependencies": {
    "EntityFramework.Sqlite": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final"
  }

继续在project.json中找到commands节,添加EntityFramework.Commands:

undefined

更多内容 »

Published on 1/10/2016 1:22:46 PM