用 Google 搜寻。如用 ”WebBrowser” 为关键词搜索,共有 7 , 260 , 000 项查询结果 。
CSDN 论坛 搜索。导航到
CSDN 文档 搜索,导航到
在实际编程中遇到困难,还可以到 CSDN 论坛 提问,寻求帮助。tuenhai就曾在 CSDN 论坛 问了不下十个有关 WebBrowser 有关问题,并都得到了解答。
由于善于运用以上三步, 1 个半月时间,tuenhai的软件基本出炉, VB 编程也已基本入门。
在学习 VB6 的同时自然接触到 Microsoft Visual Studio .NET (简称 VS.NET )。在十年之前, Visual Basic 1.0 成为数以百万计的开发人员的革命性的应用程序开发语言。现在, Visual Studio .NET 为未来的十年做好了准备(有点象为 Microsoft 打广告,你说呢), VS.NE 是用于创建下一代应用程序的理想而又现实的开发工具,是一个从一开始就是为 XML Web 服务创建的开发环境。通过允许应用程序通过 Internet 沟通和共享数据, XML Web 服务使业务能够从 Internet 转换为用于集成和传送它们的核心商业价值的真正平台。 Visual Studio .NET 和 XML Web 服务提供简单、灵活、基于标准的模型,允许开发人员从新的和现有的代码汇编应用程序,而与平台、编程语言或对象模型无关。
VS.NET 2003 中主要有包含以下几种开发工具:
Visual Basic .NET 2003
Visual C# .NET 2003
Visual C++ .NET 2003
Visual J# .NET 2003
有人说,“学习要面向未来 ”,2003年12月,tuenhai的主要开发工具从 VB6 转为 VB.NET , 2004年1月1日 ,tuenhai把新开发的软件从 VB6 升级为 VB.NET ,并正式命名为“论坛发帖软件工具下载版”(又叫“论坛自动发贴软件”,“论坛自动发帖器”,“论坛批量发帖软件”,“论坛自动发贴工具”,“论坛快速发帖器”,“论坛发贴机”,“论坛快速发帖器”) ( 如果你要在网上推广你的产品,记得来找tuenhai ) 。
在转向 VB.NET 的时候,tuenhai考虑:
第一. VS.NET 的本质是什么?
VS.NET 是从一开始就是为 XML Web 服务创建的开发环境。通过允许应用程序通过 Internet 沟通和共享数据, XML Web 服务使业务能够从 Internet 转换为用于集成和传送它们的核心商业价值的真正平台。
学习要面向未来,就要学习最新的技术,现在的学习为将来的应用作铺垫。tuenhai的软件要突出两点,一是基于 Internet 的应用,二是要应用 XML 技术。这样,tuenhai就可以在应用中尽快掌握新技术,否则,只是为学习而学习,无疑会是比较枯燥,也容易遗忘。
第二.原来用 VB6 写的”论坛发帖软件工具下载版”,主要用到 WebBrowser 控件,网页加载速度慢,会下载图片, Flash 等许多不需要的东西,在 VS.NET 中可考虑用其他方法实现同样功能。
在 CSDN 诸位朋友的帮助下,并参考许多资料,tuenhai的“论坛自动发贴机”已基本具备 .NET 特征。代码举例:
1. “论坛自动发贴机器”应用了 XML 技术
VB6 中, INI 文件通常用来保存系统信息、配置信息,读写 INI 文件要用到 API 函数,使用起来不是很方便。在 VS.NET 中,已经没有必要用 INI 文件来保存和读取一些信息了,可以改用 VS.NET 中的读写 XML 文件的类。而且,在 VS.NET 2003 的后续版本中,处理 XML 有关功能将得到进一步增强。
读取 XML 到 DataGrid 代码:
Public MyXMLDataSet As New DataSet(“XMLDataSet”)
’ DataSet 是数据的一种内存驻留表示形式,无论它包含的数据 ’ 来自什么数据源,它都会提供一致的关系编程模型。
MyXMLDataSet.ReadXml(“regid.xml”) ’ 读入 XML 文件
form1.DefInstance.DataGrid1.DataSource = MyXMLDataSet ’DefInstance 是 form1 的共享属性
strName = MyXMLDataSet.Tables(0).Rows(0).Item(“name”).ToString ’ 从 DataGrid 中读取用户名信息。
从 DataGrid 更新信息到 XML 文件代码:
Dim MyXmlDataSet As DataSet
MyXmlDataSet = CType(DataGrid1.DataSource , DataSet) ’ 类型转换
MyXmlDataSet.WriteXml(“regid.xml”) ’ 把信息写入 XML 文件
如果不用 DataGrid 控件,读写 XML 文件中特定信息可以更简单:
Dim xmlInfo As New XmlDocument
xmlInfo.Load(“info.xml”) ’ 载入 XML 文件
Dim str As string=xmlInfo.Item(“RegInfo”).Item(“name”).InnerText ’ 用 ”Item” 可以逐级往下读数据
xmlInfo.Item(“RegInfo”).Item(“pass”).InnerText=“MyPass”
xmlInfo.Save(“info.xml”) ’ 保存信息到 xml 文件
tuenhai原来打算用 INI 格式来保存“论坛自动发帖机”的注册信息和发言信息,但是,一则读写 INI 不是很方便,二则 XML 在软件开发中越趋重要,于是一开始就用 XML 文件来保存有关信息。在刚接触 VS.NET 时本不知 XML 为何物,现在可自如在“论坛发贴软件工具”读写 XML ,是否有点 ” 高手 ” 的感觉呢?(陶醉一下先)
2. 用 HttpWebResponse 相关类 GET 和 POST 信息
用 GET 方式读取网页源代码:
Dim httpReq As System.Net.HttpWebRequest ’HttpWebRequest 类对 WebRequest 中定义的属性和方法提供支持,也对使用户能够直接与使用 HTTP 的服务器交互的附加属性和方法提供支持。
Dim httpResp As System.Net.HttpWebResponse
Dim url as String=“
Dim httpURL As New System.Uri(url)
httpReq = CType(WebRequest.Create(httpURL) , HttpWebRequest)
httpReq.Method = “GET”
httpResp = CType(httpReq.GetResponse() , HttpWebResponse)
Dim reader As StreamReader = _
New StreamReader(httpResp.GetResponseStream , System.Text.Encoding.GetEncoding(“GB2312”)) ’ 如是中文,要设置编码格式为 ”GB 2312” 。
Dim respHTML As String = reader.ReadToEnd() ’respHTML 就是网页源代码
httpResp.Close()
向服务器 POST 信息:
Dim httpUrl2 As New System.Uri(“
Dim req As HttpWebRequest
req = CType(WebRequest.Create(httpUrl2) , HttpWebRequest)
req.Method = “POST”
req.ContentType = “application/x-www-form-urlencoded”
Dim bytesData() As Byte = System.Text.Encoding.ASCII.GetBytes(“name=1&pass= 6” )
req.ContentLength = bytesData.Length
Dim postStream As Stream = req.GetRequestStream()
postStream.Write(bytesData , 0 , bytesData.Length) ’ 以上为向网络服务器 POST 信息
Dim res As HttpWebResponse = CType(req.GetResponse() , HttpWebResponse)
Dim reader As StreamReader = _
New StreamReader(res.GetResponseStream , System.Text.Encoding.GetEncoding(“GB2312”))
Dim respHTML As String = reader.ReadToEnd() ’respHTML 为 POST 后网络服务器返回的信息
MsgBox(respHTML) ’ 可用 MsgBox 查看返回的信息
res.Close()
3. 用正则表达式从网页源代码中提取网址
得到网页源代后,我们可以对源代码进行处理,比如提取其中的链接, Email 地址,图片地址, Flash 等等,这在论坛自动发贴软件工具中很有用。
Dim r As System.Text.RegularExpressions.Regex
Dim m As System.Text.RegularExpressions.MatchCollection
Dim respHtml As String = “http://www.NETsh.Net/subdomains/f_s_o.php?leibie=shangmao” ’ 以这个地址举例
strRegex = “http://([/w]+/.)+[/w]+(/[/w.?]+)+leibie[=]{1}[/w]+” ’ 用这个正则表达式可以提取上面地址。通用 ’ 的提取链接正则表达式为 ”http://([/w-]+/.)+[/w-]+(/[/w- https://blog.csdn.net/yanyuhongchen/article/details/?%&=]*)?” 。
r = New System.Text.RegularExpressions.Regex(strRegex , System.Text.RegularExpressions.RegexOptions.IgnoreCase)
m = r.Matches(respHTML)
Dim i As Integer
For i = 0 To m.Count - 1
MsgBox(m(i).Value)
Next i
四.掌握并利用大量网络资源来辅助 VS.NET 的学习,你将事半功倍。
现在tuenhai的“论坛自动发贴器下载版”已经用 .NET 全面改写,并用上继承,重载,多线程等,所有这些在 VB6 中能否实现,从 VB6 转到 .NET 是否明智?
从 2003 年 10 月开始学习 VB6 编程, 11 月半用 VB6 完成第 1 个软件——“自动发帖工具下载版”,到 2004 年 1 月 17 日 用 VB.NET 技术改写“论坛发贴工具下载版”。可算基本入门。原来没有一点编程基础,全部用的业余时间,没有当面请教一个老师。如果学得还算顺利的话,很大部分要归功于掌握并利用大量网络资源。下面列出tuenhai所掌握的 VS.NET 网络学习资源,有什么遗漏希望大家能指出。
1. 微软技术支持
在你学习 VS.NET 的过程中,有疑问首先要向 Microsoft 求助。如果你不懂得利用 Microsoft 提供的庞大的学习资源,tuenhai要告诉你,你舍近求远了。
( 1 )首先,你要安装 MSDN ,他比市面上所有的 VS.NET 书籍详细。tuenhai为了装 MSDN ,可是牺牲了tuenhai的 98 和 XP 双启动,改成 Windows XP 单系统。装了 MSDN 后,你要学习正则表达式, VS.NET 2003 中点击 ” 帮助 ” ,再点击 ” 搜索 ” ,然后输入 ” 正则 ” ,一回车,哇,找到 470 个主题,这下你慢慢研究吧。实在研究不透,也不用急,还有 Google 和 CSDN 呢。
( 2 )在线 Microsoft .NET 框架 SDK 快速入门教程(
( 3 ) 微软中国社区(
( 4 )在线 中文 MSDN (
为什么选择 VS.NET ,为什么看好 VS.NET ,看看 Microsoft 的 Help 文档有多详尽就知道了。如果你不去利用 Microsoft 提供的庞大的 Help 资源,是不是有点对不起盖茨呢!
2. CSDN
CSDN 号称中国最大的开发者网络,确实不假。tuenhai最常去的是 CSDN 的
文档(
论坛(
只要你善于利用搜索功能,你在开发中遇到的许多问题可在 文档 和 论坛 中找到答案。如果你在开发过程中遇到疑难,而你又认为 Bill Gates 帮不上你的忙,那么,你就上 CSDN 吧,一定会让你满意的。
教你两个绝招,第一招,是 ” 搜索大法 ” 。遇到问题,首先是在 CSDN 的 文档 和 论坛 进行搜索,看有无类似答案。如不行,再下一招。
第二招, ” 提问大法 ” ,只要有礼貌有诚意地在论坛提问,一定有许多人乐于回答你的问题。
3. 其他相关网站、专栏
有不少网站开辟 VS.NET 专栏,常去看看,必有收获。
太平洋开发特区 (
网猴教程连载
天极 的 Visual Studio.NET 专栏(
赛迪的 NET 专区(
CSDN 上 Latitude 的 VS.NET 专栏(
孟宪会之精彩世界(
博客园(
.net 博客(
博客堂(
北京希望电子出版社图书素材资料下载 (http://www.b-xr.com/bbs.htm )
清华大学出版社 VS.NET 源码下载 (http://www.wenyuan.com.cn/soft_index.asp)
还有tuenhai的小站
4. 国外编程学习资源
如果你的 E 文不错,不妨上 E 文网站去取经。