MOSCOW项目开发过程中导出EXCEL,TXT,HTML文件时候用下以下代码输出文件
Response.Buffer = false;
Response.AddHeader(“Connection”, “Keep-Alive”);
Response.ContentType = “application/octet-stream”;
Response.HeaderEncoding = System.Text.Encoding.UTF8;
Response.AddHeader(“Content-Disposition”, “attachment;filename=” + HttpU[......]
一 应用场景:
SAAS平台的客户大都是以自己的域名来登陆所购买的服务,以邮局为例
用户A通过自己的域名如:mail.a.com来访问webmail
用户B通过自己的域名如:mail.b.com来访问webmail
安全起见一般登陆过程会使用https,但用户很少会购买自己的SSL证书,也不太现实
所以通常的做法是一台服务器申请一个SSL证书,所有域通过这个证书对应的地址登陆
登陆验证机制完全自己编写的话,在所有域登陆form的action全部指向申请的证书的域名地址即可,如action=”https://mail.serverhost.com/login”
mail.serverhost[......]
一、服务端缓存,redis与memcached
memcached做缓存,redis做队列,mongodb做储存,是当前比较潮且实用的组合,此处讲述redis相对于memcached的一些特性,及在两者在ewave中的应用实例,不涉及性能对比问题。同是以key-value形式存储,redis是后起之秀,较之memcached有些优势,主要有:
1.数据结构,redis支持丰富数据结构,如strings, hashes, lists, sets and sorted sets,能够方便地进行截取、计算、排序等二次操作。在ewave中的应用比较典型的有:在线用户、im最近联系人。对于“在线用户”,[......]
背景
最近我们团队接手了一个新项目,这个项目应用中大量涉及文件(尤其是图片)的存取,例如产品图片、用户头像、自定义页面背景图、及相关业务流程上传的附件等等。起初,我们采用最传统的做法:页面上传,全部保存在服务器上,按照业务点划分在几个固定的文件夹里。这样做虽然简单,但性能和扩展性问题也会伴随而来:数据量一大,管理和索引都很慢,几乎无法备份,读取也很慢。于是,我们开始着眼于更为高效的做法——MongoDB GridFS 的文件存储。
实现
GridFS是MongoDB的一个内置功能,它提供一组文件操作的API以利用MongoDB存储文件,GridFS的基本原理是将文件保存在两个Collectio[......]
一、组件概述
用户开通刺猬建站账号后,第一个要做的事情就是展示用户自己的信息。这些信息要被前台访客访问,就必须将所有信息发布到前台服务器,生成前台站点页面。系统中的页面都是通过组件的方式整合起来的,一个页面就是各种各样的组件的组合。因此,编辑站点页面中的组件是用户使用刺猬建站系统的第一体验。刺猬建站4.1版本之前,编辑页面组件的速度还是比较不理想的,响应时间一般都是在2秒以上,所以,4.1版本对所有的34个组件进行了重写和优化。
二、优化方案
这次优化的基本思想就是淘汰旧的页面编辑模式,淘汰性能不佳的通用控件,采用JS输出缓存、页面缓存和局部缓存等方式,具体调整过程如下:
1、页面结构大调整,[......]
由于CRM系统在部署公司内部使用的时,为了能够使用8G的内存,所以操作系统使用了Windows Server2008R2(Windows Server2008R2是64位系统,同时配置IIS7.0),但是系统在部署后,测试时发现CRM系统中的导入功能不能使用,后经过调试发现从Excel中取数据,它速度快也很方便的代码居然出现了异常,具体代码如下:
string strConn = “Provider=Microsoft.Jet.OLEDB.4.0;” + “Data Source=” + strFileName + “;” + “Extended Properties=Excel 8.0;”[......]
一、功能概述
在OA系统,进入待办事务列表时,因为事务数据库的数据量比较大,且查找待办事务又需要关联几张表,影响了查找待办事务列表的速度,导致用户体验下降。
于是考虑以下优化思路:在用户登录进入系统时,在客户端后台先将事务列表读取至缓存,在进入待办事务列表时即可直接显示,甚至在列表读取完后,可再在后台将各条事务详情读取至缓存,如此可大大提高响应速度,用户体验也相应提升。
二、目标确定
从总体考虑,除实现功能以外,还需要考虑以下问题,只有妥善处理好以下问题,才能称得上成功的实现:
1、低开发成本,如需大幅修改各功能模块代码,成本太高,必须考虑低成本的实现方案。
2、低持续开发成本,如只对目前需求[......]
网关系统在3.3版本中增加了收发件人的并发控制,邮件的投递优先级控制等业务功能。这些功能都是基于ZooKeeper来实现的。
ZooKeeper是一个应用程序协调服务软件,主要针对分布式文件系统,用来解决分布式集群中应用系统的一致性问题。它能提供基于类似于文件系统的目录节点树方式的数据存储,它的作用主要是用来维护和监控存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理。
[......]
因为我曾经坚信“组合优于继承”,“只要implement,不要extend”。写这篇文章,某种意义上算是对我曾经有偏见的继承/多继承道个歉,以后我会将它们加入常规武器中。
我和很多面向对象初学者一样,都经历过滥用继承的阶段。我刚开始学习面向对象,使用的是C++,开发时最主要是使用类来划分程序模块。因为用继承来扩展一个类十分方便而直观,所以我和很多面向对象的初学者一样十分喜欢使用继承。但是滥用继承会使得代码逻辑和类阶层不必要的复杂和冗余,最后让开发者自食其果。这也是导致继承名声变臭的原因。
有一定开发经验后,我开始学习设计模式,顿时觉得豁然开朗,解决了很多疑惑。于是我把《[......]


(4 人打了分,平均分:4.50 )你必须是注册会员才能进行评分。