我正在处理一个项目,涉及从另一个应用程序接收消息,格式化该消息的内容,并将其发送到打印机.选择的技术是C#windows服务.我想,输出可以称为报告,但不需要报告引擎.一个简单的模板引擎,如StringTemplate,甚至XSLT输出HTML都可以.我遇到的问题是找到一种从服务中打印此类输出的免费方法.因为它似乎认为它会工作,我在一个工作原型使用微软的RDLC,填充本地报表,然后使其作为一个图像到内存流,我会再打印.问题是:
有没有人不得不像这样远程做任何事情?有什么建议?我已经发布了一个问题有关打印HTML无需用户输入,并就浪费约3天后,我来,它不能做的结论,至少不与任何免费提供的工具.
所有帮助表示赞赏.
编辑:我们在.NET框架的2.0版本.
我正在使用.NETCF(Windows Mobile)Graphics类和DrawString()方法将单个字符渲染到屏幕上.
问题是我似乎无法使其正确居中.无论我为字符串渲染的位置的Y坐标设置什么,它总是低于该值,文本大小越大Y偏移越大.
例如,在文本大小12处,偏移量约为4,但在32处,偏移量约为10.
我希望角色垂直占据它所绘制的大部分矩形并水平居中.这是我的基本代码.this引用正在绘制的用户控件.
Graphics g = this.CreateGraphics();
float padx = ((float)this.Size.Width) * (0.05F);
float pady = ((float)this.Size.Height) * (0.05F);
float width = ((float)this.Size.Width) - 2 * padx;
float height = ((float)this.Size.Height) - 2 * pady;
float emSize = height;
g.DrawString(letter, new Font(FontFamily.GenericSansSerif, emSize, FontStyle.Regular),
new SolidBrush(Color.Black), padx, pady);
Run Code Online (Sandbox Code Playgroud)
是的,我知道我可以使用标签控件来设置居中,但实际上我需要在Graphics课堂上手动完成.
我使用rsync以与服务器无关的方式将文件同步到Windows客户端.有什么方法可以将rsync的进度发送到父进程以在gui进度条中显示?
我想有两三种选择.(1)监视STDOUT(2)监视rsync.exe日志文件,类似于unix tail(3)在内存中监视rsync控制台输出.
哪一个最好/首选?
我想允许用户在特定端口(例如5000)上设置到特定计算机的SSH隧道,但我想尽可能地限制此用户.(身份验证将使用公钥/私钥对).
我知道我需要编辑相关的〜/ .ssh/authorized_keys文件,但我不确定要放入哪些内容(公钥除外).
.Net 3.5中的新扩展允许从接口拆分功能.
例如在.Net 2.0中
public interface IHaveChildren {
string ParentType { get; }
int ParentId { get; }
List<IChild> GetChildren()
}
Run Code Online (Sandbox Code Playgroud)
可以(在3.5中)成为:
public interface IHaveChildren {
string ParentType { get; }
int ParentId { get; }
}
public static class HaveChildrenExtension {
public static List<IChild> GetChildren( this IHaveChildren ) {
//logic to get children by parent type and id
//shared for all classes implementing IHaveChildren
}
}
Run Code Online (Sandbox Code Playgroud)
在我看来,这对于许多接口来说是更好的机制.他们不再需要抽象基础来共享此代码,并且功能上代码的工作原理相同.这可以使代码更易于维护和更容易测试.
唯一的缺点是抽象基础实现可以是虚拟的,但可以解决(实例方法是否会隐藏具有相同名称的扩展方法?这会使代码混淆吗?)
没有经常使用这种模式的任何其他原因?
澄清:
是的,我看到扩展方法的趋势是到处都是它们.如果没有大量的同行评审,我会特别小心使用.Net值类型(我认为我们在字符串上唯一的一个是.SplitToDictionary()- 类似于.Split()但也采用键值分隔符)
我认为那里有一个完整的最佳实践辩论;-)
(顺便说一下:DannySmurf,你的PM听起来很可怕.)
我在这里特别询问使用扩展方法,以前我们有接口方法. …
在Stack Overflow测试期间,我看到了很多关于LINQ SQL的问题,但对它一无所知......这听起来很有趣.
什么是LINQ,我该如何开始?
链接指南或文档奖金:)
PS:我是一名长期使用Datatables和Parameterized SQL的C#开发人员
到过去的标准,如nHibernate,旧的定制ORM,或LLBGenPro之类的东西?
另外,运行基准测试后,您的建议是什么?
当我有两个mysql服务器有不同的工作(持有不同的数据库),但希望能够使用其中一个在另一个失败时插入,你会建议我如何保持它们两者的数据相等"关闭实时"?
显然,不可能每x分钟进行一次完整的数据库转储.
我读过有关二进制日志的信息,这是我需要的方式吗?请问这不会减慢后备服务器的速度吗?有没有办法在二进制日志中不包含一些表 - 数据发生了变化并不重要?
我目前正在建立一个持续的集成环境.我们正在使用VisualSVN Server和CrusieControl.NET.有时,构建将失败,并且症状是CruiseControl.NET工作副本中存在冲突.我相信这是由于我设置Visual Studio解决方案的方式.希望我们在这个环境中运行的项目越多,我们对如何设置它们的理解就越好,所以我不会质疑为什么冲突会在这个阶段发生.为了修复构建,我删除了工作副本并强制执行新构建 - 每次(当前)都有效.所以我的问题是:将工作副本删除为持续集成构建过程的有效部分,我该如何解决?
我已经尝试过包括MSTask在内的解决方案,并从命令行调用delete,但我没有运气.
抱歉这么罗嗦 - 好工作这是一个测试版:)
cruisecontrol.net continuous-integration visualsvn-server visual-studio
.net-3.5 ×3
c# ×3
.net ×2
linq ×2
benchmarking ×1
binary-log ×1
database ×1
fallback ×1
graphics ×1
mysql ×1
performance ×1
printing ×1
replication ×1
rsync ×1
ssh ×1
unix ×1
windows ×1