前面我的一篇文章提到使用CUTEFTP的FTP引擎制作.NET的FTP上传客户端,但是这是个很郁闷的事情,首先,需要在注册表中注册这个COM,CUTEFTP的官方站提供了一段注册表写法的文章,这还好说。最关键的是,在使用这个组建的时候还需要注册产品。不会有任何人希望用户在用软件的时候却还要注册别的公司的产品先。
前面之所以写采用CUTEFTP的引擎做客户端主要是为了方便,在一台已经安装CUTEFTP的PC上使用还是很方便的,但是我们还是希望开发独立的软件。
实际上采用FTP进行文件传输在搞清楚FTP命令和数据连接方式后做起来也不是很难,毕竟FTP是一个公共的协议。
以下是本人写的一个简单...
ASP.NET2.0提供了一个功能强大的TreeView控件,但是它看起来有一个缺陷:它好像不能够跟踪用户最后选择的一个节点。如果你滚动到第50个节点然后展开该节点,那么当单击链接页面进行回发后,你必须重新利用滚动条下拉到你想要的节点位置。
在.NET较早的版本里,您可能考虑使用SmartNavigation这个特性.SmartNavigation是Web页面指令的一个属性,它的取值为布尔值,一个设置为true的页面指令看起来类似如下:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" SmartNavigation="true" %>
...
在实际程序中,String类型用得非常广泛,然而,由于.NET对String类型变量的独特管理方式,使用不当,会严重影响程序的性能。我们分几个方面来谈这个问题:
1、了解String数据的内存分配方式
编写一个控制台应用程序,输入以下测试代码:
class Program
{
static void Main(string[] args)
{
String s = "a";
s = "abcd";
}
}
使用.NET Framework 2.0 SDK提供的ildasm.exe工具查看生成的MSIL指令:
.method private hidebysig static void Main(string[] args) cil managed
{
.entrypoint
// 代码大小 14 (0xe)
.maxstack 1
.locals init ([0] string s)
IL_0000: nop
IL_00...
虽然Biztalk Server提供了众多的内置功能,然而在一些情况下可能还需要调用程序集中的函数。因为在.Net程序集中,可以非常方便地调用Web Service、访问数据库;另一方面,有些函数是程序集中已经写好的,为了增加软件的复用,便于软件版本的管理,使用现有的程序集也在情理之中。
本文通过一个简单实例,介绍Biztalk应用中调用程序集的方法。这个实例完成的功能,在调用Web Services一文中实现过,只不过实现的方式用所差别,一个是调用Web Service,一个是调用.net程序集。
首先,我们创建一个MyFunction的项目,其中只包括一个的类文件class1,我们要在Biztalk中调用该类的CheckUserId静态方法。class1的源程序如下:
...
在以前的ASP.NET 1.x版本中,设置为ReadOnly的TextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制。这是为了提高应用程序安全性所考虑的。下面就是TextBox控件获得数据的内部方法,由此可以看出ReadOnly的限制:
protected virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
{
base.ValidateEvent(postDataKey);
string text1 = this.Text;
string text2 = postCollection[postDataKey];
if (!this.ReadOnly && !text1.Equals(text2, StringComparison.Ordinal))
{
this.Text = ...
.Net 2.0正式版的正式发布,对我们程序开发人员来说无疑是一件很大的喜事,已经很多的人开始了解并使用.NET 2.0。Visual Studio 2005 的一些新的增强功能和ADO.NET 2.0的新特性让我们开发高可伸缩的多层数据库应用程序更加简单和快捷。本文将带领大家使用Visual Studio 2005来创建一个N层数据库应用的示例,并介绍一些NET 2.0和 Visual Studio 2005相关的知识。
在.NET 1.1下就可以使用强类型数据集,可是在Visual Studio 2003里开发起来还是有一些不方便,在Visual Studio 2005里对DataSet的设计视图做了很大的改进,因为ADO.NET 2.0增加了TableAdapter对象,所以现在也可以在DataSet设计视图里添加...
一.前言:
存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。总的来说,存储过程具有以下一些优点:[newsad][/newsad]
◆存储过程允许标准组件式编程
◆存储过程能够实现较快的执行速度
◆存储过程能够减少网络流量
◆存储过程可被作为一种安全机制来充分利用
本文作者将向大家介绍.NET数据库应用程序中存储过程的应用,以及如何将它与ADO.NET中的SqlDataAdapter对象、DataSet对象等结合...
Web服务的inetinfo.exe与Oracle的Apache.exe进程所占用的端口都包括80端口。
如果用户是在安装了Oracle之后,再使用.NET创建ASP.NET应用程序出现下面情况的错误:
VS.NET检测到web服务器运行的是ASP.NET 1.0版,要创建或打开的应用程序可以配置成与1.0兼容,但将无法运行1.1的新功能,则很可能是应为上面所说的端口冲突。
解决方法:
1)修改Oracle进程的端口
到路径 oracleora90ApacheApacheconf 下修改httpd.conf 和 httpd.conf.default 内Listen 80修改为其他端口即可。例如:Listen 8080或其他,建议在3000以上的大一点的数值。
2)停止Oracle的Http服务器
可以直接用进程管理器 关闭A...
企业库异常处理块(Enterprise Library Exception Handling Block)提供了处理异常所需的所有基本代码,现在,你可以不用再编写这些重复性的异常处理代码,只需简单地在程序中使用它们,就可保证一致且高效地异常处理。
在一个理想的程序世界中,编写的所有代码都是运行无误的,但现实是,无论你在编写代码时多么地小心,错误总会发生,所以,必须要有一个高效、可配置的框架(framework),以一种"优雅"方式来处理错误;另外,也必须要懂得,人们通常以对程序的用户体验带来多大影响,来衡量一种异常处理的有效性。因此,一个好的异常处理解决方案不单是从用户的观点"优雅"地处理错误,而且还可通过开发者或系统管...
有时进入管理页面时,session和cookie消失时,要返回登录页面,登录后我们仍想返回刚才管理操作的这个页面.这样很方面.可以用Request的一个属性实现Request.UrlReferrer 获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
当一个页面跳到此页面时,它就会记录跳到这个页面的URL,然后利用这个URL返回.小技巧,记录下来
protected void Page_Load(object sender, EventArgs e)
{
ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
HyperLink1.NavigateUrl = (string)ViewState["UrlReferrer"];
Response.Wr...
用过MonoRail的朋友应该知道它提供的对象成员数据绑定功能非常方便,通过标记参数属性或方法就可以自动把提交回来的数据和对象成员进行绑定;有了这些方便的功能的确可以节省大量的set代码。不过这些功能只是MonoRail提供,于是实现类似的功能方便自己开发。
实现目标:可以灵活方便地实现数据绑定。
OrderSearch search = FormContext.BindObject<OrderSearch>();
Orders order = FormContext.BindObject<Orders>("order");
制定规则和约束
首先确定WEB提交的数据和成员属性的映射关系,可以通过名称约定的方式:
<input id="Text1" name="companyname" t...
ASP.NET 2.0包含两个图形控件,一个Image,一个是ImageMap控件。
1、Image控件是用来显示图象的,对应于<img />标签,典型的Image控件格式如下
id="imgRandom"
ImageUrl="Picture.gif"
AlternateText="Picture"
DescriptionUrl=""
GenerateEmptyAlternateText=""
ImageAlign=""/>
id 是用来标识控件的,
ImageUrl 是图片链接,
AlternageText 是无法显示图片时显示的文字,
DescriptionUrl 提供一个图片的详细说明的链接
GenerateEmptyAlternateText 将AlternateText设置为空
ImageAlign 用来提供相对于...
现在的很多商业公司都设有不同的部门,而这些部门在公司的网站上都有自己的子网站。一般情况下,每一个部门都会根据自己的需要来维护各自的网站。这样做虽然会使公司的网站显得丰富多彩,但这却会对用户的访问带来不便,也就是说,由于各个部门的子网站没有保持一致性而使用户在浏览网站时造成了困难。幸运的是,ASP.NET2.0为我们提供了一种解决方案,这就是主页嵌套。[newsad][/newsad]
建立嵌套主页
首先需要建立一个标准的主页,在这个主页上需要加上一些共用的东西,如公司的Logo、公司名称、页脚以及菜单等,而每个部门的子网站必须使用这个标准的主页。每一个部门可以根据自己的业务需要建立各自的主页,然后将这些部门的主页...
人们期待已久的ASP.NET AJAX v1.0正式版终于发布了。现在你能用Microsoft ASP.NET AJAX的javascript很容易的写出丰富的、交互式的web应用。尤其值得关注的是Microsoft AJAX Library增加了面向对象的支持,而以前javascript是不支持面向对象开发的。现在icrosoft AJAX Library能很好的支持类、名字空间、继承、接口、枚举、反射等特征。这些新增加的功能类似于.NET Framework,这使得开发ASP.NET AJAX应用变得容易维护,容易扩充。现在我们看看Microsoft AJAX Library是如何支持以上特征的。
1.类、成员和名字空间
在Microsoft AJAX Library中,所有的JavaScript类都继承自object(...
.NET的数据库天然支持MSSQLServer,但是并非其他数据库不支持,而是微软基于自身利益需要,在支持、营销上推自己的数据库产品;但是作为平台战略,他并非排斥其他数据库,而是参考java体系提出了一套数据库访问规范,让各个第三方进行开发,提供特定的驱动。 [newsad][/newsad]
MySQL是免费的数据库,在成本上具有无可替代的优势,但是目前来讲,并没有提供。微软把MySQL当作ODBC数据库,可以按照ODBC.Net规范进行访问,具体参考
http://www.microsoft.com/china/community/Columns/Luyan/6.mspx
而实际上,针对ODBC。Net的需要配置DSN的麻烦,而是出现了一个开源的系统MySQLDri...
刚才“不小心”检查了一下ASP.NET生成的代码,惊讶地发现ASP.NET输出的代码居然如此地不紧凑,在标签之间有无数的空格和制表符(TAB),特别是用了嵌套表格之后,那景象真是惨不忍睹啊。
照理说在ASP.NET生成的代码中添加这么多无用的空格/tab可能是为了使生成的HTML代码更具可读性,但是由此带来的问题就是使输出的代码变大了,在带宽有限的今天简直就是一种犯罪,浪费用户的钱财,影响用户的体验嘛!而且ASP.NET属于服务器端编程,不可能会直接编辑最终生成的HTML代码,就算把所有的空格/Tab都去了,也不会带来任何不好的影响的吧!?
基于以上考虑,祭出Reflector,果然发现H...