Questions tagged «asp.net»

ASP.NET是Microsoft开发和销售的Web应用程序框架,允许程序员构建动态Web站点和Web应用程序。它最初于2002年1月以.NET Framework 1.0版发布,是Microsoft Active Server Pages(ASP)技术的后继产品。ASP.NET建立在公共语言运行时(CLR)之上,允许程序员使用任何受支持的.NET语言编写ASP.NET代码。

7
在生产中记录用户操作的最佳做​​法
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 7年前。 我打算在生产环境中记录很多不同的东西,例如当用户: 登录,注销 变更个人资料 编辑帐户设置 更改密码...等 在生产环境中这样做是一种好习惯吗?还有什么是记录所有这些的好方法。我目前正在使用以下代码块登录: public void LogMessageToFile(string msg) { System.IO.StreamWriter sw = System.IO.File.AppendText( GetTempPath() + @"MyLogFile.txt"); try { string logLine = System.String.Format( "{0:G}: {1}.", System.DateTime.Now, msg); sw.WriteLine(logLine); } finally { sw.Close(); } } 这样可以生产吗?我的应用程序是一个非常新的应用程序,因此我不希望马上有数百万用户,或者寻找最佳实践来跟踪网站上的操作,甚至是最佳实践。
22 c#  asp.net  logging 

5
如何在ASP.NET应用程序背后的客户端Javascript和C#代码之间传递数据?
我正在寻找在ASP.NET应用程序背后的客户端JavaScript代码和C#代码之间传递数据的最有效/标准方式。我一直在使用以下方法来实现此目的,但是它们都感觉有些偏软。 要将数据从JavaScript传递到C#代码,是通过设置隐藏的ASP变量并触发回发: <asp:HiddenField ID="RandomList" runat="server" /> function SetDataField(data) { document.getElementById('<%=RandomList.ClientID%>').value = data; } 然后在C#代码中收集列表: protected void GetData(object sender, EventArgs e) { var _list = RandomList.value; } 回到另一种方式,我经常使用ScriptManager来注册一个函数并在Page_Load期间将其传递数据: ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true); 或在回发之前,初始化或预渲染阶段添加属性到控件: Btn.Attributes.Add("onclick", "DisplayMessage("Hello");"); 这些方法很好地为我服务并完成了工作,但感觉并不完整。在客户端JavaScript和C#后端代码之间传递数据的方法是否更标准? 我见过像一些帖子这样一个描述的HtmlElement类; 这是我应该研究的东西吗?

10
设置电子邮件通知的最佳做法和礼节
此问题是从Stack Overflow 迁移而来的,因为可以在Software Engineering Stack Exchange上回答。 迁移 8年前。 如果您要为网站的客户设置电子邮件警报以进行订阅,则应遵循哪些礼节规则? 我能想到的几个问题: 用户可以选择退出 纯文字(或高雅的远程图像) 每周发送不超过一次 客户可以对其收到的电子邮件进行细粒度的控制(仅接收他们感兴趣的内容) 我还应该考虑什么? 从编程的角度来看,设置和运行电子邮件通知的最佳方法是什么? 我应该使用ASP.NET服务吗?Windows服务?两者都有什么陷阱? 我应该如何记录发送的电子邮件?我不在乎是否会收到邮件,但我确实需要能够证明自己已发送或未发送电子邮件。


7
我应该使用我最熟悉的语言还是公司的“标准”
我将为我的特定工厂开发一个Intranet站点,而我们用于Web开发的公司标准是IIS + ASP.Net + VB.Net + Microsoft SQL Server(请注意,我们有大约10多个工厂)。Intranet站点仅由我的工厂使用,并且我是唯一支持它的站点。我精通LAMP设置,并且与ASP.Net相比,使用PHP可以更快地进行开发和解决问题。尽管公司的“标准”是ASP.Net/VB.Net,但公司整体上的大部分工作是购买第三方软件(通常基于Java),而且,我的意思是很少有人公司甚至知道VB6,更不用说ASP.Net/VB.Net。 话虽这么说,是违反公司标准并选择我可以更好地支持的设置,还是最好选择我可以离开时公司可以更好地支持的设置,即使目前还没有人在公司反正可以支持自己的标准? 在我的个人情况下需要考虑的其他一些因素: 同样,这仅适用于我的工厂,除非我离开公司,否则我将是唯一会支持它的人,然后我的替代者将为它提供支持。公司中没有其他人了。 无论如何,该公司很少对其标准进行开发。 现有公司中几乎没有任何公司使用其标准。 如果选择公司标准,则必须使用Microsoft SQL的Express版本和Windows 7 OS。根据我的阅读,Express版本可以用于商业用途,但是数据库大小有限。

2
F#是否提供对数据库驱动的Web开发特别有用的功能?
我的组织终于在今年升级到了MS Visual Studio 2010。Visual Studio 2010提供的一项重大新功能是F#编程语言。 我了解F#提供了类似于Lisp的功能编程范例。但是与Lisp不同,F#被编译为.net框架的托管代码。 现在,我从事数据库驱动的Web应用程序开发。现在,我正在使用后端是SQL代码的N层应用程序,前端是C#.net AJAX Web应用程序。我想知道F#是否提供对此类开发特别有用的任何东西。

1
为什么Microsoft的库依赖Newtonsoft.Json?
这可能是从Microsoft创建ASP.NET Web API库开始的,至少是在我没有记错的情况下记住它的时候。无论如何,从那时起,它的HTTP包就开始依赖于Newtonsoft.Json库进行数据往返于JSON的反序列化。 为什么像微软这样大的公司会增加对开源库的依赖?即使他们当时将使用.NET完全开源,我也觉得很奇怪,因为据我所知,它一直是唯一的非Microsoft库,用作依赖项。 作为一个奖励问题,詹姆斯·牛顿·金会从微软获得任何财务支持吗?
18 .net  asp.net  json  web-api 

3
为什么虚拟机上的更多CPU内核会降低编译时间?
[edit#2]如果来自VMWare的任何人都可以使用VMWare Fusion的副本来打我,我很乐意做与VirtualBox与VMWare比较的相同操作。我以某种方式怀疑VMWare虚拟机管理程序将针对超线程进行更好的调整(也请参见我的答案) 我看到一些奇怪的东西。随着我在Windows 7 x64虚拟机上增加内核数量,总体编译时间会增加而不是减少。编译通常非常适合并行处理,因为在中间部分(后依赖映射)中,您可以简单地在每个.c / .cpp / .cs /任何文件上调用一个编译器实例,以建立供链接器使用的部分对象过度。所以我以为编译实际上可以很好地扩展内核数。 但是我看到的是: 8核:1.89秒 4核心:1.33秒 2核心:1.24秒 1核心:1.15秒 这仅仅是由于特定供应商的虚拟机管理程序实现(在我的情况下为type2:virtualbox)导致的设计工件,还是在更多的VM上更普遍地使虚拟机管理程序实现更简单?有这么多因素,我似乎能够为这种行为辩护和反对-因此,如果有人比我更了解这一点,我很想读您的答案。 谢谢席德 [ 编辑:解决评论 ] @MartinBeckett:冷编译被丢弃了。 @MonsterTruck:找不到直接编译的开源项目。太棒了,但现在不能搞定我的开发环境。 @Mr Lister,@philosodad:使用VirtualBox时有8个硬件线程,因此应该以1:1映射而不进行仿真 @Thorbjorn:我有6.5GB的虚拟机和一个较小的VS2012项目-我换入/换出垃圾页面文件的可能性很小。 @All:如果有人可以指向一个开源VS2010 / VS2012项目,那么这可能比我(专有)VS2012项目更好的社区参考。Orchard和DNN似乎需要调整环境才能在VS2012中进行编译。我真的很想看看使用VMWare Fusion的人是否也看到了这一点(针对VMWare与VirtualBox划分) 测试细节: 硬件:Macbook Pro Retina CPU:Core i7 @ 2.3Ghz(四核,超线程= Windows任务管理器中的8核) 记忆体:16 GB 磁盘:256GB SSD 主机操作系统:Mac OS X 10.8 VM类型:VirtualBox 4.1.18(类型2虚拟机管理程序) 来宾操作系统:Windows 7 …

4
经典ASP到ASP.net或ASP.net MVC
我们有一个使用经典ASP开发的Web应用程序,它经过5年的发展演变成目前的形式,该应用程序具有100多个页面,庞大的数据库和10000个活跃用户,每天至少浏览10个页面。 现在,我们想将其升级到最新版本的.net。最初我们考虑重写整个应用程序,但是在分析了场景之后,我们发现这不是一个可行的选择,很多专家也没有建议。我们还没有决定如何做,但是对如何实现面部改写有些想法。 选项1: 我们考虑了识别此应用程序中的主要模块,并通过将应用程序划分为不同的层(如数据库(现有),业务逻辑和视图)来逐一重写它们。这样,新开发的模块将被添加到现有系统中,而新页面将替换该特定模块中的旧页面。同时,我们可以与旧系统一起测试新层,并在我们确信后释放它们。我们还考虑过开发用于业务逻辑的API类型的结构,并将其作为外部应用程序进行访问。 选项2: 目前,我们已经完成了一个简单的模块,并通过IFrame在经典ASP页面中使用了它,尽管在经典ASP和IFrame中的新页面之间发送数据非常麻烦。 这只是在计划阶段,我们将如何实现整个应用程序的重写而又不打扰用户群。 我想征询其他程序员的意见,意见和建议,以应对这种情况?如果有人遇到过这种情况,请也分享您的看法。 还想知道使用ASP.net MVC在这方面对我有帮助吗? 更新:感谢您提供观点的两个答案。在将应用程序从经典ASP迁移到asp.net或asp.net mvc时,我想在上面指定的两个选项上获得更多输入。如果你们都可以通过您对迁移部分的观点,观点和想法,而不是选择asp.net或asp.net mvc的观点,那对我将是极大的帮助。

4
开发ASP.NET应用程序时值得使用CQRS / MediatR吗?
我最近一直在研究CQRS / MediatR。但是,我越深入,就越不喜欢它。也许我误会了一些东西。 因此,它声称可以将您的控制器简化为 public async Task<ActionResult> Edit(Edit.Query query) { var model = await _mediator.SendAsync(query); return View(model); } 完全符合瘦控制器指南。但是,它忽略了一些非常重要的细节-错误处理。 让我们看一下Login新MVC项目中的默认操作 public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null) { ViewData["ReturnUrl"] = returnUrl; if (ModelState.IsValid) { // This doesn't count login failures towards account lockout // To enable password failures …

2
对Web应用程序使用单独的API和UI服务器的好处
在工作中,我们已经开发了将近两年的大型内部应用程序;我最近才刚加入该项目,有些架构使我有些困惑,所以我希望这里的人可以在我问建筑师这些同样的问题之前提供一些建议(这样我可以与他们进行有见地的讨论)。 如果下面的内容过长,我深表歉意,我只想在问我的问题之前,先对系统的外观有一个很好的了解:) 设置系统的方式是,我们有一个主要的Web应用程序(asp.net,AngularJS),该应用程序主要只是聚合来自其他各种服务的数据。因此,基本上,它是AngularJS应用程序的宿主。实际上,有一个MVC控制器引导客户端,然后每个其他控制器都是WebAPI控制器。 这些控制器处理来自客户端的调用,这些控制器始终部署到仅托管Web应用程序的主机上。我们目前有4个这样的盒子。 但是,这些调用最终会路由到另一组WebAPI应用程序(通常是每个业务领域,例如安全性,客户数据,产品数据等)。所有这些WebAPI也会一起部署到专用盒中。我们也有四个这样的盒子。 除了一个例外,我们组织的任何其他部门均未使用这些WebAPI。 最后,这些WebAPI对“后端”服务进行了另一组调用,这些服务通常是遗留在各种ERP系统和数据存储(我们无法控制)之上的传统asmx或wcf服务。 我们应用程序的大多数业务逻辑都在这些WebApi中,例如转换旧数据,对其进行汇总,执行业务规则以及通常的事情类型。 我感到困惑的是,在WebApplication和为其提供服务的WebAPI之间进行这样的分离可能带来什么好处。由于没有其他人在使用它们,因此我看不到任何可伸缩性的好处(即,再放入4个API盒来处理增加的负载是没有意义的,因为API服务器上的负载增加必然意味着Web服务器上的负载增加-因此,Web服务器与Api服务器的比例必须为1:1) 我也看不到必须进行额外的HTTP调用的任何好处浏览器=> HTTP => WebApp => HTTP => WebAPI => HTTP =>后端服务。(我的问题是WebApp和WebAPI之间的HTTP调用) 因此,我目前正在寻求将当前的WebAPI从单独的解决方案迁移到WebApplication解决方案中的单独项目,并在它们之间使用简单的项目引用,并使用一个部署模型。因此,它们最终将成为类库。 在部署方面,这意味着我们将有8个“全栈” Web框,而不是4 + 4。 我看到的新方法的好处是 性能提高,因为Web应用程序和WebAPI服务器之间的序列化/反序列化周期减少了 在Web应用程序和WebApi服务器的传出和传入边界上,根据DTO和映射器可以删除(即无需维护/测试)的大量代码。 具有更好的能力来创建有意义的自动集成测试,因为我可以简单地模拟后端服务并避免中间层HTTP跳转带来的混乱。 所以问题是:我错了吗?我是否错过了将WebApplication和WebAPI框分开的一些基本“魔术”? 我研究了一些N-Tier架构材料,但似乎找不到任何可以为我们的情况带来具体好处的东西(因为据我所知,可伸缩性不是问题,这是一个内部应用程序,因此WebAPI应用程序的安全性不是问题。) 而且,如果我将系统重组为建议的设置,那么在收益方面我将损失什么?

4
将Angular应用放在ASP.NET Web API解决方案中的何处?
我正在启动一个未开发的应用程序,并且我想使用ASP.NET(4.6)和Angular2。对于后端,我已经在Visual Studio中创建了一个项目,现在我想知道将Angular应用程序放在哪里。我真的想在前端使用npm和node-tools,但最终它将托管在同一个Azure App Service实例中,Angular应用程序位于或类似domain.com/的API下domain.com/api/。 如何在Visual Studio中分离应用程序?Angular应用程序应该属于自己的项目吗?我应该在与API相同的项目中使用Angular应用程序吗?即使我不想为此使用nuget和其他VS工具?(对于前端,VS或多或少是美化的代码编辑器)。对于这种组合,我还没有找到任何最佳做法。

4
基于TimeZone存储DateTime的最佳实践
开发一个Web应用程序,该应用程序应允许用户根据其TimeZone安排约会。我将用户计划的日期时间作为服务器日期时间存储到数据库字段中。在显示计划信息时,将从数据库中检索值并转换为用户timzone。在代码库中进行处理我正在根据用户时区转换DateTime。请建议这是最佳做法还是存在任何简便方法?

5
ASP.Net MVC4中的“ Web API”到底是什么?
我知道Web API是什么。 我用多种语言(包括MVC3)编写了API。 我在ASP.Net中也很熟练。 我刚刚发现MVC4具有“ Web API”,并且没有浏览视频示例,我无法很好地解释其确切含义。 根据我过去的经验,Microsoft技术(尤其是ASP.Net)倾向于采用一个简单的概念,并将其包装在无用的开销中,这意味着使所有事情“更轻松”。 有人可以向我解释一下MVC4中的Web API到底是什么吗?我为什么需要它?为什么我不能只编写自己的API?

7
对ASP.NET Ajax,jQuery和JavaScript感到困惑
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 昨天,我从ASP.NET 4书中阅读了有关ASP.NET Ajax和jQuery的几章,我发现这些框架非常有趣,并决定进一步了解它们。 今天,我从图书馆借了一些有关Ajax和JavaScript的书。似乎ASP.NET Ajax与Ajax不同,而jQuery似乎是“新” JavaScript。 这是否意味着我可以跳过JavaScript并直接学习jQuery? 另一方面,我借用的非ASP.NET Ajax书似乎仅适用于客户端Web编程,并且看起来与我从ASP.NET Ajax中学到的完全不同。如果我是ASP.NET开发人员,我想我应该坚持使用ASP.NET Ajax而不是客户端Ajax,对吗?那PHP呢?是否有类似于ASP.NET Ajax的“ PHP Ajax”? 不是我懒于学习其他工具,而是我只想专注于正确的工具。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.