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

news/2024/4/27 16:07:37/文章来源:https://blog.csdn.net/itkbase/article/details/2266427

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

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

相关文章

Bootstrap相关网站中简单的等待提醒

一、在页面中加入如下代码 <div class"modal fade" tabindex"-1" role"dialog" id"waitingModal"><div class"modal-dialog" role"document"><div class"modal-content"><div cla…

实际采用 FleaPHP 的网站

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

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

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

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

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

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

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

怎样把网站前端页面扒取

在网上经常看到一些很好看的页面&#xff0c;这些页面其实都可以把代码扒取下来的&#xff0c;可以用浏览器的另存为&#xff0c;也有一些相应的软件。 浏览器扒取 以火狐为例 右键鼠标点击网页另存为然后保存即可。 软件扒取 这种扒取的软件有很多种我用的是Teleport Ultra 下…

[课程地图-jsp网站]JSP开发要求和详细介绍

通知 系统的源代码目录结构已经上传到SVN服务器 SVN地址&#xff1a; https://svn.duapp.com/appid4x2erzscad 用户名/密码&#xff1a; gopain163.com 在群里 前端界面优化 提示 目前的界面设计暂时不用修改&#xff1b;界面布局后的HTML页面即为整个系统的基础界面&a…

做个人网站前的一些记录

——————————————————————————— 3月24日 在万网上购买域名。域名为cuijy.com———————————————————————————3月31日 在万网购买空间&#xff0c;买的空间类型是X3基础经济型云虚拟主机—————————————————…

网站服务器cpu突然百分百,云服务器cpu突然飙升100

云服务器cpu突然飙升100 内容精选换一换本节定义了弹性云服务器上报云监控的监控指标的命名空间&#xff0c;监控指标列表&#xff0c;各项监控指标的具体含义与使用说明&#xff0c;用户可以通过云监控检索弹性云服务器服务产生的监控指标和告警信息。SYS.ECS对于不同的操作系…

机器学习之电子商务网站用户行为分析及服务推荐案例

项目概述 本项目案例根据某法律咨询服务网站的用户浏览记录&#xff0c;把用户划分为训练集的用户和测试集的用户&#xff0c;再根据找出相应用户的浏览记录划分为训练集数据和测试集数据。训练集用于后续构建用户物品矩阵&#xff0c;再根据用户物品矩阵构建物品相似度矩阵&a…

源码网站模板下载

需要的自费下载哦 有用 &#xff01;&#xff01; 超值 附上下载地址&#xff1a;https://download.csdn.net/download/qq_42312466/21762068

一步步教你为网站开发Android客户端

#友盟杯#一步步教你为网站开发Android客户端 楼主 发表于 2011-11-29 10:30:10|查看: 10907|回复: 225本帖最后由 liupeinye 于 2011-11-30 10:37 编辑 本文参与&#xff1a;友盟—安卓巴士Android开发原创教程大赛本文面向Android初级开发者&#xff0c;有一定的Java和Android…

倾情分享:Android 开发者们不要错过的网站宝藏~

从事 Android 开发多年&#xff0c;攒了很多宝贵网站&#xff0c;分享给大家。 涵盖了系统、API、语言、开发工具、以及各种官方学习平台&#xff0c;不求面面俱到&#xff0c;只求无私分享&#xff01; 期望给各位 Android ROM 开发者、App 开发者带来最全最官方的学习资料&am…

如何在新浪云上传自己的网站(静态展示)

欢迎加入前端交流群交流知识获取视频资料&#xff1a;749539640 最近有小伙伴问我怎么在新浪云上传自己的本地页面&#xff1b;大家看教程吧&#xff01; 第一步&#xff1a;肯定是去注册账号了(需要先注册微博账号&#xff0c;只能使用微博账号登录) 注册地址&#xff1a;点击…

网站引导功能实现

欢迎加入前端交流群交流知识获取视频资料&#xff1a;749539640 背景&#xff1a;发布了新网站&#xff0c;需要引导用户操作或者发布了新功能需要展示给用户 实现&#xff1a;借助driver.js 第三方类库实现 demo&#xff1a;样式如下图 实现方式&#xff1a;点击查看示例代码 …

网站发布

文章目录IIS简介网站发布发布网站到本地IIS简介 iis(Internet Information Services)&#xff0c;译为互联网信息服务&#xff0c;由微软公司提出的基于运行windows的基本服务。现在IIS都内置在windows系统中一起发行。IIS意味着你能发布网页&#xff0c;并且有ASP&#xff08…

WEB网站与WEB应用程序的区别

WEB网站 每个页面(.ashx)生成一个独立的程序&#xff0c;一个页面出错不会对其他页面有影响没有命名空间&#xff0c;因为每个文件会生成一个dll文件&#xff0c;不会在文件内产生全名冲突网站中每个页面(aspx,ashx)都生成对应的程序集&#xff0c;名称是随机的&#xff0c;当…

常见的反爬虫技术有哪些?如何防止别人爬自己的网站?

搜索引擎可以通过爬虫抓取网页信息&#xff0c;同时也有很多企业通过爬虫获取其他平台的信息用于数据分析或者内容优化&#xff0c;但是对于自身网站有些页面或者信息并不希望被爬虫抓取&#xff0c;那我们如何来实现反爬虫技术呢&#xff1f;如何防止别人爬自己的网站呢&#…

研究生应该常去的网站

研究生应当常去的网站 1. 小木虫&#xff08; http://emuch.net/ &#xff09; 推荐理由&#xff1a;里边有不少学术科研用得到的资料&#xff0c;且全部为免费的。 2. 国家自然科学基金&#xff08; http://www.nsfc.gov.cn/Portal0/default40.htm &#xff09; 推荐理由&…

iOS开发学习的网站

----------------------------------------------------------------------------------------------------------------------------- 以下转自&#xff1a;http://blog.csdn.net/xietao3/article/details/9300583 http://forums.toucharcade.com/这个是大家公认的&#xff0c…