第一天本人大致在网上了解了一下vb.net,很惊喜的发现被我一直鄙视的vb,居然没停止过更新,不愧是bill所偏爱的语言,也很惊喜滴发现vb.net是面向对象滴。wonderful。
今天正式学习vb.net。欲善其事必先利器,在公司server上找到visual studio 2010,一路next成功。在安装vss 2005。去公司的SCM里下载了一份简单的vb.net web开发的项目。下到本地后,点击solution,加载到visual studio 2010,这里要注意可能会出现.net framework版本问题,不要选择visual studio 2010提示中的老版本.net framework,选择最新滴。本人在这里吃了亏,搞了几次,最后请教同事搞定。
当能在 visual studio 2010看到公司的项目,cool,two eyes into the black,完成不知道咋把这个项目run起来。
不过看这公司的vb.net代码,层次很清晰,仿佛回到java mvc模式下。 那怎么run起来呢,请教同事,哦,原来如此:
1.找到web 页面那个包(java的理解,.net的没去研究),右键publish。
2.输入页面url,搞定。
搞定后,我对着login页面,查看运行流程,其实也和java web开发一样,loginaction--》databaseservicce--》bean--》forward page。很经典的MVC。
项目成功跑起来,在去看了下代码,恩不错,vb.net的语法很有结构感也很简单。看了下,有点跃跃欲试啦,要实践在实践,这是我学习技术的方法。先动手写一段吧。
咋写呢,看到公司的vb.net资料,决定依葫芦画瓢,写个windows form的login窗体。
1. visual studio 2010 --》file--》new project--》visual basic --》windows form application,起个helloworld吧。
靠靠, visual studio 2010 可视化太爽了。
2.画个login窗体,有2个属性name ,passwrod,一个button。这时项目工程会生成Login.vb 里面包含Login.Designer.vb和Login.resx.看字面就知道是啥用途了。
注意text 框 的name=""里好像不能命名为name="name" ,如果这样命名的话,Login.Designer.vb会出现错误,貌似name是关键字了。没去深究。
3.但双击button时,IDE会帮组我们创建一个click listener。绝大部分C/S都是监听和响应,windows form也是一样滴。生成的代码
End Sub
呵呵,看到个不懂的语法,Sub , ByVal ,As ,Handles. OK,让我们去google吧。google后大体了解:
Sub 和 Function 是两口子。区别就是Sub是过程,Function是函数,Sub无返回值,而Function可以有返回值。
ByVal 和ByRef 也是两口子。ByVal 是传值,拷贝内存的值。 ByRef是传引用,传递指针。
As 声明类型
Handles 句柄。
有事,未完待续。。。
10分钟后,I'm back...
不过有个问题,winForm里没有直接password输入框,咋办呢,在properties里看到个PasswordChar,设置为*。 搞定。
搞定了以上这些,该现实一些业务逻辑了。来个简单的输入值后,在button click事件里进行判断。
那怎么获取文本框的值,呵呵很简单文本框name属性.Text. 如:Txb_name.Text . Very simple...
那vb.net的if语法是咋样呢,忘记提了vb.net的语言绝大部分是以大写字母开头,不过不需要担心大小写,visual studio2010帮我们搞定了,在感叹一下IDE的强大。
if的语法:
MsgBox("name and password must be not empty!")
Else
If CheckLogin(Txb_name.Text, Txb_psd.Text) Then
Debug.Print("debug..")
Console.WriteLine("hello world !")
Else
MsgBox("name or password is invalid!")
End If
End If
看看其结构很清晰,具体语法就是
If ..then
Else
End If
如果我们是多个条件一起判断,语法是怎么样的呢?原以为会有&& 和 ||,但是没有,之后去google,大家没事就去google下。
有 And , Or 来连接多个条件的判断。
看到上面的判断语句,会发现CheckLogin(Txb_name.Text, Txb_psd.Text)这条,也许会想这是vb.net自带的函数吗,呵呵,不是滴。菜鸟涛也搞了好几年的面向对象,自己去封装下。虽然封装是个很大的概念,但逃脱不了封装方法,对象引用,数据。
那就看看 CheckLogin的代码:
If StrComp(USER, uname) = 0 And StrComp(PSW, pswr) = 0 Then
Return True
End If
Return False
End Function
ok,会发现使用Function,这里就有return。
那USER 和 PSW在那里呢,菜鸟阶段还没学到使用数据库,只能先定义2个常量了。
vb.net的常量语法是使用Const,constant的缩写。
代码
Const USER AsString="xxx"
Const PSW As String = "xxx"
ok,现在我们可以run起来了,那怎么才能看到打印的hello world。
这里需要在visual studio2010: Debug--》windows--》Output 。
哈哈,这样大体完工了。
下个星期准备学习怎么在几个winForm里切换 。
Persist