第一个 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一个简单的模板就具备了数据库操作.身份验证.输入数据校 ...
随机推荐
- Slight difference between C++ and C
In C++, results of assignment operation, prefix increment and prefix decrement are all lvalues, the ...
- 前端tip
background简写 参考地址 http://css.doyoe.com/ 缩写:background:url(test1.jpg) no-repeat scroll 10px 20px/50px ...
- AIX 查看当前目录内最大的10个目录
du | sort -r n| head -n10 du 查看目录大小: srot 排序,-r 选择倒序,-n选项 看作数值排序(否则将作为字符排序): herd -n10 查看开通 ...
- 使用spring的特殊bean完成配置
1.分散配置 beans.xml配置如下: 使用占位符变量代替bean装配文件中的硬编码配置.占位符采用${variable}形式. 说明:当通过context:property-placeholde ...
- 1 Java线程的内存可见性
Java内存的可见性 可见性: 一个线程对共享变量的修改,能够及时被其它线程看到 共享变量: 如果一个变量在多个线程的工作内存中都存在副本,那么这个变量就是这几个线程的共享变量 Java内存模型(JM ...
- java访问ftp的一些操作
通过java代码来访问ftp服务器,进行下载操作
- ruby on rails爬坑(三):图片上传及显示
一,问题及思路 最近在用rails + react + mysql基本框架写一个cms + client的项目,里面涉及到了图片的上传及显示,下面简单说说思路,至于这个项目的配置部署,应该会在寒假结束 ...
- android六大框架
-LinearLayout线性布局 垂直排序,每行仅包含一个界面元素 水平排序,每列仅包含一个界面元素 orientation,Layout-weight,Layout-margin(外边距,与屏幕) ...
- 【洛谷P2889】Milking Time
很容易想到以结束时间加上R从小到大排序 之后怎样呢? 我们按层考虑,f[i]表示前i个时间段嫩得到的最大价值 每次枚举其之前的状态,如果其ed<当前i的st,那么取max即可 #include& ...
- Java 第27章 JDBC
JDBC 模版 JDBC 的工作原理 JDBC API 提供者:Sun公司 内容:供程序员调用的接口与类,集成在java.sql 和javax.sql 包中,如: DriverManager 类 Co ...