什么是应用程序域http://cache.baiducontent.com/c?m=IIjcv7csSUJx6141zmn9Y5B5RAJx-XjM_1mATcMsnHX63twoTUDamt67BHWmrg-vaOWkzbCbTWAv8GZSLF8tgRuWw_5w4LPEPlXZcoxnd2DI_7rzgK63HzCmaVN949qZ81ImYZXKFgieNAZxSPYuxwue0H-GDyeD_6FC-I-nT0V804LSpAXJ0h7Q4R2GOPUs&p=97578415d9c646b109fec7710f5c&newp=8e3bc64ad4934eaa5fae8864170792695d0fc20e3ad0d101298ffe0cc4241a1a1a3aecbe25221007d9c4776402ab4857eff630743d0034f1f689df08d2ecce7e&s=cfcd208495d565ef&user=baidu&fm=sc&query=C%23+%D3%A6%D3%C3%B3%CC%D0%F2%D3%F2&qid=857ce77e0002ad04&p1=3http://cache.baiducontent.com/c?m=IIjcv7csSUJx6141zmn9Y5B5RAJx-XjM_1mATcMsnHX63twoTUDamt67BHWmrg-vaOWkzbCbTWAv8GZSLF8tgRuWw_5w4LPEPlXZcoxnd2DI_7rzgK63HzCmaVN949qZ81ImYZXKFgieNAZxSPYuxwue0H-GDyeD_6FC-I-nT0V804LSpAXJ0h7Q4R2GOPUs&p=97578415d9c646b109fec7710f5c&newp=8e3bc64ad4934eaa5fae8864170792695d0fc20e3ad0d101298ffe0cc4241a1a1a3aecbe25221007d9c4776402ab4857eff630743d0034f1f689df08d2ecce7e&s=cfcd208495d565ef&user=baidu&fm=sc&query=C%23+%D3%A6%D3%C3%B3%CC%D0%F2%D3%F2&qid=857ce77e0002ad04&p1=3
之前在.net开发中一个应用程序对应一个进程,操作系统会为每个进程分配相应的系统资源,这样做虽然保证了进程之间的安全性,但是消耗了系统资源,降低了性能,同时进程之间的通信也是很困难的.
之后.net引入了应用程序域的概念,也就是一个进程里面可以同时存在多个应用程序域,应用程序域之间是相互隔离的,这样既保证了应用程序之间的安全性又节省了系统资源,提升了性能,而且不同应用程序之间的通信也相对简单一些.
CTS| CLS | CLR分别是什么?https://blog.csdn.net/qq_40564078/article/details/104469605https://blog.csdn.net/qq_40564078/article/details/104469605
CTS(Common Type System)公共类型系统:
可以将不同开发语言定义的同一类数据类型在编译时经过CTS变成通用的数据类型
CLS(Common Language System)公共语言系统
可以将不同开发语言在编译时通过CLS变成具有统一语法规范的中间代码.这样实现了在同一平台不同语言之间的交互性.
CLR(Common Language Runtime)公共语言运行时
用于应用程序驱动执行,进行实时编译(JIT),将中间语言(IL)编译成适合本机执行的机器指令.随着程序集的运行,CLR还提供各种服务:内存管理,安全管理,线程管理,垃圾回收,类型检查等.
什么是托管代码,什么是非托管代码https://blog.csdn.net/qq_36689119/article/details/99286108?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163515346416780261984693%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163515346416780261984693&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-99286108.pc_search_result_control_group&utm_term=C%23+%E6%89%98%E7%AE%A1%E4%BB%A3%E7%A0%81&spm=1018.2226.3001.4187https://blog.csdn.net/qq_36689119/article/details/99286108?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163515346416780261984693%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163515346416780261984693&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-99286108.pc_search_result_control_group&utm_term=C%23+%E6%89%98%E7%AE%A1%E4%BB%A3%E7%A0%81&spm=1018.2226.3001.4187
托管代码:
托管代码就是中间语言(IL),在公共语言运行库中运行.
编译器把代码编译成中间语言,当某个方法被调用时即时编译器会将中间语言编译成适合本机执行的机器码,并缓存起来以备下次使用.在程序集的执行过程中CLR还会提供各种服务:内存管理,安全管理,线程管理,垃圾回收,类型检查等
非托管代码:
直接编译成的目标计算机码,在公共语言运行库环境之外,由操作系统运行的代码.非托管代码必须自己提供安全支持,垃圾回收,类型检查等服务.如需要实现内存管理服务必须显式调用操作系统提供的接口--通常是Windows SDK提供的API来实现内存管理.
总结:
托管代码是中间语言;非托管代码是直接编译成的机器码
托管代码独立于平台和语言,能够实现不同平台和语言之间的兼容;非托管代码依赖于具体的平台和语言.
托管代码可以享受CLR提供的各种服务--内存管理,安全支持,线程管理,垃圾回收,类型检查等;非托管代码需要自己实现这些服务.
Ado.Net
1.Connection:提供与数据源的连接
2.Command:执行数据库命令的对象
3.DataReader:从数据源中提供快速的只读的数据流
4.DataSet:非连接的核心组件,独立于任何数据源,可以把它当作是存在与内存中的数据库
5.DataAdapter:提供DataSet和数据源之间的桥梁
什么是code-behind技术http://www.weixuecn.cn/article/8703.htmlhttp://www.weixuecn.cn/article/8703.html
就是代码后置技术.之前的asp是html代码和后台代码写在一起的,这样不利于网站的开发和维护;之后就出现了在asp.net中通过aspx页面指向.cs文件的方法将页面显示和逻辑代码分离, 这就是代码后置技术.
类与结构的异同:
1.类是引用类型,存储在堆上,结构是值类型,存储在栈上
2.类具有面向对象的三个特征封装继承和多态,结构没有,不过结构也可以实现接口
3.在类中构造函数可以重载,不过声明了一个构造函数就会把默认的无参的构造函数给干掉,在结构中构造函数最多只能有两个,一个是全参的构造函数(在构造函数内部必须给所有的字段进行赋值),一个是无参的构造函数.
4.类是对现实对象的抽象,结构只是对不同类型数据的包装.
5.类在定义的时候可以对其成员赋初始值,而结构在定义的时候不可以对其成员赋初始值.
简要谈一下.net框架下对remoting和webservice两项技术的理解以及实际中的应用
ws主要是可以利用HTTP穿透防火墙;remoting主要是利用TCP/IP进行二进制数据传输提高效率.
能用foreach遍历访问的对象需要需要实现IEnumerable接口和声明GetEnumerator方法
String类是否可被继承?String类是密封类(sealed)所以不可被继承
short s1=1; s1=s1+1; 有什么错误?short s1=1;s1+=1; 有什么错误?
看上图,因为"+"操作符返回的是int 类型的,而由int转换成short(由大范围转换成小范围),需要进行显示转换,即s1=(short)(s1+1);
short s1=1;s1+=1;没有错误
IIS中有进程回收机制,系统繁忙的话Session会丢失.
进程和线程的区别?
进程是系统资源进行分配和调动的单位,线程是cup调度和分派的单位.一个进程可以包含多个线程,这些线程共享这个进程的资源
堆和栈的区别?https://www.jb51.net/article/55306.htmhttps://www.jb51.net/article/55306.htm
栈由编译器进行内存空间的分配与释放,堆由程序员进行内存空间的分配与释放(.net中是由GC进行释放的)
using和new的作用
using:1.引入命名空间 2.使用非托管资源,当使用完后会调用实现了IDisposable接口的类的Dispose方法,3为命名空间创建别名
new:1.实例化对象 2.隐藏父类的方法
什么叫SQL注入,如何防止?
SQL注入是利用程序员写程序时的疏忽,通过sql语句实现无账号登录,甚至是篡改数据库信息.
凡是有sql注入漏洞的程序都是因为程序要接受客户端输入的变量参数,并且这些变量参数是组成sql语句的一部分,所以为了防止sql注入需要对客户端用户输入的变量参数进行检验,让输入数据符合预期的格式.
select top 10 * from usyUser where UserNO='"+userNo+"' AND password='"+passWord+"' --当输入用户账号后就变成了下面的sql select top 10 * from usyUser where UserNO=''OR 1=1--' AND password='R0C517K0000'
什么是反射?
反射可以在程序运行的时候动态的获取程序集信息.
什么是虚函数什么是抽象函数
虚函数具有函数体,在其继承类中可以对其重写也可以不重写;抽象函数不具有函数体,在其非抽象继承子类中必须对其进行重写
什么是XML?
XML(eXtensible Markup Language)可扩展标记语言,被设计用来传输和存储数据,很像HTML语言.
不过其标签是由程序员自己定义的.
什么是web service?
web service即web服务,他是一种跨编程语言跨操作系统的远程调用技术
web service的三种元素:
WSDL (Web Service Description Language)web服务描述语言:用来描述web service,以及如何访问web service
SOAP(Simple Object Access Protocol)简单对象访问协议:是一种基于XML和HTTP的通信协议,Web Service所使用的.
UDDI(Universal Description Discovery and Integration)统一描述,发现和整合.用来注册和查找服务,将web服务注册和存储起来,当别人调用服务的时候从UDDI查找该服务是否存在.
什么是ASP.NET中的用户控件?
用户控件就是用户根据自己的需要在*.ascx页面中添加服务器控件或HTML标签,完成创建后,用户可以在aspx页面引用该用户控件,用户控件此时就是一个可重复使用的代码单元.
C#中property和attribute的区别
property是属性用于对字段进行存取,attribute是特性用于标识类和方法
在.Net中所有可序列化的类都被标记位[Serializable]
接口和抽象类的区别
设计模式:
单例模式,工厂模式,
.net平台下类库的源代码https://referencesource.microsoft.com/https://referencesource.microsoft.com/



