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

news/2024/4/27 8:57:14/文章来源:https://blog.csdn.net/hejishan/article/details/2166308

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

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

相关文章

技巧和诀窍:如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录“/”的网站

【原文地址】 Tip/Trick: How to Run a Root “/” Site with the Local Web Server using VS 2005 SP1 【原文发表日期】 Tuesday, December 19, 2006 11:58 PM 大家常问我的一个问题是,是否有可能使用VS中内置的web服务器和VS 2005网站项目(Web Site Project)模型…

JMS-使用消息队列优化网站性能

在当今互联网和电商盛行的情况下,网站的性能受到了极大地挑战。大数据,高并发成为大型网站的标志。无论淘宝的双11优惠,还是小米抢购,它们都有一个共同的特点,那就是在短时间内,突然涌入超出平时数倍的用户…

大型网站架构之分布式消息队列

以下是消息队列以下的大纲,本文主要介绍消息队列概述,消息队列应用场景和消息中间件示例(电商,日志系统)。 本次分享大纲 消息队列概述消息队列应用场景消息中间件示例JMS消息服务常用消息队列参考(推荐&am…

谈谈网站防盗链

引子:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”(下图便是网易博客的防盗链效果)。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下…

CSDN网站在800x600分辨率下看不到真正有用的内容

首页都是广告帖子浏览是广告和多余的空白

大学四年因为知道了这 60 个网站,我成了别人眼中的大神!

哈哈,大佬,你咋又进来白嫖了,难道辛苦整理的网站又滚到收藏夹吃灰了吗?明人不说暗话,我就喜欢你白嫖的性格。但是白嫖的人素质都很高,从来都会先点赞后白嫖的,欢迎白嫖 哈哈哈~~ 自从看了这些网…

大学四年,我把私藏的自学「学习网站/实用工具」都贡献出来了

我应该学哪些方向?要学习哪些知识?怎么学习,看视频还是做项目?要学好编程,给你一些学习网站也好、实用工具也好,但前提是你知道如何去学习它。对于学习,特别是自学,善于搜索网上的一…

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

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

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

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

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

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

OpenCms创建网站过程图解——献给OpenCms的初学者们

很多人都听说了OpenCms,知道了它的强大,索性的下载安装了,终于见到了久违OpenCms,看到了它简洁的界面,欣喜过后却不免一脸茫然,这个东西怎么用,我怎么用它来建站,从哪开始&#xff0…

实际采用 FleaPHP 的网站

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

[转]开发大型高负载类网站应用的几个要点

开发大型高负载类网站应用的几个要点作者:nightsailer 来源:http://www.phpchina.com/bbs/thread-15484-1-1.html看了一些人的所谓大型项目的方法,我感觉都是没有说到点子上,有点难受。我也说说自己的看法.我个人认为,很难衡量所谓项目是否大…

Linux 私房菜————LAMP架构企业网站 | Apache源码安装 | MySQL源码安装 | PHP源码安装

LAMP架构企业网站1.LAMP概述2.LAMP组件的作用介绍2.1 Linux[基础平台]2.2 Apache[ 前台]2.3 MySQL[后台]2.4 PHP/Python/Perl[中间连接]3.源码编译安装Apache服务3.1 安装环境依赖包3.2 配置模块3.3 开始编译安装3.4 创建链接文件方便日后配置维护[可选]3.5 添加httpd系统服务方…

Linux 私房菜————Nginx网站服务|访问状态统计配置|访问控制|

1.Nginx概述 一款高性能、轻量级Web服务软件 稳定性高 系统资源消耗低 对HTTP并发连接的处理能力高 单台物理服务器可支持30000~50000个并发请求 2.编译安装Nginx服务 2.1 关闭防火墙将nginx所需软件包到/opt目录下 systemctl stop firewalld systemctl disable firewalld …

推荐几个好玩又有难度的编程网站

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!推荐几个好玩又有难度的编程网站作者&#x…