个人web开发我选Asp.net core,你选谁?PHP?还是JSP?
现在很多公司都会选用PHP,JSP来开发,但是现在Asp.net core已经今非昔比了。今天微软金牌合作伙伴51aspx来分享一些关于.Net的那点事。
.Net以前是不开源的,需要收费,有着各种版权问题,导致其语言生态发展不够。有其语言优点,公司考虑成本原因,基本上都会pass掉.net。但是.net在各方面的性能效率上,个人使用还是很香的。
我们先来看看主流编程语言运行效率横评
可以看出,.NET Core很明显是属于第二梯队,性能仅次于C/C++这种直接编译成汇编的语言。而PHP则是
第五梯队,甚至还不如node. Js……
最后看一下今天的主角.NET;(51aspx.com就是.NET的源码分享和学习平台)
ASP.NET 是一个免费的 web 框架,用于使用 HTML、CSS 和 JavaScript 构建强大的网站和 web 应用程序。 还可以创建 Web Api 并使用 Web 套接字等实时技术。
ASP.NET Core 是 ASP.NET 的一种替代方法,也可以理解为ASP.NET的升级。
先来看看两者的对比、
从表格来看ASP.NET Core是性能各方面更强大。所以 现在更推从使用ASP.NET Core来开发
一、扩大类库的覆盖面
可以在许多平台上共享,许开发人员构建各种软件,包括Web,桌面,移动,云,游戏,物联网等。
二、运行速度快
根据TechEmpowers发布的一份报告,.NET Core比任何其他框架都要快得多。 TechEmpower基准测试通过对多个Web应用程序框架做如下比较:数据库的单表查询,多表查询,文件访问,数据更新,明文和JSON序列化等任务进行比较。
现在已经出了最新版本的.NET6.0,大家可以更新下载,官网下载:Download .NET (Linux, macOS, and Windows)
.NET Core是轻量级的。.NET Core可以包含在您的应用程序中,也可以安装在并行用户、机器范围内或服务器上。.NET Core可以部署在Docker容器中。
四、.NET Core是免费和开源的
.NET Core平台是免费的、开源的。免费的,并且采用MIT和Apache协议作为开源协议。对商业十分友好。
就针对开发而言,从开源,使用,速度和稳定性等各方面来说,.Net 是很不错的,它还有其他优点:生成 Web UI 和 Web API 的统一场景;Razor Pages可以使基于页面的编码方式更简单高效;能够在 IIS、Nginx、Apache、Docker上进行托管或在自己的进程中进行自托管。
So,不知道你更青睐哪一个开发语言?
教你搭建属于自己的网站 第一篇 建站基础
分享于 个人公众号:App实验室
今天就教大家搭建一个属于自己的网站。
教程比较简单,适合入门级教程,不保证你能一下学会。
弄网站基本都是成本低,只要你有电脑就好,其他的并没有什么要求,前期刚开始我们在本地测试,学会了,我们再去买服务器。比如:腾讯云,阿里云之类的。
今天主要讲解一些相关基础知识。
1:网站是什么?
网站,可以通过浏览器访问,服务器对外提供服务的一个地址 ip,简称为网站,简单一点的来说,域名就是网站,也可以多个域名对应一个网站,这就叫子域名。
日常来说我们通过百度的网址 baidu.com 域名访问,网址会自动跳转到地址。
域名和IP之间的关系
事实上,我们访问一个网站都是通过域名打开的,实际上是通过 DNS 服务器解析找这个域名对应的 IP,进行跳转相应的 IP。
在最开始的时候,打开一个网站,只能通过 IP 进行访问,有大佬觉得 IP 不好记,记一串数字比较难记,就出现了域名,以便记住网站地址。不管是怎么换 IP 就是说换服务器,只要记住域名,就能正常访问。
你也可以查询域名绑定的是那个 IP 地址,可以在 win 系统 自带的命令程序 CMD来查询,使用 ping 命令进行查询。例如你想查 百度 对应的 IP ,你可以按照图片中的命令进行查询。
一般类似于这种大企业 都会使用 CDN,CDN 就是保护真实的 ip 地址 ,所以你每次查询的 IP 不一样,关于 CDN 更详细的资料可以百度进行查询一下。
分享于 个人公众号:App实验室
这个 神鹿游戏 就是一个网站。
分享于 个人公众号:App实验室
2:网站的类型
我们使用浏览器访问的网站,看到的内容都是通过 HTML 呈现给我们的,呈现的每个内容 HTML 代码都是不一样。
大多数使用的网站程序是PHP,Jsp,asp等。当然还有比较小众的go,Python等。近几年 Python 也是最火热的。
也可以直接使用 HTML 文件当网站的文件。
网站就比较好区分,一般在地址栏常常会看到 php、jsp、asp 等结尾,一般就能分辩出来了。php 是世界上最好的语言。
php 轻量并简单,经常被个人以及中小企业使用,用户群相当的巨大,几乎就没有 php 完成不了的事。
今天的教程,一样使用 php 来搭建我们的网站。
分享于 个人公众号:App实验室
3:选择网站程序
PHP的程序实在是太多了,根据自己的需求,我们能找到符合自己的程序。
既然我们是要做个人网站,那么我们就要选择一个博客系统作为自己的网站。
PHP博客系统也非常多,注明的开源博客系统有:WordPress,Typecho,emlog,Zblog等。
很巧的是,上面四种程序,小编都使用过。
WordPress
绝对的大哥地位,虽然说是博客程序,实际上它什么都能做,全世界流量排名前1000万的网站有33.4%是用Wordpress搭建的!换句话说,wordpress现已占据网络上前1000万个网站中的1/3。基本博客网站几乎也是使用WordPress搭建的。因为他实在是太强大了,各种各样的主题,插件,数不清。
分享于 个人公众号:App实验室
Typecho
Typecho 是由个人团队开发的一套程序,非常小巧,功能比较简单,但是原生支持md语法,加载速度快,被很多个人用户采用。
以前用过这个程序,不过编辑器比较难用,就放弃了,也不知道现在怎么样了。
分享于 个人公众号:App实验室
emlog
emlog也是个人开发团队搞的,前期应该只有一个人开发这个程序,不过也是非常强大的了。上面的插件和模板比typecho多,不过6.0版本的就少了很多,6.0版本是大更新,不过估计已经烂尾了,以前官方还在搞主机来着,这个也垮了,总之用这个程序的人越来越少了。
分享于 个人公众号:App实验室
zblog
zblog 最开始是 asp 程序,后面又推出了php版的程序,使用起来效果都很不错,并且官方推的比较给力,使用它的用户还是挺多的。zblog的主题和插件都比较丰富,不过很多都要收费,让人觉得有那么一点不美好。
最棒的就是支持直接使用SQLITE,搭建个人博客,连数据库服务器都给省了。目前果核源码网使用的就是这个程序,用着还行。
分享于 个人公众号:App实验室
说了这么多,大家应该有选择了吧。虽然WordPress对大家来说有点不友好,因为要配置的东西较多,比较麻烦,但是胜在功能强大,并且以后网站做大了,也是一个稳定的保障,也方便拓展。
啥?你说你就要简单和方便?那就用typecho吧,这个是你的菜~
那么下一节,我们就开始在本地搭建网站了,敬请期待~
分享于 个人公众号:App实验室
从asp.net到jsp:3分钟看透Jsp&Servlet
话说故事的开头是这样的:JSP全名为Java Server Pages,其根本是一个简化的Servlet设计;后来的详细事情有请各位自便。美女→找→谷哥 or 帅哥→找→度娘
插播:如果还想精简继续提速;只需在目录导航中找点击实心五角星★标记的3个部分(内置对象和作用域、JavaBean、EL表达式)
1、page 指令
Language : 用来定义要使用的脚本语言;在这里java是惟一默认合法的值,记住就行。
contentType:定义JSP字符的编码和页面响应的MIME 类型;
pageEncoding:Jsp页面的字符编码;
import:定义此JSP网页要使用哪些Java API或类;
2、scriptlet 标签
通过scriptlet标签我们可以在Jsp里嵌入Java代码,主要以下三种:
① <%! %> 可以在里面定义全局变量、方法、类;
② <% %> 可以在里面定义局部变量、编写语句;
③ <%= %> 可以在里面输出一个变量或一个具体内容;
3、Jsp 注释
主要以下4种方式:
① <!– Html 注释客户端可见 –>
② <%– Jsp 注释客户端不可见 –%>
③ // java 单行注释
④ /* java 多行注释 */
4、Jsp 包含指令
① <%@ include file=”要包含的文件”%> 静态包含先包含,后编译处理;② <jsp:include page=”要包含的文件”> 动态包含先编译处理,后包含;
实际开发中一般都采用第二种动态包含的方式。
5、Jsp 跳转指令
服务器内部跳转,可带参数。
在Jsp开发中,Jsp提供了9个内置对象,这些内置对象将由容器为用户进行实例化,用户直接使用即可。分别是:pageContext,request,response,session,application,config,out,page,exception;常用的是前面5个,需要熟练掌握;
Response内置对象和request 内置对象是相对应的,response 内置对象用于响应客户请求,向客户端输出信息;
javax.servlet.HttpServletResponse 接口
① 自动刷新应用;
② 页面重定向应用:客户端跳转;
③ 操作cookie应用:post/get方法比较:post放数据包里,get放url后面;get数据量小,而且不安全;
④ cookie和session 的比较:cookie信息存在客户端,session信息存在服务器;
pageContext内置对象是一个比较特殊的对象。它相当于页面中所有对象功能的集合,即使用它可以访问到本页面中所有对象。pageContext 内置对象由Jsp 容器创建并初始化,pageContext 对象提供了对JSP 页面所有对象及控件的访问。
Config内置对象是JSP 页面通过JSP 容器进行初始化时被传递的对象。javax.servlet.ServletConfig 。在Servlet初始化的时候,JPS 引擎通过config 向它传递信息。这种信息可以是属性名和属性值匹配的参数,也可以是通过ServletContext 对象传递的服务器的有关信息;
Out内置对象主要用来向客户端输出各种类型的数据,同时还可以管理应用服务器上的输出缓冲区。所以out 内置对象的方法是向客户端输出数据和管理缓冲区; 底层javax.servlet.jsp.JspWriter 抽象类。
Exception内置对象用来处理JSP 文件在执行时发生的所有异常,它是java.lang.Throwable 类的一个对象。
此外,在Jsp 开发中为了可以保存数据,Jsp提供了四种数据保存范围;分别是:page,request,session,application。
Page:只在一个页面中保存数据; javax.servlet.jsp.PageContext(抽象类)
Request:只在一个请求中保存数据; javax.servlet.http.HttpServletRequest(接口)
Session:在一次会话范围中保存数据,仅供单个用户使用;javax.servlet.http.HttpSession(接口)
Application:在整个服务器上保存数据,所有用户共享;javax.servlet.ServletContext(接口)
JavaBean是使用Java语言开发的一个可重用的组件,在JSP 开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。
创建javabean
<jsp:useBean id=\”实例化对象名称\” scope=\”保存范围\” class=\”类完整名称\”/>
Scope有page,request,session和application 4个属性范围,默认是page;
设置javabean属性值
<jsp:setProperty property=\”属性名称\” name=\”实例化对象的名称\” value=\”属性值\” param=\”参数名称\”/>
Property=”*” 自动匹配所有
获取javabean属性值
<jsp:getProperty property=\”属性名称\” name=\”实例化对象的名称\”/>
javabean保存范围
Javabean 的保存范围有page,request,session,application;默认是page;
删除javabean
Page 范围:pageContext.removeAttribute(“javaBean Name”);
request 范围:request.removeAttribute(“javaBean Name”);
session 范围:session.removeAttribute(“javaBean Name”);
application 范围:application.removeAttribute(“javaBean Name”);
Servlet生命周期:简单分为四步:servlet 类加载→实例化→服务→销毁。
客户端/服务器端 跳转:
① 在Servlet 中获取session,application
② 客户端跳转response.sendRedirect(\”目标地址\”);
③ 服务器跳转:RequestDispatcher rd=request.getRequestDispatcher(\”目标地址\”); rd.forward(request, response);
寻找值的顺序:page→request→session→application
EL表达式运算符操作还包括:算数运算符,关系运算符,逻辑运算符;三目运算符;Empty关键字;
JSTL核心标签库
c:out 内容输出标签;
c:set 用来设置4 中属性范围值的标签;
c:remove 用来删除指定范围中的属性;
c:catch 用来处理程序中产生的异常;
c:if 用来条件判断;
c:choose、c:when、c:otherwise 用来多条件判断;
c:forEach 用来遍历数组或者集合;
c:fortokens 分隔输出;
c:import 导入页面;
c:url 生成一个url 地址;
c:redirect 客户端跳转
JSTL SQL标签库
Sql:setDataDource 设置JDBC 连接;
sql:query 数据库查询操作;
Sql:update 数据库添加,修改,删除操作;
Sql:transaction 数据库事务;
JSTL XML标签库
x:parse 解析xml;
x:out 输出xml 文件的内容;
x:set 把xml 读取的内容保存到指定的属性范围;
x:if 判断指定路径的内容是否符合判断的条件;
x:choose x:when x:otherwise 多条件判断;
x:forEach 遍历
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。