第一个 Asp.Net vNext 应用程序
要说免费的虚拟主机的话,最好的服务商应该就是Microsoft Azure(不是Windows Azure由世纪互联运营),提供免费的1GB .NET/Java/Python/Php空间,日流量有限制但是不算太高。免费的版本不能绑域名,所以你得用重定向或者DNS服务商提供的隐式跳转服务。
早起的Microsoft Azure并不提供免费的SQL数据库,而号称免费的MySQL数据库老是创建不了实例,这就比较尴尬了,所以只能用Sqlite之类的数据库来跑,鉴于这个,我突然想如果没有数据库的话,怎么来搞定一个纯博客系统呢?
以前用XML做一些查询系统的时候会遇到一个坑爹的事情,也就是放任访问会导致文件没关闭,另一个请求就出来了,十分光火。参考了一下网上的案例,似乎都是用一个文件来实现一个类似数据库的东西。由于脑洞大,不想拘泥于这种写法于是就在想能不能借助文件系统这个数据库来实现CRUD。答案是可以的,CUD全部交给文件管理器不就好了,程序只需要读就搞定。现在问题来了,ReadAllLines方法依然会导致资源抢占,那么得换种方法,也就是不论怎么读都不会出现这个竞争问题,解决办法很快就想到了——借助服务器就好了...将文章写成HTML专门放到一个Web文件夹里然后访问读取的时候后台发起一个get请求拿到全文后装配到视图模板。说白了就是Ajax(那么也就是说用JavaScript也能实现...
所以便用ASP.NET创建了一个Project,然后一路写下去,感觉良好后觉得搞定了就准备发布,这个时候由于手贱打开了微软的ASP.NET的主站,脑子发热去看了一下vNext,突然觉得很厉害的样子(虽然感觉技术水平一下回到解放前),一想,为什么不搞一搞ASP.NET vNext呢,牛逼哄哄的肯定很撇托了!
要说真的,撇开DI和Middleware来说如果使用DNX 4.5.1的话ASP.NET 5(也就是vNext)和以前MVC 5没啥区别,但是DNX 4.5.1是不能跨平台的,即对应.NET Framework,如果要跨平台你得用CLR Core,即DNX 5.0。由于vNext大力宣传其跨平台能力,所以我也决定把这个搞成一个跨平台的(羁绊的开始)。
Server.MapPath()
首先DNX 5.0取消了System.Web这个万能一把手,于是乎用于访问磁盘文件的Server.MapPath()方法就废了,但是身残志坚,咱们用StaticFiles访问静态文件,好在System.IO在DNX 5.0上可以用(其实DNX 5.0上很多FCL都是没有的,必须得借助其他实现),于是就解决了Server.MapPath()的问题。
System.Net.WebClient.DownloadData()
这个方法也没法在DNX 5.0中用,哎哟卧槽,这玩意儿没法用那就真的只能用JavaScript了,但是用JavaScript是会暴露文章的真实路径的...虽然JS是一种办法但是总觉得不优雅,所以System.Net这个命名空间里探索了好久终于把System.Net.Http.HttpClient.GetStringAsync()方法找到了,真是胡同里乱撞还进了桃花源了,方法简单不少,效果一样。
至此,核心问题解决,就可以发布了,所以今天下午这个FreeDBlog就搞定了,这就是我写的第一个ASP.NET vNext应用程序,真是筚路蓝缕...
围观地址:这里
所以完结撒花~
现在就完结?
当然不是。
既然为了DNX 5.0才折腾这么多麻烦事儿,居然就这么完结了,不测试一下就跑?肯定要测试一下看看效果如何,木哈哈。
当然是脸黑了,不然怎么对得起剧情
肯定是没跑起来...dnu restore后所有的包都下载下来了,但是我dnx web就是跑不起来,不对,是跑出来报错...然而ASP.NET vNext的Error需要自己Handle,我图简单就没写...好尴尬,在VS上调试下看看会遇到什么。
问题在VS上一下就出来了,由于IIS不跨平台(废话)所以在其他平台上使用了Kestrel,然而这玩意儿并不会像IIS那样将wwwroot作为当前目录,而是wwwroot的父目录。嗯加一个判断就好了。
再次尝试dnx web:

第一个 Asp.Net vNext 应用程序的更多相关文章
- 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序
学习ASP.NET MVC系列: 学习ASP.NET MVC(一)——我的第一个ASP.NET MVC应用程序 学习ASP.NET MVC(二)——我的第一个ASP.NET MVC 控制器 学习ASP ...
- NHibernate构建一个ASP.NET MVC应用程序
NHibernate构建一个ASP.NET MVC应用程序 什么是Nhibernate? NHibernate是一个面向.NET环境的对象/关系数据库映射工具.对象/关系数据库映射(object/re ...
- 【ASP.NET】第一个ASP.NET MVC应用程序
本系列目录:ASP.NET MVC4入门到精通系列目录汇总 开发流程 新建Controller 创建Action 根据Action创建View 在Action获取数据并生产ActionResult传递 ...
- 使用Visual Studio Code创建第一个ASP.NET Core应用程序
全文翻译自:Your First ASP.NET Core Application on a Mac Using Visual Studio Code 这篇文章将向你展示如何在Mac上写出你的第一个A ...
- 4、ASP.NET MVC入门到精通——NHibernate构建一个ASP.NET MVC应用程序
下周就去办理离职手续了,之前没有使用过NHibernate,只知道NHibernate是一种ORM框架,但是听说新公司是使用NHibernate在做项目,所以,我就网上找资料学习一下NHibernat ...
- 第一个ASP.NET MVC应用程序
首先打开vs2015 文件->新建->项目 选择模版选empty,下面[为下项添加文件夹和核心引用]勾选mvc 点击确定就好
- ASP.NET没有魔法——开篇-用VS创建一个ASP.NET Web程序
为什么写这一系列文章? 本系列文章基于ASP.NET MVC,在ASP.NET Core已经发布2.0版本,微服务漫天的今天为什么还写ASP.NET?. 答:虽然现在已经有ASP.NET Core并且 ...
- 2.第一个ASP.NET MVC 5.0应用程序
大家好,上一篇对ASP.NET MVC 有了一个基本的认识之后,这一篇,我们来看下怎么从头到尾创建一个ASP.NET MVC 应用程序吧.[PS:返回上一篇文章:1.开始学习ASP.NET MVC] ...
- ASP.NET开发实战——(一)开篇-用VS创建一个ASP.NET Web程序
本文是本系列文章第一篇,主要通过建立一个默认ASP.NET MVC项目来引出与ASP.NET MVC相关的功能,由于ASP.NET MVC一个简单的模板就具备了数据库操作.身份验证.输入数据校 ...
随机推荐
- 传统B2B中小型企业如何做好全网营销
优网特独创全网营销服务理念,全网营销即以企业网站推广为核心,通过SEO.SEM.BBS营销.博客营销.微营销.即时通讯营销.网络口碑营销.视频营销.邮件营销.SNS营销等网络营销手段,全面提升企业网站 ...
- [Gnu]Centos7 解决 gdb 提示 Missing separate debuginfos
Centos7 上使用gdb: $ gdb php $ run /home/www/2.php 运行完 run,后面跟着很长的提示: …. Missing separate debuginfos, u ...
- 在Xcode中使用Git进行源码版本控制
http://www.cocoachina.com/ios/20140524/8536.html 资讯 论坛 代码 工具 招聘 CVP 外快 博客new 登录| 注册 iOS开发 Swift Ap ...
- freeCodeCamp:Chunky Monkey
猴子吃香蕉可是掰成好几段来吃哦! 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4 ...
- SaaS模式给用户带来的优势
这两年SaaS服务在中国越来越受欢迎,企业正在从使用本地化软件向SaaS服务转变.由于企业用户人力成本的上升.移动终端设备的兴起以及共享经济对企业的影响,企业采用经营设备.软件的方式也在逐渐发生着变化 ...
- jQuery与其他JS库共存
* 事件 * jQuery与其他JS库共存 * 调用jQuery.noConflict()方法 * 表示jQuery将"$"符号的使用权交出 * 通过两种方式将"$&qu ...
- appium踩过的坑(1):NoClassDefFoundError
1.引入jar包错误导致的错误: 引入的jar包引起的 应该引入下面的jar包
- Ip地址查询
$url = 'http://ip.taobao.com/service/getIpInfo.php?ip=115.239.211.112'; $info = file_get_contents($u ...
- ros下多机器人系统(1)
multi-robot system 经过两个多月的ros学习,对ros的认识有了比较深入的了解,本篇博客主要记录在ros下开发多机器人系统以及对ros更深入的开发.本篇博客是假定读者已经学习完了全部 ...
- mysql字段类型
会安装mysql,会几条sql语句,会jdbc,会hibernate配置,以为就会mysql了,最近几天面试被问到mysql的问题,无地自容,系统的学习一下. mysql优化之一,选择合适的而不是最大 ...