装配中的脑袋

用程序装配大脑,再用大脑装配程序
随笔 - 118, 评论 - 1214, 引用 - 11

导航

工具

关于

如果想发较大的信件,请用Ninputer @ gmail.com

不要在我的Blog评论中张贴广告,除非同意向我付款。

标签

每月存档

广告



访客

 

关键字:VB8.0 VB.NET VB2005 My namespace

Visual Basic不同于Visual C#、Visual C++之处在于它更偏重于快速开发,更针对非专业开发人员和编程新手。Visual Basic 2005这次提供的“My”是一个极为出色的设计,可以帮助开发人员快速利用.NET Framework中的各种功能进行开发。说到My到底是什么,其实它就是一个工程相关的命名空间,其中的内容是由IDE帮助你组织的。

在My出现以前,.NET Framework已经具有强大而丰富的类库,学习这些类库算不上是一件轻松的事。许多VB或VC的开发者第一次接触到.NET开发时,总是习惯于自己实现或通过调用Windows API实现某些.NET早已准备好的功能。其原因就是.NET类库太庞大太分散了,许多常用的功能与那些不太常用的功能混在一起。比如,获得从当日零点开始的毫秒数的方法(经常被用来做随机数的种子)竟然与设置环境变量功能同在Environment类中,而不是“看上去像是”的System.Timers、TimeSpan或DateTime等命名空间或类型中。许多开发者对类库不熟悉,于是就一遍又一遍地重复开发.NET Framework的功能。Visual Basic Team为了解决这个问题,设计了My命名空间,它将.NET Framework中最常用的功能挑出来,然后按照最容易理解的逻辑结构存放在一起。当你深入My命名空间,你会发现那些功能就在你凭直觉就能想象到的路径中。

My命名空间在当前版本中主要包含My.Application、My.Computer、My.Resources、My.User、My.Forms和My.Webservices等六个主要部分。你可以输入My关键字找到他们,也可以导入My命名空间,其语法是:

Imports 项目名称.My

在My命名空间中的所有类或对象中,My.Application是与当前运行的应用程序有关的对象,本次首先来介绍My.Application。My.Application提供的功能非常丰富,比如当前应用程序的主线程、主窗口、版本或公司版权等信息、文化和语言设置、路径及命令行、事件日志甚至Splash Screen的信息。下面的表格列出了My.Application的全部功能。

My.Application 成员 描述
ApplicationContext 应用程序的上下文,包括主线程和主窗体的信息
AssemblyInfo 程序集信息,包括版本、版权、标题、产品名称和可执行名称等
ChangeCurrentCulture 改变应用程序当前文化设置,如货币和时间的格式
ChangeCurrentUICulture 改变应用程序当前的用户界面文化设置,如显示语言和用词
CommandLineArgs 一个只读集合,返回当前应用程序的命令行参数。这些参数已经分隔开,无须像原来那样手工分隔Command函数的值了。
CurrentCulture 返回当前的文化设置
CurrentDirectory 返回应用程序使用的当前目录
CurrentUICulture 返回当前的用户界面文化设置
Deployment 返回按照ClickOnce方法部署的应用程序的Deployment对象
DoEvents 执行储存在Windows消息队列中的所有Windows消息
Exit 退出应用程序
GetEnvironmentVariable 通过环境变量的名字获取环境变量的值
IsNetworkDeployed 返回一个值,指示当前应用程序是否采用了网络部署方式
Log 一个记录应用程序事件日志和异常的日志工具
MainForm 当前应用程序的主窗体
OpenForms 当前应用程序中所有已经打开窗体的集合,与VB6的Forms集合功能相同
Run 启动Visual Basic的启动/关闭应用程序模式
SplashScreen 返回当前应用程序作为Splash Screen的窗口

可以注意到,My.Application中的某些功能和Application对象是一样的,但是My.Application不仅仅能用于Windows Form的应用程序,许多功能在控制台应用程序照样能够使用。下面举几个简单的例子来使用My.Application:

1、显示一个简单的关于窗口。

With My.Application.AssemblyInfo
    Dim msg As New System.Text.StringBuilder
    msg.AppendLine("Protuct Name: " & .ProductName)
    msg.AppendLine("Company Name: " & .CompanyName)
    msg.AppendLine("Version: " & .Version.ToString)
    msg.AppendLine("Description: " & .Description)

    MsgBox(msg.ToString, MsgBoxStyle.Information, "About " & .Title)
End With

2、将当前打开的所有窗口的标题都改为环境变量%TITLE%的值

For Each f As Form In My.Application.OpenForms
    f.Text = My.Application.GetEnvironmentVariable("TITLE")
    DoEvents() '也可以写成My.Application.DoEvents()
Next

3、检查如果从网络上部署,修改当前用户界面文化设置为英语-美国

If My.Application.IsNetworkDeployed Then
    My.Application.ChangeCurrentUICulture("en-US")
End If

还有很多很多不同的用法,大家可以亲自试试。有了My.Application,设置和获取应用程序信息变得非常容易和有趣。这才是使用Visual Basic真正的感觉。

下期预告

和计算机硬件系统有关的My.Computer


随贴广告(测试期)
相关文章

打印 | 张贴于 2004-07-18 13:49:00 | Tag:技术随笔  Visual Basic 2005 新功能点评

留言反馈

re: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
My是挺不错的,方便。可惜刚看到这个消息的时候,以为是新增的类库,赶紧跑C#里找去了……为什么C#不也弄一个这玩意??
2004-09-09 04:31:00 | [匿名用户:Kriss]
re: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
哦~

但如果My namespace开源的话,可以用C#写个IDE的Add in来实现其功能

2004-07-22 08:46:00 | [匿名用户:[ IceSharK - PP.Poet ]]
re: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
My.Forms和My.WebServices不是类库,而是IDE自动生成的代码。因此他是和你的项目内容息息相关的。如果你要照此结构写,那你得针对每一个项目写一个,那简直就失去了做这件事的意义。
2004-07-22 08:35:00 | [匿名用户:Ninputer]
re: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
如果My namespace效果好的话

那就按它的Architecture用C#克隆,复写一个吧

My.Forms和My.WebServices等等都能用了嘛
2004-07-21 21:05:00 | [匿名用户:[ IceSharK - PP.Poet ]]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
@rIPPER
My.Application的功能C#可以用,但需要自己写代码;My.Computer的所有功能都已经放到System命名空间或其子空间中,C#可以自由使用;My.Resource在C#中不能用,但有替代方案;My.Forms和My.WebServices在C#中是完全无法使用的。
2004-07-20 08:14:00 | [匿名用户:Ninputer]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
我想这样的抽象对于许多不关心底层的程序员还是挺有用的,他们忽略许多繁杂的细节(许多高手经常炫耀的东西)而专注于软件的功能。而且即使被封装的底层细节发生了变化,对于上层来说影响也不会很大。
2004-07-19 15:35:00 | [匿名用户:SpiderMan]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
嘿嘿,C#应该一样也可以用,沾光啦 ;)
2004-07-19 14:55:00 | [匿名用户:rIPPER]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
@zJH135
重组是主要的,增加是次要的。但你认为创意不够的话你可以试试完成My的所有功能而不用My是什么样的,你得多写10%-200%的代码来完成同样的任务。
比如My.Forms的功能。BTW:My是命名空间,不是类
2004-07-19 12:27:00 | [匿名用户:Ninputer]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
最新的版本是 2004.7.13.11

还没来得及做 文档 给你发的是旧的 大概意思是一样的

2004-07-19 11:34:00 | [匿名用户:[ IceSharK - PP.Poet ]]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
我发到你邮箱里了
2004-07-19 11:32:00 | [匿名用户:[ IceSharK - PP.Poet ]]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
不知MY类是不是对NET FRAMEWORK部分功能的重新组织,如果是,我想这个并不是什么功能增加,更不用说是什么创意,那是在原有NET基础上的‘欺骗’。
2004-07-19 08:47:00 | [匿名用户:zJH135]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
@IceShark
在哪里?我能看看吗?不过My不仅仅是一个类库,例如My.Resource、My.Forms和My.Webservices等的功能都不是书写类库能够达到的。
2004-07-19 08:33:00 | [匿名用户:Ninputer]
回复: Visual Basic 2005新功能点评(十四)——My命名空间之My.Application 编辑
我也写了一个ClassLibrary

想法和My namespace一样

都是为了方便,补漏(FCL并不是封装了API的所有功能)
2004-07-18 22:55:00 | [匿名用户:[ IceSharK - PP.Poet ]]
博客主人设置本博客不允许匿名用户发表言论,请登录后再试

Powered by: Joycode MVC Blogger System