任务驱动,对比式学习.NET开发系列之开篇------开源2个小框架(一个Winform框架,一个Web框架)
一 源码位置
1. Winform框架
2. web框架
二 高效学习编程的办法
1 任务驱动方式学习软件开发
大部分人学习软件开发技术是通过看书,看视频,听老师上课的方式。这些方式有一个共同点即按知识点进行讲解。比如拿c#编程为例,首先是讲解大量的基础概念,如类和对象,继承多态,事件委托,泛型接口等等。这种学习方法的一个弊端是学习了大量的知识点,但是不知如何运用。
换一个角度,采用任务驱动的模式,提供一些从易到难的编程任务,一个个进行攻克,给出任务的同时,列出解决该任务需要掌握的知识,通过简单介绍这些知识和学习者自己百度google的方式,让学习者自己通过努力完成任务,任务过程中提供简单的答疑(只提供思路)。编程任务需要精心设计(如身份证解析,统计文章中出现单词个数,猜单词游戏,飞机大战游戏,通讯录管理系统等等)。
2 对比式,相互启发式学习
比如可以采取同一个编程任务,分别实现一个pc版及一个web版的方式,通过比较2种版本不同的实现方式,对照着进行学习。既可以体会到pc端软件开发和web软件开发的不同之处,又能从比较高的角度体会到编程的共通点。
pc开发经验多的学习者可以快速掌握web开发方法,web开发经验的多学习者可以快速掌握pc开发方法。
三 WinForm小框架
采用Winform+WeifenLuo.WinFormsUI.Docking.dll技术。截图如下:

使用Winform框架新增一个窗体的步骤:
1.新增一个窗体,窗体的Text属性假设为[主页],窗体的名字假设为Frm_Home
2. 修改该窗体继承的基类Form->DockContent,并添加引用using WeifenLuo.WinFormsUI.Docking;
3. Frm_Main中InitFormText2FormTypeNameDic函数中,添加 一句dicWinformBase.Add("主页", "CSharpGoWinForm.Frm_Home");
注意这里字典的Key要和第一步中窗体的Text属性一样,这里字典的Value要和第一步中窗体的名字属性一样,并且前面需要加上命名空间.(CSharpGoWinForm.Frm_Home)
四 Web小框架
采用Jquery EasyUI + zTree + Bootstrap技术。截图如下:

使用Web框架新增一个窗体的步骤:
1.新增一个aspx文件,假设叫StringJoinAndSplit.aspx
2.在Default.aspx的js代码段var zNodes =...部分,新增
{
name: "字符串合并与分解",
file: "StringJoinAndSplit.aspx"
}
五 你可以用这2个小框架做什么
1.累积自己做的一些小实验,便于以后检索;
2.收集别人的一些开源小类库代码;
六 我打算用这2个小框架做什么
设计一个个由简到难的编程任务(来自于真实项目实践),分别提供web版和pc版的实现,达到.NET开发知识学习的目的,做为接下来系列随笔的基础。
提供的2个框架都比较简单,不会对这2个框架的实现原理进行详细解释,希望有心者自己去摸索。
winform框架主要用到了点反射技术,树形控件,字典应用;
web框架用到了点jquery easyui, zTree, BootStrap;
初学者可以选择自己的学习方向,跟着这2个小框架,自行学习相关的知识。
任务驱动,对比式学习.NET开发系列之开篇------开源2个小框架(一个Winform框架,一个Web框架)的更多相关文章
- 任务驱动,Winform VS WEB对比式学习.NET开发系列第一篇------身份证解析(不断更新的WEB版本及Winform版本源码)
一 本系列培训随笔适用人群 1. 软件开发初学者 2. 有志于转向Web开发的Winform程序员 3. 想了解桌面应用开发的Web程序员 二 高效学习编程的办法 1 任务驱动方式学习软件开发 大部分 ...
- 程序员带你学习安卓开发系列-Android文件存储
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充 ...
- 任务驱动,学习.NET开发系列第2篇------单词统计
一 高效学习编程的办法 1 任务驱动方式学习软件开发 大部分人学习软件开发技术是通过看书,看视频,听老师上课的方式.这些方式有一个共同点即按知识点进行讲解.比如拿c#编程为例,首先是讲解大量的基础概念 ...
- Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架
Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...
- 齐博软件 著名的老牌CMS开源系统 X1.0基于thinkphp开发的高性能免费开源PHP开放平台齐博x1.0基于thinkphp框架开发的高性能免费开源系统 主推圈子 论坛 预定拼团分销商城模块
齐博X1--标签变量大全 1.网站名称: {$webdb.webname} 2.网址: {$webdb[www_url]} {:get_url('home')} 3.网站SEO关键词: 首页:{$we ...
- 程序员带你学习安卓开发-XML文档的创建与解析
这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开 ...
- ASP.NET4.5Web API及非同步程序开发系列3
ASP.NET4.5Web API及非同步程序开发系列(3) 接着上一篇博客的内容做一个补充,正好是一个大哥提出来的,我们看看一个有趣的现象. 请求相关问题的补充: 我们先在Controller中的定 ...
- 循序渐进学.Net Core Web Api开发系列【0】:序言与目录
一.序言 我大约在2003年时候开始接触到.NET,最初在.NET framework 1.1版本下写过代码,曾经做过WinForm和ASP.NET开发.大约在2010年的时候转型JAVA环境,这么多 ...
- C# WinForm开发系列 - 文章索引
该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自己对WinForm ...
随机推荐
- springboot学习资料汇总
收集Spring Boot相关的学习资料,Spring Cloud点这里 推荐博客 纯洁的微笑 程序猿DD liaokailin的专栏 Spring Boot 揭秘与实战 系列 catoop的专栏 简 ...
- Maven 用Eclipse创建web项目后报错的解决方式
1.maven中创建web项目后jsp可能会报错,因为其没有相关的依赖(包),和自带的动态网页项目创建不一样.所以在配置文件中要添加相关的依赖,比如servlet的 2.项目右键-maven-upda ...
- javascript 实现九九乘法表
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Rotate Image】cpp
题目: You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwis ...
- css的float和position属性
(1)float的简单用法 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- redis设置最大内存上限对置换策略的解读
现在很少服务器还在使用32位的操作系统了,所以服务器的内存可以接近极限2^64的字节.redis配置文件中有限制最大内存的字段maxmemory,当redis的key达到最大值时,redis会有多种策 ...
- [转]Ubuntu下添加开机启动脚本
作者: 王恒 发表于 2012年 11月 5日 1.方法一,编辑rc.loacl脚本 Ubuntu开机之后会执行/etc/rc.local文件中的脚本, 所以我们可以直接在/etc/rc.local中 ...
- maven国内镜像
<?xml version="1.0" encoding="UTF-8"?> <!--Licensed to the Apache Softw ...
- 【bzoj5018】[Snoi2017]英雄联盟 背包dp
题目描述 正在上大学的小皮球热爱英雄联盟这款游戏,而且打的很菜,被网友们戏称为「小学生」.现在,小皮球终于受不了网友们的嘲讽,决定变强了,他变强的方法就是:买皮肤!小皮球只会玩N个英雄,因此,他也只准 ...
- OtherStream
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.DataInputStream; import ...