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

news/2024/4/28 8:16:12/文章来源:https://blog.csdn.net/techcrunch/article/details/2001787

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档中加入下列设定:

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1189291


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

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

相关文章

shell脚本实战之统计web网站不同连接状态个数

1 #!/bin/bash2 declare -A he //定义关联数组3 arraynetstat -antlp |grep 80|awk -F" " {print($6)} 定义索引变量4 for i in $array //取值5 do6 let he[$i] //让元素加一 7 done8 9 for j in ${!he[]} key[value] :key值可以…

借助HttpCombiner让你的网站加速

上一篇 < 利用Microsoft Ajax Minifier在服务器端对静态资源进行自动化压缩 > 得到不少有意义的交流和建议,最近也在不停的尝试做一些网站优化的工作,我会陆续的写一些或者翻译一些优化方面的文章跟大家交流,一方面提供给有需要的朋友一些参考,另一方面也希望得到高手们的…

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

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

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

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

【Abp VNext】实战入门(十一):【1】基本操作 ——VS编译调试时 .NetCore Web网站Api如何在局域网电脑上访问

一、前言 最近使用 AbpVnext .NetCore 开发项目&#xff0c;网站启动后可以通过 http://localhost:44349 或者http:127.0.0.1:4349正常访问&#xff1b; 但是通过本机局域网IP http://192.168.1.101:44349 却无法访问&#xff0c;防火墙里面44349端口入栈规则也配置了&#x…

【Abp VNext】实战入门(十一):【3】基本操作 ——.NetCore Web网站Api发布部署及如何在局域网电脑上访问

文章目录 一、前言二、步骤1、VS2019编译发布项目&#xff1a;2、直接启动服务&#xff1a;默认地址端口访问3、带参启动服务&#xff1a;指定地址端口访问 三、总结 一、前言 上一章讲解了在VS编译调试的时候如何通过局域网访问.netcore 网站API服务&#xff1b; 这一章主要…

【Abp VNext】实战入门(七):【2】xxx.Web网站层 —— API接口异常全局捕捉,返回简化错误信息

这里写自定义目录标题 一、前言二、解决方案1、解决方案1&#xff1a;2、解决方案2&#xff1a; 三、总结 一、前言 今天突然发现一个问题&#xff0c;xxx.Application应用层中的方法&#xff0c;如果直接抛出异常&#xff08;如&#xff1a;throw new Exception(“手动抛出异…

【流媒体服务】Web网站服务搭建(四):【1】下载安装Nginx网站服务

文章目录 前言一、Nginx是什么&#xff1f;二、安装步骤1、下载Nginx2、解压缩Nginx3、配置Nginx 三、启动预览Nginx网站服务1、启动网站服务2、浏览器预览网站3、如何增加个人网页 四、总结 前言 上2章节讲解了本地视频推流拉流服务VLC以及推流转码服务FFMPEG。 为了实现在网…

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

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

10个学习资源网站

1 mooc学院 MOOC学院的定位是讨论&#xff0c;点评和记录课程&#xff0c;MOOC学院不直接收录课程内容&#xff0c;只是专注于帮助学习者互相交流&#xff0c;发现课程。你可以在这里发现很多有意思的课程 2 学堂在线 学堂在线是基于互联网技术的新型学习平台&#xff0c;旨在…

WordPress主题可视化建站The7 V8.7

The7汉化版是一个非常漂亮的企业主题&#xff0c;功能非常强大&#xff0c;内置可视化编辑器&#xff0c;操作方便&#xff0c;支持layer和revsilder幻灯片&#xff0c;支持视网膜屏幕、支持自适应&#xff0c;所以流动元素都已集成。不管是企业门户或者个人网站、工作室都非常…

使用requests爬取实习僧网站数据

任务要求&#xff1a; 爬取实习僧网站的招聘公司信息和职位信息&#xff0c;并存储到数据库中&#xff0c;对应的数据库表和需要爬取的字段见下面表一和表二&#xff08;注意&#xff1a;爬取存在的字段&#xff09; 代码以上传带github上&#xff1a;使用requests爬取实习僧网…

程序员实用工具网站

程序员实用工具网站 本文链接&#xff1a; https://blog.csdn.net/m0_38106923/article/details/100130354 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、算法 11、…

解决通过无线路由上网,但有些网站打不开的问题

问题背景&#xff1a;正常联网状态&#xff0c;所有网站&#xff08;除了腾讯视频页面&#xff09;访问正常&#xff0c;就是进不去腾讯视频&#xff0c;网上查&#xff0c;有人说是找不到DNS的原因&#xff0c;所以今天我就专门看了一下无线路由器DNS。并对本机的无线设置做了…

网站访问过程

1、pc到结束访问的全过程 首先发送dns报文进行dns解析 然后建立tcp连接 web服务提供页面信息 首先发送dns包&#xff0c;进行域名解析&#xff0c;数据链路层报文头&#xff08;数据链路层&#xff09;&#xff0c;ip层头&#xff08;网络层&#xff09;&#xff0c;udp头&…

win7利用映射网络驱动器功能管理网站FTP空间

win7利用映射网络驱动器功能管理网站FTP空间 首先打开windows资源管理器&#xff0c;最菜单栏找到映射网络驱动器 弹出设置界面&#xff0c;我们选择最下面的“连接到可用于存储文档和图片的网站”&#xff0c;弹出向导&#xff0c;选择下一步 选中“选择自定义网络位置”&…

网站API自动化测试利器——Postman

转自&#xff1a;http://bayescafe.com/tools/use-postman-to-test-api-automatically.html 如有侵犯&#xff0c;请来信oikenqq.com 自从开始做API开发之后&#xff0c;我就在寻找合适的API测试工具。一开始不是很想用Chrome扩展&#xff0c;用的WizTools的工具&#xff0c;后…

用 Certbot 一键升级你的网站为 Https

转载自&#xff1a;https://www.v2ex.com/t/383032 如有侵犯&#xff0c;请来信&#xff1a;oikenqq.com 原文&#xff1a;(用 Certbot 一键升级你的网站为 Https)[https://lufficc.com/blog/upgrade-to-https-with-certbot] 小站以前采用的是 StartSSL 的 https 证书&#xf…

使用Chrome下载网站视频

引论 在现实生活中&#xff0c;我们经常需要下载一些视频&#xff0c;但是这些视频又没有提供下载的链接或者需要下载客户端。怎么办呢&#xff1f;使用Chrome可以下载大部分网站上的视频&#xff0c;让我们一起学习一下 流程 使用Chrome打开需要下载视频的网站按F12&#xf…

图片背景网页在网站建设中的运用

网页背景是网站建设中体现风格的一种方式&#xff0c;如果背景建设得好&#xff0c;那么对用户体验则有一定的帮助&#xff0c;现在的网站越来越多的人倾向于选择图片背景的网站设计&#xff0c;让网站看起来显得整体&#xff0c;增加吸引力。 由于现在的用户使用的PC端显示屏大…