我是一名实习开发人员,现在已经编写.NET应用程序大约一年了.我所做的大部分工作都涉及从头开始构建新的应用程序(主要是Web应用程序),并且我或多或少地完全控制了软件设计.
这是一次非常棒的经历,作为一名实习开发人员,我对我所采取的方法是否最好的信心是最小的.理想情况下,我希望与更有经验的开发人员合作(我发现这是我学到的最好的)然而在我为开发人员工作的公司中往往是孤立地工作(对我来说是一个非常遗憾).
最近我决定了解更多关于经验丰富的开发人员如何处理他们的设计的好方法可能是探索一些开源项目.我发现自己对我看过的项目有点不知所措.凭借我的经验,我很难理解我所面对的代码体系.
我的问题是轻微模糊的.开发人员如何处理理解新的中型到大型项目的任务.我发现自己倒了许多代码,并努力看到树木.在任何时候,我都觉得我能理解系统的一小部分但却看不出它是如何组合在一起的.其他人是否也有这种感觉?如果是这样,您采取什么方法来理解项目?您对如何学习设计最佳实践有任何其他建议吗?
任何建议将非常感谢.谢谢.
我刚才在StackOverflow上学到了我们可以得到任何资源的"实例ID",例如:
var_dump(intval(curl_init())); // int(2)
var_dump(intval(finfo_open())); // int(3)
var_dump(intval(curl_init())); // int(4)
var_dump(intval(finfo_open())); // int(5)
var_dump(intval(curl_init())); // int(6)
Run Code Online (Sandbox Code Playgroud)
我需要类似的东西,但适用于类:
class foo {
public function __construct() {
ob_start();
var_dump($this); // object(foo)#INSTANCE_ID (0) { }
echo preg_replace('~.+#(\d+).+~s', '$1', ob_get_clean());
}
}
$foo = new foo(); // 1
$foo2 = new foo(); // 2
Run Code Online (Sandbox Code Playgroud)
上面的工作,但我希望更快的解决方案,或至少,一个不涉及输出缓冲区.请注意,这不一定在构造函数中使用,甚至不必在类本身内部使用!
spl_object_hash() 不是我想要的,因为这两个对象产生相同的哈希
以前的问题包含一个错误的spl_object_hash输出示例; 确保两个对象同时存在会产生稍微不同的哈希:
var_dump(spl_object_hash($foo)); // 0000000079e5f3b60000000042b31773
var_dump(spl_object_hash($foo2)); // 0000000079e5f3b50000000042b31773
Run Code Online (Sandbox Code Playgroud)
像资源一样转换为int似乎不适用于对象:
注意:类foo的对象无法转换为int.
有没有使用对象属性快速获取相同输出的方法?
此外var_dump(),我通过反复试验发现debug_zval_dump()也输出了对象实例,遗憾的是它还需要输出缓冲,因为它不会返回结果.
我可以更新下面函数中给出的员工记录,还是先查询员工集合,然后更新数据?
public int updateEmployee(App3_EMPLOYEE employee)
{
DBContextDataContext db = new DBContextDataContext();
db.App3_EMPLOYEEs.Attach(employee);
db.SubmitChanges();
return employee.PKEY;
}
Run Code Online (Sandbox Code Playgroud)
或者我必须做以下事情?
public int updateEmployee(App3_EMPLOYEE employee)
{
DBContextDataContext db = new DBContextDataContext();
App3_EMPLOYEE emp = db.App3_EMPLOYEEs.Single(e => e.PKEY == employee.PKEY);
db.App3_EMPLOYEEs.Attach(employee,emp);
db.SubmitChanges();
return employee.PKEY;
}
Run Code Online (Sandbox Code Playgroud)
但我不想使用第二种选择.有没有有效的方法来更新数据?
我通过两种方式得到此错误:
已尝试附加或添加非新的实体,可能已从另一个DataContext加载.这不受支持.
我正在尝试逐字节读取文件,但我不知道该怎么做.我试着这样做:
file = open(filename, 'rb')
while 1:
byte = file.read(8)
# Do something...
Run Code Online (Sandbox Code Playgroud)
那么这会使变量字节在每个循环开始时包含8个下一位吗?这些字节究竟是什么并不重要.唯一重要的是我需要读取8位堆栈中的文件.
编辑:
此外,我在列表中收集这些字节,我想打印它们,以便它们不打印为ASCII字符,但作为原始字节,即当我打印该bytelist时,它将结果显示为
['10010101', '00011100', .... ]
Run Code Online (Sandbox Code Playgroud) 我想根据参数中选择的值设置列的可见性.
问题是我不想要一个特定的参数来做这个(即隐藏列X True/False)
我的报告有几个不同的"部门",他们只对某些专栏感兴趣.
例如,在设置"Customer Care"参数时隐藏"Sales"列的语法是什么?
有没有办法打开标签而不关闭它?例如:
<xsl:for-each select=".">
<span>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
这是我的代码:http://pastebin.com/1Xh49YN0.正如你所看到的那样,我需要在when标签上打开并在标签上关闭它(第43和63行).
这段代码无效,因为XSLT格式不正确,但有没有办法做类似的事情?谢谢
我为web.config编写了一个自定义保护配置提供程序.
当我尝试使用它加密我的web.config时,我从aspnet_iisreg收到以下错误
aspnet_regiis.exe -pef appSettings.-prov CustomProvider(这在我的MSBuild中运行)
无法加载文件或程序集"MyCustomProviderNamespace"或其依赖项之一.该系统找不到指定的文件.
在使用Fusion日志检查后,我确认它正在检查GAC和'C:/WINNT/Microsoft.NET/Framework/v2.0.50727/'(aspnet_iisreg的位置).但它无法找到提供者.
我不想将我的组件移动到GAC中,我想将自定义程序集留在我的ApplicationBase中,以便复制到各种服务器,而无需从GAC拉/推.
这是我在web.config中的提供程序配置.
<configProtectedData>
<providers>
<add name="CustomProvider"
type="MyCustomProviderNamespace.MyCustomProviderClass,
MyCustomProviderNamespace" />
</providers>
</configProtectedData>
Run Code Online (Sandbox Code Playgroud)
我希望aspnet_iisreg检查我的ApplicationBase Bin文件夹中的这个程序集.有没有人有任何想法?
我正在开发一个客户端应用程序,它使用一个宁静的服务来按名称查找公司.重要的是,我能够在查询中包含文字&符号,因为这个字符在公司名称中非常常见.
但是每当我将%26(URI转义的&符号)传递给System.Uri它时,它会将其转换回常规的&符号!仔细观察,只有两个未转换回来的字符是散列(%23)和百分比(%25).
让我们说我想搜索一家名为"Pierce&Pierce"的公司:
var endPoint = "http://localhost/companies?where=Name eq '{0}'";
var name = "Pierce & Pierce";
Console.WriteLine(new Uri(string.Format(endPoint, name)));
Console.WriteLine(new Uri(string.Format(endPoint, name.Replace("&", "%26"))));
Console.WriteLine(new Uri(string.Format(endPoint, Uri.EscapeUriString(name))));
Console.WriteLine(new Uri(string.Format(endPoint, Uri.EscapeDataString(name))));
Run Code Online (Sandbox Code Playgroud)
以上所有四种组合都返回:
http://localhost/companies?where=Name eq 'Pierce & Pierce'
Run Code Online (Sandbox Code Playgroud)
这会导致服务器端出错,因为&符号被(正确地)解释为查询arg分隔符.我真正需要它返回的是原始字符串:
http://localhost/companies?where=Name eq 'Pierce %26 Pierce'
Run Code Online (Sandbox Code Playgroud)
如何在不System.Uri完全丢弃的情况下解决此问题?我不能在最后一刻用%26替换所有的&符号,因为通常会涉及多个查询参数,我不想破坏它们的分隔符.
注意:在这个问题中讨论了类似的问题,但我特别指的是System.Uri.
我想要这样的东西:http://img257.imageshack.us/img257/5906/globalcolleage.png 我知道如何创建基于CSS图像的项目符号,但对于引用我无法弄清楚.
.net ×2
asp.net ×2
c# ×2
architecture ×1
byte ×1
class ×1
css ×1
datacontext ×1
dns ×1
encryption ×1
escaping ×1
file-io ×1
instance ×1
linq ×1
linq-to-sql ×1
object ×1
php ×1
python ×1
query-string ×1
reporting ×1
resources ×1
security ×1
service ×1
uri ×1
web-config ×1
xslt ×1