我可以像这样在c#中编写switch case吗?
switch (string)
case [a..z]+
// do something
case [A..Z]+
// do something
....
Run Code Online (Sandbox Code Playgroud) 我已经使用Visual Studio Mac一段时间了,刚刚将它更新到发布的版本.我还下载并安装了.NET Core 2.0 Preview 1.从shell提示符我可以生成一个新的Web API项目:
dotnet2 davec$ dotnet --version
2.0.0-preview1-005977
dotnet2 davec$ dotnet new webapi
The template "ASP.NET Core Web API" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/template-3pn for details.
Processing post-creation actions...
Running 'dotnet restore' on dotnet2/dotnet2.csproj...
Restore succeeded.
Run Code Online (Sandbox Code Playgroud)
我可以从shell构建并运行该项目.但是当我在Visual Studio for Mac中打开它时,IDE尝试并且无法恢复:
Errors in dotnet2/dotnet2.csproj
Unable to resolve 'Microsoft.NETCore.App (>= 2.0.0)' for '.NETCoreApp,Version=v2.0'.
Unable to resolve 'Microsoft.NETCore.App (>= 2.0.0)' for '.NETCoreApp,Version=v2.0 (win)'.
Unable to resolve 'Microsoft.NETCore.App (>= 2.0.0)' …Run Code Online (Sandbox Code Playgroud) 我有一个SharePoint列表,我需要将其转换为文档(任何类型)并将其导出为PDF.你有最好的方法提示吗?我有Crystal Reports但不确定这是否是正确的用例.
我最近为一个客户端完成了一个MVC3项目,该项目使用了一个使用微型ORM实现的Repository模式,以及一个用于我的业务逻辑的服务层.恕我直言,该应用程序运行良好,客户很高兴.
但是每当我想添加/实现新服务和相关的DTO时,我都必须编写很多样板代码.此外,还有相当数量的代码重复,将DTO转换为View Models,然后再返回相关的PEBKAC.随着需求的发展,需要将数据库模式的更改传播到View模型.
对于不同的客户我继承了给我带来了很多麻烦,直到我固定在基本模板的一些缺陷.netTiers代码生成项目,使用自动化的MSBuild和,也使用的MSBuild的代码生成,按摩生成的代码来获得它建立没有以前需要的手动调整目录..netTiers最终产生了许多有用的代码,但是有大量的重复,一堆复杂性,感觉就像用一把大锤去皮猫.
现在我正在寻找另一个MVC3项目,我想避免自己编写所有样板,但我也想避免完整的.netTiers类型代码生成.我没有用EF.我倾向于认为它对于我承担的项目规模而言是一个太大的工具,但如果它可以为我带走一些手动步骤那么这将是一个很大的节省时间.EF的优点是什么?它会为我设计服务层吗?
我正在考虑的另一个选项是LightSpeed,这需要我花一些钱(不是很多),但如果它可以为我生成服务层代码,那将花费很多钱.LightSpeed是否支持这种类型的代码生成?
显然,随着域模型和数据库模式的发展,需要更新服务以适应这些变化..netTiers通过生成部分类来实现这一点.这些其他工具如何在不覆盖服务层中的任何自定义逻辑的情况下处理这些更改?
还有哪些其他选择?
更新:感谢所有的反馈,很多积极的选择.有没有人看过MVC脚手架?
更新#2:我将继续推行MVCScaffolding选项,为EF Code First生成代码.开箱即用它会产生一个Repository类,然后有点不幸地将它与模型结合在一起,而MVC实际上是View Model而不是 Domain Model.对于服务层脚手架的MVCScaffolding项目有一个pull请求,因此将调查该选项.加上AutoMapper用于映射POCO < - > DTO.
在为XLS,XLSX和XLSM编写的宏之间是否存在兼容性问题?相同的宏是否适用于所有工作簿?
我遇到的情况是我必须从头开始设计和实现一个系统.我对架构有一些疑问,我希望你的评论和想法.
关于项目的快速信息:它是一个以数据为中心的Web应用程序.
该应用程序将构建在带有MS SQL SERVER 2008数据库的Microsoft .NET Framework 4.0上.
需求:
下面是我构建的架构图:

建筑简报
我的担忧:
寻找有价值的意见和建议.如果我做错了什么,请把我指向正确的方向.
我正在遵循史蒂文记录并使用Simple Injector 记录的一些实践.我有一个查询从WCF服务检索数据,我想使用的实例缓存结果.ObjectCache
我已经定义了一个装饰器CachingQueryHandlerDecorator<TQuery, TResult>:
public sealed class CachingQueryHandlerDecorator<TQuery, TResult>
: IQueryHandler<TQuery, TResult>
where TQuery : IQuery<TResult>
{
private readonly IQueryHandler<TQuery, TResult> _handler;
private readonly ObjectCache _cache;
private readonly CacheItemPolicy _policy;
private readonly ILog _log;
public CachingQueryHandlerDecorator(IQueryHandler<TQuery, TResult> handler,
ObjectCache cache,
CacheItemPolicy policy,
ILog log)
{
_handler = handler;
_cache = cache;
_policy = policy;
_log = log;
}
public TResult Handle(TQuery query)
{
var key = query.GetType().ToString();
var result = (TResult) _cache[key]; …Run Code Online (Sandbox Code Playgroud) 我正在使用Rob Conery的Massive进行数据库访问.我想围绕几个插入包装事务,但第二个插入使用从第一个插入返回的标识.对我来说,在交易中如何做到这一点并不明显.一些援助将不胜感激.
var commandList = new List<DbCommand>
{
contactTbl.CreateInsertCommand(new
{
newContact.Name,
newContact.Contact,
newContact.Phone,
newContact.ForceChargeThreshold,
newContact.MeterReadingMethodId,
LastModifiedBy = userId,
LastModifiedDate = modifiedDate,
}),
branchContactTbl.CreateInsertCommand(new
{
newContact.BranchId,
ContactId = ????, <-- how to set Id as identity from previous command
}),
};
Run Code Online (Sandbox Code Playgroud) Selenium能够临时存储数据项,然后在后续测试中检索它们,例如
storeText | @id='ctl00_ContentPlaceHolder1_FormView1' | someValue
Run Code Online (Sandbox Code Playgroud)
当需要跨越测试边界传递值时,这在单个测试中以及同一测试套件中的测试之间也能很好地工作.不幸的是,它在测试套件之间不起作用(这是我们的应用程序的要求,其中包括引用同一对象的许多工作流程).如何使用Selenium在Test Suite边界存储值?
这让我有点疯狂.我正在尝试在我的MonoTouch应用程序中注册一些NSUserDefaults.
var defaultsToRegister = new NSMutableDictionary();
defaultsToRegister.SetValueForKey(true, IS_REMINDING);
NSUserDefaults.StandardUserDefaults.RegisterDefaults(defaultsToRegister);
Run Code Online (Sandbox Code Playgroud)
显然这不是编译因为bool无法转换为NSObject.但是当我想从NSUserDefaults设置或检索一个布尔值时,我可以使用:
public bool IsReminding {
get {
return NSUserDefaults.StandardUserDefaults.BoolForKey(IS_REMINDING);
}
set {
NSUserDefaults.StandardUserDefaults.SetBool(value, IS_REMINDING);
}
}
Run Code Online (Sandbox Code Playgroud)
在设置plist文件中,boolean被写成<key>ReminderTimeOfDay</key><true/>我所期望的.那么如何注册默认的布尔值?
c# ×4
.net-core ×1
excel ×1
macos ×1
massive ×1
mono ×1
moss ×1
n-layer ×1
orm ×1
pdf ×1
regex ×1
repository ×1
scaffolding ×1
selenium ×1
selenium-ide ×1
sharepoint ×1
sql ×1
vba ×1
wcf ×1
wss ×1
xamarin.ios ×1