自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

imJaron的博客

锲而舍之, 朽木不折; 锲而不舍, 金石可镂

  • 博客(136)
  • 收藏
  • 关注

原创 CabArc to create or extract a cab file

CabArc n D:\test.cab D:\output\*.*CabArc x D:\test.cab -r -p D:\output\*.*

2017-04-13 11:00:45 718

原创 (转)什么时候要抛出异常?

在编写代码的过程中,经常会遇到这样的选择,检查到一个不正常的情况,或者某个操作失败,或者检测到某个异常,此后该怎么办?是抛出一个异常?还是放回一个表示操作失败的返回值?前一段在北京和小汤他们谈起这个问题的时候,有了一些粗略的想法。这段时间在 Leo4Net 的开发中,一些想法逐步清晰起来。=== abc ====== 两种方式的不同 ===    × 返回值很容易被检测,而捕获异常的代码则相对比较

2017-04-13 11:00:42 1181

原创 Sprint评审会议不是Sprint演示会议

最近,Innolution公司的执行总监、Essential Scrum的作者Ken Rubin在其公司博客上撰写了一篇题为It’s a Sprint Review Not a Sprint Demo!的博客,强烈呼吁大家不要把sprint评审会议(sprint review)当成跟sprint演示会议(sprint demo)一样的东西。北京敏捷社区的姜信宝(Bob Jiang)同学认为这篇文章

2017-04-13 11:00:38 1184

原创 Sprint回顾大揭秘——“宝典”来了

我始终记得当年我作为敏捷教练所做的第一次Sprint回顾,这一切都仿佛就发生在昨天。这家公司实行Scrum有好几年了,我自然而然地认为他们这群人是纪律严明并且成熟稳重的敏捷专家。因此,当他们计划了一系列Sprint回顾会议,用来展示X团队最新Sprint成果时,我感到异常兴奋。我早早地溜进了会议室,并为自己找了个绝佳的位子坐下,翘首以盼。渐渐地会议室里的人越来越多,并变得嘈杂起来,这反而使

2017-04-13 11:00:29 686

原创 使用IConfigurationSectionHandler在web.config中增加自定义配置

一. 场景    这里仅举一个简单应用的例子,我希望在web.config里面增加网站的基本信息,如:网站名称,网站版本号,是否将网站暂时关闭等。二. 基本实现方法1. 定义配置节点对应的类:SiteSetting    代码片段:    namespace Tristan.SeeCustomConfig {    public class SiteSetting {        public

2017-04-13 11:00:26 653

原创 软件架构设计---基于鲁棒图进行设计

如何借助鲁棒图进行初步设计呢?      ADMEMS方法归纳了鲁棒图建模的10条经验要点,分别覆盖语法,思维,技巧,注意事项等4个方面。                                          鲁棒图建模的10条经验。1.遵守建模规则。    通过以下4条语句,可以理解该图的本质:         1.1 参与者只能与边界对象交谈。   

2017-04-13 11:00:23 492

原创 命令安装VS

Installing Visual Studio Visual Studio 2015   Other VersionsVisual Studio 2013 Visual Studio 2010Visual Studio 2008Visual Studio 2005Visual Studio .NET 2003 

2017-04-13 11:00:20 1298

原创 Scrum - BB项目日志

这是第三个Scrum团队开发,也是我首次担任Scrum Master一职。所以需要掌握的流程还是很多,也会碰到各种问题,在此记录一下,希望对以后有所帮助。 Day1: 开了一次kick-off meeting,团队定下了第一个Sprint的目标。晚上回忆并恶补了一下SM的知识。Day2:团队一起对story进行了任务划分。决定如何定义一个story的大小。SMs are r

2017-04-13 11:00:17 1447

原创 领域模型驱动设计(Domain Driven Design)入门概述

软件开发要干什么: 反映真实世界要自动化的业务流程解决现实问题 领域Domain Domain特指软件关注的领域在不能充分了解业务领域的情况下是不可能做出一个好的软件  领域建模领域模型驱动设计}  分层架构}  实体}  值对象}  服务}  模块}  聚合}  工厂}  资源库 

2017-04-13 11:00:13 1780

原创 (转)EntityFramework之领域驱动设计实践

EntityFramework之领域驱动设计实践 - 前言EntityFramework之领域驱动设计实践 (一):从DataTable到EntityObjectEntityFramework之领域驱动设计实践 (二):分层架构EntityFramework之领域驱动设计实践 (三):案例:一个简易的销售系统EntityFramework之领域驱动设计实践 (四):存储过程 - 领

2017-04-13 11:00:08 1460

原创 正确理解DTO、值对象和POCO

今天推荐的文章比较技术化也比较简单,但是对于一些初学者而言,可能也是容易搞混的概念:就是如何理解DTO、值对象和POCO之间的区别。所谓DTO就是数据传输对象(Data Transfer Object),POCO就是简单CLR对象(Plain Old CLR Object),概念来源于Java中的POJO;不过值对象(Value Object)并非.NET中的值类型(Value Type)的实

2017-04-13 11:00:05 785

原创 VM - Bridge Adapter

如何让外部可以连到本地的虚拟机。 1. 网络模式 - Bridged Adapter2. 确保本机插上网线3. 如果虚拟机是 Windows 8.1, 需要开启如下选项。

2017-04-13 10:59:57 301

原创 (转)MVC中的Repository模式

1.首先创建一个空的MVC3应用程序,命名为MyRepository.Web,解决方案命名为MyRepository。2.添加一个类库项目,命名为MyRepository.DAL,添加一个文件夹命名为Repository来存放业务逻辑。3.继续添加一个类库项目,命名为MyRepository.Domain,添加两个文件夹Models和Infrastructure。Models来存放实体

2017-04-13 10:59:53 377

原创 工作单元模式(UnitOfWork)学习总结

工作单元的目标是维护变化的对象列表。使用IUnitOfWorkRepository负责对象的持久化,使用IUnitOfWork收集变化的对象,并将变化的对象放到各自的增删改列表中,最后Commit,Commit时需要循环遍历这些列表,并由Repository来持久化。Maintains a list of objects affected by a business transaction

2017-04-13 10:59:48 8035 1

原创 企业模式之Unit Of Work模式

在开始UnitOfWork模式之前有必要回顾下我们耳熟能详的Data Access Object(DAO)模式,即数据访问对象。DAO是一种简单的模式,我们构建应用的时候经常会使用到它,它的功能就是将DAL元素从应用程序中分离出来,在经典的三层架构中,我们会将数据持久化工作单独分离出来,封装成DAL层。但是,DAO并没有隐藏它面对是一张张数据表,而且通常情况我们会为数据库中的每一张表创建一个DAO

2017-04-13 10:59:45 515

原创 (转) Active Record

ActiveRecord是什么:1. 每一个数据库表对应创建一个类.类的每一个对象实例对应于数据库中表的一行记录; 通常表的每个字段在类中都有相应的Field;2. ActiveRecord同时负责把自己持久化. 在ActiveRecord中封装了对数据库的访问, 即CRUD; 3. ActiveRecord是一种领域模型(Domain Model), 封装了部分业务逻辑;ActiveRecord

2017-04-13 10:59:41 331

原创 ORM框架

对象关系映射(ORM)提供了概念性的、易于理解的模型化数据的方法。ORM方法论基于三个核心原则: 简单:以最基本的形式建模数据。 传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型创建正确标准化了的结构。 典型地,建模者通过收集来自那些熟悉应用程序但不熟练的数据建模者的人的信息开发信息模型。建模者必须能够用非技术企业专家可以理解的术语在概念层次上与数据结构进行通讯。建模者也必须

2017-04-13 10:59:37 299

原创 什么是领域驱动设计(Domain Driven Design)?

本文是从 What is Domain Driven Design? 这篇文章翻译而来。  ”…在很多领域,专家的作用体现在他们的专业知识上而不是智力上。“  -- Don Reinertsen  领域驱动设计(Domain Driven Design)是一种软件开发方法,目的是让软件系统在实现时准确的基于对真实业务过程的建模并根据真实业务过程的调整而调整。  传统的开发工作趋向于

2017-04-13 10:59:34 365

原创 关于Repository模式

定义(来自Martin Fowler的《企业应用架构模式》):Mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects.个人理解:Repository是一个独立的层,介于领域层与数据映射层(数据访问层)之间。它的存在让领

2017-04-13 10:59:27 453

原创 MEF——.NET中值得体验的精妙设计

摘要:.NET 是 Microsoft XML Web services 平台。MEF是.NET Framework 4.0一个重要的库,Visual Studio 2010 Code Editor的扩展支持也是基于MEF构建的。下面让我们一起来看。  MEF(Managed Extensibility Framework)是.NET Framework 4.0一个重要的库,Visua

2017-04-13 10:59:22 657

原创 RotateAnimation 详解

RotateAnimation 详解看看新闻网>看引擎>开源产品其他构造器的旋转也可参考这副图。RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点。x轴为0度,顺时针方向旋转一定的角度。1.RotateAnimation(fromDegrees, toDegrees) [默认以View左上角顶点为旋转点]。X轴顺时针转动到fromDegrees为旋转的起始点

2017-04-13 10:59:19 772

原创 Android 动画之RotateAnimation应用详解

android中提供了4中动画: AlphaAnimation 透明度动画效果 ScaleAnimation 缩放动画效果 TranslateAnimation 位移动画效果 RotateAnimation 旋转动画效果 本节讲解RotateAnimation 动画, RotateAnimation (float fromDegrees, float toDegrees, int pivotXTy

2017-04-13 10:59:16 290

原创 android触控,先了解MotionEvent

这是我个人的看法,要学好android触控,了解MotionEvent是必要,对所用的MotionEvent常用的API要比较深入的了解.下面是我个人的学习过程记录:android.view.MotionEventMotionEvent源代码可以在ocs看到,当然你也可以在SDK中下载源代码,或者其他地方,如:https://github.com/android/platform_

2017-04-13 10:59:13 369

原创 Android 自定义ListView实现底部分页刷新与顶部下拉刷新,androidlistview

在项目开发中,由于数据过大时,需要进行分页加载或下拉刷新,来缓解一次性加载的过长等待。本篇博文实例讲解通过自定义的ListView实现底部分页加载和顶部下拉刷新的效果。其效果图:一.ListView 底部分页加载整个底部分页加载,主要分一下几步:1.加载底部自定义View;2.响应OnScrollListener监听事件,onScroll方法记录最后可见的View Item

2017-04-13 10:59:09 301

原创 Android中View绘制流程以及invalidate()等相关方法分析

前言: 本文是我读《Android内核剖析》第13章----View工作原理总结而成的,在此膜拜下作者 。同时真挚地向渴望了解     Android 框架层的网友,推荐这本书,希望你们能够在Android开发里学到更多的知识 。                       整个View树的绘图流程是在ViewRoot.java类的performTraversals()函数展开的,

2017-04-13 10:59:06 187

原创 Android LayoutInflater深度解析

1、 题外话相信大家对LayoutInflate都不陌生,特别在ListView的Adapter的getView方法中基本都会出现,使用inflate方法去加载一个布局,用于ListView的每个Item的布局。Inflate有三个参数,我在初学Android的时候这么理解的:对于Inflate的三个参数(int resource, ViewGroup root, boolean atta

2017-04-13 10:59:03 173

原创 Android编程之LayoutInflater的inflate方法详解

LayoutInflater的inflate方法,在fragment的onCreateView方法中经常用到: [java] view plaincopy public View onCreateView(LayoutInflater inflater, ViewGroup container,          Bundle savedInstanceSt

2017-04-13 10:58:58 603

原创 Android如何在初始化的时候获取加载的布局的宽高

在自定义ListView中,需要将下拉刷新的View在初始化的时候设置padding隐藏起来,这时就要在初始化的时候获得要加载的布局View的高度。private View headView;headView = inflater.inflate(R.layout.header, null);如果接下来调用:headView.getHeight();headView.getMe

2017-04-13 10:58:55 496

原创 MeasureSpec介绍及使用详解

一个MeasureSpec封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求。一个MeasureSpec由大小和模式组成。它有三种模式:UNSPECIFIED(未指定),父元素部队自元素施加任何束缚,子元素可以得到任意想要的大小;EXACTLY(完全),父元素决定自元素的确切大小,子元素将被限定在给定的边界里而忽略它本身大小;AT_MOST(至多),子元素至多

2017-04-13 10:58:51 393

原创 你还在用notifyDataSetChanged?

想到发这篇帖子是源于我的上一篇帖子#Testin杯#多线程断点续传后台下载 。帖子中讲述的项目使用了listView这个控件,而且自定义了adapter。在更新item的进度条时发现每次使用notifyDataSetChanged(),都会去调用自定义adapter中的getView方法。这时问题就出现了,用notifyDataSetChanged方法去更新listView中的item,是更新需要

2017-04-13 10:58:47 229

原创 ListView中convertView和ViewHolder的工作原理

LsitView和Adapter参考:http://www.cnblogs.com/xiaowenji/archive/2010/12/08/1900579.html工作原理: 1.ListView针对List中每个item,要求adapter给我一个视图(getView) 2.一个新的视图被返回并显示 如果我们有上亿个item要显示怎么办?为每个项目创建一个新视图?NO!

2017-04-13 10:58:43 272

原创 堆和栈的区别

堆栈在计算机领域,堆栈是一个不容忽视的概念,但是很多人甚至是计算机专业的人也没有明确堆栈其实是两种数据结构。要点:堆:顺序随意栈:先进后出堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程

2017-04-13 10:58:39 196

原创 Activity的四种launchMode

launchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成新的Activity实例,是否重用已存在的Activity实例,是否和其他Activity实例公用一个task里。这里简单介绍一下task的概念,task是一个具有栈结构的对象,一个task可以管理多个Activity,启动一个应用,也就创建一个与之对应的task。Activity一共有以下四种launc

2017-04-13 10:58:36 163

原创 Activity及Intent

1、Activity  在一个Android应用程序中,Activity是为用户操作而展示的可视化界面。比如你要打电话,这个时候的拨号界面就是一个Activity,你要发短信给你的女朋友,这个短信窗口就是一个Activity。Activity在创建之初只是一个没有任何内容的页面,如果要做出用户体验非常棒的应用程序,还需要在Activity中添加控件(如按钮,文字,图片)以显示和响应用户操作。

2017-04-13 10:58:32 224

原创 关于android中PendingIntent.getBroadcase的注册广播

使用语句[java] view plaincopy PendingIntent intent= PendingIntent.getBroadcast(Context context, int requestCode, Intent intent, int flags)  获得PendingIntent,浏览了各类文章,大多数说了这种方法,但是基本上也就是止步

2017-04-13 10:58:25 257

原创 C# Parallel用法

在命名空间System.Threading.Tasks下,有一个静态类Parallel简化了在同步状态下的Task的操作。Parallel主要提供了3个有用的方法:For、ForEach、Invoke。 For方法,主要用于处理针对数组元素的并行操作,如下:         static void 

2017-04-13 10:58:20 1176

原创 用Parallel.For()和Parallel.For<TLocal>()方法实现并行运行迭代

Parallel类是.NET 4中新增的抽象线程类。如果你开发用的是VS2008或更低版本,那么就直接关闭吧,下面两个示例用了匿名委托,如果不知道匿名委托的语法,那么先去简单了解一下,不然很难理解示例代码。  Parallel.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Parallel.For()方法,可以并行运行迭代。迭代的顺序没有定义。  在For()方法中,

2017-04-13 10:58:15 510

原创 CursorAdapter中getView newView bindView异同

Adapter的作用是界面与数据之间的桥梁,通过设置适配器至ListView控件后(如调用ListView的 setAdapter(ListAdapter adapter)                              ),列表的每一项会显示至页面中。其实,当列表里的每一项显示到页面时,都会调用Adapter的getView方法返回一个View,如:                  

2017-04-13 10:58:12 563

原创 Android四大组件之ContentProvider

ContentProvider 是 Android四大组件之一,Android提供了五种数据存储技术(其他的四种分别是:SharedPreferences、IO、SQLite、网络)。这五种技术都能由ContentProvider提供的方法按统一的代码格式存取。这种以一致性的方法操作多样性的数据源与面向对象的多态异曲同工。 Android中的Contentprovider机制可支持在多个应

2017-04-13 10:58:08 259

原创 消息模式Toast.makeText的几种常见用法

Toast 是一个 View 视图,快速的为用户显示少量的信息。 Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于 一些帮助 / 提示。Toast 最常见的创建方式是使用静态方法 Toast.makeText我使用的是 SDK 2.21. 默认的显示方式Java代码1 // 第一个参数:当前的上下文环境。可用getApplicatio

2017-04-13 10:58:05 421

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除