开源Asp.Net Core小型社区系统

前言

盼星星盼月亮,Asp.Net Core终于发布啦!!

Asp.Net发布时我还在上初中,没有赶上。但是Asp.Net Core我从beta版本便一直关注。最初项目名叫Asp.Net VNext,然后改名叫Asp.Net 5。最煎熬的是RC1发布后,官方继续发布了改名和RC2延期的通告。这期间我已经做了一些demo项目,但是由于beta到RC2之间涉及到大量API的改动,包括dnx->dotnet cli,包括各种命名空间和工具名称的改动等等,因此这部分demo都已删掉。5月份,Github Asp.Net Core更新路线图,确定RC2于5月中旬发布,同时确定RC2会作为最终发布的版本基础。那段时间我疯狂的关注着Github,即使在国外度蜜月,也会在晚上蹭Wifi关注着动态(这里提一下,有空看一下各个项目的issue,可以积累很多知识。同时很多小道消息都可以在members的回复中看出来)。好在接下来没有再次跳票,开源、跨平台、高性能的Asp.Net Core终于来啦!

小型社区系统

首先看下项目截图:

项目布局参考了CNodeJS 前端采用了Bootstrap,数据库访问用了EntityFramework Core,同时自己用Middleware实现了一个简单的身份认证功能

目前完成的功能:注册,登录,发帖,回帖,收藏,置顶,精华等功能。

项目地址:GitHub

如何运行:

1. 首先安装基础环境

2. clone或者下载项目,先设置连接字符串,然后还原数据库,最后运行即可

详细流程请点击上方连接查看项目主页

开发感受

1. 对于初学者,Asp.Net Core的入门门槛还是挺高的。

没有了WebForm,无法再拖拖控件就完成一个Hello World Page。

MVC和WebApi合二为一,那么至少对这2种技术应该有些基础了解。

处理HTTP请求从传统的Handler、Page变成了Middleware,如果不熟悉nodejs(express)的话又是个新鲜事物。

搭建一个web项目,首先就用到依赖注入容器,又有多少初学者接触过依赖注入呢?

2. 对于.Net开发者,还有很多东西要学。

新的TagHelper和ViewComponent,看来是要培养起面向组建编程的习惯了。

前端可以方便的集成bower, gulp等,那么NodeJS, npm, bower, gulp等等都是需要学的。

project.json里面的东西涉及到编译、发布、部署等等一系列配置,再结合dotnet命令,可以很简单的实现自动化,想起来是不是很激动?

新的EntityFramework Core Migration,直接基于命令生成和更新数据库,看起来是不是很酷?

整个AspNet Core Framework都开源了,基础源码难道不想去看看?

最最最重要的是跨平台!现在我们再也没法逃避Linux啦,大家赶紧装虚拟机,从最基本的ls开始linux之旅吧!

3. 对于Asp.Net Core,还有很长的路要走

性能:从官方的性能测试看出,目前Asp.Net Core可以超过NodeJS,但是比JAVA的Netty还是差了太多(这个测试看起来还是RC1的版本)。首先我觉得大家应该培养起异步编程的好习惯,这篇文章讲述了异步编程是如何提升并发效率的;其次只能寄希望于微软继续提升性能,或者有第三方高性能web框架出现。

框架:Asp.Net Core从出生起就声明了只是.Net Framework的子集,但是部分基础框架的缺失还是带来了很大的不便。最最不方便的就是System.Drawing。

第三方库:作为一个婴儿,Asp.Net Core才刚出生,又经历跳票,因此这方面资源少得可怜。几大热门项目:Dapper,AutoMapper,Nlog等倒是很早就开始支持了。

开发人员流失:谁敢说身边没有从.Net转Java,转Android,转IOS的??

后记

昨天加班到3点,今天早上继续上班,头都是晕的。个人技术不好,见解不够,以上都是自己的想法,希望大家多多交流,一起为.Net社区出力!!

相关文章:

原文地址:http://www.cnblogs.com/scheshan/p/5622904.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java多线程干货系列(1):Java多线程基础

转载自 Java多线程干货系列(1):Java多线程基础前言 多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。 正文…

php accesscontrolalloworigin,设置Access-Control-Allow-Origin实现跨域访问

这篇文章主要介绍了Ajax 设置Access-Control-Allow-Origin实现跨域访问,非常不错,具有参考借鉴价值,需要的朋友可以参考下ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法&…

.NET Core:面向未来的开源跨平台开发技术

作为一种全新的开源和跨平台的开发平台,.NET Core 历经两年多的开发,终于在于2016年6月27日针对所有主流服务器和桌面操作系统发布 1.0 RTM 版本。.NET Core 是一种通用开发平台,它包含了自动内存管理和现代化高级开发语言等重要特性&#xf…

Sublime Text 3 快捷键总结(拿走)

以下是个人总结不完全的快捷键总汇,祝愿各位顺利解放自己的鼠标。选择类CtrlD 选中光标所占的文本,继续操作则会选中下一个相同的文本。AltF3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并…

Java多线程学习

转载自 Java多线程学习本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。在这之前,首先让我们来了解下在操作系统中进程和线程的区别:进程:每个进程都有独立的代码和数据空间&#…

php面试心得,php面试题的总结

这篇文章介绍的内容是关于php面试题的总结,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下1. 什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性&#xf…

展望C# 7

译者:雪落无痕 xdj 目前的 C# 编译器(即 Roslyn)于 2014 年 4 月开源。目前不仅是编译器在 GitHub 上开发;语言的设计也是进行公开的讨论。 这允许感兴趣的各方了解语言下一个版本的样子。这篇文章概述了当前在设计语言新特性时的…

Java 线程池详解及实例代码

转载自 Java 线程池详解及实例代码这篇文章主要介绍了Java 线程池的相关资料,并符实例代码,帮助大家学习参考,需要的朋友可以参考下线程池的技术背景 在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资…

jQuery最简单的留言功能^-^

先上代码&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" xml:lang"en"> <h…

rocketmq java home,rocketmq 安装与配置以及遇到的问题

不废话&#xff0c;搞起双M 模式环境1&#xff0c;java-1.8这里有个问题&#xff0c;centos 安装yum install java-1.8 是只是安装的java 运行环境jre&#xff0c;还缺少开发包所以在编译的时候会有问题&#xff0c;使用yum install yum install java-1.8.0-openjdk-devel* 这…

聊聊并发(八)——Fork/Join框架介绍

转载自 聊聊并发&#xff08;八&#xff09;——Fork/Join框架介绍1. 什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架&#xff0c; 是一个把大任务分割成若干个小任务&#xff0c;最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过F…

Mads Torgersen介绍C# 7及后续版本新特性

在QCon纽约2016大会上&#xff0c;C#项目经理Mads Torgersen介绍了即将到来的C# 7。他还简单地阐述了C#的演化过程&#xff0c;并展示了部分正在开发的未来版本特性。 近年来&#xff0c;云和分布式系统的出现使开发人员面临着新的挑战。开发人员需要进步&#xff0c;语言也要随…

Java的不同进制输出,[DanoR][Java小码][进制转换::将double转换为不同进制后用String输出]...

功能简述进制转换输入: 一个数(double),目标进制(int)和小数的保留位数(int)输出: 相应进制的表示方式(String)参数说明double number; //将要被转换的数int ary; //目标进制int accuracy; //指定小数保留的位数特性支持小数转换例0: (5.20, 8, 4) --> 5.146314631463146315…

小菜:Java异常处理的10个最佳实践

转载自 小菜&#xff1a;Java异常处理的10个最佳实践异常处理在编写健壮的 Java 应用中扮演着非常重要的角色。异常处理并不是功能性需求&#xff0c;它需要优雅地处理任何错误情况&#xff0c;比如资源不可用、非法的输入、null 输入等等。Java 提供很多异常处理特性&#x…

JavaScript的正则表达式实现邮箱校验

说到html5&#xff0c;在说邮箱校验&#xff0c;聪明的人已经想到了直接写个 电子邮箱&#xff1a;<input type"email" name"email">这样不就是自动校验邮箱了么。。。。 不错&#xff0c;这样也可以&#xff0c;但是我要说的是&#xff1a;在没有…

微软说它深爱着Linux,现在它用行动证明了

6.27 清晨&#xff0c;微软在Red Hat DevNation大会上正式发布了.NET Core以及ASP.NET Core 1.0&#xff0c;并提供了下载&#xff0c;其不仅能在Windows操作系统上运行&#xff0c;还能在Linux和Mac OS X操作系统上运行&#xff0c;这意味着开发者不仅能使用它来建立自己的应用…

php file_put_contents(quot;,php file_put_contents函数怎么用?

file_put_contents()是PHP中的是一个内置函数&#xff0c;用于将字符串写入文件。用户想要写入的文件的路径和必须写入的数据作为参数传递给函数&#xff0c;并返回成功时写入文件的字节数&#xff0c;失败时返回FALSE。php file_put_contents()函数怎么用&#xff1f;php file…

jdk1.8.0_45源码解读——ArrayList的实现

转载自 jdk1.8.0_45源码解读——ArrayList的实现 一、ArrayList概述 ArrayList是List接口的可变数组的实现。实现了所有可选列表操作&#xff0c;并允许包括 null 在内的所有元素。除了实现 List 接口外&#xff0c;此类还提供一些方法来操作内部用来存储列表的数组的大小。  …

.NET Core dotnet 命令大全

dotnet 命令大全&#xff0c;让你理解dotnet 命令。 本文将以一个实例串起 dotnet 所有命令&#xff0c;让你玩转dotnet 命令。 本篇文章编写环境为windows 10 &#xff0c;dotnet 命令同样适用于其它系统。 配合 VS Code 你就可以在 Linux 、MAC 上开发.NET Core。 下面是dotn…

java异常 字节码,Java字节码角度分析异常处理

目录从字节码角度来分析&#xff1a;异常处理1.1 异常-catch// 从字节码角度来分析&#xff1a;异常处理public class T13_ByteAnalyseException {public static void main(String[] args) {int i 0;try {i 10;} catch (Exception e) {i 20;}}}注意&#xff1a;为了抓住重点…