问题标签 [solution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - c#解决方案中的命名空间和文件夹结构:磁盘上的文件夹应该如何组织?
首先,让我们同意命名空间应该与文件夹结构相匹配,并且每个语言工件都应该在自己的文件中。
(请参阅解决方案中的文件夹是否应与命名空间匹配?)。
下一个问题是如何在磁盘上实际组织文件夹。
假设我在 ABC 命名空间中有 ClassC,在 ABCD 命名空间中有 ClassD。
我们还假设每个命名空间都内置在自己的程序集(项目)中,并且命名空间根据公认的最佳实践从右到左具有依赖关系(ABCD 可以依赖于 ABC,而 ABC 可以依赖于 AB,而 AB 又可以依赖于 A)。我很欣赏每个命名空间不必位于单独的程序集中,但在一般情况下,我们将在单独的程序集中有一些命名空间,我的示例说明了这一点。
我可以看到(至少)两种创建文件夹树的方法——我称之为“嵌套文件夹”和“平面文件夹”:
1 - 嵌套文件夹:
A
--A.csproj --B
----ABcsproj
----
C
------ABCcsproj
------classC.cs
------D
-------- ABCDcsproj
--------classD.cs
或者
2 – 平面文件夹:
A
--A.csproj
AB
--ABcsproj
ABC
--ABCcsproj
--classC.cs
ABCD
--ABCDcsproj
--classD.cs
你会看到我已经做了一些假设:
- 每个项目文件都有一个基于命名空间的完全限定名称 (FQN)。
- 每个类文件使用一个非 FQN
嵌套文件夹看起来更自然(我们都喜欢层次结构),但在大型解决方案中可能更难导航:
当您在 VS 中查看解决方案时,它会显示项目的平面列表,而不是嵌套视图。这看起来更像是“平面文件夹”,因此组织磁盘上的文件夹以匹配 VS 中的视图可能会有好处。
如果您查看磁盘上的每个文件夹,您将看到该项目的文件夹 artefacts 以及命名空间的子文件夹:以 C 为例:
C
--bin
--D
--obj
--Properties
--ABCcsproj
--classC.cs
根据 D 的真实名称,D 是名称空间文件夹而不是 C 名称空间中的组织文件夹可能并不明显。
我知道我们从 .NET(8 或 9 年前)和 Java 的第一天起就有文件夹和命名空间,但是,就个人而言,我们似乎还没有就大型项目的最佳实践组织达成共识解决方案。我真的很想知道你们的想法。
谢谢
迈克尔
visual-studio - 在 Visual Studio 2008 中构建特定解决方案后,有没有办法运行外部可执行文件?
我和这个线程中提出的问题相同,即我正在寻找一种在 Visual Studio 中构建解决方案后运行可执行文件或脚本的方法。
我尝试了使用宏捕获 OnBuildDone 事件的建议解决方案,该宏(据我了解)需要放置在宏 IDE 中 MyMacros 下的 EnvironmentEvents 部分中。这样做的问题是它使宏对我在 Visual Studio 中所做的一切都是全局的。换句话说,无论我正在构建哪种解决方案,它都会运行宏。但是,我只希望它为那个解决方案运行。
有没有办法制作一个仅针对特定解决方案捕获 OnBuildDone 事件的宏?
visual-studio-2008 - MSBuild 2008 stops on first error while building a solution
We recently upgraded from MSBuild 2005 to 2008. Since then MSBuild stops on the first error when building a solution. This wasn't the case in 2005. Is there a way to get the old behavior?
EDIT: We call MSBuild form the command line:
visual-studio - 当我在 VS 2005 中构建项目时,为什么我的项目的 GUID 之一会发生变化?
对于我的两个 VS 2005 C++ 项目,VS 希望在我构建项目时写入 .sln 文件。我有许多其他 VS 2005 C++ 项目,但情况并非如此。这是一个问题,因为我们将 ClearCase 源代码控制与我们的 VS 2005 安装集成在一起,当我们尝试通过批处理文件运行通宵构建时,构建暂停,因为显示了 ClearCase 签出对话框。
查看 .sln 文件中 VS 的变化,它是项目行上的第二个 GUID。
建造前:
建成后:
感激地收到任何帮助。我是 VS 2005 的新手,因为我们最近才从 VC++ 6.0 迁移,所以如果我遗漏了一些明显的东西,我深表歉意。
我们正在运行安装了 SP1 的 VS 2005 专业版。
问候,
格雷格。
visual-studio - 如何不在生成的命名空间中包含 Visual Studio 项目文件夹名称
如何防止将 VS 项目中解决方案文件夹的名称附加到为添加到解决方案文件夹的新项目生成的命名空间中?
示例:VS 解决方案中的 C# 项目 C# 项目属性中设置的默认命名空间:“BigClient.Domain”
如果在这个项目中创建一个名为“MySpecialStuff”的解决方案文件夹,然后将一个新类添加到“MySpecialStuff”解决方案文件夹中,VS 会创建一个具有“BigClient.Domain.MySpecialStuff”命名空间的新 .cs 文件。我想找到一个允许新添加的类的命名空间仅保留“BigClient.Domain”的“项目级”命名空间而不是 VS 将“MySpecialStuff”解决方案文件夹名称附加到命名空间的方法。
我似乎记得读过某人的博客文章,这是可能的(通过 VS 中的选项/设置或注册表设置),但我不记得现在在哪里或如何想要它:)
如果不同 VS 版本的答案 = 不同,我的平台是 VS 2008。
c# - MVC通用类位置
在 MVC 文件夹结构中,通用类文件应该放在哪里?例如,我有一个类可以确定要使用的正确 DataContext,因此我不会在每个控制器中重新发明轮子。即使它不是控制器,它是否应该存在于 Controllers 文件夹中?它是否应该与模型一起使用,因为它与数据库相关,即使它不是模型?可能是 Views\Shared 文件夹?或者 Content 是那种东西的包罗万象的文件夹?我确信我可以把它放在任何地方,但我想知道“正确”的地方在哪里。
visual-studio - Visual Studio 解决方案中推荐的项目数
我们开始开发新的应用程序,其中将包括由大约十几个开发人员在 MS Visual Studio 中使用 C# 开发的 30-50 个项目。
我正在对应用程序模块进行组件化,以支持架构并启用并行工作。
我们争论过:我们应该有多少解决方案?
有人声称我们应该有 1-2 个解决方案,每个解决方案有 15-30 个项目。有人声称我们需要每个组件一个解决方案,这意味着大约 10-12 个解决方案,每个解决方案大约 3-6 个项目。
我很高兴听到每个方向(或其他方向)的优缺点和经验
sharepoint - 从站点创建 Sharepoint 解决方案(包括工作流和自定义 Web 部件)
这是场景
我创建了一个站点,其中使用了自定义列表、webpart、自定义开发的 webpart、工作流等。您可以将站点视为应用程序。
我要做的是创建一个解决方案包,其中包含我在该站点中构建的所有内容,以便我可以将解决方案文件提供给可以将解决方案安装到他的共享点环境的共享点管理员。
例如,查看可以从 MSDN 下载的免费应用程序模板,我正在努力实现与他们相同的目标。一个解决方案文件可以容纳所有这些!
有任何想法吗?
干杯!
security - 使用解决方案框架在 Sharepoint 中部署 CAS 策略
我正在使用共享点解决方案机制部署我的 Web 部件。Untul 现在,一切正常,但是当我将 CAS 策略添加到 manifest.xml 文件时,部署无法正常工作。使用 CAS 策略部署解决方案时,没有错误,但没有创建策略文件,没有复制 dll,也没有将 SafeControls 条目添加到 web.config。我的 manifest.xml 文件如下所示:
以前有人遇到过这样的问题吗?在这一点上我已经没有想法了,所以我愿意接受建议。
asp.net - 在现有解决方案中集成自定义会员提供程序
我有 MS 提供的 sqlMembershipProvider 和 sqlRolesProvider 的源代码,我想修改它以使用我自己的表和模式。
我有一个将使用此提供程序的现有解决方案,我想在该解决方案中调试提供程序代码,直到我确定它可以工作。
如何在该解决方案的项目中设置我的提供程序代码,以便我可以在解决方案的 Web 项目的 web.config 中引用我的自定义提供程序?