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

news/2024/4/27 9:17:20/文章来源:https://blog.csdn.net/chenzhiya/article/details/2287591

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_883344.aspx

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

相关文章

Coursera网站无法播放视频显示图片问题解决

Coursera网站无法播放视频显示图片问题解决 在线解析工具改变host文件cmd终端 因为最近在Coursera网站上学习吴恩达老师deep learning这门课程,但是我们在国内去上这个网站的时候其实是没有办法显示图片和视频的,因此在网上查阅相关内容之后,…

CSS制作简易花束网站首页(新手适用)

效果展示&#xff1a; 制作头部&#xff1a; 思路&#xff1a;在h1标题中加入颜色和不同字体大小等样式&#xff0c;在标题下加条下划线即可。 <header><h1><strong>浪漫の都</strong><em>___这一生只为与你相遇</em></h1><hr s…

在chrome中设置禁止访问的网站

如何在chrome中禁止访问某个网站&#xff1a; 点击右上角&#xff0c;一竖排点那个按钮&#xff1a; 2.选择“设置”&#xff1b; 3.左边选择“隐私与安全设置”&#xff1a; 4.选择网站设置最左边的小箭头&#xff1a; 5.点击这个&#xff1a; 6.找到禁止的地方&#…

PHP网站登录分发程序+无需申请登陆权限

简介&#xff1a; 申请一个Q互联登录权限后&#xff0c;可以分发给更多的网站使用&#xff0c;安装与配置请下载后打开readme.txt 发起登陆&#xff1a;域名/api.php?token&#xff0c;登陆之后会成功跳转到后台token对应的回调地址&#xff0c;会带着获取到openid回调。 下…

在线增加网站PV量单页源码

介绍: PV是什么想必想必站长们都知道是什么&#xff0c;所以我这里就不解释了&#xff0c;我看了下程序文件&#xff0c;核心文件是被加密的&#xff0c;但是不影响使用&#xff0c;加密类型是混淆加密&#xff0c;混淆加密是很好解的&#xff0c;如果你是在想要源文件&#x…

大型网站高并发处理Nginx+lvs

一.负载均衡 为啥会出现负载均衡 在海量并发的环境下&#xff0c;用户每一次请求服务器&#xff0c;都需要大量的创建线程&#xff0c;每一次的线程都必须分配资源&#xff08;CPU、内存、带宽、磁盘 IO等&#xff09;&#xff0c;当资源不足的时候就会使得服务器宕机而无法提…

“网络白痴”初学SEO成长经验心得

三个月前因为工作上的需要&#xff0c;开始接触网络知识。因为我的工作面对的是网站&#xff0c;负责对网站进行优化&#xff0c;所以在范围那么大的网络知识中只需要学习其中的一小部分就可以了。 网站优化在行业中叫做“seo”(Search Engine Optimization)汉译为搜索引擎优化…

我为什么要做个人网站——互联网乌托邦的理想

2019年3月6日夜&#xff0c;我在qq空间第一次公开我的个人网站。 这是我的第一个网站&#xff0c;不&#xff0c;现在它还不能算是一个网站&#xff0c;因为做好的&#xff0c;仅仅一个欢迎页面&#xff0c;而真正的网站&#xff0c;是要有更丰富的页面和内容的&#xff0c;这是…

电商网站--放大镜效果的实现

最近有做一个PC端的简单官网,主要是进行商品的展示,目前没有收藏,加入购物车,购买的功能,商品详情页有商品图片,各种详细信息的展示,原型上是没有放大镜的功能的,当时有空余时间,我就想着试试放大镜的效果吧,js可以实现,但是网上页有各种插件,不用白不用,那就用插件吧 // 1,,,…

编译安装nginx网站服务与虚拟主机配置

文章目录 一、Nginx简介二、编译安装Nginx&#xff0c;以及优化服务2.1、编译安装nginx2.1.1 xftp导入nginx依赖包2.1.2 yum安装依赖包2.1.3 解压软件包&#xff0c;并配置configure进行编译安装2.1.4 优化执行路径并创建不可登录的程序用户2.1.5 制作管理脚本 2.2 Nginx的访问…

一个小女孩是如何拯救全球第三大社交网站的?

很多互联网产品都从用户那里得到过很大的帮助&#xff0c;最基本的是用户会对自己使用的产品进行评论或者提出建议。但也有用户为自己喜爱的产品做出过巨大的贡献。 2008年印象笔记(Evernote)陷入了困境&#xff0c;账上的钱只够支撑三周。CEO Phil Libin 打算关掉这家公司。 就…

SNS是什么?有哪些类型的SNS网站?

SNS&#xff0c;全称Social Networking Services&#xff0c;即社会性网络服务&#xff0c;专指在帮助人们建立社会性网络的互联网应用服务。SNS若在互联网领域就有三层含义&#xff0c;他们的英文缩写分别是&#xff1a;服务 Social Network Service&#xff0c;软件 Social N…

Mysql在大型网站的应用架构演变

原创文章&#xff0c;转载请注明&#xff1a; 转载自http://www.cnblogs.com/Creator/ 本文链接地址: Mysql在大型网站的应用架构演变 本文已经被多处转载&#xff0c;包括CSDN推荐以及码农周刊等等,阅读数超过5w,回流到我博客流量的还是比较少,不过这不重要, 后续会分享更多技…

使用you-get将网站视频下载到本地的具体操作

周五&#xff0c;我朋友给我一个b站的链接。他想要下载里面的视频。但是电脑上的b站是没有提供下载功能的&#xff0c;身为程序员。当然得帮兄弟这个忙啦。 此次操作我们会用到两个小东西&#xff1a;you-get、ffmpeg you-get使用方法 电脑需要安装python。输入命令 pip3 in…

某网站首页双12 活动 banner主色调选择

文章目录 案例背景 1 检验指标的确定2 确定检验统计量3 埋点收集数据4 确定H0,H15 确定显著性水平6 计算样本量7 利用统计工具实现检验 案例背景 某网站首页双12 活动 banner主色调选择&#xff08;现提供两个版本的banner)&#xff0c; banner 为网站PC端或App 的顶部或底部横…

Hadoop环境中使用Hive工具实现电商网站用户运营分析

文章目录 一、分析目标二、数据说明三、实现步骤1.建立用户指标体系2.建立分阶段用户标签2.1 按用户行为统计每日的不同阶段用户规模2.2 按周为单位分析最近两周的不同阶段用户的变化2.3 对比分析新用户群体与激活用户群体的人群画像、行为数据特点 3、用户复购分析3.1 计算2月…

手把手教你!0基础小白也可以使用谷歌服务器搭建自己的博客网站

准备工作 visa卡&#xff08;用于谷歌的认证&#xff09;fan&#xff08;翻&#xff09;qiang&#xff08;墙&#xff09;工具&#xff08;用于登陆谷歌&#xff09; 一 申请及注册谷歌云 1.登录Google Cloud官网并进行账户注册&#xff1a;https://cloud.google.com/ ,我们…

网站看板娘--偷就完事了(大雾)

最近项目做完了&#xff0c;想到博客园有些博主的博客有看板娘&#xff0c;就偷过来了 下面将一步步还原我偷的过程&#xff08;笑&#xff09; 首先准备一个html&#xff0c;放在tomcat的webapps的文件夹下&#xff0c;下载好的live2d文件夹&#xff08;提取码&#xff1a;d…

基于java的在线答疑网站系统——计算机毕业设计

网络答疑系统已经成为远程教育网站不可缺少的组成部分&#xff0c;它对提高远程教育的质量起着至关重要的作用。但目前的网络答疑系统功能比较简单、答疑效率低、智能性不高。随着人工智能和自然语言处理等相关技术的发展&#xff0c;未来的网络答疑系统将会在智能性、开放性、…

基于java的婚恋交友动态网站——计算机毕业设计

“网络红娘”的出现不仅对传统交友方式和恋爱观形成强烈冲击&#xff0c;更形成了一门具有良好发展前景的新兴产业。与欧美国家相比&#xff0c;我国婚恋网站起步较晚&#xff0c;目前仍处于跑马圈地的群雄纷争时代&#xff0c;一家独大的行业巨头尚未出现。虽然部分专业婚恋网…