.net 开发小技巧
时间:2011-04-10 来源:肖建
js调用windows自带的配色控件
<OBJECT id=dlgHelper CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px" height="0px"></OBJECT>
<script>
var tempColor = "0099cc";
function returnColor(){
var Hcolor = dlgHelper.ChooseColorDlg(tempColor).toString(16);
with(event.srcElement){
value = ((Hcolor.length<6)?"000000".substring(0,6-Hcolor.length):"") + Hcolor;
style.backgroundColor = ((Hcolor.length<6)?"000000".substring(0,6-Hcolor.length):"") + Hcolor;
}
tempColor = Hcolor
}
</script>
<input type="text" value="#0099CC" size="12" onclick="returnColor()" style="background-color: #0099CC">
查询存储过程是否包含某个关键字:
select o.name,from sys.syscomments c join sys.object o on c.id = o.object_id
where c.text like '%keywords%'
Case 1:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 50; i++)
{
System.Diagnostics.Debug.Assert(i == 3);
Response.Write(i + "<br />");
}
}
Case 2:
#define
#undef
#if
#esle
#end if
#warning
#error
Case 3:
raiserror(50001,16,1,'Error Message')
------------------------------------------
t-sql可以清除数据库日志。
------------------------------------------
sql时间执行统计
set statistics time on/off
------------------------------------------
select top 2 with ties * from a order by score desc
------------------------------------------
Case 4:
using System.Transactions;
using(Transactionscope ts = new Transactionscope())
{
ts.Complete();
}
Case 5:
抽象类是定义一系列紧密相关的事物,接口是定义一系列关系不是很密切的事物。
(手中有了锤子,看到什么都是钉子)
Case 6:
protected void Page_Load(object sender, EventArgs e)
{
int[] arr = new int[] { 12,23,1,89,345,-1,234,0,234,11,5,34};
int i = 0;
while (i < arr.Length - 1)
{
int temp = 0;
if (arr < arr)
{
temp = arr;
arr = arr;
arr = temp;
i = 0;
continue;
}
i++;
}
for (int j = 0; j < arr.Length; j++)
{
Response.Write(arr[j] + " ");
}
}
Case 7:
IOC(Inversion of Control),中文译为控制反转,又称为“依赖注入”(DI =Dependence Injection).
IOC的基本概念是:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器负责将这些联系在一起。
其原理是基于OO设计原则的The Hollywood Principle:Don't call us, we'll call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。
简单的来讲,就是由容器控制程序之间的关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控制反转”的概念所在:控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。
设计理念:The Hollywood Principle:Don't call us, we'll call you(别找我,我会来找你的)。也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责。组件处在一个容器当中,由容器负责管理。
1:不创建对象,而是描述创建对象的方式。
2:在代码中,对象与服务没有直接联系,而是容器负责将这些联系在一起。
控制权由应用程序转移到了外部容器,即控制权的转移,称为“反转控制”。
Case 8:
a.设计模式:只不过是一些已命名的最佳编程方式。
b.抽象工厂:可以创建一系列相关或者相互依赖对象的接口,不需指定它具体实现的类。
c.很多设计模式可以用于业务系统的设计(Spring.Net 就是用这些设计模式对应用程序进行整合)。
d.敏捷开发-Agile Development,就是指能够在需求迅速变化的情况下快速开发软件。
e.微软逐渐将.NET定位成一个企业应用平台,而非它原先所说的手动测试执行。
f.抽象类是定义一系列紧密相关的事物,接口是定义一系列关系不是很密切的事物。
g.单一职责性:一个类,最好只做一件事,只有一个引起它变化的原因。
h.设计模式:已命名的最佳编程方式 。
倾向于领域对象模型开发,避开与关系型数据交互 。
oracle群集,共享存储数据也是单点的 。
低耦合,高内聚(Low coupling,High cohesion)
SqlBulkCopy:sql表值类型 alter table Finance_FixedAssetsInspect add Word nvarchar(200)
接口:为不相关的类提供通用功能,抽象类:为相关的类抽取公因式 。
模拟对象框架 Moq
MOSS是一个企业信息化平台,例如进行内容管理。最佳环境是域环境
IBM Lotus 是一个文档行数据库。主要用于解决传统数据库不能对非结构化文档进行存储和管理而设计的。
yield return 依次返回每个元素(保存迭代位置),yield break将中止迭代 。
原来 Invoke 将你交给它的委托封装成了一个标准的Windows消息,加进了主线程的消息队列内。回到 Invoke 和 BeginInvoke 的区别上来,如果使用 Invoke,那么 B 线程必须等到A线程响应了传送的消息后 才能得到返回值,而如果使用BeginInvoke,则B线程将消息送到A线程后,马上返回,并不一定等待该消息被A线程响应完成。所以如果A线程处在繁忙状态或休眠状态,使用 Invoke 封送消息就会使得B线程被堵塞,而是用 BeginInvoke 则不然,这就是所谓的“异步执行”了。
Test Driven Development:开发基于测试优先。
http://www.silverlight.net/content/samples/sl4/toolkitcontrolsamples/run/default.html
抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
修改时关闭,扩展时开放。
Singleton模式:有且只有一个实例,并且该实例存在一个全局访问点。
------------------------------------------------------
Case 9:
visual studio 2010 professional(专业的) 适用于个人执行基本开发任务。
visual studio 2010 premium(优质的) 适用于个人和团队开发可扩展的高质量应用程序
visual studio 2010 ultimate(最终的) alm工具适用于团队,可确保从设计到部署均获得高质量成果。
visual studio 2010 test professional 2010 适用于QA(Quality Assurance品质保证)团队专业工具集,可简化测试规划和手动测试执行。
Case 1:
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 0; i < 50; i++)
{
System.Diagnostics.Debug.Assert(i == 3);
Response.Write(i + "<br />");
}
}
-----------------------------------------------
C# 泛性约束
-----------------------------------------------
猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
-----------------------------------------------
C# 获取汉字首字母
-----------------------------------------------