建立Silverlight2.0控件(Usercontrol)

Silverlight 2.0有一个非常重要的部分,就是控件技术的出现,透过可自行定义开发的控件建立机制,Silverlight ASP.NET一样,可以自行定义可重用的 UserControl,这对于开发人员有着相当重要的意义,这表示对象化的设计、ReUse与大量的开发开始变的可能。

< xml:namespace prefix = o ns = “urn:schemas-microsoft-com:office:office” />

有这些作为基础,我们才有可能真正透过Sivlerlight 2.0建立中大型的应用程序或是RIA,也才有可能确保投资可以延续并且在团队开发当中累积资源。

这么重要的机制,当然要给他试用一下,上图是我尝试建立的traffic light控件,模拟一个红绿灯,一样具有属性、事件、方法……可以跟外部的程序互动,画面中的ButtonTextBox则是Silverlight 2.0当中本来就有的控件,通过.NET Code的开发方式,你可以用C#或是VB,确实比过去1.0时代用JavaScriptAJAX方便很多。

在该控件在被使用者点选之后,会触发一个Click事件,这个事件是我们自己建立出来的,我们可以在这个事件当中改变TextBox内的值(你试用看看就知道)。当然,我们也可以在其他控件(例如按钮)当中来改变灯号(通过traffic light控件的属性),总而言之,这就是一个标准的控件啦。

您可以点选[这里]测试一下这个控件,关于程序代码的说明我会在七月的Run!PC当中介绍,如果您需要Source Code,请私下偷偷Mail给我。

.NETVsJava

总的来说,

.NET 可以看成是正规军

四平八稳,应有尽有,手到擒来

Java 可以看成是游击队

短小精悍,灵活自如,剑走偏锋

从几个角度来看吧

1、学习曲线

任何能力都是习得的,从玩单板、下厨房到开发软件项目。

rookie -> master, 这是我们在做任何事的时候,首先考虑的问题。

Frankly speak, 微软在这方面好的有些让人义愤填膺。

MSDN + 在线视频 + 多如牛毛的教材 + 偏向于新手的界面设计

刚上手时,一不小心买错了,想看 ASP.NET  的 C# 开发,买到了 VB.NET 开发 Framework 1.1 上 WinForm 的资料

没关系,照样看,而且这些经验在以后的开发过程中都用的到

EQ > 80 , IQ > 40, age > 10 你可以轻松入门做 .NET 的程序员了

Java 的学习曲线几乎是90度的

也就是说,要有足够的心理承受能力,面对自己是一个完全菜鸟的境地

能买到的书,大部分都只讲某一特定方面,比如 Java语法、java 编程思想、JSP、JSF…

几乎很难找到一本拿着就可以照做出一套商业系统的教材

有些类似《xxx 入门指南》《xxx 第一步》的书

里面用的构架、开发工具几乎都是过时的,或者和你的团队不在一个战壕里

自己想埋头一个人搞出一套来,几乎不可能(有这样的,我知道,但>95%的概率你不是这类人)

学习的最佳途径是什么?

拜师学艺!

找一个比较浅显易懂的项目,跟着师傅一起做

从 java环境、开发工具、调试技巧、ORM、各类框架、发布和维护

整个生命周期如果你打算自己一个人拿下,从成本上看是不值得的

先不要考虑什么都明白,能搞明白那一样都是很开心的事儿

在充分信赖别人的工作成果的基础上,看自己能做什么,这是菜鸟正确的学习态度



2、开发社区


不知道是自己没有摸着门道还是英文功底太差

IMHO:

.NET 社区的氛围比 Java 的开发社区氛围要“Simple”很多

.NET 社区里,如果你有个棘手的问题,提出来。能解决的很快就有人凑上来说,仔细搜索一下,大部分的人都已经遇到你提出的问题。解决不了的你也就不用太指望了,也许M$会在下一个版本中修复的。现在,绕行。

.NET 社区,散发着实用主义精神的光芒,是地地道道的“项目加速器”。

Java 社区里,你提出一个问题,有人说是你的选择的框架错了,有人告诉你是设计模式的问题,有人提供一段不知道需要依赖那些 jar包的程序,有人告诉你这个问题的本质是什么,有人在半年之后轻松搞定了问题然后被无数的网站转载之。反正到时候你已经早早把这个问题放在脑后,或者深埋在系统里让你的后人痛苦万分只能重构。

Java 社区,是江湖,是规矩太多到没有规矩,满口的专业术语和单词缩写构成的迷宫,为了让你看明白答案,URL也许会将你带回问题。

我们都知道,这个世界其实没这么简单。可惜,谁喜欢别人将复杂性一股脑塞在自己的面前?

装牛X容易,难的是用简单可靠的方式解决问题。

3、框架

.NET 里面,也有框架,还没得选,你跟着M$一路跑下去

Basic、MS C、C++、Foxbase、FoxPro、VisualFoxPro、VisualBasic、Framework 1.0、1.1、2.0 …(听说3.5已经出来了)

你说这些不是框架,Enterprise Library、AJAX.NET 总算了吧?

区区不才这些还都玩过,一个字,好用。

你照着例子5分钟内上手,半天内你就有所小成

但想成为大师,你需要微软的内部资料

Java 的世界,框架都是用“横空出世”“才华满溢”“独步武林”“一统天下”这些形容词的

反正一年之后,你也不确定到底大家还都用啥,也许你已经成为这个构架的领军人物赚了千万美金,也许这个开源构架已经宣布停止更新或者和别人合并

Log4J, Dom4J, Spring, Hibernate, JPA, JSP, JSF, Struts, Seam, EJB3 …

我们象勤奋的水獭,用快速的筛选、抽象、吸收、进化能力,抵御着短视、反复无常、变态夸张的需求如潮水般蔓延,求得一隅生存之地

 

ASP-动态服务器页面

      ASP是Active Server Page的缩写,意为“动态服务器页面”。

      ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。另外阿斯匹林、天门冬氨酸、阿里软件销售合作伙伴、美国武装系统暨程序公司等的缩写也都为ASP。

 

一、ASP发展史

      从1996年ASP诞生到现在已经过去了15年。在这短短的15年中,ASP发生了重大的变化,直到现在的ASP.NET。
      asp的第一版是0.9测试版,自从1996年ASP1.0诞生,它给Web开发界带来了福音。早期的Web程序开发是十分繁琐的,以至于要制作一个简单的动态页面需要编写大量的C代码才能完成,这对于普通的程序员来说有点太难了。而ASP却允许使用VBScript这种的简单脚本语言,编写嵌入在HTML网页中的代码。在进行程序设计的时候可以使用它的内部组件来实现一些高级功能(例如Cookie)。它的最大的贡献在于它的ADO(ActiveX Data Object),这个组件使得程序对数据库的操作十分简单,所以进行动态网页设计也变成一件轻松的事情。因此一夜之间,Web程序设计不再是想像中的艰巨任务,仿佛很多人都可以一显身手。
      到了1998年,微软发布了ASP 2.0。它是Windows NT4 Option Pack的一部分,作为IIS 4.0的外接式附件。它与ASP 1.0的主要区别在于它的外部组件是可以初始化的,这样,在ASP程序内部的所有组件都有了独立的内存空间,并可以进行事务处理。
      到了2000年,随着Windows 2000的成功发布,这个操作系统的IIS 5.0所附带的ASP 3.0也开始流行。与ASP 2.0相比,ASP 3.0的优势在于它使用了COM+,因而其效率会比它前面的版本要好,并且更稳定。
      2001年,ASP.NET出现了。在刚开始开发的时候,它的名字是ASP+,但是,为了与微软的.NET计划相匹配,并且要表明这个ASP版本并不是对ASP3.0的补充,微软将其命名为ASP.NET。ASP.NET在结构上与前面的版本大相径庭,它几乎完全是基于组件和模块化的,Web应用程序的开发人员使用这个开发环境可以实现更加模块化的、功能更强大的应用程序。

二、ASP网页特点
      ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或Web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点:
   
2.1 asp
      (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术;
      (2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试;
      (3)服务器上的ASP解释程序会在服务器端执行ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页;
  (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息;
  (5)ASP可以使用服务器端ActiveX组件来执行各种各样的任务,例如存取数据库、发送Email或访问文件系统等。
  (6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可防止ASP程序代码被窃取。
      (7) 方便连接ACCESS与SQL数据库.
      (8)开发需要有丰富的经验,否则会留出漏洞,让黑客利用进行注入攻击.
      ASP也不仅仅局限于与HTML结合制作WEB网站,而且还可以与XHTML和WML语言结合制作WAP手机网站。但是其原理也是一样的。

2.2 ASP-工作原理
      当在Web站点中融入ASP功能后,将发生以下事情:
  1、用户向浏览器地址栏输入网址,默认页面的扩展名是.asp。
  2、浏览器向服务器发出请求。
  3、服务器引擎开始运行ASP程序。
  4、ASP文件按照从上到下的顺序开始处理,执行脚本命令,执行HTML页面内容。
  5、页面信息发送到浏览器。

 

三、ASP的升级平台:asp.net

3.1 运行特点
  ASP.NET是把基于通用语言的程序在服务器上运行。不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,执行效果,比一条一条的解释强很多,执行效率大大的提高。
  ASP.NET可以运行在Web应用软件开发者的几乎全部的平台上。通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.NET的Web应用中。ASP.NET同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#,VB.NET,Jscript,managedC++,J#。将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.NET。
开发语言
  ASP.NET常用的主要有两种开发语言,VB.NET和C#,C#相对更为常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,如果新接触.NET,没有其他开发语言经验,建议直接学习C#。

 

 

 

比较好的Java网站

比较好的Java 网站
2008-04-30 15:45

1. The Source for Java Technology Collaboration(JAVA开发的官方网站)
http://www.java.net/ – 外文
2. jGuru: FAQ Home Page 推荐
http://www.jguru.com/faq/ – 外文
3. Developer.com: An EarthWeb site
http://www.developer.com/ – 外文
4. the java.blogs community
互联网上最活跃的一个Java Blog网站
http://www.javablogs.com/ – 外文
5. The #1 Java Review Service
提供Java评论服务. 包括各种framework和应用程序
http://www.jars.com/ – 外文
6. programming resources in various categories
http://www.programmingsite.co.uk/ – 外文
7. 非常不错的java开发社区,大量的相关资源,强烈推荐!
http://www.javaresearch.org/ – 中文
8. 中文JAVA技术网 — 为Java爱好者服务 推荐
http://www.cn-java.com/ – 中文
9. 中国JAVA俱乐部
http://www.cnjavaclub.com/ – 中文
10. Computer Technical Tutorials and Information: Free Technical Tutorials
收集了大量的开发资源,特别是一些指南.点击左边的导航进入,值得好好研究.
http://www.techtutorials.info/ – 外文
11. Tutorials From FunctionX .酷
http://www.functionx.com/ – 外文
12. ACCU 推荐
The ACCU is a non-profit organisation devoted to professionalism in programming at all levels. Although primarily focussed on C and C++, we also have interests in Java, C# and Python. 有非常好的资料,就看你能不能找到.
http://www.accu.org/ – 外文
13. JAVA中文站
一个老牌的站点提供大量的JAVA资料,是目前国内较好的java专业技术网站之一,在J友中已经具有相当的名气。
http://www.java-cn.com/index.html – 中文
14. SUN 中国技术社区 中文官方网站
http://gceclub.sun.com.cn/ – 中文
15. Planet Source Code
一个优秀的代码收集站点,分类清晰,强烈推荐.
http://www.planetsourcecode.com/ – 外文
16. Java频道—中国IT认证实验室
大量的开发文档,分类清晰。
http://java.chinaitlab.com/ – 中文

17. IBM developerworks 中国: Java
http://www-128.ibm.com/developerworks/cn/java/index.html – 中文

18. Java swing component and java resource
http://www.rcomponent.com/ – 外文

19. Home of free V GUI C++ library and VIDE C++/Java IDE for Windows and Linux
V Gui C++类库用来开发界面,这样就不需要什么MFC来支持,而且可以很好的移植到LINUX平台。VIDE是一个图形开发平台(象VC,BCB),而且它支持JAVA.可以用来研究。
http://www.objectcentral.com/ – 外文

20. Kaffe.org
Kaffe is a clean room implementation of the Java virtual machine, plus the associated class libraries needed to provide a Java runtime environment. The Kaffe virtual machine is free software, licensed under the terms of the GNU General Public License.
http://www.kaffe.org/ – 外文

21. JAVA学习:www.studyjava.com 推荐
http://www.studyjava.com/ – 中文

22. Java Skyline: Java Servlet/Server Headline News
http://www.javaskyline.com/learning.html – 外文

23. Open Source Software in Java(tm)
http://java-source.net/ – 外文

24. 计算机开发文档英雄贴
大量的编程开发 文档.
http://www.chinadir.net/ – 中文

25. The Java Developers Almanac 1.4
Java开发者年鉴一书的在线版本. 要想快速查到某种Java技巧的用法及示例代码, 这是一个不错的去处. This website supplements the book The Java Developers Almanac 1.4. All the code examples from the book are made available here for you to copy and paste into your programs.

http://www.javaalmanac.com/ – 外文

26. Focus on Java
来自About.com的Java新闻和技术文章网站.
http://java.about.com/ – 外文

27. JavaPro在线杂志网站
http://www.fawcette.com/javapro/ – 外文

28. Java Developers Journal的在线杂志网站.
http://java.sys-con.com/ – 外文

29. 位于Java.net的一个Java桌面技术社区网站.
javaDesktop, a gathering place for members of the Java  platform’s graphical user interface (GUI) community. Here you’ll find news, discussions, technical articles, and open source projects that use the Java 2 Platform, Standard Edition (J2SE ) APIs to produce applications with rich client interfaces. (If you’re looking for information on the Sun Java Desktop System, you can find it at sun.com.)
http://community.java.net/javadesktop/ – 外文

30. Java Technology
Java technology is a portfolio of products that are based on the power of networks and the idea that the same software should run on many different kinds of systems and devices
http://java.sun.com/ – 外文

31. O’Reilly的Java网站. 每周都有新文章
http://www.onjava.com/ – 外文

32. Gamelan.com –
A Developer.com Site for Java Articles, Tutorials, News, Discussions, and More
http://www.developer.com/java/ – 外文

33. javaworld
http://www.javaworld.com/ – 外文

34. Cnet的Builder.com网站
Cnet的Builder.com网站 – 所有的技术文章, 以Java为主.
http://builder.com.com/ – 外文

35. DevX: Java Zone
http://www.devx.com/java – 外文

36. developerWorks : Java technology of IBM
http://www-130.ibm.com/developerworks/java/ – 外文

37. DevCentral
Check out the best 100% free tutorials and articles on the web for the software development community. It doesn’t matter if you are a student or a professional software engineer, DevCentral has content to match everything from learning C to Java Class Loaders. DevCentral provides all these self paced tutorials, technology articles, and downloads for everyone to enjoy for free.
http://devcentral.iticentral.com/default.php – 外文

38. J道:Java和J2EE解决之道
http://www.jdon.com/index.html – 中文

39. 中国Java实验室
http://download.chinaitlab.com/special/javaebook.htm JAVA资料下载
http://www.chinajavalab.com/ – 中文

40. Javalobby –
Sun Java, JSP and J2EE technology programming forums, software downloads, jobs and tutorials
http://www.javalobby.org/ – 外文

41. Central Java Investment Board
http://www.central-java.com/ – 外文

42. RFC-Editor Webpage
进行网络开发的必备资料.
http://www.rfc-editor.org/ – 外文

43. Java开源大全
提供关于开源JAVA项目的相关信息,分类很清晰
http://www.open-open.com/ – 中文

44. Java家
http://www.javajia.com/ – 中文

45. 赛迪网(ccidnet.com)的java文档区
http://tech.ccidnet.com/pub/column/c2369.html – 中文

46. Matrix – 与 Java 共舞
一个计算机开源技术组织,原创内容多,主要涉及java基础、编程、工具与应用服务、j2ee,j2me技术、设计模式等,旨在让更多的人得到进步,他们的口号:Matrix is all!
http://www.matrix.org.cn/ – 中文

47. J2SE – 技术天地 – 赛迪网
http://tech.ccidnet.com/pub/column/c1078.html – 中文

48. Javalobby
Sun Java, JSP and J2EE technology programming forums, software downloads, jobs and tutorials:
http://www.javalobby.com/ – 外文

49. Java爱好者 提供 免费Java教程下载,Java电子书籍,Java技术文章
http://www.javafan.net/ – 中文

50. www.javaside.com
http://www.javaside.com/ – 外文

51. 中国DotNet俱乐部
.Net社区—包括 C#,VB,ASP,Delphi,VC,MS SQL Server,C++,JAVA,JSP
http://www.chinaaspx.com/ – 中文

52. The Java Community Process(SM) Program
http://www.jcp.org/ – 外文

53. 太阳花下载站
大量的java资料下载,有一个搜索引擎。推荐看看
http://www.javadown.com.cn/ – 中文

54. Java examples (example source code) Orgainzed in Topic into Categories
很多文档、范例的Java网站,特别是有200多个SWT/JFace的范例
http://www.java2s.com/ – 外文

55. Java中文博览
收集了很多的java文档,并进行了分类。
http://www.javarss.com.cn/ – 中文

56. www.sa-se.com 系统分析&软件工程
http://www.sa-se.com/ – 中文

57. Java Code and Examples of nokia
http://www.forum.nokia.com/ – 外文

58. java, javscript,Free source code for the taking. Over five million lines of program
http://www.1javastreet.com/ – 外文

59. the one stop programmers resource
Welcome to programmershelp, on this site you will find various resources for programming languages such as c, c++, visual basic, java, php, perl, asp and javascript to name but a few. Source code, forums, tutorials, scripts articles, downloads, book links we have it.
http://www.programmershelp.co.uk/ – 外文

60. Jpowered
http://www.jpowered.com/ – 外文

61. software Java applet application
http://www.thejmaker.com/ – 外文

62. TheServerSide.com
http://www.theserverside.com/ – 外文

63. J道:Java和J2EE解决之道
http://www.jdon.com/ – 中文

64. ::JavaTEA:: 中国软件协会JAVA技术分会
http://www.javatea.org/ – 中文

65. DingL.com
http://www.dingl.com/ – 中文

66. JAVA资源网
http://www.javazy.com/ – 中文

67. J2ME开发网
http://www.j2medev.com/ – 中文

68. 锋网ijsp.net
http://ijsp.net/ – 中文

69. BJUG – Beijing Java User Group
http://www.bjug.org/ – 中文

70. javaidea
http://www.javaidea.net/ – 外文

71. Cookie Nest
Java programming, applets, scripts, downloads, tutorials
http://www.cookienest.com/ – 外文

72. Crack J2EE
http://www.crackj2ee.com – 中文

73. BlogJava – 专注于Java技术
http://www.blogjava.net/ – 中文

74. LaLiLuna
– Tutorials for Struts, JavaServer Faces, JSF, EJB, Hibernate, Eclipse, JBoss, Tomcat
http://www.laliluna.de/ – 外文

75. Java自由人
http://www.javayou.com – 中文
76. JAVA学习室
http://www.java3z.com – 中文

利用oleDB对象,将数据库中全部表转换成XML文件

                                       

ASP.NET Dataset让你在页面中使用XML格式的文件提供了便利。如果您的数据全部都在一个数据库中,该如何进行转换呢?如果你的数据库与OleDb兼容的话,下面就看看如何把数据库中的所有表转换成XML文件。文件名字与数据库中的表的名字相同。本代码包含两个版本:C#版本和VB.NET版本。

C#版本:[测试]

<%@ Page Language=”C#” %>

<%@ import Namespace=”System” %>

<%@ import Namespace=”System.Data” %>

<%@ import Namespace=”System.Data.OleDb” %>

<script runat=”server”>

void Page_Load(object sender, EventArgs e) {

if (!IsPostBack) {

TextBox1.Text = “PROVIDER=SQLOLEDB; Data Source=.; Initial Catalog=pubs;User ID=sa;Password=;”;

Label1.Text = “”;

}

}

void CreateXml(object sender, EventArgs e) {

OleDbConnection dataConn = new OleDbConnection(TextBox1.Text);

Uri Path = Request.Url;

String ServerUrl = Path.ToString();

ServerUrl = ServerUrl.Substring(0,ServerUrl.LastIndexOf(“/”) +1 );

try {

Literal1.Text = “已经在你的相同目录下创建了一下文件:<br/>” ;

dataConn.Open();

DataTable schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] {null, null, null, “TABLE”});

for(int i = 0; i < schemaTable.Rows.Count; i++){

OleDbDataAdapter dbAdapter= new OleDbDataAdapter(“select * from [” + schemaTable.Rows[i].ItemArray[2].ToString() + “]”,dataConn);

DataSet tableData = new DataSet();

dbAdapter.Fill(tableData,schemaTable.Rows[i].ItemArray[2].ToString());

tableData.WriteXml(HttpContext.Current.Server.MapPath(schemaTable.Rows[i].ItemArray[2].ToString() + “.xml”));

Literal1.Text = Literal1.Text + “<a href='” + ServerUrl + schemaTable.Rows[i].ItemArray[2].ToString() + “.xml’>”;

Literal1.Text = Literal1.Text + schemaTable.Rows[i].ItemArray[2].ToString() + “.xml</a><br/>”;

}

}

catch(Exception ex) {

Label1.Text = ex.Message.ToString();

}

finally {

dataConn.Close();

}

}

</script>

<html>

<head>

<title>leDb2XML:数据库转换成XML文件例子</title>

</head>

<body bgcolor=”#FFFFFF”>

<center>

<h2><font face=”宋体”>OleDb2XML:数据库转换成XML文件例子</font>

</h2>

</center>

<form runat=”server” ID=”Form1″>

<font face=”宋体”>

<p align=”center”>请输入OleDb连接字符串,然后点“生成XML文件”按钮。</p>

<p align=”center”>

<asp:TextBox id=”TextBox1″ runat=”server” Width=”600″></asp:TextBox>

</p>

<p align=”center”>

<asp:Button id=”Button1″ onclick=”CreateXml” runat=”server” Text=”生成XML文件”></asp:Button>

</p>

<p align=”center”>

<asp:Label id=”Label1″ runat=”server” Font-Bold=”True” ForeColor=”Red”></asp:Label>

</p>

<p align=”center”>

<asp:Literal id=”Literal1″ runat=”server”></asp:Literal>

</p>

</font>

</form>

</body>

</html>

VB.NET版本:[测试]

<%@ import Namespace=”System.Data.OleDb” %>

<%@ import Namespace=”System.Data” %>

<%@ import Namespace=”System” %>

<%@ Page Language=”VB” %>

<HTML>

<HEAD>

<title>leDb2XML:数据库转换成XML文件例子</title>

<script runat=”server”>

Sub Page_Load(sender As Object, e As EventArgs)

If Not IsPostBack Then

‘TextBox1.Text = “Provider=SqlOLEDB; Data Source=.; Initial Catalog=pubs;User ID=sa;Password=;”

Label1.Text = “”

TextBox1.Text = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + Server.MapPath(“Test.mdb”)

End If

End Sub

Sub CreateXml(sender As Object, e As EventArgs)

Dim dataConn As New OleDbConnection(TextBox1.Text)

Dim Path As Uri = Request.Url

Dim ServerUrl As String = Path.ToString()

ServerUrl = ServerUrl.Substring(0,ServerUrl.LastIndexOf(“/”) + 1 )

Try

Literal1.Text = “已经在你的相同目录下创建了一下文件:<br/>”

dataConn.Open()

Dim schemaTable As DataTable

schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, “TABLE”})

Dim i As Integer

For i = 0 To schemaTable.Rows.Count – 1

Dim dbAdapter As New OleDbDataAdapter(“select * from [” + schemaTable.Rows(i).ItemArray(2).ToString() + “]”, dataConn)

Dim tableData As New DataSet()

dbAdapter.Fill(tableData, schemaTable.Rows(i).ItemArray(2).ToString())

tableData.WriteXml(HttpContext.Current.Server.MapPath((schemaTable.Rows(i).ItemArray(2).ToString() + “.xml”)))

Literal1.Text = Literal1.ext + “<a href='” + ServerUrl + schemaTable.Rows(i).ItemArray(2).ToString() + “.xml’>”

Literal1.Text = Literal1.Text + schemaTable.Rows(i).ItemArray(2).ToString() + “.xml</a><br/>”

Next i

Catch ex As Exception

Label1.Text = ex.Message.ToString()

Finally

dataConn.Close()

End Try

End Sub

</script>

</HEAD>

<body bgcolor=”#ffffff”>

<h2 align=center><font face=”宋体”>OleDb2XML:数据库转换成XML文件例子</font></h2>

<form runat=”server” ID=”Form1″>

<font face=”宋体”>

<p align=”center”>请输入OleDb连接字符串,然后点“生成XML文件”按钮。</p>

<p align=”center”>

<asp:TextBox id=”TextBox1″ runat=”server” Width=”600″></asp:TextBox>

</p>

<p align=”center”>

<asp:Button id=”Button1″ onclick=”CreateXml” runat=”server” Text=”生成XML文件”></asp:Button>

</p>

<p align=”center”>

<asp:Label id=”Label1″ runat=”server” Font-Bold=”True” ForeColor=”Red”></asp:Label>

</p>

<p align=”center”>

<asp:Literal id=”Literal1″ runat=”server”></asp:Literal>

</p>

</font>

</form>

</body>

</HTML>

对于数据量大的数据库,处理可能会需要更多的时间,因此有可能需要更改machine.config文件中processModel的responseDeadlockInterval 属性,比如为5分钟,默认为3分钟。

<processModel

enable=”true”

timeout=”Infinite”

idleTimeout=”Infinite”

shutdownTimeout=”0:00:05″

requestLimit=”Infinite”

requestQueueLimit=”5000″

restartQueueLimit=”10″

memoryLimit=”60″

webGarden=”false”

cpuMask=”0xffffffff”

userName=”machine”

password=”AutoGenerate”

logLevel=”Errors”

clientConnectedCheck=”0:00:05″

comAuthenticationLevel=”Connect”

comImpersonationLevel=”Impersonate”

responseRestartDeadlockInterval=”00:09:00″

responseDeadlockInterval=”00:05:00″ default is 00:03:00

maxWorkerThreads=”25″

maxIoThreads=”25″ />

代码生成器集合(整理)

1:CodeSmith
  一款人气很旺国外的基于模板的dotnet代码生成器
官方网站:http://www.codesmithtools.com
官方论坛:http://forum.codesmithtools.com/default.aspx
版权形式:30天试用
开源:否
需要先注册确认后才能下载
2:MyGenerator
  MyGenerator是又一个国外很不错的代码生成工具,有人觉得比CodeSmith简单、好用。所有api可以在帮助菜单中找到。
官方网站:http://www.mygenerationsoftware.com/portal/default.aspx
官方论坛:
版权形式:免费
开源:否 下载
3:NHibernate.
  NHibernate是Hibernate公司在Java自动生成领域取得巨大成功后推出的一款ORM工具.
官方网站:http://www.hibernate.org/
官方论坛:
版权形式:免费
开源:否 下载
4:湛蓝.Net代码生成器
  一款基于软件自动生成理念,能直接生成应用的dotnet代码生成器
官方网站:http://www.dotnetcoding.net
官方论坛:http://dotnetcoding.cnblogs.com/
版权形式:免费
开源:否 下载
5:动软.NET代码自动生成器
  一款人气很旺的免费C#代码生成器
官方网站:http://www.maticsoft.com
官方论坛:
版权形式:免费
开源:否 下载
6:CodePlus
  专为sql server c#语言设计的代码生成器,功能还是很强大
官方网站:http://www.CodePlus.com
官方论坛:
版权形式:需要少量的注册费用
开源:否
下载地址很神秘
7:CodeMaker
  asp,jsp,php代码生成工具,自动生成维护数据库信息的动态网页的代码生成器。它可以帮助ASP、JSP、PHP开发人员快速的开发简单的数据库维护程序。无需任何编码,只需将数据库结构导入到CodeMaker中并做简单的设置,CodeMaker即可生成完整的数据库操作页面。用CodeMaker可以简单快速的创建网站后台维护程序。提高开发效率数十倍以上。
官方网站:http://www.mhua.com
官方论坛:
版权形式:免费
开源:否 下载
8:非非.Net代码生成器
  可以使用本工具生成VB.Net和C#语言的代码,以及三层架构与ORM架构代码,并且使用的ORM持久化组件是开源的,您可以在本软件的安装目录下找到它
官方网站:
官方论坛:
版权形式:免费
开源:否 下载
9: BMW业务模型及代码生成器
  一款人气很旺的免费C#代码生成器
官方网站:
官方论坛:
版权形式:免费
开源:否 下载
10:飞鹰CoolCoder
  专门为采用nhibernate做关系对象影射架构的系统提供代码的工具,简单易用,虽然不提供源码,我们可以用反编译工具对其反编译看源码。这是个很不错的学习机会。

官方网站:
官方论坛:
版权形式:免费
开源:否 下载

11:AutoCoder自动代码生成器
  AutoCoder自动代码生成器是一个根据模板自动生成代码的代码生成工具,根据模板的不同,可以生成任何语言(如:ASP、C#、C++BUILDER、DELPHI、JAVA、JSP、PHP、VB、VC.NET……),不同层次结构(B/S、C/S、n-tiger……),基于不同数据库(ORACLE、MSSQL、MYSQL、DB2、ACCESS、ODBC、OLE……)的代码和开发文档。开发人员无需任何编码,只需将数据库结构导入到AutoCoder中,并做简单的设置即可生成所需的代码,可以大幅度地提高开发效率!!!系统同时也提供了一个模板制作工具ModeMaker,用户可以方便的制作或修改模板,使得生成的代码更适合您使用!系统附带了十几个模板,基本上可以满足用户多方位的需求
官方网站:
官方论坛:
版权形式:免费
开源:否 下载
12:wawa Code Pro代码生成器
  一款开源的用VBScript写的代码生成器
官方网站:
官方论坛:
版权形式:免费
开源:是 下载

 

.net面试题

1.1.1 Visual Studio.NET 有几个集成开发环境?
○ A.一个 ○ B.两个 ○ C.三个 ○ D.四个
1.1.2 我们称.NET编程架构是什么?
○ A..NET Framework ○ B.VS.NET ○ C.XML Web Service ○ D. 开发工具
1.1.3 以下那些标准是与Web Service相关的
○ A..SOAP ○ B. WSDL ○ C.UDDI ○ D. 以上都是
1.1.4 SOAP标准是谁来制定的 
○ A. Microsoft ○ B. W3C ○ C.IBM ○ D. SUN
1.1.5 Visual Studio.NET 会支持多少种开发语言?
○ A. 两种 ○ B. 三种 ○ C.四种 ○ D. 多种
1.1.6 ASP.NET 是用来开发何种应用的?
○ A. Windows应用 ○ B. .NET组件类 ○ C. Web应用 ○ D. 命令行应用程序
1.1.7 C#编译器将C#程序编译成什么样的代码?
A. 汇编语言代码
B. 机器语言代码
C. 微软中间语言代码
D. 二进制代码
答案:C
1.2 B 类题
1.2.1 所有的.NET基类库是用什么语言编写的?
○ A. C++ ○ B. C# ○ C. VB.NET ○ D. 汇编
1.2.2 什么语言提供了对XML注释的支持?
○ A. C++ ○ B. C# ○ C. VB.NET ○ D. Jscript
1.2.3 关于微软中间语言,下面什么说法错误的?
A. 它是解释执行的。
B. 在执行时,它被转化为机器代码。
C. 它是处理器无关的指令集。
D. 它允许真正的跨语言集成。
1.2.4 . ASP.NET比ASP相比较,下列哪个是不正确的?
A. 支持更多编程语言
B. 可以同时存在于一个应用程序里
C. 用户界面和代码分离,大大提高编程质量
D. 都支持页面级和应用程序级的跟踪调试
1.2.5 关于VB.NET,与C#(发音,C sharp)比较,下列哪项是不正确的?
A. 都是类型安全的编程语言。
B. 都支持自动垃圾收集。
C. 都是面向对象的语言。
D. VB.NET不支持API调用。
1.2.6 微软在VS.NET默认安装中提供了几种编程语言的开发环境?
A. 2种
B. 3种
C. 4种
D. 5种

关于语言及框架的思考

这个行业就是这样,经常会出新的东西,表示比以前进步了,很多人还没体会好现在这个语言、框架所带给我们的真正意义,就忙着学习下一个新的东西了,当然抱着玩乐的心态,尝试新的事物也没什么。

之前我有3年的ASP的经验,之后切换到VB.NET再到C#,之后因为接点私活用过VB、JAVA,后来读研,做过asp.net的兼职,主要的经历都放在.net上,也就是我切换到C#之后认识的博客园,博客园给了我成长的机会,我自己比较明显的是在博客园有这么几个阶段:

潜水期:有时间就上来看看大家的文章,但是没有在博客园开博,这个时段持续了近1年时间。

冒泡期:有好几次很想说点什么,但是由于是申请机制,也没开成博,嫌烦了,但是终于累积的小宇宙爆发了,还是开了,之后偶尔写写

参与期:这一时段也很长,主要是看首页的文章,发表一下自己的评论,比如向博主要点源码什么的(这种行为现在收敛了),自己一般是不写东西的。

融入期:每天看首页的每篇文章,一天,查看好几遍,刚开始是只看自己喜欢的文章,后来兴趣变得广泛了,首页的文章都看,技术的非技术的,由于首页文章更新很频,跟得很累,这一时段也断续持续了一年多吧

之后,由于内容太多了,后来有一段时间变成只看技术了,这时博客园也会冒出一些讲ruby,python的,偶尔也看下,讲架构设计的比较少。

现在我的情况是,如果是技术的基本不看,除了特别新颖的,点进去看一个大概,了解一下走了,对于一些非技术的话题,则选择性的看一部分质量较高的。

自己有时间也会有时间将自己的一些想说到话放到自已的博客里,之前一段时间,拼命的追求文章的数量,现在逐渐的希望能够追求质量了。

走题了,回到话题上来。

从05年接触.net到08年一直在做一些.net相关的项目和思考,之后接触了open source,一群搞ror,py,agile的人,原来这个圈子还可以这么玩,于是迷上了线下的技术聚会,由于平时看得多,什么都知道一点,我也算是圈里的人了。

先前我主要有asp,asp.net的经验,听人说ror好很久了,也就尝试起来,结果用的过程中还是很吃了苦头,后来发现,原来学习每样技术就和讨老婆一样,要看对没对上眼,看缘份的,现在觉得,ror对我而言还是挺累的,robbin fan也说rails每4个月有一次大的变动,真是够让人受的。所以我和它算是没什么缘分了,之后我又发现周围的人在说django好,我也羡慕了,心里想着,一点得找个机会狠狠的用它一把。终于有时间有精力来做点啥了,买了书,动手操家伙,发现它也不符合我的习惯。这时我发现不是py,ruby语言,框架的问题,而是之前几年的编程习惯给我的技术方法和这些语言,框架没有建立认同感和归属感。

我的一个同学说的好,在你二十五六的时候,你的人格已经基本定型的时候,你应该去国外留个学什么的,给你的人生注入一剂XXX,让你对整个世界能有一个不一样的思考的方式。

我想技术也是如此吧

在发现 ror,django都不适合我后,我又迷茫了,搞了这么多年的技术,就没一个顺心的,于是我去看了看.net下的subsonic3,又一个大变活人,好家伙下次用又得学了,我也问了一些朋友,做web开发,还是用PHP,但是我对强大的IDE以及静态语言的强类型,有非常的依赖,或许这就是我的style.

说的这么多,我也没想好用什么,具体项目具体分析,见招拆招,该用什么就用什么,但是平时还是喜欢用.net来做点事,尽量的多尝试在.net下的各种技术,对于一些重复性没有创新的,而其它语言有优势的,再选择尝试用其它语言。

很多人说微软不够开放,把人都套住了,是这样,我承认,但就这样吧,在用微软的技术的时候没感觉便捷,在用其它技术的时候才知道,妈的还不如微软呢。

另外,要用一下apple的产品,它真的用技术在改变人的生活,在做真正的创新。

最后,我想说的是一切的你的技术偏爱,是由f(x)函数作用的,你的背景,接触的人事物,在不断的修正你的f,使你对某一事件的看法和其它个体产生不同,也就是所谓的观点,最后产生的一系列的行为的集合我们称之为style.

如果今天这篇文章简单点,你只要记住style=f(x)这个函数就行了

CodeSmith基础(四)

CodeSmith基础(四)

本文是翻译的第四篇,内容为在CodeSmith中使用的语法和标签的参考。

CodeSmith模板语法参考
本文的目的是在编写一个CodeSmith模板时遇到的各种类型的变量和对象提供参考。本文的目的不是要介绍CodeSmith,如果您想快速了解CodeSmith请查看我翻译的CodeSmith基础(一)和CodeSmith基础(二)。

标签
标签一般出现在模板的头部,被用做设置许多不同的属性。
代码模板的声明(CodeTemplate Directive
这个是模板中唯一必须的声明,包含一些模板特殊的属性,包含模板使用的语言、生成的语言和一些对于模板的描述。
例:
参数的介绍:
Language
:在开发编写模板时使用的语言,例如C#VB.NETJscript等。
TargetLanguage
:只是对模板代码的一个分类,不会影响生成的代码语言。是模板的一个属性,说明模板要基于那种语言生成相应的代码。例如你可以用CodeSmith从任何一种语言生成C#代码。
Description
:对于模板的一些说明信息,在CodeSmith Explorer中选中该模板时会显示这里的信息。
Inherits
:所有CodeSmith模板默认继承自CodeSmith.Engine.CodeTemplate,这个类提供模板使用的一些基本功能,像ASP.NET页面的Page类,这些被继承的类的属性可以被修改,但是这些新的类也必须继承CodeSmith.Engine.CodeTemplateCodeSmith也同样可以找到这个类,当然你要引入一个组件包含这个类。
Src
:在某些方面Src和继承Inherits比较相似,它们都允许你从其他的类包含一些功能进模板。这两个属性的区别是,Src可以让类与你的模板被动态编译,而Inherits仅允许你提供一个已经编译好的类或组件。
Debug
:可以确定是否在模板中可以包含调试符号。如果将这个属性设置为True,则可以使用System.Diagnostics.Debugger.Break()方法来设置断点。
LinePragmas
:设置为True,模板的错误将被指向到模板的源代码。设置为False,模板的错误将被指向到编译的源代码。

属性的声明(Property Directive
属性被用做在模板运行时声明一个使用的参数,例:

<%@CodeTemplateLanguage=”C#”TargetLanguage=”C#”Description=”Generatesaclass.”%>

<%@PropertyName=”ClassName”Type=”String”Default=”Class1″Category=”Context”Description=”Thenameoftheclasstogenerate”Optional=”true”%>

属性参数的介绍:

Name:模版使用的参数的名称。
Type
:参数类型可以是任何.NET有效的数据类型,例如简单的String类型或者是CodeSmithSchemaExplorer.DatabaseSchema类型。注意,类型必须是基类库的类型,例如用String或者Int32代替stringint
Default
:设置默认值。
Category
:用来说明这个属性在CodeSmith Explorer的属性面板中显示成什么类型,例如下拉选择、直接输入等。
Description
:在属性面板中对于这个属性的描述。
Optional
:设置这个属性是否是必须的,设置为True表明这个参数值可有可无,设置为False则这个参数必须有值。
Editor
:表明在属性面板中输入这个属性的值时使用何种GUI(图形界面编辑器)编辑器。
EditorBase
:编辑器使用的基本类型,如果没有被说明,UITypeEditor为默认编辑器。
Serializer
:这块我的水平不太会犯疑:)The serializer parameter specifies the IPropertySerializer type to use when serializing the properties values. This is equivalent to using a [PropertySerializerAttribute].

XML属性声明(XmlProperty Directive
例:属性的参数:
Name
:名称。
Schema
:这个参数用来指定一个X<rtx w:st=”on”>SD</rtx>文件,创建一个强类型对象模型。如果这个计划被指定,编译器会尝试分析这个X<rtx w:st=”on”>SD</rtx>文件并为这个计划生成一个强类型对象模型,这样可以在模版中使用强类型和智能与XML协同工作。如果这个计划没有被设定,这个参数将为XmlDocument类型并且将使用XML DOM去导航到一个XML内容并生成代码。
Category
:在CodeSmith属性面板中的类别。
Description
:描述。
Optional
:这个参数是否是必须的,如果设置为True,则参数不是必须的,反之False则为必须的。在设置为False时,如果用户没有提供参数则CodeSmith不能继续运行。

注册的声明(Register Directive
这个属性通常被用作引入另一个模版文件并与当前的模版文件同时被编译。这是一种使用子模版的交互方法。
例:
模版一旦被注册,就可以建立一个模版的实例,然后象这样设置它的属性:注册的参数:
Name
:代表被引入的模版的名称。它可以被用作创建一个模版的实例。
Template
:被引入模版文件的相对路径,它可以与当前的模版一起被动态的编译。
MergeProperties
:设置成True时,所有被引用的面板的属性将被动态的添加到当前模版中。
ExcludePorperties
:当使用MergeProperties时,你可能不需要某些属性被添加到当前模版中。将不需要的属性以逗号分隔放在这里,*号可以被用作通配符使用。

组件的声明(Assembly Directive
用作在模版中引用一个外部部组件,或者包含一个编译好的源文件。
例:
CodeSmith自动加载一些不同的组件:System, System.Diagnostics, System.ComponentModel, Microsoft.VisualBasic, CodeSmith.Engine

组件的参数:
Name
:需要引用组件的名称,组建必须存在于Global Assembly Cache,与CodeSmith在同一路径下或与模版文件在同一路径下。
Src
:要包含文件的相对路径。

引入的声明(Import Directive
在模版中引入一个命名空间,这个与VB.NET中的ImportsC#中的using相同。
例:
引入的参数:
NameSpace
:被引入的命名空间的名字。记住同时必须要加载包含这个命名空间的相应组件,除非这个组件是被默认加载的。

<%@XmlPropertyName=”EntityMap”Schema=”EntityMap.xsd”Optional=”False”Category=”Context”Description=”EntityMapXMLfiletobasetheoutputon.”%>

XML

<%@RegisterName=”MySubTemplate”Template=”MySubTemplate.cst”MergeProperties=”True”ExcludeProperties=”SomeExcludedPropertyName,SomeProperties*”%>

1<scriptrunat=template>
2publicvoidOutputSubTemplate()
3{
4MySubTemplatemySubTemplate=newMySubTemplate();
5
6//setanindividualpropertiesvalue.
7mySubTemplate.SomeExcludedPropertyName=SomeValue;
8
9//copyallpropertieswithmatchingnameandtypetothesubtemplateinstance.
10this.CopyPropertiesTo(mySubTemplate);
11
12//renderthetemplatetothecurrenttemplatesResponseobject.
13mySubTemplate.Render(this.Response);
14
15//renderthetemplatetoafile.
16mySubTemplate.RenderToFile(C:\SomeFile.txt);
17}
18</script>
<%@AssemblyName=”SchemaExplorer”%>
<%@AssemblySrc=”MySourceFile.cs”%>
<%@ImportNamespace=”SchemaExplorer”%>

HttpResponse..::.OutputStream属性

启用到输出 HTTP 内容主体的二进制输出。

示例

<!—->

下面的示例调用 Save 方法将一个 Bitmap 对象保存到 OutputStream 属性中,并将图像转换为 JPEG 格式。然后,代码调用 Bitmap 对象和 Graphics 对象的 Dispose 方法,释放它们正在使用的资源。最后,代码调用 Flush 方法将响应的内容发送到请求客户端。

有关完整示例,请参见 HttpResponse 类。

Visual Basic
<%@ Page Language="VB" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Drawing.Drawing2D" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

   Private Sub Page_Load(sender As Object, e As EventArgs)
      ' Set the page's content type to JPEG files
      ' and clear all response headers.
      Response.ContentType = "image/jpeg"
      Response.Clear()

      ' Buffer response so that page is sent
      ' after processing is complete.
      Response.BufferOutput = True

      ' Create a font style.
      Dim rectangleFont As New Font( _
          "Arial", 10, FontStyle.Bold)

      ' Create integer variables.
      Dim height As Integer = 100
      Dim width As Integer = 200

      ' Create a random number generator and create
      ' variable values based on it.
      Dim r As New Random()
      Dim x As Integer = r.Next(75)
      Dim a As Integer = r.Next(155)
      Dim x1 As Integer = r.Next(100)

      ' Create a bitmap and use it to create a
      ' Graphics object.
      Dim bmp As New Bitmap( _
          width, height, PixelFormat.Format24bppRgb)
      Dim g As Graphics = Graphics.FromImage(bmp)

      g.SmoothingMode = SmoothingMode.AntiAlias
      g.Clear(Color.LightGray)

      ' Use the Graphics object to draw three rectangles.
      g.DrawRectangle(Pens.White, 1, 1, width - 3, height - 3)
      g.DrawRectangle(Pens.Aquamarine, 2, 2, width - 3, height - 3)
      g.DrawRectangle(Pens.Black, 0, 0, width, height)

      ' Use the Graphics object to write a string
      ' on the rectangles.
      g.DrawString("ASP.NET Samples", rectangleFont, SystemBrushes.WindowText, New PointF(10, 40))

      ' Apply color to two of the rectangles.
      g.FillRectangle( _
          New SolidBrush( _
              Color.FromArgb(a, 255, 128, 255)), _
          x, 20, 100, 50)

      g.FillRectangle( _
          New LinearGradientBrush( _
              New Point(x, 10), _
              New Point(x1 + 75, 50 + 30), _
              Color.FromArgb(128, 0, 0, 128), _
              Color.FromArgb(255, 255, 255, 240)), _
          x1, 50, 75, 30)

      ' Save the bitmap to the response stream and
      ' convert it to JPEG format.
      bmp.Save(Response.OutputStream, ImageFormat.Jpeg)

      ' Release memory used by the Graphics object
      ' and the bitmap.
      g.Dispose()
      bmp.Dispose()

      ' Send the output to the client.
      Response.Flush()
   End Sub 'Page_Load

</script>
<html  >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

<%@ Page Language="C#" %>
<%@ import Namespace="System.Drawing" %>
<%@ import Namespace="System.Drawing.Imaging" %>
<%@ import Namespace="System.Drawing.Drawing2D" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    private void Page_Load(object sender, EventArgs e)
    {
        // Set the page's content type to JPEG files
        // and clear all response headers.
        Response.ContentType = "image/jpeg";
        Response.Clear();

        // Buffer response so that page is sent
        // after processing is complete.
        Response.BufferOutput = true;

        // Create a font style.
        Font rectangleFont = new Font(
            "Arial", 10, FontStyle.Bold);

        // Create integer variables.
        int height = 100;
        int width = 200;

        // Create a random number generator and create
        // variable values based on it.
        Random r = new Random();
        int x = r.Next(75);
        int a = r.Next(155);
        int x1 = r.Next(100);

        // Create a bitmap and use it to create a
        // Graphics object.
        Bitmap bmp = new Bitmap(
            width, height, PixelFormat.Format24bppRgb);
        Graphics g = Graphics.FromImage(bmp);

        g.SmoothingMode = SmoothingMode.AntiAlias;
        g.Clear(Color.LightGray);

        // Use the Graphics object to draw three rectangles.
        g.DrawRectangle(Pens.White, 1, 1, width-3, height-3);
        g.DrawRectangle(Pens.Aquamarine, 2, 2, width-3, height-3);
        g.DrawRectangle(Pens.Black, 0, 0, width, height);

        // Use the Graphics object to write a string
        // on the rectangles.
        g.DrawString(
            "ASP.NET Samples", rectangleFont,
            SystemBrushes.WindowText, new PointF(10, 40));

        // Apply color to two of the rectangles.
        g.FillRectangle(
            new SolidBrush(
                Color.FromArgb(a, 255, 128, 255)),
            x, 20, 100, 50);

        g.FillRectangle(
            new LinearGradientBrush(
                new Point(x, 10),
                new Point(x1 + 75, 50 + 30),
                Color.FromArgb(128, 0, 0, 128),
                Color.FromArgb(255, 255, 255, 240)),
            x1, 50, 75, 30);

        // Save the bitmap to the response stream and
        // convert it to JPEG format.
        bmp.Save(Response.OutputStream, ImageFormat.Jpeg);

        // Release memory used by the Graphics object
        // and the bitmap.
        g.Dispose();
        bmp.Dispose();

        // Send the output to the client.
        Response.Flush();
    }

</script>
<html  >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>