随笔分类 - .net web技术
摘要:在这一层中,应用了sql server CTE,关于cte,在这里补充一下:CTE (Common Table Expression),是从sql server 2005开始支持的一种表达式,它是一种临时结果集,与派生表类似,仅在查询期间有效。与派生表不同的是,cte可以调用自身,从而实现递归。此外,还可以在同一查询中引用多次。下面是CTE的语法:[ WITH [ ,n ] ]::=expression_name [ ( column_name [ ,n ] ) ]AS( CTE_query_definition )至少有一个定位点成员和一个递归成员,当然,你可以定义多个定位点成员和递归成员,
阅读全文
摘要:Controller 这一层首先要添加对WCF 的引用:如下,输入我们自己的wcf地址http://localhost:8732/Design_Time_Addresses/InfoPub.BLLService/Service1/mex为了解析嵌套结构的类,我们加入JsonBinderusing System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Mvc;using System.Web.Script.Serialization;namespace InfoPub
阅读全文
摘要:BLL层我们用wcf 来提供服务,这一层我们只对外只发布一个服务,为了使我们的代码可维护更好,我们引入抽象工厂模式。这样的话我们首先也创建三个接口:1) IInfo InfoResult Add(Info info);InfoResult Update(Info info);InfoResult Delete(int infoId);InfoList GetInfoList(SearchInfo searchInfo);InfoList GetInfoById(int infoId);2) IInfoType跟上面相同,不再赘述。3) IUserInfo跟上面相同,不再赘述。然后实现这三个接口
阅读全文
摘要:跟model层一样,我们同样可以用动软代码生成器来生成DAL层。这一层主要是数据库的访问,不再多介绍.需要说明的是我们要把微软的SqlHelper类引入我们的项目,这样我们访问数据库用这个类就够了,关于这个类大伙可以参见微软petshop中的SqlHelper类。1. 首先定义接口我们创建三个接口: 1) IInfo InfoResult Add(Info info);InfoResult Update(Info info);InfoResult Delete(int infoId);InfoList GetInfoList(SearchInfo searchInfo);InfoList Ge
阅读全文
摘要:下面开始在我们的解决方案里面增加实体.这一层我个人感觉是跟数据库的映射层次,有了这一层,各层访问数据库会方便很多,不然的话得用DataSet或DataReader的直接访问了。理解为持久化对象就ok了。在这里我们开始使用动软.Net代码生成器,这个网上很多,想使用的下载就可以了,更好的是CodeSmith 只不过这个工具我们需要自定义模板。用代码生成器是为了我们自己一手写重复的代码,仅此而已。安装好动软.Net代码生成器后,进入下面的界面:首先在左边的树菜单新增服务器,如下:选择下一步:输入相对应的服务器,用户/密码,数据库,选择确定即可。然后在左侧新建好的服务器选择连接:选择其中的info表
阅读全文
摘要:由于vs2010 本身不带 mvc3,所以我们需要下载AspNetMVC3ToolsUpdateSetup.exe下载地址如下:http://www.asp.net/mvc安装完成后,即可创建mvc3的项目如下,输入我们的项目名称InfoPub:选择ok,进入下个页面:在这里我们选择Empty,注意默认的其他两个项目模板会自动生成登录,注册相关的一些东东,我们不需要,自动生成的结构如下:系统已经默认帮我们把jquery加入到Scripts下了,这里介绍一下:这里面包括了我们后面要用到的jquery 1.5.1(基本的jquery 1.5.1),jquery validate(验证),jquer
阅读全文
摘要:数据库设计工具我们依然采用Enterprise Architect 7.5 汉化版在这里可以稍微介绍下EA,个人比较喜欢Enterprise Architect ,这个工具比较类似Rational Rose网上有破解版本,它可以支持从需求分析到设计部署的全过程建模上问我们用了它的用例建模,下面我们开始使用它的数据库建模,下面是ea的操作界面:我们双击右边model下的Data model,选择左边Class下的table,出现新建table:这里一个关键的地方是记得选择数据库:我这里选择的是sql server 2005,输入数据名称后,选择Table Detail:选择列/变量:为表定义列名
阅读全文
摘要:者当前正在负责研究所中一个项目,这个项目基于.NET平台,初步拟采用C/S部署体系,所以选择了Windows Forms作为其UI。经过几此迭代,我们发现了一个问题:虽然业务逻辑已经封装到Services层中,但诸多的UI逻辑仍然弥漫在各个事件 Listener中,使得UI显得臃肿不堪,并且存在诸多重复性代码。另外,需求提供方说,根据实际需要,不排除将部署结构改为B/S的可能性,甚至可能 会要求此系统同时支持C/S和B/S两种部署方式。那么,如果保持目前将UI逻辑编码到Windows Forms中的方式,到时这些UI逻辑将无法复用,修改部署方式的代价很大。 为了解决以上两个问题,笔者和相关人员
阅读全文
摘要:最近这段时间,开始使用TFS2010进行项目的源码管理,在使用过程中,发现了不些问题,由于开发人员的操作失误,经常导致了源码中的文件被锁定,而在开发人员的PC机上又不能把锁定的文件签入到TFS中,刚开始遇到这个问题时,想通过管理员帐号来“取消锁定”,但在“源代码管理器”中,管理员帐号也没有权限操作“取消锁定”。遇到这种文件被锁定的事,是相当的郁闷。 郁闷归郁闷,问题还是得要解决,所以baidu、google了不少资料,原来“取消锁定”是不能通过界面来操作的,而是要使用TFS的命令来实现解锁操作,在不断的摸索和参考其它文章,总算把这个头痛的问题解决了,为了方便以后解决同样的问题、也为了其他同志在
阅读全文
摘要:跟国外公司的测试过程已经基本完成了,web service的互通问题也已经解决.需要注意的是:1,命名空间一定要一致2,必须确保两种web service的soap 包格式相同.下面用代码解释一下using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Services.Description;using System.Web.Services.Protocols;using System.Xml;usin
阅读全文
摘要:最近因为项目需要,研究了一下邮件的发送和接收,发现现在这方面的问题很多.虽然网上这方面的资料很多,但是真正应用起来仍然会发现不少问题,而且很多人都抱怨书上或者网上的一些代码应用起来是失败的,并且针对附件方面的处理不太完善,针对这种情况我把最近研究所得做一个小小的总结,希望能对大家有所帮助。 首先来谈谈发送邮件的问题。 发送邮件现在应用得最多的两种情况就是利用.NET自带的发送邮件和利用jmail组件来发送邮件。 .NET自带的邮件发送利用了System.Web.Mail.MailMessage这个类,这是在VS2003的情况下,在VS2005下更多的是利用System.Net.Mail.Mai
阅读全文
摘要:本文涉及的内容:1:自己制作Pop3Helper 信件格式的处理有麻烦2:使用现成的pop3类 LumiSoft.Net.POP3.Client; 有两种处理方法3:使用IMAP收邮件 功能似乎更多,比起pop3来。4:SMTP发送邮件 关于 Mailbox unavailable. The server response was: 5.7.1 Unable to relay for xx 的错误处理 自己写一个POP3的接收程序并不是很简单。主要问题就是如何处理信件的格式。其处理方法不是太复杂,用一个tcp联接就可以了。这是代码 public class Pop3Helper { strin
阅读全文
摘要:大型网站,比如门户网站。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。但是除了这几个方面,还没法根本解决大型网站面临的高负载和高并发问题。 上面提供的几个解决思路在一定程度上也意味着更大的投入,并且这样的解决思路具备瓶颈,没有很好的扩展性,下面我从低成本、高性能和高扩张性的角度来说说我的一些经验。1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。但是对于大量内容并且频繁
阅读全文
摘要:ASP.NET并发处理讲到并发处理,我们一般会分为两个方面来说:a)服务器级别的并发控制; b)程序级别的并发控制。服务器级别的并发控制:Ø 调整服务器应用程序池中的最大连接数。对于Web 服务器,dudu在优化博客园的服务器的时候写过以下的文章。dudu 写过让Windows Server 2008+IIS 7+ASP.NET支持10万个同时请求http://www.cnblogs.com/dudu/archive/2009/11/10/1600062.html1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535。 IIS Manager > Appli
阅读全文
摘要:HttpModule的认识 HttpModule是向实现类提供模块初始化和处置事件。当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任何处理,也就是说此时对于HTTP请求来讲,HttpModule是一个HTTP请求的“必经之路”,所以可以在这个HTTP请求传递到真正的请求处理中心(HttpHandler)之前附加一些需要的信息在这个HTTP请求信息之上,或者针对截获的这个HTTP请求信息作一些额外的工作,或者在某些情况下干脆终止满足一些条件的HTTP请求,从而可以起到一个Filter过滤器的作用。1、asp.net的HTTP请
阅读全文
摘要:C#之程序集 程序集的定义: 1.程序集是一个或多个托管模块,以及一些资源文件的逻辑组合。 2.程序集是组件复用,以及实施安全策略和版本策略的最小单位。 3.程序集是包含一个或者多个类型定义文件和资源文件的集合。在程序集包含的所有文件中,有一个文件用于保存清单。(清单是元数据部分中一组数据表的集合,其中包含了程序集中一部分文件的名称,描述了程序集的版本,语言文化,发布者,共有导出类型,以及组成该程序集的所有文件)。程序集的物理表现: 1.可执行程序集:存在一个用于表示EXE的文件,这个文件是程序集的入口点。 2.提供功能的程序集:存在一个用于表示DLL的文件,这个文件是程序集的入口点。程序集.
阅读全文
摘要:1.学习目标 通过学习nhibernate基础知识,了解nhibernate对组合属性的用法。2.开发环境和必要准备 开发环境为:windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition 必要准备:学习前六篇nhibernate学习系列Nhibernate学习之起步篇-1 ,Nhibernate学习起步之many-to-one篇 ,Nhibernate学习之many-to-many篇 ,nhibernate学习之三级联(Ternary Associations)篇 ,Nhibernate学习之性能改善1 ,nh
阅读全文
摘要:1) 学习目标通过进一步学习Nhibernate基础知识,掌握用Nhiberate实现对级联的支持,通过一个简单的用户角色权限系统来体验nhibernate对级联的强大支持。2)开发环境和必要准备 开发环境为:windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition 必要准备:学习前三篇nhibernate学习系列Nhibernate学习之起步篇-1 ,Nhibernate学习起步之many-to-one篇 ,Nhibernate学习之many-to-many篇 3)示例 业务需求:实现一个用户角色权限系统,一
阅读全文
摘要:学习目的: 通过进一步学习Nhibernate基础知识,掌握用Nhiberate实现多对多的业务逻辑 开发环境+必要准备 开发环境: windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition前期准备: 学习上两篇单表操作和many-to-one篇 3.对上篇文章的部分解释1)bag节点:用于定义System.Collection.IList类型的集合元素。 属性 用法 举例 name 映射的属性(必须) name=”SalaryList” table 映射的数据表(可选) table=”Salary” laz.
阅读全文
摘要:Nhibernate学习起步之many-to-one篇 1. 学习目的: 通过进一步学习nhibernate基础知识,在实现单表CRUD的基础上,实现两表之间one-to-many的关系.2. 开发环境+必要准备开发环境: windows 2003,Visual studio .Net 2005,Sql server 2005 developer edition必要准备: 学习上篇文章单表操作 3) 更改User.cs,在User里面添加SalaryList属性:4)修改User.hbm.xml,加入bag节点5)编写类Salary的映射文件:Salary.hbm.xmlSalary.hbm.
阅读全文