Fork me on GitHub

2013年3月13日

摘要: C# 将扁平状数据链接成树状结构的通用方法在项目中经常会遇到从数据库查询数据绑定到TreeVIew上,这时我们需要将查询出来的数据转换成树形结构数据,每次写觉得工作会很重复,所以写了一个通用的转换类。第一步,我们需要建一个基类,这个基类的意义主要是扩展数据库实体类做连接用,用于确定树形结构中节点与子项的关系,其中Parent为当前节点的父节点,Children为当前节点的子节点,IsLinked是判断当前节点是否已连接,用于防止数据中有循环依赖导致创建树的时候形成死循环。TreeModel基类public class TreeBase<T> { private bool i... 阅读全文
posted @ 2013-03-13 22:09 HackerVirus 阅读(394) 评论(0) 推荐(0)
摘要: Nodejs+express+angularjs+mongodb搭建前端项目框架NJBlog项目地址:https://github.com/mz121star/demo项目来源: 最近一年学习前端方面技术,不敢说有所成绩,但是也是收获了颇多的经验,前端是个大水坑,学习路上总是遇上各种的坑,新技术的层出不穷让人眼花缭乱。出于想对前端方面的技术做一些总结 ,所以就花了一些时间边学习边增加的建立了这个项目,由我和我的同事共同维护中。今天分享出来,希望能和各路高手共同学习交流,更希望可以得到诸如看官您这样的神人来指导一下。项目介绍:NJBlog后台采用Nodejs+express来提供Restful 阅读全文
posted @ 2013-03-13 22:08 HackerVirus 阅读(316) 评论(0) 推荐(0)
摘要: ASP.NET MVC4.0 控件的应用(一) 近期看了下ASP.NET MVC4.0框架,控件的使用方面跟MVC之前的版本有点区别,想通过博客记录下,同事分享一些基本的使用技巧。之前也看过MVC1.0 bate的控件代码。其实说白了就是对HTML控件进行封装,然后再加一些安全、过滤的机制。本人很少写blog,文字表达能力很一般,请各位见谅。 下面我就记录下控件的使用,跟大家一起学习: 一、Lable控件的使用 1、最简单的展现文字 ?1<b>例子一:</b>@Html.Label("测试文字一") 2、加入html标签其他样式属性?1<b&g 阅读全文
posted @ 2013-03-13 22:06 HackerVirus 阅读(159) 评论(0) 推荐(0)
摘要: 用状态模式实现状态机工作流概述状态机工作流由一组状态组成。一个状态被指示为初始状态。每个状态都可以接收一组特定事件。视事件而定,可以转换到另一个状态。状态机工作流可以有最终状态。当转换到最终状态时,工作流将完成。场景针对我上篇博客设计的一个简单的状态机工作流,流程图如下:我们来设计个用设计模式中的状态模式来设计这个工作流。设计先看看它的User Case功能设计:再看看它的Class diagram设计:实现先创建Enums class:?123456789101112131415161718192021222324252627282930313233343536373839404142434 阅读全文
posted @ 2013-03-13 22:05 HackerVirus 阅读(570) 评论(0) 推荐(0)
摘要: Guestbook留言板(guestbook)比较简单:何人何时留何言。1.运行 vs2012,选择 MVC 4 模板,输入项目名称:x01.Guestbook,一路默认即可。2.在项目上右击,从弹出菜单上选择 NuGet 管理器,分别安装 EntityFramwork 和 EntityFramwork.SqlServerCompact,以便使用 DbContext。3.在 App_Data 文件夹下,创建 Compact 数据库Guestbook.sdf。表Entry,字段Id, Name, Message, Date。4.在 Models 文件夹下,添加 GuestbookModel.c. 阅读全文
posted @ 2013-03-13 22:02 HackerVirus 阅读(632) 评论(0) 推荐(0)
摘要: Android开发经验总结1、有一个方法,有一段类似于下面这样:new Thread(){ public void run(){ // 做了一些数据库操作 db.close(); } }.start(); 结果运行过程中,发现有时候会报数据库已经锁定的异常。最后才定位到上面这段代码。原因是在上面的run()方法中打开了数据库,这个时候会自动锁定Database,如果在关闭数据库之前,另外一个线程B也进行数据库操作,就会报这个异常。如果数据库已经关闭之后,另外一个线程B请求数据库操作,就没有问题。所以在新线程中进行数据库操作,或... 阅读全文
posted @ 2013-03-13 21:58 HackerVirus 阅读(126) 评论(0) 推荐(0)
摘要: java中的WeakReferencejava语言中为对象的引用分为了四个级别,分别为 强引用 、软引用、弱引用、虚引用。本文只针对java中的弱引用进行一些分析,如有出入还请多指正。在分析弱引用之前,先阐述一个概念:什么是对象可到达和对象不可到达状态。其实很简单,我举个例子:现在有如下两个类class A class B,在JVM上生成他们两个类的实例分别为 instance a instance b有如下表达式:A a = new A();B b = new B();两个强引用对象就生成了,好吧,那么这个时候我做一下修改:A a = new A();B b = new B(a);B的默认构 阅读全文
posted @ 2013-03-13 21:45 HackerVirus 阅读(197) 评论(0) 推荐(0)
摘要: 异步编程:.NET4.X 数据并行=============C#.Net篇目录==============任务并行库(TPL)是.NET Framework 4的System.Threading和System.Threading.Tasks命名空间中的一组公共类型和API。TPL的目的在于简化向应用程序中添加并行性和并发性的过程,从而提高开发人员的工作效率。TPL会动态地按比例调节并发程度,以便最有效地使用所有可用的处理器。此外,TPL还处理工作分区、ThreadPool上的线程调度、取消支持、状态管理以及其他低级别的细节操作。通过使用TPL,您可以在将精力集中于程序要完成的工作,同时最大程度 阅读全文
posted @ 2013-03-13 21:43 HackerVirus 阅读(302) 评论(0) 推荐(0)
摘要: 关于重构JS前端框架的失败经验(顺便怀念那些死去的代码)好了 开始吧重构这个其实也不是什么大动作,主要要实现的功能嘛,就是把现有的JS代码重新划分一下,解耦现有模块。然后我打算把现有的程序划分一下模块然后重新打包做一个命名空间实现use或者类似于java的Package的东西。那么我只要加载一个use的js文件调用这个文件的use函数,通过设置某些参数,我可以动态地加载所需要的模块。这个是最完美的想法(那时我很傻很天真)。好的,噩梦开始了。前提,我低估了3个月前的自己。//好吧,下面可能会出现un文明用语~~首先,计划的第一天,我的打算是分离这个程序里面最需要解耦的部分,自制控件部分。说起来, 阅读全文
posted @ 2013-03-13 20:56 HackerVirus 阅读(482) 评论(0) 推荐(0)
摘要: 忘却之都梦话对象之三:三要素的差异与统一摘要: 这篇说说分类的问题。面向对象的设计从根本上就是一个选择分类的过程,而在分类的过程中,只要不出逻辑上的问题,任何分类都是正确的。所以说,对一个系统进行面向对象的建模,1000个人能建立出1000个不同的模型,但只要建立的模型中没有逻辑问题,都不能说这个建模是错的。只有对系统需求建模的适合与不适合,易扩展与不易扩展之分。而对于开发人员来说,大多数人的思维习惯都是非黑即白的思维,这大概也是真正的对象技术...阅读全文posted @2010-01-31 18:28枫 阅读(176) |评论 (0)编辑梦话对象之二:事件之无限扩展摘要: 上面已经谈过了对 阅读全文
posted @ 2013-03-13 11:01 HackerVirus 阅读(230) 评论(0) 推荐(0)