2008年05月24日
在使用SQL Server(SQL Server 2000)进行排序我们经常使用的是TOP关键字,但是使用TOP有一个问题,就是TOP后面只支持数值而不支持数值型的变量,这样就没有办法在存储过程中来支持这种动态排序的要求。或者使用Exec来执行构造SQL来执行,但这样执行的效率低而且不够灵活。
实际上,在SQL Server 2000中我们完全可以使用ROWCOUNT关键字解决这个问题。
ROWCOUNT关键字作用是可以直接指定需要返回记录集的行数。
1、使用ROWCOUNT查询前100行记录。
DECLARE @rc INT
SET @rc = 100
SET ROWCOUNT @rc
SELECT * FROM emp
使用TOP可以得到同样的结果
SELECT TOP 100 FROM emp
2、在INSERT INTO..SELECT中使用ROWROUNT。
DECLARE @rc INT
SET @rc = 100
SET ROWCOUNT @rc
INSERT INTO cu阅读全文>
发表于 @ 2008年05月24日 10:56:00|评论(loading...)|编辑
2008年05月04日
C#2005后不再支持多线程直接访问界面的控件(界面创建线程与访问线程不是同一个线程),不过可以使用delegate来解决:
1. 声明一个delegate和定义一个delegate的实现函数
delegate void ShowProgressDelegate(int newPos);
private void ShowProgress(int newPos)
{
// 判断是否在线程中访问
if (!_progressBar.InvokeRequired)
{
// 不是的话直接操作控件
_progressBar.Value = newPos;
}
else
{
// 是的话启用delegate访问
ShowProgressDelegate showProgress = new ShowProgressDelegate(ShowProgress);
// 如使用Invoke会等到函数调用结束,而BeginInvoke不会等待直接往后走
this.BeginInvoke(showProgress, new object[] { newPos });阅读全文>
发表于 @ 2008年05月04日 15:18:00|评论(loading...)|编辑
2008年04月29日
对象,对象集合的简单Xml序列化与反序列化
本文描述如何使用CLR中的StringWriter,XmlSerializer将对象, 对象集合序列化为Xml格式的字符串, 同时描述如何进行反序列化.
C#版本: C# 3.0
开发环境: VS 2008
主要方法:
复制 保存
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace ConsoleApplication2
{
public class SimpleSerializer
{
///
/// 序列化对象
///
/// 对象类型
/// 对象
///
阅读全文>
发表于 @ 2008年04月29日 11:55:00|评论(loading...)|编辑
2008年04月26日
集成传统 Web 应用程序
在 CAB 应用程序中托管现有 Web 应用程序所需要的不仅仅是向智能部件添加一个浏览器控件。客户端集成的要点是所有应用程序(或模块)均已完全集成。这意味着它们可以双向通信和共享信息。直到 CAB 可用,此功能才可行,但解决方案只是说明性的,离可重复使用还差得很远。
但正如上面提到的,现在可以创建 Web 模块来托管任何 Web 应用程序。而且您可以做到这些,无需任何其他模块了解其中的差异。现有模块从未需要改变它们共享信息的方式。
现在我们将逐步介绍构建简单 Web 模块(如图 3 中所示的模块)的过程,这要依赖于由 Smart Client Software Factory 团队提供的指南。我们使用 CAB 服务以及由 Smart Client Software Factory 提供的新的指南包。
图 3 由 Web 模块托管的 Web 应用程序
您需要做的第一件事是新建一个 Web 应用程序或扩展现有的应用程序。本示例概述了创建新 ASP.NET Web 应用程序的步骤。您也可以将其用作修改现有 Web 应用程序的模板。阅读全文>
发表于 @ 2008年04月26日 23:47:00|评论(loading...)|编辑
发布日期: 2006-10-30 | 更新日期: 2006-10-30
Christian Thilmany 和 Jim Keane
本文将介绍以下内容:
• CAB 和 Smart Client Software Factory 概述
• 集成式桌面的体系结构
• 构建和部署智能客户端
• 使用模块集成传统应用程序
本文涉及以下技术:
• Visual Studio 2005、CAB、Smart Client Software Factory
代码下载位置:
SmartClient2006_09.exe (12394KB)
本页内容
CAB 工作原理
构建简单的 CAB 应用程序
Smart Client Software Factory 简介
基本的智能客户端服务
集成式桌面的功能层
集成传统 Web 应用程序
对未来的展望
我们已将大部分注意力集中在为信息工作者提供业务智能 (BI) 工具上面,以帮助他们作出更明智的决策。其中的大多数企阅读全文>
发表于 @ 2008年04月26日 23:44:00|评论(loading...)|编辑
最近开发需要用到Smart Client Software Factory(SCSF)进行Smartclient的开发,SCSF其实是基于CAB和企业库的一个软件工厂开发工具包,核心就是CAB,所以了解SCSF其实就是需要对CAB进行了解,在网上找了些资料,放在这里以便查阅:
文章引用:http://www.cnblogs.com/mixiaobo/archive/2008/01.html
1,Composite UI Application Block (CAB) 介绍
微软开发了一套开源的企业库 (Enterprise Library),通过使用这套企业库里面提供的各种应用程序块可以极大的提高应用程序的开发效率和缩短开发周期,也由此得到了大家的广泛应用。
企业库包括大家熟知的如下应用程序块:
Caching Application Block.
Cryptography Application Block.
Data Access Application Block.
Exception Handling Application Bloc阅读全文>
发表于 @ 2008年04月26日 23:37:00|评论(loading...)|编辑
使用Guidance Automation Toolkit工具和方法,你将能够在Visual Studio 2005 中创建可重用的代码及模式。
这套工具旨在简化将可重用的代码集成到应用程序的过程,使架构师能将通常需手动执行的一系列开发工作自动化起来。 使用此工具,还能确保重复性的、易出错的开发工作以合理、一致的方式完成,并能缩短软件开发时间。
安装Guidance Automation Toolkit
使用Guidance Automation Toolkit,需要先安装一个叫做Guidance Automation Extensions 的runtime组件,然后下载并安装Guidance Automation Toolkit。更多信息,请参见Guidance Automation Toolkit and Guidance Automation Extensions Download.
了解Guidance Automation Toolkit
Guidance Automation Toolkit 由以下一系阅读全文>
发表于 @ 2008年04月26日 12:28:00|评论(loading...)|编辑
2008年04月25日
最近开始学习泛型,看了一些网上的文章和书中的介绍,把其中的一些内容摘抄如下:
泛型是什么
一种类型占位符,或称之为类型参数。我们知道在一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是——类型安全和减少装箱、拆箱。
类型安全和装箱、拆箱
作为一种类型参数,泛型很容易给我们带来类型安全。而在以前,在.net1.1中我们要实现类型安全可以这样做 :
//假设你有一个人员集合
public class Person{
private string _name;
public string Name
{ get { return _name; }
set { _name = value;}}
}
//假设你有一个人员集合
public class PersonCollec阅读全文>
发表于 @ 2008年04月25日 16:51:00|评论(loading...)|编辑
最近开始学习泛型,看了一些网上的文章和书中的介绍,把其中的一些内容摘抄如下:
泛型是什么
一种类型占位符,或称之为类型参数。我们知道在一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是——类型安全和减少装箱、拆箱。
类型安全和装箱、拆箱
作为一种类型参数,泛型很容易给我们带来类型安全。而在以前,在.net1.1中我们要实现类型安全可以这样做 :
//假设你有一个人员集合
public class Person{
private string _name;
public string Name
{ get { return _name; }
set { _name = value;}}
}
//假设你有一个人员集合
public class PersonCollec阅读全文>
发表于 @ 2008年04月25日 16:48:00|评论(loading...)|编辑
最近开始学习泛型,看了一些网上的文章和书中的介绍,把其中的一些内容摘抄如下:
泛型是什么
一种类型占位符,或称之为类型参数。我们知道在一个方法中,一个变量的值可以作为参数,但其实这个变量的类型本身也可以作为参数。泛型允许我们在调用的时候再指定这个类型参数是什么。在.net中,泛型能够给我们带来的两个明显好处是——类型安全和减少装箱、拆箱。
类型安全和装箱、拆箱
作为一种类型参数,泛型很容易给我们带来类型安全。而在以前,在.net1.1中我们要实现类型安全可以这样做 :
//假设你有一个人员集合
public class Person{
private string _name;
public string Name
{ get { return _name; }
set { _name = value;}}
}
//假设你有一个人员集合
public class PersonCollec阅读全文>
发表于 @ 2008年04月25日 16:43:00|评论(loading...)|编辑
2008年04月23日
水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。阅读全文>
发表于 @ 2008年04月23日 23:37:00|评论(loading...)|编辑
2008年04月15日
另一个关于横切关注点的典型例子是缓存数据。增加缓存的主要目的是改进性能,特别是当获取数据是高代价操作的时候。大多数在最后一章讨论的框架都有他们自己的缓存解决方案,然而缓存是很实际的横切关注点。
由于你引入缓存的动机是提高性能,可以增加一个测试类UserManagerTest测试UserManagerImpl的性能。把下面的代码加到test/org/appfuse/service/UserManagerTest.java中。
注意
测试中的StopWatch是一个记录任务时间的实用类。
public void testGetUserPerformance() {
user = new User();
user.setFirstName("Easter");
user.setLastName("Bunny");
user = mgr.saveUser(user);
String name = "getUser";
StopWatch sw = new StopWatch(name);
sw.start(name);
log.d阅读全文>
发表于 @ 2008年04月15日 16:41:00|评论(loading...)|编辑
软件开发领域一直一来的一个核心问题就是如何能够更好地满足Dijkstra所提出的separation of concerns原则。这个原则表达了代码和开发过程的一个最为重要的特性,但是遗憾的是它只是一个原则,其中并没有告诉我们如何做才能满足这一原则。人们在寻求能够满足这一原则的实现技术上进行了很多的探索,也取得了许多成就。其中,AOP(Aspect-Oriented Programming)就是这方面的一项最新技术。AOP的概念最初是由Xerox PARC研究中心的研究人员首先提出的,其目标是通过提供一些方法和技术,把问题领域分解成一系列的functional component和一系列横跨多个functional component的aspect,然后组合这些component和aspect,获得系统的实现。
在AOP提出很长一段时间内,基本上都处于一种学术研究和试验阶段。不过,近几年来,情况发生了改变。由于企业应用复杂度的不断提高,对软件开发技术提出了新的挑战。如何才能使得应用开发者仅仅关注于业务逻辑本身的开发,而不用纠缠于那些诸如安全、事务、日志等和业务逻辑无关但又是系统有效阅读全文>
发表于 @ 2008年04月15日 16:23:00|评论(loading...)|编辑
2008年04月12日
我上一篇文章《用友 U9 SOA Ready》写完后,有朋友说里面的企业管理软件平台架构讲的非常好,可惜被用友的内容给遮盖了,希望我能独立成篇,真正把企业管理软件平台架构讲透。于是就成了这篇博文的动笔之因。
企业管理软件,由于进入门坎低,各行各业各层次企业都需要,做面向企业应用比做面向个人应用要赚钱多,好销售,所以中国内地有相当大部分的程序员在从事着企业管理软件的开发。
尤其是接项目的软件公司,这类公司往往在中国当前软件行业占很多。3-4个或5-6个程序员,老板拉来什么项目就做什么项目,进销存、费用报销、销售管理、客服维修工单、请假考勤管理等等为大部分单子内容。
有朋友留言:就10来万的单子,就1-2个程序员,从调研到设计到开发到测试到打包到实施安装到培训到推动上线到支持,全活儿。哪来的精力再去开发平台。再说了,都是10来万的单子,开发平台就大才小用了,什么设计模式,什么OO,什么界面和代码分离,什么代码重构,都扯淡,往界面拖控件,用ADO连数据库,OK。费那精神干嘛,把钱快速赚到才是真理。
其实,你发现没,你做的管理软件(叫它MIS也行,你爱戴高帽就叫它ERP阅读全文>
发表于 @ 2008年04月12日 09:14:00|评论(loading...)|编辑