探索新的.NET “dotnet” 命令行接口(CLI)

【原文发表地址】Exploring the new .NET "dotnet" Command Line Interface (CLI) 【原文发表时间】December 24, ’15 我从来不太喜欢ASP.NET 5上整个的“dnvm”和“dnu”还有“dnx”的命令行的东西。存在的就是合理的,他们过去是,并且一直是重要的步骤,对于学习过程是有组织地并且是很有帮助的。 我的想法一直是:当一个新人坐在座位上开始学习node, python, ruby, golang 或者其它任何东西时,对于绝大多数人来说,按照他们的经验就应该如此。使用.NET应当被看做是一件简单的不能再简单的事了。 下面只是一段伪代码,不用花太多时间去看。 apt-get install mylang #where mylang is some language/runtime #write or generate a foo.fb hello world program mylang foo #compiles and runs foo 我认为学习并且使用.NET 的伙伴们应该在Go或者Ruby上有相同的经验。 · 容易获得-在每个平台上获得.NET是非常容易的。 o 我们即将在https://get.asp.net/ 上开始做,并且会单独做 .NET Core,我确信。 · 很容易写Hello World –…

1

如何在ASP.NET和WPF中显示二维码

[原文发表地址]  How to display a QR code in ASP.NET and WPF [原文发表时间]  2014-01-19         我曾半开玩笑的表示过根本没有一个很好的理由需要使用二维码,但是最近我在和Greg Shackles 一起制作一个小型启动的最小可行产品,并且我们有充分的理由要使用二维码。因为我们要在移动设备,网站以及应用程序间传送数据,而使用二维码真是一种较快捷的方法,也避免了蓝牙配对的混乱状况。         如我所提到的,我们要在ASP.NET的网站上显示二维码,同时也在基于WPF框架实现的windows应用以及基于 Xamarin.框架,用C#实现的iphone 应用程序中也显示二维码。      “ZXing"(斑马线)是一个很好的二维码代码库,对于Java和C#都有相应的接口 。C#/.NET,ZXing.NET是个相当棒的项目程序集,它将适用于多种平台的程序集放在了一起,这些平台包括了.NET 2.0到.NET 4.5、windows RT,Unity3D、 Portable libraries 等等。这个网站有许多例子,虽然我们没有找到一个和ASP.NET或WPF相关的,但是也没关系了,它们也只是生成和显示PNG 的图片。         我从这里获得了ZXing.Net, 仅安装 ZXing.Net包就可以了。 如何在ASP.NET中展示二维码         如果你用ASP.NET MVC生成一个二维码,你将会得到这段代码运行的页面,但是接着你需要决定是否需要利用 HTTP Handler 去生成图像,就像如下方式: <img src="/path/to/httphandlerthatmakesQRcodepng">         或者你可以像我们一样用不同的方法,在HTML页面         Greg 使用HTML助手输出整个图像标签,包括内嵌的图像,如: <img src="data:image/gif;base64,iVBORw0KG…" />         我觉得图像以DataURI的方式显示在 HTML…

1

在ASP.NET4.5中使用异步方法的魔力外加一个疑难杂症

[原文发表地址] The Magic of using Asynchronous Methods in ASP.NET 4.5 plus an important gotcha [原文发表时间] 2013-08-29 首先,我鼓励你去听听播客Hanselminutes的第327集,那一集的名字是“Everything .NET programmers know about Asynchronous Programming is wrong”我从这一集学到了很多。我保证你也会受益匪浅。 通常我们会发现我们会在一个页面里面做三四件事情,从一些地方下载东西。也许是从硬盘下载,调用web服务和数据库。 典型的做法是, 你可以顺序处理这些事情,同步地,累加每一个任务的总持续时间: 1: public void Page_Load(object sender, EventArgs e) 2: { 3: var clientcontacts = Client.DownloadString("api/contacts"); 4: var clienttemperature = Client.DownloadString("api/temperature"); 5: var clientlocation = Client.DownloadString("api/location"); 6: 7: 8:…

0

云服务的精打细算:在Windows Azure网站上启用New Relic 性能监控

[原文发表地址] Penny Pinching in the Cloud: Enabling New Relic Performance Monitoring on Windows Azure Websites [原文发表时间]  2013-05-02 我最近一直在寻找让我的(现在已经有12个)云网站运行省钱的方式,从日志中获得启示是很有帮助的,但是我真的想获得更多详细的内容用以为我的应用程序做些什么,这样我也可以少做一些事情,记得扩展应用程序的秘密。 让你的应用程序能做的尽可能少,如果你什么都不做,你可以无限扩展。 我喜欢使用诸如Glimpse的工具来配置应用程序,检查数据库的调用,并探索程序究竟发生了什么事情。如果你喜欢应用分析工具,可能你对New Relic比较熟悉。它们是用于配置各种应用程序的灵活的系统,包括ASP.NET和Azure网站。 今天下午我在推特上通知了我的朋友们访问我的网站并帮我测试New Relic。推特上我的一个可爱的朋友及时地在我的网站上发现了DDOS’ed的问题,我更加尊重他们了。 实际上,你可以在我的网站上加载这个图表,也能看到当我扩大了Azure和交换共享时的预留空间。黄色的实例已被共享,蓝色的是我从保留的VM切换到的一个新的实例,在这一点上,我有足够的能力来面对难关,谢谢推特! 我是怎么在我的网站上设置New Relic的?New Relic有一个办公室在波特兰(我住的地方),所以我今天去参观它。巧合的是(真实的故事),最近他们对Azure网站的支持已经从内测转向了开放,所以我决定躲起来看看是否我能加入New Relic的性能和应用监测的Hanselminutes.com播客网站。 在你的Azure账户中添加New Relic 登陆到Azure门户,点击 “新建”,然后进入商店,然后在商店内找到New Relic。 选择免费计划。他们会告诉你,你可以有一个永久的免费计划。它并不包括一些附属信息以及存储大量的历史数据,但在其他方面功能强大,此外,你会得到一个专业版本的14天的免费试用期(不需要信用卡)。 创建一个Add-On,他们告诉我,New Relic的数据中心并不重要,你只需要获得一个许可证密钥。 注意:如果你已经有一个New Relic的许可证密钥以及现有的计费关系,那么你不需要使用商店或者添加一个add-on,你可以使用现有的许可证密钥。不过,我希望我的账单集中,这样,New Relic中的任何账单都会通过我的Azure 账户。这个随便你。   现在,从Azure的仪表板中,单击新的New Relic节点。你可以单击管理来自动移动(及自动单点登录)New Relic的系统仪表板。还需要注意的是连接信息的按钮,我们将在一分钟内需要用到它。   如果你单击管理并把鼠标放在New Relic方向,你会得到一个欢迎信息,但是实际上在你的应用程序成功取得了它们在系统中的第一次调用之前,你不能看到任何有趣的东西。如果需要的话,你能迁出它们的.NET文档。它们是在不断变化,并非完全准确,但是它们会到达。 我们需要一些环境信息来安装我们的Azure网站,然后添加New Relic NuGet包。 停留在Azure门户网,进入你要检测的网站,单击配置和设置来配置值。它会通过New Relic产品的事件探查器查到CLR,你可以让它持续运行,也可以很容易的关闭它。 添加以下键值对: COR_ENABLE_PROFILING -…

0

在和子应用程序版本不一致时修改ASP.NET web.config配置文件中的继承权

[原文发表地址] Changing ASP.NET web.config inheritance when mixing versions of child applications [原文发表时间] 2013-03-26 我的博客和所有相关站点是混用.NET 2.0、3.5和4的。现在这个博客引擎http://hanselman.com/blog 用的是.net 3.5, 但是应用程序所在的根目录http://hanselman.com/ 用的是.NET4。 你可以很愉快的在一个IIS实例中跨.NET版本混用应用程序。 从旁边的截图你可以看到我怎么做的。 可是,当我让子/博客用.NET3.5(2.0 CLR),然后把父/应用程序改成.NET 4的时候,爆出了一大堆下面的错误: Unrecognized attribute ‘targetFramework’. Note that attribute names are case-sensitive. The targetFramework attribute was inherited from the root .NET 4 Web.config file in the Default Web Site root using ASP.NET configuration inheritance…

0

将旧的应用程序从IIS6转移到IIS8以及经典模式存在的原因

[原文发表地址] Moving old apps from IIS6 to IIS8 and why Classic Mode exists [原文发表时间] 2013-03-20 7:53 PM 今天我收到一个通过电子邮件发送的有趣的问题。这个问题用一句话概括就是: 我们已经成功地在旧版本的IIS和IIS 8.0 的经典模式下运行了一个程序,为什么ASP.NET运行时会在IIS 8.0里集成模式的程序池里出问题? 比起他们从IIS 6.0转移到IIS 8.0会引起人们的兴趣来,他们从经典模式的管道转移到了集成模式显得更为重要。 简而言之, 这些管道是不同的,如果你写了期望其中一种管道行为的一个程序,然后转移,那么当你把它转移到一个新的管道后,你一直遵循的行为将有可能不同。 IIS6是十几年前在Windows Server 2003 里发布的。应用程序一直用的是ISAPI管道。IIS6里的每一样东西本质上就是我们现在认为的“经典模式”,而不像IIS7里面较新的集成管道。 带ASP.NET的IIS6 有两个管道 –IIS非托管管道和托管ASP.NET管道。这里有一个简化过但是非常准确的图(如图所示): IIS7和8 是用更高级更快速的集成模式管道来重构的,但是为了兼容性它们保留了“经典”模式。 “医生,这样做会痛的哎” “不要那么做啊” 如果你正在把一个IIS6(从定义来看就是 只有“经典”模式)上的旧程序转移到IIS8上, 最快的决定是在IIS8的经典模式下运行它。经典模式是完全被支持的,所以运行经典模式你就不会做错什么了。这就是这个模式存在的原因。 考虑下您的理由,作一个深思熟虑的决定吧。 请记住,不考虑衍生出来的结果的话,当ASP.NET程序想要从在IIS6版本里的老的ISAPI托管模型转移到来自于IIS7较新的集成模型时, 有可能会发生不兼容和边缘情况的行为上的问题。 希望这能有所帮助。

0

BrowserStack与Visual Studio集成的跨浏览器调试

[原文发表地址]  Cross Browser Debugging integrated into Visual Studio with BrowserStack [原文发表时间]  2013-01-31 4:56 PM BrowserStack与Visual Studio的集成 现在在安装ASP.NET 2012.2 RC之后,从 Visual Studio 2012 内部启动一个调试会话。点击靠近Debug按钮的下拉列表,点击" More Emulators "来转到http://asp.net/browsers并获取 BrowserStack Visual Studio 扩展和 三个月的免费服务。还有其他可以下载的浏览器,如Electric Plum iPhone/iPad simulator。 旁白:当 VS2012.2 Update完毕时,你只需要安装它就可以获得ASP.NET Web Tools。 现代网站的新在线工具 前往http://modern.ie来获取让跨浏览器站点变得更简单的工具,包括在线站点分析器和可下载的、面向任何虚拟平台的虚拟机。 在 Microsoft 下载中心上有一些虚拟机,但这过于乏味来挖掘和获取你需要的那个。 BrowserStack 今天 IE 团队宣布了新网址http://modern.ie ,它使得跨浏览器测试变得更简单。更神奇的是,他们与BrowserStack.com建立了伙伴关系来为其托管的浏览器虚拟化服务提供三个月的免费试用。 BrowserStack 中拥有每个浏览器可以想象得到的虚拟机。你可以选取你的操作系统、 浏览器版本和屏幕分辨率,然后使用它们的 Flash 插件有效地 VNC…

0

下载面向Windows 7的Internet Explorer 10

[原文发表地址]  RELEASED – Download Internet Explorer 10 for Windows 7 [原文发表时间]  2013-02-26 2:11 PM 大约一个月前,IEBlog发布了一篇博客来允许企业管理Internet Explorer 10 的更新日程安排。它说:"这种做法可以让组织控制他们准备部署IE10到其 Windows 7 用户的时间。我从中判断, Windows 7 上的 IE10即将到来了。 如今它已问世。现在您可以下载 Windows 7上 的 IE10 。在 IE 博客上有详细信息。 在未来几周和几个月,Windows 7 机器将自动升级到 IE10。对于像我这样的 Web 开发人员来说,这意味着在已经拥有了 IE10 的Windows 8用户和现在这些将具有 IE10的 Windows 7 用户之间,更多的人将会拥有一个现代的浏览器。 IE10在我的机器上速度比IE9快,他们说它是智能省电的。它还有 IE10 的升级后的 JavaScript 引擎,包括拼写检查和自动更正 (终于) !但 SunSpider 意味着比…

0

发布ASP.NET and Web Tools 2012.2

[原文发表地址]  Released: ASP.NET and Web Tools 2012.2 in Context [原文发表时间]  2013-02-18 6:30 PM 去年ASP.NET 团队开始讨论我们称之为” One ASP.NET”的事情。我在去年夏天的aspConf 上展示了一些我们的想法,你可以在线观看主题演讲。 那时我们还宣布我们会将新功能作为带外发布(OOB) 添加到 ASP.NET 中 ,而不会破坏现有的功能。这意味着开发人员不必等待Visual Studio 的下一版本来获取强大的 web 开发功能。我们的目标是每 6 个月将功能添加到 ASP.NET and Web Tools中。 对于那些不想等待的人来说,Mads 和团队也开始启用一个称为Web Essentials的功能。它是一个Visual Studio 扩展,一直在更新VS怎样能更好地成为web 编辑器。随着功能从Web Essentials 中”毕业”,它们移动到了 ASP.NET and Web Tools中。今天的发布中包含了一大堆其中功能。 今天,我们宣布 ASP.NET and Web Tools 2012.2。您可以使用Web Platform Installer来立即获取ASP.NET and Web…

0

当你有所疑虑时,请启用跟踪功能

[原文发表地址]  When in doubt, turn on Tracing [原文发表时间]  January 1, 2013 12:38 AM 在我的博客中,我最喜欢的一篇是“互联网不是一个黑盒。看看其本质。” 我一直想要鼓励大家去“黑盒”里面看看——或者更具体点说,当它被人们看作是个黑盒时——请尝试解决人们的疑虑。 我博客的读者Eddie F向我提出了一个好问题。他知道我惜字如金, 因此他提到如果我回答了他的问题, 我可以把最终结果放到博客中去。向Eddie致敬。 他说:     我有一个使用了Entity Framework 5.0实体的例子,如果我添加了[必需]([Required])数据注释到我的实体类属性中,它会拒绝“放入“(PUT)到我的ASP.NET WebApi 控件里(全部使用.NET 4.5 RTM),这着实让我觉得奇怪。 我们知道Eddie有一个实体,它的属性中包含一个[必需]属性。当他进行放入操作(PUT)(而不是POST操作)时会得到一个报错信息: var response = client.PutAsJsonAsync("/api/MagicPants/Update", entry).Result; //HERE IS THE POINT OF FAILURE when the [Required] attribute // is added to the EF poco type PortfolioEntry. 如果删除了这个[必需]属性,则没有这个问题。如果他使用任何其他的DataAnnotation,如RangeValidation,也没有这个问题。 Eddie指出他曾经使用Google(以及Bing)试图找寻答案,但是却一无所获。在问我之前他也问过很多朋友和StackOverFlow。很值得思考的问题。…

0