当前位置: 首页 > news >正文

“.NET 4.0网络开发入门之旅系列文章”开篇语—— 无网不胜(下)

.NET 4.0 网络开发入门之旅系列文章”开篇语


无网不胜(下)

点击访问本文的上半部分:

“.NET 4.0网络开发入门之旅系列文章”开篇语—— 无网不胜(上)

3 搭建好网络开发与测试环境

1 ) 安装好Visual Studio 2010

任何一个版本的Visual Studio 2010 都可以,包括免费的学习版,这个系列的文章不需要用到Visual Studio 2010 的高级特性。

2 )只在单机测试网络程序是不够的,读者需要准备好两台计算机,在真实的网络环境下测试你的程序。

如果准备两台物理计算机有困难,可以安装虚拟机。常见的虚拟机软件有VMwareVirtual PCVirtualbox ,这些虚拟机软件使用起来大同小异。

我使用的是Virtual Box ,这是一个开源的软件,大家可以访问http://www.virtualbox.org/wiki/Downloads 下载Virtualbox ,当前最新版本为3.2.10 ,安装包为75M

安装完后,启动VirtualBox ,点击“新建”按钮,VirtualBox 会启动一个向导帮助你创建虚拟机。你需要提供一个Windows 操作系统安装光盘镜像,之后按照向导一步步地完成就行了(图3 ):

3

创建完虚拟机之后,启动它,从“设备”菜单中选择“分配光驱”,“更多虚拟光盘”(图4 ):


4

在打开的窗口中点击“注册”,选择好Windows 的安装文件(图5 ):


5

然后重启虚拟机就行了。

虚拟机启动之后,请从“设备”菜单中选择“安装增强功能”选项,这些增强功能将大大地方便虚拟机的使用。

Virtualbox 使用起来很简单,并提供了详细的用户手册(英文),为了节省篇幅,这里不对其详细展开介绍。只是列出几点重要事项:

1 )建议在虚拟机中安装Windows Server 2008/Vista/Windows 7 ,这些较新操作系统包容了比老版本更多也更新的网络功能,但这需要你的“物理”机器配置较高,建议为虚拟机提供1G 的内存。

我使用的计算机配置如下:主机4G 内存,跑Windows 7 Professional 64 位),虚拟机分配了1.5G 内存,跑Windows Server 2008 R264 位),也许是由于我的计算机性能较高,虚拟机跑起来还是比较流畅的。

2 )给虚拟机单独安装.NET 4.0 ,可以在VS2010 安装光盘的WCU\dotNetFramework 文件夹下找到独立的.NET 4.0 安装包,也可以从微软网站下载。

3 )让虚拟机可以连上网络,这里的关键在于必须正确设置虚拟机的网卡类型。由于我们需要让宿主机和虚拟机相互访问,所以应该按以下方式配置网卡:


6

设置为“桥接网络适配器(Bridged Adapter )”可以让宿主机与虚拟机“相互看到”,另外,选中“插入网线”,则虚拟机启动时会自动连上网络。

4 )给虚拟机和宿主机间设置共享文件夹(图7 )。


7

点击右边的带有“+ ”号的小图标给虚拟机与宿主机添加共享文件夹。

现在启动虚拟机。

完成了以上工作以后,你就可以先在“物理机”中编码,当需要在网络环境中测试时,将要测试的程序复制到共享文件夹中,然后启动虚拟机,通过共享文件夹将程序复制到虚拟机中运行。

以下是我的网络开发环境(图8 )。



8

如图8 所示, JINXULIANG-SERV ”是我的宿主计算机; MYSERVER 则是我们安装好的Windows虚拟机VBOXSVR 则是VirtualBox 虚拟机, 我们在前面添加的“数据空间”将成为这台计算机的“网络共享文件夹”。

要 指出的是,通过虚拟机与宿主机虽然可以比较好地模拟一个网络环境,但毕竟是“虚拟的”,只有在真实的网络环境下,让程序跑在多台真实的物理机器上,才能真 正对网络应用程序进行测试。不过对于学习软件技术而言,开发阶段使用虚拟机进行测试更为方便,只有等程序基本开发完成,再移植到真实的网络环境中进行测 试。

好了,这个开篇语写得太长了。就此打住。

最后给读者留一个课后作业:

请按照本文的介绍搭建好你的网络开发环境,并准备好相关的技术书籍和资料

下一讲,我们先从最简单的IP 地址说起,介绍.NET 基类库中与IP 地址相关的类,并开始我们“激动人心”的.NET 网络开发技术探险之旅!

===============================

点击查看本系列的下一篇文章:

《“.NET 4.0网络开发入门之旅系列文章”——IP知多少 》

相关文章:

  • Android安装数字签名冲突
  • 【PRML读书笔记-Chapter1-Introduction】1.1 Example:Polynomial Curve Fitting
  • Cocos2D for iPhone的Mac版本程序创建
  • ASI 的 使用
  • 国内首款安全软件开源,金山卫士源码共享
  • 经典问题和算法
  • jquery中ajax的用法
  • Q3中国网游业观察:腾讯网易春风得意
  • adb安装和卸载apk的方式
  • Adobe Flash Player 10.2测试版发布 全新播放引擎
  • Bootstarp--全局CSS样式之表格
  • MyEclipse快捷键
  • TCP三次握手原理与SYN攻击
  • Flash和HTML5那点事:后者拿什么取代Flash?
  • 23种设计模式的C++实现
  • Fastjson的基本使用方法大全
  • JS数组方法汇总
  • Service Worker
  • Vue2.x学习三:事件处理生命周期钩子
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 动态规划入门(以爬楼梯为例)
  • 缓存与缓冲
  • 离散点最小(凸)包围边界查找
  • 前端自动化解决方案
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 再谈express与koa的对比
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 如何在招聘中考核.NET架构师
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • #stm32驱动外设模块总结w5500模块
  • (1) caustics\
  • (13)Hive调优——动态分区导致的小文件问题
  • (4)logging(日志模块)
  • (安卓)跳转应用市场APP详情页的方式
  • (二)springcloud实战之config配置中心
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • (六)软件测试分工
  • (排序详解之 堆排序)
  • (推荐)叮当——中文语音对话机器人
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)UDP基本编程步骤
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原創) 未来三学期想要修的课 (日記)
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .htaccess 强制https 单独排除某个目录
  • .Net中的设计模式——Factory Method模式
  • @Data注解的作用
  • @RequestParam @RequestBody @PathVariable 等参数绑定注解详解
  • @RequestParam,@RequestBody和@PathVariable 区别
  • [ C++ ] STL_list 使用及其模拟实现
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [Android]常见的数据传递方式