小编Joh*_*yre的帖子

有人创建安装程序来部署内部asp.net Web应用程序吗?

我总是通过FTP(有时甚至是xcopy)部署我的Web应用程序,然后自己手动运行数据库脚本.

我开始在90年代部署这种方式,但最近,我看到了一些带有安装程序的Web应用程序.我开始质疑,如果我被锁定在一个过时的过程中.我是一名顾问,我的应用程序通常是内部的,所以我不担心分发和让其他人安装它们.

但我很好奇; 有人创建安装程序来部署内部asp.net Web应用程序吗?

如果是这样,为什么?(自愿,强制或自动化过程的一部分)

你这样做有什么问题吗?

asp.net deployment installer release-management

7
推荐指数
1
解决办法
1138
查看次数

为什么System.Web.UI中的Pair?

至少对我来说,Pair类是一个非常多用途的类.那么为什么微软将它放入System.Web.UI命名空间呢?

有没有理由让我的小脑无法理解?

谢谢.

.net class

6
推荐指数
2
解决办法
1497
查看次数

当 cmdlet 提示输入信息时,如何防止包管理器控制台挂起?

我一直在使用 NuGet 的包管理器控制台来执行在 Visual Studio 中工作时需要执行的任何命令行活动。它工作得很好,因为我不需要离开 VS,但是当 cmdlet 提示输入更多信息(用户 ID、密码、确认等...)时,它就会挂起,我必须重新启动 VS。

无论如何,是否可以调整包管理器控制台,使其行为类似于标准的 Power Shell 控制台来提示用户?

powershell visual-studio nuget visual-studio-2012

6
推荐指数
1
解决办法
1184
查看次数

在页面生命周期内保持数据库连接打开是否可以接受?

大家都知道你应该在完成使用后立即关闭连接.

由于我的域对象模型设计存在缺陷,我必须在整个页面生命周期中保持连接打开状态.本质上,我有一个Just In Time属性,它在第一次调用时打开一个连接,然后在Page.Unload(..)上它将检查数据库连接是否打开,如果是,则关闭它.由于它只需要一秒钟,我认为它与立即关闭它没有多大区别.

这个可以吗?或者它应该在每次使用后立即关闭吗?

提前致谢.

asp.net database-connection page-lifecycle

5
推荐指数
2
解决办法
3681
查看次数

我应该在重载方法上使用不同的返回类型吗?

是否有关于在重载方法上返回不同返回类型的最佳实践?例如,如果我在DAL中有一个Load方法,我要么加载一个项目或一堆项目.我知道我可以使用多种方法:

加载一个对象

MyBusinessObject LoadOne(int id)
{
}
Run Code Online (Sandbox Code Playgroud)

加载多个对象

MyBusinessObject[] LoadMany(params int[] ids)
{
}
Run Code Online (Sandbox Code Playgroud)

现在,我知道我可以做的是重载一个方法并具有不同的返回类型.像这样:

MyBusinessObject Load(int id)
{
}
Run Code Online (Sandbox Code Playgroud)

MyBusinessObject[] Load(params int[] ids)
{
}
Run Code Online (Sandbox Code Playgroud)

虽然似乎没有什么可以阻止我这样做,并且从API的角度来看它保持整洁,这看起来是个好主意吗?我昨晚遇到它,部分我认为我不应该这样做是因为想要匹配重载方法的返回类型.

我也可以让Load(int id)方法返回一个只包含一个项目的集合.在我看来,这违反了最少惊喜的原则,但是如果你期望返回一个项目,你应该返回该项目,你不应该返回包含单个项目的列表.

所以这是围绕这些想法的矛盾思想:

  • 重载方法应该都返回相同的类型.
  • 如果方法做同样的事情,不要给它们一堆不同的名称,重载相同的方法名称.从API用户的角度来看,它使事情更简单,他们不必遍历一堆不同的方法,这些方法基本上都做同样的事情,但使用不同的参数.
  • 返回该方法最明显的类型,即如果用户可能期望收集项目,则返回项目集合,如果他们可能期望单个项目,则返回单个项目.

所以后两种想法比第一种想法更重要,但与此同时,第一种想法似乎是一种程序化的最佳实践.

有没有围绕这种做法的最佳做法?我有兴趣听听别人对这个问题的看法.

.net c#

5
推荐指数
1
解决办法
870
查看次数

在设计像SO这样的在线社区代表系统时要考虑什么?

我正在设计一个网站,并希望建立一个像StackOverflow内置的良好信誉系统.

当我开始设计我的声誉系统时,我意识到SO Q/A模型并不适合我的应用程序(因为我的不是Q/A),也许我应该先做一些研究.

所以我的问题是; 在设计社区代表系统时我应该考虑什么?

language-agnostic

5
推荐指数
1
解决办法
146
查看次数

.NET重构,DRY.双重继承,数据访问和关注点分离

背景故事:

因此,在过去的几个晚上,我一直坚持使用我一直在玩弄的重构器上的架构问题.没什么重要的,但它一直困扰着我.它实际上是DRY中的一个练习,并试图将它带到如DAL架构完全干燥的极端.这是一个完全哲学/理论的练习.

该代码部分基于@JohnMacIntyre的一个重构,我最近说服他在http://whileicompile.wordpress.com/2010/08/24/my-clean-code-experience-no-1上写博客. /.我倾向于稍微修改代码,以便将代码更进一步 - 通常,只是为了看看我可以从概念中获得多少额外的里程......无论如何,我的理由基本上是无关紧要的.

我的部分数据访问层基于以下架构:

abstract public class AppCommandBase : IDisposable { }
Run Code Online (Sandbox Code Playgroud)

这包含基本的东西,比如在处理AppCommand之后创建命令对象和清理.我的所有命令基础对象都源于此.

abstract public class ReadCommandBase<T, ResultT> : AppCommandBase
Run Code Online (Sandbox Code Playgroud)

这包含影响所有读命令的基本内容 - 特别是在这种情况下,从表和视图中读取数据.没有编辑,没有更新,没有保存.

abstract public class ReadItemCommandBase<T, FilterT> : ReadCommandBase<T, T> { }
Run Code Online (Sandbox Code Playgroud)

这包含一些更基本的通用内容 - 比如从数据库中的表中读取单个项所需的方法定义,其中表名,键字段名和字段列表名被定义为必需的抽象属性(待定义)由派生类.

public class MyTableReadItemCommand : ReadItemCommandBase<MyTableClass, Int?> { }
Run Code Online (Sandbox Code Playgroud)

它包含定义我的表名的特定属性,表或视图中的字段列表,键字段的名称,将数据从IDataReader行解析为业务对象的方法以及启动整个过程的方法.

现在,我的ReadList也有这个结构......

abstract public ReadListCommandBase<T> : ReadCommandBase<T, IEnumerable<T>> { }
public class MyTableReadListCommand : ReadListCommandBase<MyTableClass> { }
Run Code Online (Sandbox Code Playgroud)

不同之处在于List类包含与列表生成相关的属性(即PageStart,PageSize,Sort并返回IEnumerable)与单个DataObject的返回(只需要一个标识唯一记录的过滤器).

问题:

我讨厌我的MyTableReadListCommand类中有一堆属性在我的MyTableReadItemCommand类中是相同的.我已经考虑将它们移动到一个辅助类,但是虽然可以将成员内容集中在一个地方,但我仍然在每个类中都有相同的成员,而是指向帮助类,我仍然不喜欢它.

我的第一个想法是双重继承可以很好地解决这个问题,即使我同意双重继承通常是代码味道 - 但它会非常优雅地解决这个问题.那么,鉴于.NET不支持双继承,我从哪里开始呢? …

c# oop inheritance refactoring dry

5
推荐指数
1
解决办法
744
查看次数

有人知道将一行转换为INSERT语句吗?

有没有人知道proc或脚本会在插入语句中生成任何行到同一个表中?

基本上,我想打电话

exec RowToInsertStatement 'dbo.user', 45;
Run Code Online (Sandbox Code Playgroud)

并输出以下代码

insert into dbo.MyTable( FirstName, LastName, Position)
values( 'John', 'MacIntyre', 'Software Consultant');
Run Code Online (Sandbox Code Playgroud)

我意识到我可以

insert into dbo.MyTable
select * from dbo.MyTable where id=45;
Run Code Online (Sandbox Code Playgroud)

但这显然不起作用,因为ID列会抱怨(我希望它会抱怨)并且没有办法只覆盖那一列而不列出所有列,而在某些表中可能有数百个.

那么,有没有人知道会为我编写这个简单插入的proc?

编辑3:04:这样做的目的是让我可以复制一行,所以在生成INSERT之后,我可以将它修改成类似的东西

insert into dbo.MyTable( FirstName, LastName, Position)
values( 'Dave', 'Smith', 'Software Consultant');
Run Code Online (Sandbox Code Playgroud)

..没有明显这个人为的例子是如此简单它没有意义,但如果你有一个包含60列的表,而你需要的只是改变3或4个值,那么它就开始变得麻烦了.

那有意义吗?

sql-server

5
推荐指数
1
解决办法
124
查看次数

如何记录超链接点击?

我有一个超链接,我点击它时需要记录.

我创建了一个小型原型,通过创建一个新的MVC 2 Web应用程序项目可以重复该问题.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

到Site.Master文件.

public ActionResult LogSomething()
{
    string doNothing = DateTime.Now.ToString();
    return new EmptyResult();
}
Run Code Online (Sandbox Code Playgroud)

到HomeController.cs文件

<p>
    <a id="lnkTestPost" href="/home/about">Test Post</a>

    <script type="text/javascript">
        $("#lnkTestPost").click(function() {
            $.post("/home/LogSomething");
        });
    </script>
</p>
Run Code Online (Sandbox Code Playgroud)

在Home/Index.aspx

在HomeController的LogSomething()操作方法中放置一个断点.

但是当我运行它时,有时断点被击中,有时则不然.

我假设由于实际链接将浏览器发送到另一个页面而没有被击中,但是在链接被触发之前不应该发布帖子?

无论如何我可以确保触发日志代码吗?

请注意; 在链接目标中添加日志记录功能不是一种选择.

编辑:原始超链接实际上是用户PC上安装的应用程序的自定义协议.所以这个链接就像"myapp:myArgs".不幸的是,为了简单起见,我没有提到这一点,因为没有一个答案真的适用于我,我现在认为有必要提一下.

javascript asp.net-mvc jquery

5
推荐指数
2
解决办法
1433
查看次数

为什么在Azure SDK中使用Azure云服务项目而不是ASP.NET项目?

我正在玩Azure asp.net开发.我使用Visual Studio 2010,Azure SDK,我是Azure云的新手.

我创建了几个应用程序并将它们部署到我的测试Azure网站.一切正常 - ASP.NET Web Page,ASP.NET MVC3,甚至是我之前创建的Azure SQL数据库的简单GridView绑定,我使用ADO.NET管理Microsoft SQL Management Studio.这很简单.

现在,我从一些教程中了解到,我需要使用Windows Azure云服务项目来确保我的应用程序能够正常运行.但它也没有这个项目.那么我在解决方案中究竟需要这样一个项目呢?

asp.net asp.net-mvc azure asp.net-mvc-3 azure-sql-database

4
推荐指数
1
解决办法
2967
查看次数