我们正在使用带有VS2008的.NET 3.5.我有一个包含约20个项目的解决方案,随着应用程序的增长和添加新模块,该数字将随着时间的推移而增长.今天我需要在每个项目上设置一个属性.我必须编辑每个csproj文件以添加以下内容:
<Target Name="BeforeBuild">
<CreateProperty Condition=" '$(SolutionDir)' != '' And '$(SolutionDir)' != '*Undefined*' "
Value="$(SolutionDir)Tools\MSBuild">
<Output TaskParameter="Value" PropertyName="AlToolPath" />
</CreateProperty>
</Target>
Run Code Online (Sandbox Code Playgroud)
这是为了使项目能够找到存储在我的源存储库中的程序集链接器(AL.exe),以便构建与机器无关(可以在没有安装SDK的情况下使用.NET检出并构建在任何机器上).该解决方案是由开发人员使用MSBuild在命令行上构建的,安装批处理文件,CCNet等.
无论如何,我搜索了一个更好的方法来做到这一点(即类似解决方案级别的属性),但找不到一个.我知道可以在MSBuild命令行中设置属性值,但这对我来说不能很好地扩展,因为所有现有和将来的命令行都必须包含它.我还考虑过在第一个构建项目中调用before target来使用自定义任务来设置环境变量,并在最后一个项目中使用after目标来删除它,但这似乎比单独编辑所有项目文件更加沉重和脆弱.
如果您已经做过类似的事情,请告诉我,或者知道如何为每个解决方案设置一个属性,这可以被多个项目(包括我没有经验的.NET 4/VS2010)使用.请记住,我们使用MSBuild来构建sln文件,而不是单个项目.
我的团队正在开始实施一个绿地应用程序,需要多租户.我一直在进行大量关于简单可扩展性模式的研究,特别是在基于分布式云的基础架构上,而且CQRS似乎是热门话题(就像被称为"Crack for Architecture Addicts"一样,我觉得很有趣).除了好处和陷阱之外,很难找到除Greg Young以外的任何人在生产应用程序中广泛(或根本)使用这个想法并且可以为它提供真实世界的指导.
以下是我的问题:1.CQRS架构是否适合您的典型多租户应用程序,或者它是否更适合大型内部企业应用程序.2.如果您建议在这种情况下使用它,您是否可以提供一些关于方法的沟壑指导 - 特别是关于早期发现的事情,以及哪些方面应该有机地发展.3.如果有人试过并发现它太难或没有意识到它的好处,或者有强烈的反对意见(并建议坚持使用CRUD和分层设计),我也想了解这些经验.
作为参考,该应用程序将使用.NET编写,前端最初将基于Web(ASP.NET MVC),可能会扩展到移动和胖客户端.预计并发性,事务活动和数据量在应用程序的整个生命周期内都会保持相对较低的水平(与大量金融应用程序等相比).对于基础架构,我们计划使用Azure.
在 Java 中创建随机 UUID 并进行 Base32 编码最省时的方法是什么?我想使用 Base32 编码来存储可在 URL 中使用的全局唯一 ID。
.net ×2
architecture ×1
azure ×1
cqrs ×1
encoding ×1
java ×1
msbuild ×1
multi-tenant ×1
uuid ×1