在C#中,接口命名约定是I<myInterfaceName>
(ex :) IList
.
是否有抽象类的命名约定?
如果没有,主要建议是什么?
根据您的实际经验,白皮书或其他受人尊敬的可参考研究,F#目前是企业/企业级报告的可行工具吗?
注意:在投票将此问题视为"不具有建设性"之前,请阅读底部的位.
背景
我目前在一家大公司工作,该公司大量使用许多不同的报告工具,包括(但不限于)SAS,Cognos,SSRS甚至是一小部分COBOL.每个工具都有其合适的位置,其中许多工具在功能设置等方面具有相同的功能.我们的大多数工具都能够相对轻松地输出到PDF,Excel和数据库,并且在这些情况下工作得非常好.
不幸的是,我的组织和许多人一样,使用Excel电子表格,喜欢它或者讨厌它,我们花了很多时间编写.NET控制台应用程序来从Excel电子表格中提取信息并将信息插入到Excel电子表格中.(我对争论这种方法的优点或不利感兴趣.它就是这样,我无法改变它.)
与上面列出的报告技术一样,当涉及到电子表格中的高级ETL时,它们就会失败.它们并非专为它而设计,虽然它们完全擅长将报表格式化为Excel电子表格,但它们并不擅长更新现有电子表格或以某种非常具体的方式提取数据(仅提取以红色突出显示的值,例如).因此,我们最终编写了大量的.NET控制台应用程序来完成这项工作.(再次 - 对辩论方法不感兴趣.它就是它.我知道 - 我也不喜欢它.)
在我看来,.NET是一个非常棒的框架,足够灵活,可以处理几乎所有的编程任务,因此我们理论上可以处理.NET中的所有报告.但是 - 尝试处理.NET中的所有报告需要太长时间.我们必须自己编写所有的样板材料.我喜欢利用我们已有的实际报告工具的强大功能,简单性和健壮性.
因此,我们最终为单个任务编写两个应用程序 - 例如,SAS作业从多个数据源加载数据,执行转换并将结果存储在永久或临时位置,以及第二个.NET作业结果并将它们加载到电子表格中.(我知道.)
在过去的几年里,我一直看到并听到很多关于F#的观点,我自己也有点涉足过它.我在大学里学过OCAML,我喜欢函数式编程.如果需要,我很乐意在单一平台(如果不是单一语言)上为特定报告进行所有编程.现在的问题,虽然是F#语言和.NET框架是否完全准备好提供企业级报告-和我说的是报告必须运行准确和高效.微软当然很难卖掉它,但我想知道在其他报告技术方面有经验的人是否真的在生产环境中尝试过.它如何与其他报告技术进行比较,是否可以轻松集成到企业环境中?你是如何解决安全问题的?做得对,F#需要什么样的内存配置文件(我们说的是数百万条记录)?它是否很好地处理表格数据?它有效吗?维护有多容易(特别是如果代码增长)?什么样的第三方附加组件,插件等需要什么才能使某些东西工作(或者它可以开箱即用)?与其他报告系统相比,需要多少工作(编程时间等)(类似结果)?
如果您没有F#的经验,或者您只使用F#,那么我对您的意见并不特别感兴趣 - 我想听听那些实际弥合差距的人,并且可以从经验,机会和使用F#作为大数据的报告引擎(数百万条记录,输出为各种格式)的缺陷.
我已经看到一些问题已经涵盖了一些基础:
但他们已经有几年了.以后的几个版本,是F#的任务吗?或者我是一只狗吠叫错误的树?
编辑
为了清楚起见,我对F#新的信息丰富的编程特别感兴趣.在F#3.0之前,它只是一项有趣的技术,但F#最近增加了使用数据库类型提供程序及其查询表达式的功能,使其看起来像是其他报表创作技术的可行替代方案.微软当然暗示它是.
一个可接受的答案将包含实施F#内置的企业级报告引擎的第一手账户(或对案例研究的参考),以及与任何绩效收益或损失等的其他报告技术的比较.它不会必须过于详细 - 足以说服普通(有能力的)经理F#将是批量/批量数据处理的适当/不适当的技术.它完成了吗?谁干的?结果是什么?实施有多复杂(相对于类似技术)?它表现良好吗?
我为什么要问一个主观问题?
像大多数优秀的stackoverflow成员一样,我经常投票来关闭主观问题.根据常见问题解答,应该避免主观问题,但不要完全禁止.常见问题解答链接到我试图遵循的六个主要问题指南.请在投票结束此问题之前阅读这些指南.
我刚刚开始使用bootstrap并且不确定如何实现我的目标.
我希望所有的阴沟都是平坦的,就像他们在这张图片中一样:
默认情况下,它们看起来像这样,列之间的垂直排水沟(标有蓝色)是水平和外部排水沟的两倍:
任何有关解决这个问题的最佳方法的帮助可能会受到赞赏.
我有2个数据表,我只想知道它们是否相同."相同",我的意思是它们具有完全相同的行数,每列中的数据完全相同或不相同.我想写(找到)一个接受两个表并返回一个布尔值的方法.
如何以这种方式比较2个数据表?两者都有相同的模式.
我有一个支持OData的WebAPI 2.2服务.
我的控制器有一个返回的动作IQuerable<Entity>
,但$filter=substringof
即使我允许所有功能,我也无法使用功能.
[Authorize]
public class MyController : ODataController
{
[EnableQuery(AllowedFunctions=AllowedFunctions.All)]
public IQueryable<Entity> GetEntities()
{
return GetMyQueryable();
}
}
Run Code Online (Sandbox Code Playgroud)
当我点击像这样的网址时 http://localhost:49844/Entities/?$filter=substringof('Queen',Name)
我得到一个错误,说不允许substringof.
{
"error": {
"code": "",
"message": "The query specified in the URI is not valid. An unknown function with name 'substringof' was found. This may also be a function import or a key lookup on a navigation property, which is not allowed.",
"innererror": {
"message": "An unknown function with name 'substringof' was found. This …
Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio 2012 C#.我创建了一个带有主窗口的WPF应用程序项目,并为我的项目添加了一个登录窗口.我想将启动窗口更改为我的登录窗口,但似乎无法这样做.
我去了属性,但我看到的只有Myproject.app - 它不应该显示我的项目的形式?
无论如何,我已经尝试从代码运行窗口,如下所示:
Application.Run(new Login());
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.它给出了一个错误说:
错误1非静态字段,方法或属性'System.Windows.Application.Run(System.Windows.Window)'需要对象引用
我正在尝试学习如何从C#调用PS cmdlet,并且遇到了PowerShell类.它适用于基本用途,但现在我想执行此PS命令:
Get-ChildItem | where {$_.Length -gt 1000000}
Run Code Online (Sandbox Code Playgroud)
我尝试通过powershell类来构建它,但我似乎无法做到这一点.到目前为止这是我的代码:
PowerShell ps = PowerShell.Create();
ps.AddCommand("Get-ChildItem");
ps.AddCommand("where-object");
ps.AddParameter("Length");
ps.AddParameter("-gt");
ps.AddParameter("10000");
// Call the PowerShell.Invoke() method to run the
// commands of the pipeline.
foreach (PSObject result in ps.Invoke())
{
Console.WriteLine(
"{0,-24}{1}",
result.Members["Length"].Value,
result.Members["Name"].Value);
} // End foreach.
Run Code Online (Sandbox Code Playgroud)
我跑这个时总是遇到异常.是否可以像这样运行Where-Object cmdlet?
我正在尝试使用PROC SQL来查询具有数亿条记录的DB2表.在开发阶段,我想在这些记录的任意小的子集上运行我的查询(例如,1000).我尝试使用INOBS来限制观察,但我相信这个参数只是限制了SAS正在处理的记录数.我希望SAS只从数据库中获取任意数量的记录(然后处理所有这些记录).
如果我自己编写SQL查询,我会简单地使用SELECT * FROM x FETCH FIRST 1000 ROWS ONLY ...
(相当于SELECT TOP 1000 * FROM x
SQL Server).但PROC SQL似乎没有这样的选择.获取记录需要很长时间.
问题:如何指示SAS任意限制从数据库返回的记录数.
我已经读过PROC SQL使用ANSI SQL,它没有行限制关键字的任何规范.也许SAS不想将其SQL语法转换为特定于供应商的关键字?有没有解决方法?
我有一个用户输入的搜索字符串.通常,使用空格分割搜索字符串,然后执行OR搜索(如果项匹配任何搜索字符串元素,则匹配项).我想提供一些"高级"查询功能,例如使用引号括起包含空格的文字短语的功能.
虽然我已经敲定了一个像样的正则表达式来为我分割字符串,但它执行时间却非常长(在我的机器上> 2秒).我把它弄清楚了解打嗝的位置,更有趣的是它似乎发生在最后一次Match
匹配之后(大概是在输入结束时).直到字符串结尾的所有匹配在更短的时间内匹配然后我可以捕获,但是最后一个匹配(如果它是什么 - 没有返回)几乎占用所有2秒.
我希望有人可能会对我如何加速这个正则表达式有所了解.我知道我正在使用一个无限量词的lookbehind但是,正如我所说,这似乎不会导致任何性能问题,直到最后一场比赛匹配.
码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace RegexSandboxCSharp {
class Program {
static void Main( string[] args ) {
string l_input1 = "# one \"two three\" four five:\"six seven\" eight \"nine ten\"";
string l_pattern =
@"(?<=^([^""]*([""][^""]*[""])?)*)\s+";
Regex l_regex = new Regex( l_pattern );
MatchCollection l_matches = l_regex.Matches( l_input1 );
System.Collections.IEnumerator l_matchEnumerator = l_matches.GetEnumerator();
DateTime l_listStart = DateTime.Now;
List<string> l_elements = new List<string>();
int l_previousIndex = 0;
int …
Run Code Online (Sandbox Code Playgroud) 我认为,这将是相当简单的,但我认为关键字是太一般,所以我不断收到查询结果的东西像这样和这个.
基本上,我有以下HTML:
<div id="test">
Lorem
<span class="highlighted">ipsum</span>
dolor sit amet,
<span class="highlighted">consectetur</span>
<span class="highlighted">adipiscing</span>
elit. Sed massa.
<div>
Run Code Online (Sandbox Code Playgroud)
我想将相邻的span标签合并到一个span标签中,这意味着找到它们之间只有空格的跨距(这可能包括空格,制表符和换行符).
我正在寻找的结果是这样的:
<div id="test">
Lorem
<span class="highlighted">ipsum</span>
dolor sit amet,
<span class="highlighted">consectetur adipiscing</span>
elit. Sed massa.
<div>
Run Code Online (Sandbox Code Playgroud)
我检查过这个nextUntil
函数,但它似乎只返回标签,而不是文本.结果,例如,
$("span.highlighted").nextUntil("span.highlighted").andSelf().text();
Run Code Online (Sandbox Code Playgroud)
是
ipsumconsecteturadipiscing
而不是
ipsum dolor坐下来,精神饱满
鉴于两个标签,我如何找到它们之间的文本?