ASP.NET 2.0网站专案同时使C#与VB.NET之技巧(新书连载)

news/2024/4/27 9:16:46/文章来源:https://blog.csdn.net/softstars/article/details/2263542

ASP.NET 2.0网站专案同时使C#VB.NET之技巧(新书连载)

你知道专案ASP.NET 2.0网站要如何同时使用C#VB.NET两种语言及多组件的技巧吗?

 

节录自【圣殿祭司的ASP.NET 2.0专家技术手册】新书

  在以往VS.NET 2002VS.NET 2003Visual Studio工具本身不支援多个组件档(Assembly),也就是专案编译后只会产生一个.dll组件,而一个组件只允许包含一种语言(因为系统会呼叫对应C#VB编译器进行编辑),因此在同一个专案中要使用两种语言是办不到的;但是在VS 2005因为专案支援多个组件,所以利用这个特性就可以同时使用两种以上的语言如C#VB.NET,因此.cs.vb的类别在专案中就可以直接拿来使用,直接就可以new instance,并不需要先编译成.dll档再加以引用,如此对于许多公司或程式设计师弹性变大了,算是一大福音。

   至于专案支援多个组件是如何办到的?在前面有提到ASP.NET中有许多内建特殊资料夹,如APP_CodeApp_GlobalResources等等,只要归类在这些资料夹的档案在编译时就会产生独立的组件,各位可以建立一个专案进行测试,加入类别档、资源档、Web Services等等,最后再用aspnet_comipler.exe先行编译后,再检查编译后目标路径的bin目录,里面同时包含好几个.dll档就是证据。

范例2-12 专案同时使用C#VB类别程式
而利用多个组件的原理,在VS 2005专案中可以同时使用C#VB类别程式,但仍必须遵守一些程序及技巧来达成,当然这必须祭司传授给你才行得通。


2-54 多语言专案执行画面



上面的directoryName 是对应下一个步骤csvb是所要加入的目录名称。

Step 3
:在App_Code建立C#VB目录分隔
(1)
请在网站按滑鼠右键选择【属性页】说i加入ASP.NET资料夹】诳[入「App_Code」资料夹。
(2)
接着在App_Code资料夹底下加入「CS」及「VB」两个资料夹,以作为C#VB类别各自存放的目录。



2-55 建立不同语言目录



Step 4
:加入C#VB类别程式
(1)
请在CS资料夹中加入C#类别,CSharpObject.cs类别程式如下:
01 using System;
02 public class CSharpObject
03 {
04
  public string Hello()
05
  
{
06
   
return "Hi...C#";
07
  
}
08 }

(2) 
请在VB资料夹中加入VB类别,VBObject.vb类别程式如下:

01 Imports Microsoft.VisualBasic
02
03 Public Class VBObject
04
  Public Function Hello() As String
05
   
Return "Hi...VB"
06
  
End Function
07 End Class

Step 5
:使用类别程式

请在「呼叫C#类别」及「呼叫VB类别」两个按钮加入Click事件程式:
01 //
呼叫C#类别
02 protected void btnCSharp_Click(object sender, EventArgs e)
03 {
04
  CSharpObject myCSharpObject = new CSharpObject();
05         txtMsg1.Text = myCSharpObject.Hello();
06 }
07
08 //
呼叫VB类别

09 protected void btnVB_Click(object sender, EventArgs e)
10 {
11
  VBObject myVBObject = new VBObject();
12         txtMsg2.Text = myVBObject.Hello();
13 }
程式说明:

完成后请执行看看,各位可以看到MultiLang.aspx程式的确同时使用了C#VB两种语言,并且可以直接在C#中直接呼叫VB类别产生实体;不过当然以上程式只是示范性质,您可以在类别中建构更为复杂的程式(如ADO.NET或其他)。

注:
(1)
VS.NET 2003若您专案必须使用多个组件,虽说Visual Studio本身不支援,但您可以使用Assembly Linker(AL.exe)手工来达成,并非.NET不能做。
(2)
同时使用C#VB类别程式,并非是指在同一个类别中可以穿插混合使用两种语言,如1,3,5行使用C#2,4,6行使用VB,倘若如此只会造成天下大乱。
(3) VS.NET 2003
不支援多组件多语言,而VS 2005支援,这反映出真实世界中企业或许多专业人士向微软反映需要这个功能,微软才会顺应民意加入这项技术,故大家应平心来看待这项技术,不能因自身反对或没需要,径而推论他人也不需要这项技术,或视之为洪水猛兽。
(4)
在这只是告知各位VS 2005中要如何使用两种语言,至于一个专案是否应该同时使用C#VB两种语言,它有实际面、策略面与意识型态面的议题,故要不要用则是必须贵公司或专案视本身需求去评量决策,祭司不表意见。

此外祭司要提出一个思考点,上面理论的确很精采没错,也确实能够正常执行运作,但是如何证明VS 2005真的会产生多个组件?若不能证明的话就像神学中说有神有存在,信者恒信,不信者恒不信,而比例可能各占一半;然而要证明它有点困难,因为不晓得各位有没有发现在VS 2005建置编译网站后,并不会像VS.NET 2003在专案所在路径下的Bin目录中产生一个dll组件,所以根本没法察看是否有多个组件,那怎办?嗯~还记得前面介绍过aspnet_compiler.exe先行编译这个工具吗?在此利用这个工具编译「VS2005IDE」专案,指令如下:
Aspnet_compiler –v 02VS2005Advance C:/TMP02/VS2005Advance

将编辑过后的专案会输出到C:/TMP02/VS2005Advance,接着到该路径下的Bin目录可以发现确实依目录而产生App_Subcode_cs.dllApp_Subcode_vb.dll两个组件,如此便能够证明祭司所言属实,大家该全部得信了吧!



2-56 先行编译后的多个组件(点图放大)


  即便专案没有同时混用VBC#两种语言的需求,是否这个技巧就没有其他附加价值呢?还是可以利用相同的原理技巧做出多个组件,而不必每次都叫用一个很庞大的dll组件,如此不但系统略为笨重,且又会非常耗用资源,故若专案程式十分庞大者可以利用这个技巧来产生多个组件,有意义的分解成多个较小组件可以求得更佳的系统效能。

节录自【圣殿祭司的ASP.NET 2.0专家技术手册】新书

 

 
请参考MultiLang.aspx程式,以下是步骤说明:
Step 1
:引用Microsoft.VisualBasic命名空间
若果C#专案中有使用到VB.NET的相关功能,请自行加入相关命名空间的参照,以及在VB.NET程式中Import命名空间。

Step 2
:设定Web.configC#VB目录分隔
请在Web.config档中加入下列设定:


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_871427.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帮程序员减压放松的10个良心网站

原文链接 程序员们工作之余,不妨放下微博跟朋友圈,今天推荐的网站,利用代入感强的图片与音频,迅速帮你抹平焦虑,获得平和心态,特别献需求改千遍的程序员们。 1.Calm 这是同类型中最火的网站了,站…

云服务器网站没有被百度和google收录或者收录少怎么办?

原文链接 各位小伙伴: 最近有用户反馈云服务器网站被搜索引擎收录的问题,整理处理方案如下,大家可以参考下。 一、对于百度收录:为了避网站服务器更换导致网站收录异常的问题,建议站长按照以下步骤处理&#x…

草根站长心酸路:你的网站后来怎么样了?

原文链接 作为一个站长,下面这些你一定都懂: 1、没有资金,连空间都用免费的 2、没有技术,连域名都不知道怎样解析 3、没有人缘,碰到问题没有人能够帮助 4、受人鄙视,有时请教一些所谓的高手,等了…

seo优化:把百度放进数据库

seo优化:把百度放进数据库 有时候我想,能把百度的数据放进数据库,用广大程序员熟悉的sql语句查询百度的搜索结果应该是一个不错的主意。在这方面Google早已经跨出了一大步,利用Google Search API 把Google的搜索结果放进数据库是很容易办到得…

搜索引擎SEO外挂:一边搜索,一边看PageRank

搜索引擎SEO外挂:一边搜索,一边看PageRank 下载地址:多么乐站长工具 我原来曾写过一篇统计分析搜索引擎排名和Page Rank 关联分析 的文章。很多人引用,回复和我讨论了我的结论。有赞成的,有反对的,有鼓励的…

有感于全球首个网站恢复运行

甲:2003年的计算机历史博物馆 Fellow Awards 得主? 乙:是的,李斯。 甲:李斯?不是2000年前的秦国宰相么? 乙:此李斯非彼李斯。不过这位李斯和我国秦时的宰相李斯千秋之功可比。 甲…

网站推荐机制中的艺术、科学与商务问题

网站推荐机制是电子商务或内容网站的核心功能之一。例如你在一个网站买了一本书后,网站会推荐其他你可能会感兴趣的书。这被认为是亚马逊等电子商务巨头成功的关键。本文对几个出色的推荐系统进行了较透彻的分析。 2006年10月,Netflix搞了一次不寻常的有…

实际采用 FleaPHP 的网站

下面都是采用 FleaPHP 框架开发的网站列表,如果发现无效连接请在留言。 如果你有采用 FleaPHP 开发的网站,并且愿意公开网址,可以发邮件到 dualface (at) gmail.com 需要提供的信息包括网站名称和连接地址,以及简单的介绍文字。 云…

Google 联合一些社交网站来对抗 facebook

谷歌 (Google) 将与其它一些行业领先的社交网站联手,共同对抗互联网新贵Facebook。  谷歌将于周四推出一个通用标准集 ( OpenSocial ),允许软件开发者为谷歌旗下社交网站Orkut,以及LinkedIn、hi5、Friendster、Plaxo和Ning等其它社交网站…

从“奥运门票网站800万访问量”想到的成本、质量、进度、风险等关系

看到这个新闻后颇有一番滋味,更体验到我一直关注的软件性能着实无处不在,这个案例也确实值得我们好好反思一下。 不知道网友们有没有报名参加国际日语考试的——这个网站每年05年前都有人不能报名,因为报名人数太多,所以报名当日大…

电信网通证实台湾地震影响内地访问国际网站(12月27日)

电信网通证实台湾地震影响内地访问国际网站 http://www.sina.com.cn 2006年12月27日 09:39 东方网 中国国际海底光缆网络 中美六家运营商正在共同建设连接中国和美国的兆兆级海底光缆系统——跨太平洋直达光缆系统 东方网讯 12月27日消息,从今日凌晨起&#xff0c…

Red Hat推出”MugShot”社交娱乐网站

网址: http://mugshot.org/ Red Hat近来推出”MugShot”网站, MugShot是一个致力于在线社交娱乐的开源项目. 它提供了更方便的网页和音乐分享. 当前MugShot处于测试阶段, 只提供邀请帐号. 你可以从这里申请. 更多信息见常见问题和开发主页. 欢迎任何问题和建议.

No ‘Access-Control-Allow-Origin‘ header is present on the requested resource解决+网站部署友盟统计

今天上社团整的论坛app的网页版的时候,因为老学长给我发的是域名,没有加http和https的,我直接复制到URL地址的时候,发现页面也是正常显示,但是发现登陆的时候出了报错。 看了下报错并且百度一下貌似是跨域&#xff0c…

付费DDoS服务——18岁以色列黑客运营“vDos”网站被捕

看到最后忍不住笑了 被自己的东西坑到简直防不胜防 少年运营“vDos”服务不正当牟利 报道称,两名18岁的少年要对15万起 DDoS攻击负责,他们基于此两年内牟利价值约60万美元的比特币。他们的服务可称为vDos,向目标网站发起DDoS攻击。vDos每起攻…

为何大量网站不能抓取?爬虫突破封禁的6种常见方法 - 转载

传送门:http://www.cnblogs.com/junrong624/p/5533655.html 在互联网上进行自动数据采集(抓取)这件事和互联网存在的时间差不多一样长。今天大众好像更倾向于用“网络数据采集”,有时会把网络数据采集程序称为网络机器人&#xff…

【20210727】图说全球网站数量及服务器市场份额

2021年07月27日 作者:小蒋聊技术 大家好,欢迎来到小蒋聊技术。小蒋准备和大家一起聊聊技术的那些事。 小蒋记得雷军曾经说过一句话,那就是“站在风口上,猪都能飞起来”。这句话后来成为了很多创业者引用的名言。这也就解释了为什…

一文学会使用selenium, 并实现登录挂英语网站不掉线

本文用于快速入门或者复习selenium的webdriver但不讲解如何安装selenium以及ChromeDriver 先教一些简单功能,各函数功能在注释里 from selenium import webdriver import time#访问百度首页 first_url http://www.baidu.com print("正在访问%s" % (fir…

Google 联合一些社交网站来对抗 facebook

谷歌 (Google) 将与其它一些行业领先的社交网站联手,共同对抗互联网新贵Facebook。  谷歌将于周四推出一个通用标准集 ( OpenSocial ),允许软件开发者为谷歌旗下社交网站Orkut,以及LinkedIn、hi5、Friendster、Plaxo和Ning等其它社交网站…

搜索引擎SEO外挂:一边搜索,一边看PageRank

搜索引擎SEO外挂:一边搜索,一边看PageRank 下载地址:多么乐站长工具 我原来曾写过一篇统计分析搜索引擎排名和Page Rank 关联分析 的文章。很多人引用,回复和我讨论了我的结论。有赞成的,有反对的,有鼓励的…