Fork me on GitHub
摘要: 人人都知道怎么去使用session,但是初学者,尤其是自学的学生可能对于进程外的Session不甚了解,今天我就花半个小时做个简单的示范。 首先,session其虽然是基于cookie的,同时只对本次会话来产生效果,(原理很简单,就是字典内保存一个字典,外层字典的key也就是asp_netsessionId是由.NET自动分配的并保存到只对本次会话有效的cookie中,我们的工作只是负责内部我们需要的字典的内容,并有.NET自动分配一块区域保存起来,当然这个是有一定的时效性的,模拟代码可以看看资料,或者反编译下看看,很简单,这里就不说了)但是有时候我们就会发现默认的session... 阅读全文
posted @ 2012-05-13 20:50 Halower 阅读(5204) 评论(4) 推荐(7) 编辑
摘要: 在学习中发现网页模板可以大大节约重复的页面代码,同时对于WebSite开发的程序在不同的页面直接调用已写好的代码既不方面,只是作为代码量不大的程序进行开发还是比较方便。 get和post的区别get是通过url传递表单值,post通过url看不到表单域的值;get传递的数据量是有限的,如果要传递大数据量不能用get,比如上传文章、传递密码或者<textarea>发表大段文章,post则没有这个限制;post会有浏览器提示重新提交表单的问题。也就是说get和post都是以不同的方式提交表单的信息,只是方式不一样,post是以头报文的形式传递,我们可以使用火狐的免费插件firebug. 阅读全文
posted @ 2012-05-09 23:58 Halower 阅读(12618) 评论(0) 推荐(7) 编辑
摘要: 今天是第一天开始学习接触asp.net,这两天时间也比较紧张,作业太多,抓紧时间,希望一切顺利。学什么都要从本质开始学习,首先要知道什么是asp.net?查了点资料,大家在论坛都定义的不一样,一个否定一个的说法,或者发表不同的简介,没办法,我新手我初学asp.net能咋样,没发言权呢,也不能明辨是非,当下就查下维基百科,所以就引用他们的定义作为入门定义。 ASP.NET is a Web application framework developed and marketed by Microsoft to allow programmers to build dynamic Web site 阅读全文
posted @ 2012-05-08 00:16 Halower 阅读(1173) 评论(0) 推荐(1) 编辑
摘要: 收集资料开始学习JQuery,有关谷歌CDN介绍的内容来自网络,不知道是谁写的。直接以代码开始: 1 <script type="text/javascript"> 2 var oldglobvar = {}; 3 for (var i in window) { 4 oldglobvar[i] = 1; 5 } 6 </script> 7 <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script> 8 &l 阅读全文
posted @ 2012-05-05 02:18 Halower 阅读(1819) 评论(0) 推荐(1) 编辑
摘要: 我们在前面的文章中提到了两中实现晚绑定的方式,那么在用的时候是否发现有什么不同呢? 是的,我们会很容易的发现Activator.CreateInstance()创建的对象,我们只能访问他的访问级别为public的方法,但是我们仅仅小小的统一下手脚,使用BindingFlags.NonPublic|BindingFlags.Instance就可以获得该对象的internal,private级别的变量。但是往往后一种方式我们也是不经常采取的,因为我们需要稳定的成员支持,而私有类型的成员往往是程序中最容易更新的,假如一个程序集更新后,我们使用这种方式调用即会发生错误。 今天刚... 阅读全文
posted @ 2012-05-03 06:10 Halower 阅读(3875) 评论(11) 推荐(9) 编辑
摘要: 很多时候我们不知不觉中使用着设计模式,自己很多却不知道自己使用了,例如我们在涉及抽象类,接口的时候经常用到装饰者模式,在Winfrom的窗体(当然还是类)复用中经常用到模板方法模式......反正什么是设计模式,学好多态是很重要的,言归正传。 通常一个类通常可以创建无限个对象,但是有时候需要只有一个对象的类,比如全局资源管理器、缓存管理器等,这种情况下如果有多个对象就会乱掉了。缓存管理器只能有一个,否则把数据扔给一个管理器,却管另外一个要。 就好比有一个老婆类,他的一个对象对我很好,但是不是随便那个老婆等可以对我好,应该只有我老婆对我好,因此我们要确定这个唯一的老婆。 ... 阅读全文
posted @ 2012-04-29 12:35 Halower 阅读(2647) 评论(9) 推荐(4) 编辑
摘要: 开篇先熟悉两个小概念:早绑定:是指在编译时绑定对象的类型晚绑定:是指在运行时才绑定对象的类型。当然我们提到上面两个概念,肯定是为了引入今天的主题——利用反射实现晚绑定(也就是动态的加载类型,并调用它们)。我暂时只是为了测试的方便先定义一个不能执行的程序集(Person.dll)无需写的完善,仅仅作为测试使用,之后我们在这个程序中调用它。person.dll内部如下:person.dll 1 using System; 2 public class Chinese 3 { 4 private string language; 5 private ... 阅读全文
posted @ 2012-04-27 15:35 Halower 阅读(1818) 评论(4) 推荐(8) 编辑
摘要: 使用 Assembly 类可以加载程序集、浏览程序集的元数据和构成部分、发现程序集中包含的类型以及创建这些类型的实例。若要获取 Assembly 对象(表示当前加载到应用程序域(例如,简单项目的默认应用程序域)中的程序集)的数组,可以使用 AppDomain ..::.GetAssemblies 方法。若要动态加载程序集, Assembly 类可提供下列静态方法(在 Visual Basic 中为 Shared 方法)。 程序集被加载到发生加载操作的应用程序域中。加载程序集的推荐方式是使用 Load 方法,该方法标识要由其显示名称加载的程序集(例如"System.Windows.Fo 阅读全文
posted @ 2012-04-27 13:23 Halower 阅读(624) 评论(0) 推荐(3) 编辑
摘要: 前言:由于身边也没什么学习资料,也就一边利用网络一边自己理解整理,慢慢地步入神秘的反射机制。 反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。 简而言之, 反射机制指的是程序在运行时能够获取自身的信息。例如一个对象能够在运行时知道自己有哪些方法和属性。 使用 Assembly 定义和加载程序集,加载在程序集清单中列出的模块,以及从此程序集中查找类型并创建该类型的实例。 使用 Module 发现以下信息:包含模块的程序集以及... 阅读全文
posted @ 2012-04-26 03:21 Halower 阅读(2505) 评论(1) 推荐(7) 编辑
摘要: 当我们在连接MSSQLSEVER的时候,一般都是SqlConnectioncon=newSqlConnection(ConStr);这样的格式格式来创建连接字符串的,这是时候我们我们似乎感觉他很方便。但是突然那一天你的老板给你给一个Oracle的备份数据库,你是不是还要OracleConnectioncon=newOracleConnection(conStr);又突然老板突发奇想,觉得数据量也不大,而且ACCESS2010还蛮潮流的,你给我换成ACCESS要我哪里都可以直接打开,你是否又要OleDbConnectionconn=newOleDbConnection(conStr);刚做好.. 阅读全文
posted @ 2012-04-24 16:13 Halower 阅读(1324) 评论(5) 推荐(6) 编辑
摘要: 在博问里看到有人在问关于GC的问题,便自己也发了个回复赚点园豆。今天阳光明媚啊,又是个艳阳天呢。转入正题:什么是"GC"?垃圾收集器GC(garbagecollector)。对于这个概念应该是所有.net学习这都知道的,它使得程序对于内存的分配、回收都不需要程序员操作,程序员只要需要的时候new就可以,用完了不用管,有人帮你清除不用的内存。这个人就是“垃圾收集器”。.Net程序员一般不用像C++程序员那样处理内存的申请和回收,是因为有GC。知道概念我们就该细致的总结一下它的详细特性。对象的生存周期1.当我们创建一个对象的时候,运行构造函数,为其分配一块内存,我们称之为一个活 阅读全文
posted @ 2012-04-20 13:08 Halower 阅读(4229) 评论(6) 推荐(6) 编辑
摘要: 特性提供功能强大的方法,用以将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用名为“反射”的技术查询特性。这篇文章绝大部分是按照MSDN来学习的,只是加了一点点自己的东东,官方介绍的很详细,我们就一起来了解一下它的用法。特性具有以下属性:特性可向程序中添加元数据。元数据是有关在程序中定义的类型的信息。所有的 .NET 程序集都包含指定的一组元数据,这些元数据描述在程序集中定义的类型和类型成员。可以添加自定义特性,以指定所需的任何附加信息。可以将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。特性可以与方法和属性相同的... 阅读全文
posted @ 2012-04-19 00:31 Halower 阅读(65890) 评论(17) 推荐(24) 编辑
摘要: 今天下午依旧逃课(大学生就业指导)很操蛋的课程,要是上这课真能给我们指条路也就好了,看着男同学们一个个阳痿早泄,女同学们一个个搔首弄姿,哈哈还是不去了,所以两年来此类的课程一节都没上过,于是就写点东西,此外的可以暂时忽略。1.首先我们应该知道什么是扩展方法:扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。2.知道了扩展方法怎么创建呢?定义一个静态类以包含扩展方法。将该扩展方法实现为静态方法,并使其至少具有与包含类相同的可见性。该方法的第一个参数指定方法所操作的类型;该... 阅读全文
posted @ 2012-04-18 16:12 Halower 阅读(3279) 评论(8) 推荐(9) 编辑
摘要: 为什么要出现委托,为什么又要出现事件,事件和委托又是什么关系,既然有网友问到了,我也回顾一下。 1.委托的出现是基于多态,增加相同类型函数操作代码的复用性以减少冗余代码。 2.委托和事件没有可比性,因为委托是类型,事件是对象。 对于第一点大家都应该特别熟悉,这个帖子主要就看第二个问题。 首先我用委托方式实现的一个事件(之后会用标准的event方式实现),但是应该有个观念事件的内部是用委托实 现的. 1.我首先使用委托方式实现的一个事件.我首先定义了一个旅行社TravelagencyDelegate用来代理购票业务。 之后定义了一个售票点里面包含了:买票行为,以及权限证明。好了上代码: 1 us 阅读全文
posted @ 2012-04-15 22:39 Halower 阅读(2904) 评论(12) 推荐(10) 编辑
摘要: var re = /[a-z]$/; var str = "ab\ncdef"; alert(str.replace(re,"#"));//ab\ncde# re =/[a-z]$/m; alert(str.replace(re,"#"));//a#\ncde# 使用元字符注意事项:元字符是正则表达式的一部分,当我们要匹配正则表达式本身时,必须对这些元字符转义.下面是正则表达式用到的所有元字符( [ { \ ^ $ | ) ? * + .var str = "?"; //var re = /?/; //alert( 阅读全文
posted @ 2012-04-13 01:07 Halower 阅读(561) 评论(0) 推荐(0) 编辑
摘要: 正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。下表是元字符及其在正则表达式上下文中的行为的一个完整参考列表:字符描述\转义字符,在之前,我们在字符串也用过这字符,即一些字符具有特殊含义,对其进行转义使它成为普通字符,而用在普通字符上又表示其有特殊含义^匹配输入字符串的开始位置,如果设置了匹配多行(m),那么也匹配行的开头$匹配输入字符串的结束位置。如果设置了匹配多行(m),那么也匹配行的结束*匹配前面的子表达式零次或多 阅读全文
posted @ 2012-04-13 00:51 Halower 阅读(1526) 评论(0) 推荐(2) 编辑
摘要: DOM相关方法总结:Document Object Model (DOM)是HTML和XML文档的编程接口。它提供了上述文档的一种结构化表示,同时也定义了一种通过程序来改变文档结构,风格,以及内容的方式。DOM用一组结构化的节点以及对象来表示文档。本质上就是将网页和脚本语言以及编程语言连接起来。DOM被设计为独立于任何特定的编程语言,通过协调一致的API以确保这种文档的结构化表现形式是有效的。DOM标准主要要为:微软DOM与W3C DOM,一般IE实现的是微软DOM,而其它浏览器则不同程度的实现了W3C DOM。DOM很大程度上受到浏览器中动态HTML发展的影响,但W3C还是将它最先应用于XM 阅读全文
posted @ 2012-04-10 22:37 Halower 阅读(1226) 评论(0) 推荐(0) 编辑
摘要: InnerXML返回XmlNode它内部的所有节点构成的Xml片段。对于含有命名空间的元素作以下方式处理。InnerText返回内部文本部分。<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template >...</xsl:template></xsl:stylesheet><xsl:stylesheet version="1.0" xmlns:xsl=&qu 阅读全文
posted @ 2012-04-09 16:27 Halower 阅读(813) 评论(0) 推荐(2) 编辑
摘要: javascript 学习笔记特殊数据类型是: * Undefined var a;//声明一个变量,但没有对其赋值 alert(a);//但它仍然有值的,它的值为undefined alert(b);//但注意,输出一个未定义的变量将出现错误,而不是输出undefinedNaN是一个特殊的值,含义是"Not A Number"-不是一个数字,当将其它值转换成数字失败时会得到这个值 var str ="some string here!"; var num = 123; alert(str*num);//将输出NaN,因为乘法运算符只能针对数字,所以进行 阅读全文
posted @ 2012-04-07 19:52 Halower 阅读(582) 评论(0) 推荐(1) 编辑
摘要: System.Xml.XmlReader和System.Xml.XmlWriters是两个抽象类,XmlReader提供了对于XML数据的快速,非缓存,只进模式的读取器,XmlWriter表示一个编写器,该编写器提供快速,非缓存,只进的方式来生成包含XML数据的流文件。XmlReader与SAX读取器类似,不过前者是提取模式(只进只读的游标),后者是推送模式(将事件推送到应用程序)。XmlReader的优点是:1.简化状态管理2.可以有多个输入流3.提取模式可以作为推送模式的基础,反之不行。4.提供一个可以将字符串直接写入缓冲区,避免多余字节的的复制。5.有选择的处理XML流,可以预先设置处理 阅读全文
posted @ 2012-04-07 00:33 Halower 阅读(754) 评论(0) 推荐(2) 编辑
摘要: 马马虎虎看了看BinaryWriter/BinaryReader,试了一下,知道有这么回事,有个印象,以后遇到在研究啦,玩了这么几天三层架构,顺便做个总结:三层体系结构的概念用户界面表示层(USL/UI)业务逻辑层(BLL) 数据访问层(DAL)各层的作用 1:数据数据访问层:主要是对原始数据(数据库或者文本文件等存放数据的 形式)的操作层,,具体为业务逻辑层或表示层提供数据服务 2:业务逻辑层:主要是针对具体的问题的操作,也可以理解成对数据层的操作, 对数据业务逻辑处理, 一句话总结就是制定游戏规则! 3.层:接受参数,面向用户。为什么要分三层 我们用三层结构主要是使项目结构更清楚,分工更明 阅读全文
posted @ 2012-04-04 21:55 Halower 阅读(1115) 评论(0) 推荐(4) 编辑
摘要: DAL层代码: 1 using System.Collections.Generic; 2 using System.Data; 3 using DataTreeModel; 4 using System.Data.SqlClient; 5 using System.Windows.Forms; 6 7 namespace DataTreeDAL 8 { 9 class TreesNodeDAL10 {11 //根据Parentid返回表中所有的的实体对象12 public IEnumerable<ItemsNode> GetEveryOneB... 阅读全文
posted @ 2012-04-04 00:37 Halower 阅读(2047) 评论(0) 推荐(2) 编辑
摘要: FileStream 1 static void Main(string[] args) 2 { 3 //创建FileStream对象需要指定 文件名,打开模式,访问模式,共享模式 4 //1.调用本身的构造函数创建流 5 FileStream fs1 = new FileStream(@"F:\1.txt", FileMode.Open, FileAccess.ReadWrite,FileShare.ReadWrite); 6 //2.利用File类或者FileInfo类的O... 阅读全文
posted @ 2012-04-02 01:50 Halower 阅读(542) 评论(0) 推荐(2) 编辑
摘要: 昨天宿舍没电,终于有耐心花了两个小时完整写了一个简易的代码生成器,要去上课了,就随便说一下1.运行环境 : WIN7+.NET4.0+msSQLSEVER20082.生成代码模式: 三层中的两层 DAL+BLL 外加一个模型model3.主要组成: 自己封装的一个SMO 数据库操作辅助类+耐心拼接字符串4.缺陷:对SQL字符类型的转换只是列举了一部分,需要后期按照需要扩充5.运行步骤:检索局域网内所有的SQL服务器-------》选择服务器----------》选择身份验证--------》加载数据库文件-------》--------》选择数据库名---------------》列遍历所选数 阅读全文
posted @ 2012-03-30 10:13 Halower 阅读(843) 评论(0) 推荐(3) 编辑
摘要: C# 如何获取本地数据库SQL Server2008的数据库服务器名称和数据库名称?不知道为什么我的Win7就是注册不了sqldmo.dll,经过学习,基本可以自己使用SMO解决这些问题。我在百度中找到了这个问题的答案,不过不知道为什么我的Win7就是注册不了sqldmo.dll,因此无法引用SQL Distributed Management Objects。问题关键是我安装的是SQL2008EXPRESS版本没有安装SQL2000的企业版附带不了这个COM组件,也不想安装2000,解决不了问题很纠结。因此我就看了下MSDN,里面说SQLDMO已经被SMO取代了,所以附带的看了下,SMO,太 阅读全文
posted @ 2012-03-28 14:26 Halower 阅读(1445) 评论(0) 推荐(0) 编辑
摘要: 我主要以三层模式为基础,安装昨天的代码加以修改,来完成自己的通用的代码生成器,由于是初学而且专业课占去了大部分的时间,只是尝试的写点功能,还需要来熟悉下IO下的一些类,所以这里写的只是为了作为练习作为以后的复习方便而已,灰常不完善,慢慢改进,通过学习代码生成器和三层模式的结构,如果我要在这两者学习间找到着力点,重点是在三层模式,不过基本还是要依托于对ADO.NET实现机制的熟悉程度。如果熟悉了这两者,代码生成器完全是数据拼接字符串的操作,没有了技术含量。 现在的专业的代码生成器很多,作为新手就因该从基础学习,而不是直接使用CodeSmith、动软这样的企业用的代码生成器,不要心急,从... 阅读全文
posted @ 2012-03-27 18:39 Halower 阅读(2827) 评论(6) 推荐(6) 编辑
摘要: 复杂项目不能把SQL语句直接写到程序里,不模块化、难以维护,应该采用三层架构。Web开发中的三层架构也是同样的结构。 模型层Model;数据访问层DAL(Data Access Layer);业务逻辑层BLL(business logic layer )。实体类就是Model;对数据进行操作的代码写在DAL中,一般就是SQL语句,DAL只有对数据的操作;BLL调用DAL中的代码进行逻辑操作SQL语句一般只应该出现在DAL中。 三层:UI(界面,User Interface)、BLL、DAL。Model是在三层之间进行数据传递的。UI层调用BLL、BLL调用DAL,数据用Model传递,UI不. 阅读全文
posted @ 2012-03-26 22:56 Halower 阅读(1745) 评论(2) 推荐(5) 编辑
摘要: 今日学习了一个利用GDI画图的小例子,算是为以后深入学习GDI做个小铺垫。using System;using System.Drawing;using System.Windows.Forms;using System.Drawing.Drawing2D;namespace GDI_{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private PointF PointF(int ... 阅读全文
posted @ 2012-03-16 14:20 Halower 阅读(952) 评论(0) 推荐(5) 编辑
摘要: 我们在使用Main()方法的时候有没有注意过入口参数args的传入传出的值是什么呢?或许这个问题小的都没人注意。刚刚使用IO命名空间下的,Enveriment.Environment.GetCommandLineArgs();获取观察了一下,就会发现,这里的args参数我们是可以自己修改,也可以由程序返回,同时也可以执行前使用cmd方式传入,也可以固定的方式输入,方法很多,我是菜鸟刚学也就发现了这么一点点,博客园的高手们就是好啊,对我这样的超级大菜鸟还是很包容的,有问题大家就帮帮我,目前主攻文学,哲学,神学,但是遇到程序的问题周围没人学这个,只能一个人解决,问题很多啊,大家可以给我指导一下。好 阅读全文
posted @ 2012-03-14 00:27 Halower 阅读(11176) 评论(47) 推荐(6) 编辑
摘要: 这几日没时间学习程序,老师都安排我去听马克思哲学了,闲暇时间还要陪老婆聊天,今天算是学习文件操作的第一天,也就抽时间写个笔记,感觉.NET的IO命名空间下的文件操作类型是目前我遇到的几种语言中最丰富和简洁的所以很好学习,先画个文件类框架呗。任何编程语言操作文件都要调用操作系统的应用程序接口来实现,.NET框架提供了功能强大的统一的应用程序接口,在System.IO命名空间下,定义了多种文件管理,文件和数据流读写的类型。废话也就不多说了,我们来看下我参考微软的官方实例写的例子using System;using System.IO;namespace 文件操作{ class Test ... 阅读全文
posted @ 2012-03-12 22:33 Halower 阅读(4368) 评论(15) 推荐(5) 编辑