仓酷云

标题: ASP.NET网页设计不必IDE写C#的Hello World仓酷云 [打印本页]

作者: 山那边是海    时间: 2015-1-18 11:17
标题: ASP.NET网页设计不必IDE写C#的Hello World仓酷云
简单的说:.net只有微软一家在做的,微软也不允许别人跟他做相同的工具,所以他就把需要的工具全部封装在.net的平台上了;而net网页编程是公开了。用VisualStudio等IDE写C#的HelloWorld十分复杂,但离开了IDE你能不克不及打印出HelloWorld呢?这不是说事情时离开IDE,而是进修一下CLR的实行模子.
HelloWorld

如偶然外,将会编译出Hello.exe,能打印出HelloWorld.
CLR实行模子-编译期

CLR程序的实行历程大抵分为两步,编译期和运转期,编译期历程大抵以下图:
ASP.NET网页设计不必IDE写C#的Hello World仓酷云
登录/注册后可看大图

个中编译期逻辑上也可分为两步:
实行下面两步就能够失掉一个XX.dll或XX.exe的程序集.就像下面的Hello.exe.
编译器怎样晓得要编译成托管模块仍是资本文件?实际上是必需明白告知编译器每一个文件的怎样编译,这个对应VisualStudio的文件属性的天生操纵.
右击任何VisualStudio办理资本计划的文件-->属性-->天生操纵:
ASP.NET网页设计不必IDE写C#的Hello World仓酷云
登录/注册后可看大图

指定Class1为嵌进的资本,用ILSpy检察会发明只是把Class1嵌进到程序会合,称号为:定名空间.文件名:
ASP.NET网页设计不必IDE写C#的Hello World仓酷云
登录/注册后可看大图

你乃至能够将一张图片设为编译让编译器试图往编译它,不外会报错.
运转期

下面天生了程序集,程序集内的是IL代码,它还不是可运转的代码.IL是与CPU有关的呆板言语.直到程序集被挪用,才会由JIT(Just-in-Time,及时)编译器编译为本机代码(CPU指令).在运转时,CLR实行以下步骤:
程序集的可实行代码在必要的时分由JIT编译编译,然后本机代码(CPU指令)就被缓存以备厥后的程序中实行.一旦使用程序停止,编译好的本机代码也会被抛弃.
比方假如将下面的代码改成:
  1. staticvoidMain(string[]args){Console.WriteLine("Hello");Console.WriteLine("World!");Console.ReadKey();}
复制代码
第一个WriteLine必要先JIT编译,再实行.而因为已编译WriteLine的代码,以是第二个WriteLine会间接实行内存块中的代码,跳过JIT编译.
因为分派内存,JIT编译历程等,以是程序会在第一次运转时形成一些功能丧失,写ASP.NET时这类感到特变分明,按了F5会等好久才会显现首页.
上面摹拟感觉这个历程.用一年夜堆类延伸内存分派的工夫,参考这个文件HelloWorld.css(博客园不撑持txt格局):
ASP.NET网页设计不必IDE写C#的Hello World仓酷云
登录/注册后可看大图

再次运转命令:csc/out:Hello.exeHelloWorld.txt,失掉Hello.exe,实行时发明有必定的提早才会打印出HelloWorld.
天生本机代码

利用.NET供应的NGen.exe,能够将IL代码编译本钱机代码.能够办理下面的成绩.NGen.exe有两个感化:
加速使用程序的启动速率.由于代码已编译为本机代码,运转时不必要再花工夫编译
那做企业软件是不是最好用J2EE?
作者: 愤怒的大鸟    时间: 2015-1-20 19:47
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
作者: 飘飘悠悠    时间: 2015-1-25 23:17
主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
作者: 乐观    时间: 2015-2-3 23:30
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
作者: 透明    时间: 2015-2-4 23:16
Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。
作者: 莫相离    时间: 2015-2-10 22:48
微软又推出ASP.NET。这不是ASP的简单升级,而是全新一代的动态网页实现系统,用于一台WEB服务器建立强大的应用程序。是微软发展的新体系结构.NET的一部分,是ASP和.NET技术的结合。
作者: 若天明    时间: 2015-2-11 15:09
asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源
作者: 金色的骷髅    时间: 2015-2-12 03:09
逐步缩小出错代码段的范围,最终确定错误代码的位置。
作者: 再见西城    时间: 2015-2-16 22:25
但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。
作者: 海妖    时间: 2015-2-21 15:12
JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
作者: 再现理想    时间: 2015-2-23 13:05
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
作者: 小女巫    时间: 2015-2-25 13:38
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
作者: 若相依    时间: 2015-3-7 21:08
ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。
作者: 只想知道    时间: 2015-3-11 21:26
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
作者: 第二个灵魂    时间: 2015-3-28 05:11
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2