这个问题打算与技术无关.您更喜欢哪种Web框架,何时:纯MVC或事件驱动的组件导向?
为了说明"技术不可知论",我在这里用不同的技术/语言命名了一些MVC与组件Web框架:
使用Log4Net进行日志记录时,将调用日志的类放入日志文件中非常容易.我在过去发现,这使得跟踪代码并查看类中的流程变得非常容易.在Log4Net中,我在转换模式中使用%logger属性,如下所示:
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
Run Code Online (Sandbox Code Playgroud)
这给了我想要的输出:
2008-09-19 15:40:26,906 [3132] ERROR <b>Log4NetTechDemo.Tester</b> [(null)] - Failed method
您可以从输出中看到调用日志的类是Log4NetTechDemo.Tester,因此我可以很容易地将错误追溯到该类.
在Logging Applicaton Block中,我无法通过简单的日志调用来弄清楚如何执行此操作.有谁知道怎么做?如果是这样,那么这样做的一个例子或步骤将非常有帮助.
有什么好的正则表达式可以验证文本字符串以确保它是有效的Windows文件名?(AKA没有\/:*?"<>|角色).
我想像下面这样使用它:
// Return true if string is invalid.
if (Regex.IsMatch(szFileName, "<your regex string>"))
{
// Tell user to reformat their filename.
}
Run Code Online (Sandbox Code Playgroud) 我有两个未排序的列表,我需要生成另一个已排序的列表,其中所有元素都是唯一的.
元素可以在两个列表中多次出现,并且它们最初是未排序的.
我的功能看起来像这样:
(defun merge-lists (list-a list-b sort-fn)
"Merges two lists of (x, y) coordinates sorting them and removing dupes"
(let ((prev nil))
(remove-if
(lambda (point)
(let ((ret-val (equal point prev)))
(setf prev point)
ret-val))
(sort
(merge 'list list-a list-b sort-fn) ;'
sort-fn))))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来实现同样的目标?
示例电话:
[CL]> (merge-lists '(9 8 4 8 9 7 2) '(1 7 3 9 2 6) #'>)
==> (9 8 7 6 4 3 2 1)
Run Code Online (Sandbox Code Playgroud) 像Selenium这样的工具非常适合在Web UI上测试用户交互.但是,我很好奇人们在严格测试和验证网页是否在一组浏览器中正确呈现的方法是什么?
这甚至可能吗?
我想知道如果在表中不存在记录,是否有更简单的方法来插入记录.我还在尝试构建我的LINQ to SQL技能.
这就是我所拥有的,但似乎应该有一种更简单的方法.
public static TEntity InsertIfNotExists<TEntity>
(
DataContext db,
Table<TEntity> table,
Func<TEntity,bool> where,
TEntity record
)
where TEntity : class
{
TEntity existing = table.SingleOrDefault<TEntity>(where);
if (existing != null)
{
return existing;
}
else
{
table.InsertOnSubmit(record);
// Can't use table.Context.SubmitChanges()
// 'cause it's read-only
db.SubmitChanges();
}
return record;
}
Run Code Online (Sandbox Code Playgroud) 我有以下C#单例模式,有什么方法可以改进它吗?
public class Singleton<T> where T : class, new()
{
private static object _syncobj = new object();
private static volatile T _instance = null;
public static T Instance
{
get
{
if (_instance == null)
{
lock (_syncobj)
{
if (_instance == null)
{
_instance = new T();
}
}
}
return _instance;
}
}
public Singleton()
{ }
}
Run Code Online (Sandbox Code Playgroud)
首选用法示例:
class Foo : Singleton<Foo>
{
}
Run Code Online (Sandbox Code Playgroud)
相关:
我在Silverlight中编写了一个小型的hello world测试应用程序,我想在Linux/Apache2服务器上托管.我希望数据来自MySQL(或其他一些兼容Linux的数据库),以便我可以数据绑定到数据库中的内容.
我已经设法通过使用MySQL Connector/.NET来实现它:
MySqlConnection conn = new MySqlConnection("Server=the.server.com;Database=theDb;User=myUser;Password=myPassword;");
conn.Open();
MySqlCommand command = new MySqlCommand("SELECT * FROM test;", conn);
using (MySqlDataReader reader = command.ExecuteReader())
{
StringBuilder sb = new StringBuilder();
while (reader.Read())
{
sb.AppendLine(reader.GetString("myColumn"));
}
this.txtResults.Text = sb.ToString();
}
Run Code Online (Sandbox Code Playgroud)
如果我给已发布的ClickOnce应用程序完全信任(或至少是SocketPermission)并在本地运行它,这可以正常工作.
我希望这在服务器上运行,我无法让它工作,总是以权限异常结束(不允许SocketPermission).
数据库与silverlight应用程序托管在同一服务器上,如果这有任何区别的话.
编辑 好的,我现在明白为什么在客户端应用程序中显示数据库凭据是一个坏主意(显然).人们如何做到这一点呢?如何保护代理Web服务,以便以安全的方式将数据传入和传出客户端/数据库?网上有没有任何例子?
当然,我不能成为第一个使用数据库为Silverlight应用程序提供动力的人?
sub foo {[$#{$_[!$||$|]}*@{$_[!!$_^!$_]}?@{$_[!$..!!$.]}[$_[@--@+]%
@{$_[$==~/(?=)//!$`]}..$#{$_[$??!!$?:!$?]},($)?!$):!!$))..$_[$--$-]%@{
$_[$]/$]]}-(!!$++!$+)]:@{$_[!!$^^^!$^^]}]}
Run Code Online (Sandbox Code Playgroud)
更新:我认为"拼图"这个词会暗示这一点,但是:我知道它的作用 - 我写了它.如果拼图不感兴趣,请不要浪费任何时间.
c# ×5
.net ×1
algorithm ×1
browser ×1
data-binding ×1
linq-to-sql ×1
lisp ×1
list ×1
logging ×1
metaclass ×1
mysql ×1
obfuscation ×1
oop ×1
perl ×1
puzzle ×1
python ×1
regex ×1
silverlight ×1
sorting ×1
testing ×1