热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET5Beta8发布及升级经验

(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)题记:ASP.NET5Beta8如期发布,这是一个重要的里程碑,因为这是ASP.NET5的特性冻结版本,

(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)

题记:ASP.NET 5 Beta8如期发布,这是一个重要的里程碑,因为这是ASP.NET 5的特性冻结版本,强烈建议之前迟疑没有使用ASP.NET 5于生产环境的同学可以开始尝试了。

这次作为功能冻结的版本,变化相对于Beta7还是有很多地方的。

最大的改变莫过于改变了IIS托管模型

之前托管方式是“脚踏两只船”,除了DNX宿主外,还存在一个名为“Helios”用于IIS的宿主。这种方式带来了开发、维护和测试的复杂度,还让程序执行的内部流程有所不同。现在只有一个DNX宿主,如果想跑在IIS中的话,需要借助于一个新的HttpPlatformHandler,把请求传递给ASP.NET 5的Kestrel服务器。

这个IIS的扩展如果是IISExpress的话,可以安装Beta8的Web Tools更新来获得,如果不是就需要单独安装。

另外,对于旧项目还需要在wwwroot中添加一个web.config【update2015-10-21】来配置httpPlatformHandler,在project.json文件中添加“Microsoft.AspNet.IISPlatformHandler”和“Microsoft.AspNet.Server.Kestrel”的包,然后在Startup.cs文件中的Configure方法中添加“app.UseIISPlatformHandler();”。web.config的【/update2015-10-21】具体内容可以看文末的链接或者用beta8新建一个项目来参考。

其次是本地化支持的功能。

使用app.UseRequestLocalization(options)启用本地化后,内置的语言判断提供器就会根据请求头、查询字符串或者COOKIE值来判断当前语言。而后就可以利用services.AddLocalization(optiOns=> options.ResourcesPath = "resources");来传递本地化字符串内容了。

当然MVC的本地化也得到了支持。

DNX Watch命令实现动态化开发。

虽然.NET是支持动态编译的,要实现如Ruby、Python那样动态化开发(即在生产环境修改或推送代码后,程序以最新版本运行)还是需要做一些额外工作(或者选用WebPages这样的框架)。现在在ASP.NET 5中提供了DNX Watch命令,可以监控项目中所有文件的变动,从而实现快速的开发工作流程:编辑代码、保存、然后刷新浏览器就可以看到更新)。

安装方式:dnu commands install Microsoft.Dnx.Watcher

执行方式:dnx-watch web

除了上面这些加强,更多的可以参阅beta8的发布公告和发布说明

http://blogs.msdn.com/b/webdev/archive/2015/10/15/announcing-availability-of-asp-net-5-beta8.aspx

https://github.com/aspnet/Home/releases/tag/v1.0.0-beta8

从beta7升级beta8

当然,整个beta8也带来了一些破坏性改变,我结合我从beta7升级的经验简单介绍一下:

  • TargetElementAttribute改名为HtmlTargetElementAttribute
  • 用StringValues代替string[] 比如访问HttpContext.Request.Header的时候写法就有所不同
  • UseErrorHandler和UseErrorPage扩展进行了重命名,也就是UseErrorHandler->UseExceptionHandler,UseErrorPage->UseDeveloperExceptionPage
  • Controller.Context -> Controller.HttpContext
  • OpenIdConnectAuthenticationDefaults -> OpenIdConnectDefaults
  • ActionExecutedContext 命名空间改为Microsoft.AspNet.Mvc.Filters
  • IOptions.Options -> IOptions.Value
  • IdentityOptions.EmailConfirmationTokenProvider -> IdentityOptions.Tokens.EmailConfirmationTokenProvider
  • Controller提供诸如User、Request属性,无需通过HttpContext来间接访问了,比较接近MVC5的Controller用法
  • IdentityServiceCollectionExtensions.ConfigureIdentity去除,配置放到AddIdentity中;ConfigureIdentityApplicationCOOKIE去除,配置通过IdentityOptions的COOKIEs属性配置
  • MemoryConfigurationSource –>MemoryConfigurationProvider
  • ConfigurationBuilder的构造器进行调整,不再接受basePath值的传入,而需要这样: var cOnfigurationBuilder= new ConfigurationBuilder().SetBasePath(appEnv.ApplicationBasePath)

    更多的改变记录可以看这里:https://github.com/aspnet/Announcements/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0-beta8

    Beta8的Web Tools下载在:http://www.microsoft.com/en-us/download/details.aspx?id=49442


  • 推荐阅读
    • 本文详细介绍了如何安全地手动卸载Exchange Server 2003,以确保系统的稳定性和数据的完整性。根据微软官方支持文档(https://support.microsoft.com/kb833396/zh-cn),在进行卸载操作前,需要特别注意备份重要数据,并遵循一系列严格的步骤,以避免对现有网络环境造成不利影响。此外,文章还提供了详细的故障排除指南,帮助管理员在遇到问题时能够迅速解决,确保整个卸载过程顺利进行。 ... [详细]
    • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
    • 为了向用户提供虚拟应用程序,通常会在基础架构中部署StoreFront或Web Interface。为了确保安全的远程访问,通常需要在DMZ中配置Secure Gateway或Access Gateway。本文详细对比了这两种界面工具的功能特性,包括用户管理、安全性、性能优化等方面,为企业选择合适的解决方案提供了全面的参考。 ... [详细]
    • 本文深入探讨了ASP.NET中ViewState、Cookie和Session三种状态管理技术的区别与应用场景。ViewState主要用于保存页面控件的状态信息,确保在多次往返服务器过程中数据的一致性;Cookie则存储在客户端,适用于保存少量用户偏好设置等非敏感信息;而Session则在服务器端存储数据,适合处理需要跨页面保持的数据。文章详细分析了这三种技术的工作原理及其优缺点,并提供了实际应用中的最佳实践建议。 ... [详细]
    • IIS配置大全:从基础到高级的全面指南
      IIS配置详解:从基础到高级的全面指南IIS前端配置与web.config文件紧密相关,相互影响。本文详细介绍了如何设置允许通过的HTTP请求方法,包括HEAD、POST、GET、TRACE和OPTIONS。提供了两种主要的配置方法,并探讨了它们在实际应用中的优缺点。此外,还深入讲解了其他高级配置选项,帮助读者全面提升IIS服务器的性能和安全性。 ... [详细]
    • IIS 7及7.5版本中应用程序池的最佳配置策略与实践
      在IIS 7及7.5版本中,优化应用程序池的配置是提升Web站点性能的关键步骤。具体操作包括:首先定位到目标Web站点的应用程序池,然后通过“应用程序池”菜单找到对应的池,右键选择“高级设置”。在一般优化方案中,建议调整以下几个关键参数:1. **基本设置**: - **队列长度**:默认值为1000,可根据实际需求调整队列长度,以提高处理请求的能力。此外,还可以进一步优化其他参数,如处理器使用限制、回收策略等,以确保应用程序池的高效运行。这些优化措施有助于提升系统的稳定性和响应速度。 ... [详细]
    • IOS Run loop详解
      为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
    • 本文详细介绍了在 React Native 开发过程中遇到的 'Could not connect to development server' 错误及其解决方法。该问题不仅影响开发效率,而且难以通过网络资源找到确切的解决方案。本文将提供详细的步骤,帮助开发者快速解决这一常见问题。 ... [详细]
    • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
    • 为了提升单位内部沟通效率,我们开发了一套飞秋软件与OA系统的消息接口服务系统。该系统能够将OA系统中的审批、通知等信息自动同步至飞秋平台,确保员工在使用飞秋进行日常沟通的同时,也能及时获取OA系统的各类重要信息,从而实现无缝对接,提高工作效率。 ... [详细]
    • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
    • Spring框架中枚举参数的正确使用方法与技巧
      本文详细阐述了在Spring Boot框架中正确使用枚举参数的方法与技巧,旨在帮助开发者更高效地掌握和应用枚举类型的数据传递,适合对Spring Boot感兴趣的读者深入学习。 ... [详细]
    • 在现代Web开发中,许多网站采用伪静态技术,如URL以.html或.shtml结尾,以提升用户体验和搜索引擎优化。MVC框架中的路由机制能够轻松实现这一功能。通过配置默认路由并添加伪静态路由规则,MVC框架按照从上到下的顺序进行路由匹配,确保请求被正确处理。此外,这种机制还支持灵活的自定义路由,进一步增强了应用的可扩展性和维护性。 ... [详细]
    • Web开发框架概览:Java与JavaScript技术及框架综述
      Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
    • 通过利用代码自动生成技术,旨在减轻软件开发的复杂性,缩短项目周期,减少冗余代码的编写,从而显著提升开发效率。该方法不仅能够降低开发人员的工作强度,还能确保代码的一致性和质量。 ... [详细]
    author-avatar
    手机用户2602933123
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有