asp.net网页制作编写网页的可执行文件是哪个

当前访客身份:游客 [
这个人很懒,啥也没写
:10万行代码不多吧,一个大点的项目下来就差不多有...
:10万行代码不多吧,一个大点的项目下来就差不多有...
:引用来自“小潘pfl”的评论 突出你是本科生?osc...
:哎说来惭愧,我博士都没毕业
:突出你是本科生?osc上谁不是
今日访问:1
昨日访问:10
本周访问:41
本月访问:223
所有访问:2871
ASP.NET中bin app_code app_data等文件夹的作用
发表于2年前( 21:54)&&
阅读(1943)&|&评论()
0人收藏此文章,
ASP.NET中bin app_code app_data等文件夹的作用
待后期整理
&文件夹名称
&& 文件类型
&& 注&&&&&&& 释
&&& 包含应用程序所需的任何预生成的程序集
&App_Browsers
&& .browser
&& 包含应用程序特有的浏览器定义文件,ASP.NET用它来识别各浏览器及确定它们的功能
&& .cs、.vb、.xsd、自定义的文件类型
&& 包含作为应用程序的一部分编译的类的源文件。当页面被请求时,ASP.NET编译该文件夹中的代码。该文件夹中的代码在应用程序中自动地被引用
&& .mdb、.mdf、.xml
& 包含Microsoft& Office& Access和SQL& Express文件以及XML文件或其他数据存储
&App_GlobalResources
&& 包含在本地化应用程序中以编程方式使用的资源文件
&App_LocalResources
&& 包含页面范围的资源文件
&App_Themes
&& .skin、.CSS、.xsl、附属文件
&& 包含一组定义ASP.NET页面和控件外观的文件
&App_WebReferences
&& 包含用以生成代理类的WSDL文件,以及与在应用程序中使用Web服务有关的其他文件
1.& Bin文件夹
&Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任何.dll文& 件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用(ambiguous& reference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则ASP.NET运行库不能决定应该使用哪一& 个程序集,从而抛出一个异常。在开发时,当我们重新命名一个项目或一个程序集的名称时,这是常见的错误。为了避免这种错误,一定不要在该文件夹中保留任何& 不必要的程序集,或者至少要从配置文件的&assemblies&节中删除如下代码行:
&add& assembly="*"& /&
在上表所列所有文件夹中,只有Bin可以被ASP.NET& 1.x应用程序识别。该文件夹是强制性的。
2.& App_Browser文件夹
该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特& 征和功能。ASP.NET在安装路径下的Config\Browser文件夹中安装了大量.browser文件,这些文件供所有应用程序共享。我们只是把& 当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译,以便向ASP.NET运行库提供最新& 的浏览器信息。
让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效呈现的控件。在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫使ASP.NET使用一个不同的适配器来生成该控件。
&browsers&
&browser& id="browserID"&
&controlAdapters&
&adapter& controlType="Samples.CustomControl"
adapterType="Samples.Adapters.CustomControlAdapter"& /&
&/controlAdapters&
&/browser&
&/browsers&
假设browserID与ASP.NET识别的标准浏览器之一相匹配,则上文所示的.browser文件指示在指定的浏览器下使用CustomControlAdapter呈现CustomControl。
3.& App_Code文件夹
App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件。这些类文件自& 动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code文件夹中放置的类文件可以包含任何可识别的ASP.NET组件& ——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。
&&& 注意&&&&&&& 在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译。对于大型项目,这可能不受欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理& 到不同的类库中,按逻辑上相关的类集合进行组织。应用程序专用的辅助类大多应当放置在App_Code文件夹中。
App_Code文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些类文件,就要在web.config文件中为每个子目录添加一个设置:
&compilation&
&codeSubDirectories&
&add& directoryName="VBFolder"& /&
&/codeSubDirectories&
&/compilation&
重要的是,特定语言的子目录应在web.config文件中注册,否则,不管它们属于哪个文件夹,App_Code文件夹下& 的所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个& Visual& Basic& .NET类文件移入VBFolder目录中。如果&codeSubDirectories&节中提到的目录不存在,则会收到一个编译错误提& 示。
App_Code根文件夹中的文件被编译成App_Code_xxx.dll程序集,其中xxx是随机生成的字符序列。一个& 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll的动态创建的程序集,其中xxx指示子目录的名称,而yyy是一个& 随机字符序列。只有在应用程序根目录中的web.config文件中进行了设置,&codeSubDirectories&节才有效。
在App_Code目录或任何其他子目录中放置一个assemblyinfo.cs文件,可以创建一个强命名的程序集。显然,如果该文件夹包含Visual& Basic& .NET文件,那么将使用assemblyinfo.vb文件。程序集配置文件可以引用一个.snk文件来保存强名称的密钥。
& 注意&&&&&&& 给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对。通过使用强名称(Strong& Name)工具(sn.exe),可以获得这样一个密钥对。强名称工具是我们可以在.NET& Framework的安装路径中发现的SDK& binary之一。密钥对文件通常有一个.snk扩展名。可以将该文件保存到一个应用程序文件夹中,并在assemblyinfo.cs文件中引用它,如下所示:
&&&&&&&&&&& [assembly:& AssemblyKeyFileAttribute(@"yourKeyPair.snk")]
注意,Visual& Basic& .NET是在包含Visual& Studio& Solution的目录中寻找密钥文件,而C#编译器则在包含该binary的目录中寻找密钥文件。据此可知,用此属性调整我们使用的路径,或者把密钥文件放在合适的文件夹中。
在随后发生的任何重新生成中,程序集的名称将发生变化。同时,老的AppDomain请求一结束,就删除老的程序集。
App_Code文件夹并非只能包含类文件。特别是,它可以包含并能自动地处理代表数据架构的XSD文件。把一个XSD文件& 添加到该文件夹中时,编译器将把它解析成一个有类型的DataSet类,并将它添加到应用程序作用域中。在ASP.NET& 1.x中,这一工作由Visual& Studio& .NET向导,使用一个命令行实用程序(xsd.exe)完成的。
&&& 注意&&&&&&& 使用web.config文件注册一个组件(例如,一个自定义的服务器控件或一个自定义的HTTP处理程序)时,通常要求指定包含该代码的程序集名称。如& 果该组件定义在App_Code文件夹中,则应该用什么名称来指示程序集?在这种情况下,只是忽略程序集信息,并规定完整的类名即可。如果没有规定任何程& 序集,则ASP.NET运行库将试图从任何已装载的程序集中装入该类,包括为App_Code文件夹动态创建的程序集。
4.& App_Data文件夹
App_Data文件夹应该包含应用程序的本地数据存储。它通常以文件(诸如Microsoft& Access或Microsoft& SQL& Server& Express数据库、XML文件、文本文件以及应用程序支持的任何其他文件)形式包含数据存储。该文件夹内容不由ASP.NET处理。该文件夹是ASP.NET提供程序存储自身数据的默认位置。
& 注意&&&&&&& 默认ASP.NET帐户被授予对文件夹的完全访问权限。如果碰巧要改变ASP.NET帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。
5.& App_GlobalResources文件夹
正如其他应用程序一样,ASP.NET应用程序也可以使用资源,而且通常应该使用资源。资源是隔离应用程序用户界面的可局部& 化部分的一种有效方法。一般而言,资源是与程序相关的不可执行的文本。典型的资源有图像、图标、文本和附属文件,但是任何可序列化的对象也可以被看作资& 源。应用程序资源存储在应用程序的外部,这样就能在不影响和重新编译应用程序本身的情况下重新编译和替换它们。
ASP.NET应用程序需要有一个主要程序集来保存应用程序默认的或中性的资源。此外,还要部署许多附属程序集,它们中各自& 包含我们需要支持的某种文化的本地化资源。在ASP.NET& 1.x中,编译一个程序集内的资源有点麻烦。需要手动地将基于XML的资源文件(那些带.res扩展名的资源)编译成.resources二进制文件。这& 些文件既可以嵌入到一个.NET可执行文件中,也可以编译成附属程序集。使用资源文件生成器实用程序resgen.exe,将文本和基于XML的资源文件& 转变为.resource文件。资源文件名称遵循baseName.cultureName.resource命名约定,其中baseName通常是应用& 程序的名称:
resgen.exe& ProAspNet20.resx& ProAspNet20.it.resources
创建.resource文件以后,应当把它嵌入到一个程序集中,甚至可以作为一个资源容器来使用。要把一个资源文件嵌入到一个附属程序集中,可以使用程序集连接器工具(al.exe)。在命令行上,指出程序集所使用的文化(如下面示例中的it,它代表意大利)和名称。
al& /out:ProAspNet20.resources.dll& /c:it& /embed:ProAspNet20.it.resources
在编译附属程序集之后,它们将有相同的名称。将它们部署到不同的子目录中,分别按文化命名。
幸运的是,对于ASP.NET& 2.0,附属程序集的时代已经一去不复返了。更准确地说,附属程序集仍然存在,但是由于App_GlobalResources保留文件夹,对开发人员来说它们已经成为过去的事情。
该文件夹中的任何定位的.resx文件自动地被编译成附属程序& 集。.resx文件的名称包含文化信息,以帮助ASP.NET运行库环境的程序集生成。如下文件,resources.resx,& resources.it.resx,& resources.fr.resx,生成中性程序集以及适合于意大利(Italian)和法国(French)文化的附属程序集。如果没有要求特定文& 化,则中性程序集是默认的文化资源。
App_GlobalResources文件夹中的资源文件是应用程序的全局资源,因而可以从任何页面中引用它。和ASP.NET& 1.x相比资源读取结果也极大地简化了:
&asp:Label& Runat="server"& Text="&%$& Resources:ResxFile,& MyResName& %&"& /&
可以使用最新的称为Resources的$-表达式以声明的方式绑定全局资源(第5章将详细介绍$-表达式)。该表达式包括两个参数:.resx资源文件的名称(没有扩展名),以及要检索的资源的名称。以编程的方式访问资源,请使用如下代码:
HttpContext.GetGlobalResourceObject(resxFile,& MyResName)
这两个参数都是字符串,并且与$-表达式中的参数具有相同的作用。此外,$-表达式Resources的实现在内部使用GetGlobalResourceObject。
6.& App_LocalResources文件夹
App_LocalResources文件夹位于包含一些ASP.NET页面的文件夹下的一个子目录。该文件夹可以使用位于& 目录结构中高一级目录中的页面命名的.resx文件进行填充。假定父文件夹包含test.aspx,则可以在App_LocalResources文件夹& 中找到一些可用的资源文件如下:test.aspx.resx、test.aspx.it.resx和test.aspx.fr.resx。显然,上述文& 件中存储的资源仅对test.aspx页面有影响,因而只能在链接的页面中看见它们(可以使用它们)。
如何访问一个页面特有的资源呢?对于编程访问,可使用如下代码:
HttpContext.GetLocalResourceObject("/ProAspNet20/ResPage.aspx",
"PageResource1.Title")
第1个参数指出页面虚拟路径;第2个参数是资源名称。对于声明式访问,使用meta:ResourceKey属性。例如,
&asp:Button& Runat="server"& meta:resourcekey="ButtonResource1"& /&
该声明将一个惟一的资源键与特定按钮实例关联。局部文件.resx包含prefix.name形式的条目,其中prefix& 是资源键,而name是绑定控件上的属性名。为了赋予按钮一个本地化标题(Text属性),只要在资源文件中创建一个& ButtonResource1.Text条目即可。
局部和全局资源文件夹中存在的资源文件都被编译,以创建附属程序集的类。最后的结果是开发人员创建.resx文件,并测试该页面。而ASP.NET编译机制会完成其余工作。
7.& App_Themes文件夹
App_Themes文件夹为ASP.NET控件定义主题。主题包含在App_Themes文件夹下的一个文件夹。根据定义,一个主题是一组带有样式信息的文件。主题文件夹中的文件内容被编译,以生成一个类,而该类被页面调用以编程的方式设置主题化控件的样式。
App_Themes文件夹列出应用程序的本地主题。& 应用程序还可以继承如下文件夹中定义的全局主题:
%WINDOWS%\Microsoft.NET\Framework\[version]\ASP.NETClientFiles\Themes
从编译的角度看,全局主题和局部主题没有区别。如果一个给定名称的主题,既存在应用程序的本地主题,又存在服务器机器的全局主题,则本地主题优先适用。
8.& App_WebReferences文件夹
在Visual& Studio& .NET& 2003中,一个需要访问Web服务的ASP.NET应用程序,将通过“添加Web引用”对话框获得相应的.wsdl文件。Web服务的WSDL(Web& Service& Description& Language)文档,对于从页面使用Web服务是不够的。ASP.NET页面最终是一个托管类,并且需要与另一个托管类通信。因此,Web服务被一个& 代理类所包装。该代理类是由Visual& Studio使用命令行工具wsdl.exe的服务创建的。该代理类尽量包含与Web服务商的Web方法一样多的方法,并且它结合了Web服务的公共接口& 定义的任何自定义的数据类型。
这个操作不需要开发人员付出很大的代价。然而,开发人员显然要依赖于Visual& Studio来生成代理类。如果能够直接把.wsdl文件放在应用程序的目录树的某个地方,并让ASP.NET处理其余的任务,这样不是更容易、更简单& 吗?这正好是App_WebReferences文件夹要做的事情。
它识别那些用来描述所绑定的Web服务的.wsdl文件,并生成运行时代理类,以便ASP.NET页面能够以类型安全的方式& 放置对Web服务的调用。App_WebReferences文件夹可以包含子文件夹。子文件夹的名称驱动最后所得到的代理类的命名空间,而WSDL文件& 定义类名。例如,samples.wsdl文件和ProsAspNet20子文件夹将创建一个称为ProAspNet20.Samples的代理类。该动& 态创建的程序集称为App_WebReferences.xxx.dll,其中xxx是一个随机的字符序列。
ascx文件用法&&
aspx是IE直接访问的页面,而ascx是用户控件,一般是用来重用,
比如有二个aspx页面,有一部分代码一样,所一样的提取出来做成ascx,就可以重用了.
如果单纯N个aspx页,就只能复制,粘贴,要修改时,就晕了.
ascx不能直接访问只能插入aspx页面呈现.
向页眉导航,页脚每个页都有,所以做好用户控件然后每个页拖进去就可以了
ascx即WebUserControl,和WindowsApplication中的UserControl作用类似,主要用于代码的复用,使用之前需要在页首加饮用。模块化的开发机制也常用ascx作为功能载体。用众多的功能模块(每个模块包含多个UserControl)合成一个网站。
ASP.NET 一个aspx文件能同时调用cs和ascx文件吗?
当然& aspx 有自己的cs,它调用的ascx也有自己的cs
就是说aspx的cs文件与它调用的ascx文件是没有关系的!
他们可以同时使用!
关于.ASCX的用法的问题。&一个webform 工程中,假设有10个页面,这10个页面中如果在页面的某个位置(比如第一个页面在左上角,第二个页面在右下角,第三。。。第十 位置都不重复)都有2个固定的控件(假设是一个 textbox&&和 一个button),他们外观相同,但他们后台的业务逻辑处理都不相同,我能否使用.ASCX 实现吗?
可以啊,让控件接收参数做不同处理即可。
.NET当中的DLL文件和ASCX文件的问题,
是不是说在DLL文件或是ASCX文件中写画面,然后在ASPX文件中引用.那ASPX文件里可以不写任何关于画面的代码是吗?有例子吗,请高手指点.
能有例子吗?有例子更详细些.谢谢,我是初学者.
那ASPX里写什么?只是引ASCX?ASCX写画面,后台写代码的话,我觉得和直接在ASPX里写画面,后台.CS文件写代码没区别.可不可以在ASCX文件中只作画面,然后引到ASPX里,在ASPX里写后台操作?
在你的ASCX文件中写HTML代码,在ASCX.CS文件中写后台逻辑。
在你要引用ASCX文件的ASPX页面头部加上:
&%@ Register TagPrefix="uc" TagName="ucSample" Src="你的ASCX文件在项目中的相对路径" %&
在需要用到ASCX文件的地方加入:
&uc:ucSample ID="uc1" runat="server" /&就可以了。
以后你直接在ASCX文件和ASCX.cs文件里改代码就可以了。
&%@ Register TagPrefix="Acme" TagName="Address" Src="address.ascx" %&
这句话做呵解释啊?
ascx是用户控件,这是注册用户控件
这句话其实是用了一个address.ascx,Web 用户控件
与命名空间关联的别名。
与类关联的别名。
与 tagprefix 关联的命名空间。
与 tagprefix:tagname 对关联的声明性用户控件文件的位置(相对的或绝对的)。
与 tagprefix 关联的命名空间所驻留的程序集。
注意 该程序集名称不包含文件扩展名。
aspx是页面文件
ascx是用户控件,用户控件必须嵌入到aspx中才能使用。
ascx是用户控件,相当于模板
其实ascx你可以理解为Html里的一部分代码,
只是嵌到aspx里而已,
因为aspx内容多的时候实在是不太好管理,
而且你把公共的Html部分写成ascx也可以公用在很多aspx里
比如Web页的下面注释部分
更多开发者职位上
1)">1)">1" ng-class="{current:{{currentPage==page}}}" ng-repeat="page in pages"><li class='page' ng-if="(endIndex<li class='page next' ng-if="(currentPage
相关文章阅读&#187;&#187;ASP.NET 5 简介
  ASP.NET 1.0 的预览版发布距今大约已经 15 年前了。由于数以百万的开发者使用它构建和运行 web 应用,数年来我们添加并改进了它的无数功能。
  非常高兴在今天发布了我们正在研发中的 ASP.NET 的新版本,我们称之为 ASP.NET 5。这次发布是我们为 ASP.NET 所做的最重要的架构升级之一。而且在这次发布中,我们让 ASP.NET 更为精益,更加模块化,更好的跨平台,并对云平台的支持做了进一步优化。ASP.NET 5 已经发布预览版啦 !Visual Studio 2015& 社区版来体验最新的 ASP.NET 5 吧!
  ASP.NET 5 是一个用于构建现代 web 应用的开源 web 框架,它支持 Windows, Linux 和 Mac 平台。它包含 MVC6 框架,此框架将 MVC 和 Web API 整合成为一个单一的 web 编程框架。ASP.NET 5 还将成为 SignalR3 的基础 ,SignalR3 可以让你为&云应用&添加实时功能。ASP.NET 5 是在 .NET Core 运行时(.NET Core runtime)上构建的,但是为了保持最大的兼容性,它也可以运行在完全的 .NET Framework 框架之上。
  在 ASP.NET 5 中,我们做了大量的架构调整,使得核心 web 框架更加精简(不再依赖 System.Web.dll)并且更加模块化(几乎所有的功能都被实现为 NuGet 模块 - 你可以通过只选择自己需要的模块来优化你的app)。ASP.NET 5 还包括下列改进:
在 Windows, Mac 和 Linux 上构建和运行跨平台 ASP.NET 应用
构建在 .NET Core 之上,它支持真正的并行应用版本化(side-by-side app versioning)
新的工具用于简化现代 web 开发
为 WebUI 和 Web APIs 提供了单一的技术栈
为云平台准备的基于环境的配置方式
整合了创建和使用 NuGet 包的功能
原生支持依赖注入
支持将应用部署在 iiS 或自己的 Web 服务上
  ASP.NET 5 仍是你所熟悉的那个 ASP.NET,并且它更适于现代 web 编程
 灵活的,跨平台的运行时环境
  可以在两种运行时环境下使用ASP.NET 5,这让你在托管你的应用时有了更好的灵活性。这两种运行时环境分别为:
  .NET Core && 一个新的,模块化的,可跨平台的而且更加精简的运行时。如果你决定使用 .NET Core,你将能够体验到以下它所带来的激动人心的功能:
  1) 你可以将运行时环境连同你的应用一同部署,这意味着你的应用不再依赖你的托管环境的操作系统中所安装的运行时版本。你的应用可以使用与其他应用不同的运行时版本。你可以随时升级你的应用所需的运行时版本,这不会影响到其他的应用。同时,其他应用升级的时候,你仍可以使用旧版本的运行时。这让应用开发和框架升级变得更加容易,并且能够减少在同一个操作系统中运行的应用之间的相互影响。
  2) 你的应用仅仅依赖那些你需要的功能。因此你不必为那些与你的应用无关的功能而升级运行时或打补丁。 这也可以让你节省一些测试和部署升级的时间,因为你不用花费精力在那些无关的功能上。
  3)& 你的应用可以跨平台运行啦。我们为 .NET Core 提供了跨平台支持,支持 Windows, Linux 和 Mac OS X 系统。无论你用哪个操作系统开发或者你想将应用部署到那个操作系统上,你都可以使用 .NET。不过跨平台版本的运行时目前还没有发布,我们正在
上维护它,并计划在不久的将来发布它的官方预览版。
  .NET Framework && .NET Core 的API 相对于完整的 .NET Framework 来说有一些限制。 所以你需要修改你现有的应用去适应 .NET Core。如果你不想升级你的应用,ASP.NET 5 也支持部署到完整的 .NET Framework (需要 4.2 或更高版本)上。这样,你就可以使用完整的 .NET Framework API 了。你可以在不做修改的情况下,将已经存在的应用或类库运行在这个运行时上。
  MVC 6-一个统一的编程模型
  MVC,Web,API 和 Web 网页提供了互补的功能,当开发一个解决方案时,它们经常会一起被使用。然而,在以往的 asp.net 版本中,我们会分别来实现这些编程框架。因此它们包含有一些重复与不一致的地方。使用 mvc 6,我们可以把那些模型合并成一个简单的编程模型。现在,你可以创建一个处理web ui 和无需在这些编程框架里调和差异的数据业务的简单 web 应用程序。首先,你也可以无缝地转换一个在更强大的mvc应用程序里开发web页面的简单的网站。
  你可以使用相同的 MVC 过滤器管道从同一个控制器恢复 Razor 视图和内容协商的数据。
  为了统一现有框架我们增加了新特性来使服务端开发更加轻松,比如新的帮助标签特性。 帮助Tag 可以让你在视图中通过简单扩展标记语义来使用HTML辅助。
  因此你不应该这样写:
@Html.ValidationSummary(true, &&, new { @class = &text-danger& })
&div class=&form-group&&
@Html.LabelFor(m =& m.UserName, new { @class = &col-md-2 control-label& })
&div class=&col-md-10&&
@Html.TextBoxFor(m =& m.UserName, new { @class = &form-control& })
@Html.ValidationMessageFor(m =& m.UserName, &&, new { @class = &text-danger& })
  而应该这样写:
&div asp-validation-summary=&ModelOnly& class=&text-danger&&&/div&
&div class=&form-group&&
&label asp-for=&UserName& class=&col-md-2 control-label&&&/label&
&div class=&col-md-10&&
&input asp-for=&UserName& class=&form-control& /&
&span asp-validation-for=&UserName& class=&text-danger&&&/span&
  辅助Tag使你的视图开发更加自然且提高可读性。他们也使得通过添加标记来简化HTML辅助输出的自定制,因此你会充分利用 HTML 编辑器。
  如果需要更多创建MVC 6应用的例子,请看。
 现代化的 Web 开发方法
  本周发布的 ASP.NET 5 预览版包含一些非常棒的开发功能,它们可以帮你更好的构建 Web 应用:
  动态开发
  在 Visual Studio 2015 中, 我们利用动态编译为你提供了一个流线型的开发体验。当你想要查看某处修改的时候,你不必再编译你的应用了。取而代之的是,你可以: (1) 修改代码, (2) 保存修改,(3) 刷新浏览器,(4)& 查看修改结果即可
  你会喜欢这样的类似使用动态语言的开发体验,同时又不会牺牲任何编译型语言带来的好处。
  你也可以使用任何其他的编辑器来开发你的 ASP.NET 5 工程。在 Visual Studio 用户界面中的每个功能,都对应着一个可的命令行工具的命令。
  与流行的Web开发工具的集成(Bower, Grunt 和 Gulp)
  在 Visual Studio 2015中另一个令人兴奋的特点是内置支持 , 和
&& 这些我们认为应该在每一个网页开发者工具集中放着的流行开源工具。
Bower 是一个客户端库包管理器,包括 JavaScript 和 CSS 库。
Grunt 和 Gulp 用于任务管理,帮您自动化Web开发工作流。您可以使用Grunt或Gulp像编译LESS,coffeescript,或TypeScript文件一样,运行JSLint,或压缩JavaScript文件。
  Bower:如果要添加一个JavaScript库到您的ASP.NET项目,直接添加在bower.json配置文件:
  注意,Visual Studio 将给你一个可用的软件包的 IntelliSense 提示。下一次打开解决方案时,Visual Studio 自动恢复任何丢失的包,所以你不需要检查包的源代码控制。
  对于服务器端的软件包,您仍然可以使用 NuGet 包管理器。
  Grunt:在现代网络的发展,你会发现你需要管理大量的任务,仅仅是建立你的应用程序而言:编译LESS,TypeScript,或 CoffeeScript 文件,linting,JavaScript 压缩,运行 JS 的单元测试,等等。每个团队都有自己的一套要求,取决于所使用的特定工具。任务管理器更容易管理和协调这些任务。Visual Studio 2015 将支持最流行的两种任务管理器,Grunt 和 Gulp。
  例如,如果你要用 Grunt 编译 LESS。就去加入
包,这是一个第三方 Grunt 插件。
  使用Visual Studio 2015中的新任务管理浏览器来绑定任务生成步骤(预生成,生成,清理,或解决方案打开时)。
  这使得它非常易于实现在您的项目自动化常见任务,并让其配合你工作,甚至是整个团队项目。
  Simplified dependency management(简化的依赖关系管理)
  在ASP.NET 5你可以添加NuGet包来管理依赖关系。您可以使用NuGet包管理器或简单地编辑JSON文件(project.json),其用于列出在你的项目中使用的NuGet包和版本。project.json的文件很容易使用,你可以用任何文本编辑器编辑它,甚至当应用程序被部署到云上也可以更新依赖关系。
  project.json 文件看上去是这样子的:
  在Visual Studio 2015,IntelliSense帮助您找到可用的可以添加依赖关系的NuGet包,。
  而且,IntelliSense甚至可以帮助列出可用版本:
  Cloud-ready configuration(配置云准备)
  在ASP.NET 5,我们不再需要使用Web.config文件来配置值。我们想让它为你部署你的应用程序到云更容易并让程序自动读取所处环境的正确配置值。新的系统允许您从各种源(如XML,JSON,或环境变量)请求命名值。你可以决定哪些格式以更好地配合工作。
  在startup.cs文件中,你可以添加或删除配置值的源.
  上面的代码段显示了一个项目中,建立JSON文件检索环境变量和配置值。如果你需要可以修改代码指定其他源。在这个json文件中你可以提供这些值。
  你所在的环境,比如Azure,可以设置环境变量的值,在应用部署之后将自动代替本地配置值。部署应用程序时可以不必担心会发布测试值。
  依赖注入 (DI)
  在 ASP.NET 之前的版本,一些组件已经支持了依赖注入,如 MVC, WEB API 和 SignalR。但并不是以统一的整体解决方案的方式提供的。在 ASP.NET 5 中提供了一个新的依赖注入抽象层,它以统一的方式应用在整个 Web 栈中。当你需要用到某些服务(services)时,你可以在启动时,在中间件(middleware)中,在过滤器(filters)中,在控制器(controllers)中,在模型绑定时以及任何管道的虚拟部件中访问此服务。& ASP.NET 5 包含了一个用于引导系统的,极简的依赖注入容器。你可以很容易的把它换成任何你想要的容器(如:Autofac, Ninject 等)。服务的范围(scope)包括:单列(singleton),当前请求(request)或过渡(transient)。
  示例:为了演示在 ASP.NET MVC 6 中如何使用构造函数注入,首先要创建一个 ASP.NET 5 Starter Web 工程并添加一个简单的服务:
namespace WebApplication1
public class TimeService
public TimeService()
Ticks = DateTime.Now.Ticks.ToString();
public String Ticks { }
  这个服务记录构造函数被调用的时间。
  之后,在Startup类的ConfigureServices方法中,将这个时间服务注册成为一个过渡服务(transient service):
public void ConfigureServices(IServiceCollection services)
services.AddMvc();
services.AddTransient&TimeService&();
  然后, 将 HomeController 修改为使用构造函数注入的形式。并显示 TimeService 对象被创建时的时间。
public class HomeController : Controller
public TimeService TimeService { }
public HomeController(TimeService timeService)
TimeService = timeS
public IActionResult About()
ViewBag.Message = TimeService.Ticks + & From Controller&;
System.Threading.Thread.Sleep(1);
return View();
// Code removed for brevity
  注意,此控制器没有显式的创建&TimeService。它是在控制器被初始化的时候注入进来的。
  在 MVC 6 中,你可以使用 [Activate] 特性(attribute)来实现属性注入。你不仅可以在控制器中使用[Activate] 特性,还可以在过滤器和视图组件中使用它。这意味着你可以简化你的控制器,请看下面的代码:
public class HomeController : Controller
[Activate]
public TimeService TimeService { }
// Code removed for brevity
  MVC 6 也支持在 Razor 视图中使用依赖注入,这是通过 @inject 关键字实现的。在下面的代码中,我将时间服务直接注入到 about 视图中,并且创建了一个 TimeSvc 属性用来访问它:
@using WebApplication23
@inject TimeService TimeSvc
&h3&@ViewBag.Message&/h3&
@TimeSvc.Ticks From Razor
  当你运行应用时,你可以看到对于控制器和视图会产生不同的时间。
 更快的 HTTP 性能
  ASP.NET 5 引入一个新的模块化的 HTTP 请求管道,你可以只使用你需要的模块,而且这个管道不再依赖 System.Web。由于减少了开销,你的应用将有更好的吞吐量,而且有一个更协调的 HTTP 栈。这个新的管道向 Katana 项目借鉴了许多,而且支持 .
  通过设置 Startup 类的 Configure 方法,你可以决定你要使用管道中的哪些组件。在Configure 方法中,可以指定在你的项目中使用哪些管道中间件。ASP.NET 5 已经包含了许多从 Katana 项目移植过来的中间件,像处理静态文件的中间件,处理验证的中间件,用于诊断的中间件等。下面的代码展示了如何向你的项目中添加或去除管道组件。
public void Configure(IApplicationBuilder app)
// Add static files to the request pipeline.
app.UseStaticFiles();
// Add cookie-based authentication to the request pipeline.
app.UseIdentity();
// Add MVC and routing to the request pipeline.
app.UseMvc(routes =&
routes.MapRoute(
name: &default&,
template: &{controller}/{action}/{id?}&,
defaults: new { controller = &Home&, action = &Index& });
  你可以编写你自己的中间件并把他们加入到管道中
  我们把ASP.NET 5作为一个开源项目公布在上开发。你可以看到代码,看到修改,也可以下载代码,还可以提交变更。我们相信让ASP.NET 5开源将会让你更易于理解代码,理解我们预定的方向,并参与贡献到工程中去。
 文档和指导
  若要开始使用ASP.NET 5你可以从ASP.NET的网站()中找到文档和指导。下面的手册将会指导你通过这些步骤创建你的第一个ASP.NET 5工程。
ASP.NET MVC 6(View components and Inject in ASP.NET MVC 6)
  一如阅读&可以在未来得到更多关于ASP.NET相关的内容并在Web开发中改进。
  希望这能帮到你,
  原文地址:
验证消息:Admin10000
提示:常上QQ空间的朋友可关注,精彩内容不错过。
理智评论文明上网,拒绝恶意谩骂 发表评论 / 共0条评论
登录会员中心}

我要回帖

更多关于 asp.net网页制作 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信