Asp.Net+Oracle+ExtJs
正文:我觉得ExtJs相对其他Js框架比较难上手,一些api都是英文的,学习资源也相对可能少一些,这里根据我自己所学的东西做了一套的简单的增删查改,框架还是Oracle+Ado.Net.
首先还是一个empPage.html,总体的页面布局以及表格数据:
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <link href="/Css/main.css" rel="stylesheet" type="text/css" /> <link href="/Ext/resources/css/ext-all.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="/Ext/adapter/ext/ext-base.js"></script> <script type="text/javascript" src="/Ext/ext-all.js"></script> <script type="text/javascript" src="/Ext/ext-lang-zh_CN.js"></script> <script type="text/javascript" src="/Js/Main.js"></script> <script type="text/javascript" src="/Js/GridMain.js"></script> <script type="text/javascript" src="Js/AddEmpInfo.js"></script> <script type="text/javascript" src="Js/DelEmpInfo.js"></script> <script type="text/javascript" src="Js/EditEmpInfo.js"></script></head><body> <form> <div> <div id="north" style=" background-image:url(/HotelUI/Images/main_top_BG.gif);width: 980px; height: 65px"> <div id="myTime" style="width: 237px; height: 19px; float:right; left: -11px; position: relative; top: 41px; font-size: 12px; color: #ffffff; z-index: 101;"> </div> <div id="UserName" style="width: 187px; height: 18px; float:right; left: 152px; position: relative; top: 21px; font-size: 12px; color: #ffffff; z-index: 102;"> </div> <div id="logo" style="width: 464px; height: 61px; background-image: url(Images/aa.gif);"> </div> </div> <div id="west" style="width: 190px; height: 400px; float:left"> </div> <div id="center" style="width: 579px; height: 400px; float:left"> </div> <div id="east" style="width: 160px; height: 400px; float:left"> </div> </div> <div id="south" style="width: 980px; height: 105px; color:Red; margin:5px;font:normal 12px tahoma, arial, sans-serif, 宋体;" align="center"> <a>Footer Infomation YZR</a> </div> </form></body></html>
Main.Js包含了整个页面布局的设计以及相应布局下的一些事件代码:
//页面主要布局Ext.onReady( function() { //实例化布局对象 var view = new Ext.Viewport ( { layout:‘border‘, //声明为border布局 items: [ //头部 logo new Ext.BoxComponent ( { region:‘north‘, el: ‘north‘, //填充指定id的区域内容到north区域(页面会有一个div的id为north) height:65 } ), //底部 new Ext.BoxComponent ( { region:‘south‘, el: ‘south‘, //填充指定id的区域内容到south区域 height:20 } ), //中间,主要的表格数据,根据业务决定 { region:‘center‘, el:‘center‘, height:405, width:613, title:‘EMP详细信息‘, html:"<div id=‘grid‘></div>"//动态生成一个div }, //左边,一般用来摆放菜单数据 { region:‘west‘, split:true, margins:‘0 0 0 0‘, layout:‘accordion‘,//一种布局形式,很多js框架都提供这种布局,类似qq width:190, el:‘west‘, //填充指定id的区域内容到west区域 collapsible:true, title: ‘EMP管理菜单‘, layoutConfig: { animate:true }, items: [ { title: ‘日常EMP管理‘, border:false, html:‘<div id="tree1" style="overflow:auto;width:100%;height:100%"></div>‘ }, { title: ‘EMP信息中心‘, border:false, html:‘<div id="tree2" style="overflow:auto;width:100%;height:100%"></div>‘ } ] }, //右边 比较少用 { region:‘east‘, width:160, collapsible:true, title: ‘EMP右部模块‘, html:"<div id=‘moneyGrid‘></div>" } ] } ); //树形菜单 这边固定写死左边这颗树的数据,子节点和父节点是通过appendChild();实现的 // =================================== var root = new Ext.tree.TreeNode ( { id:‘root‘, text:‘树的根‘ } ); //第一个根节点 var a = new Ext.tree.TreeNode ( { id:‘a‘, icon:‘/ExtImg/Images/user3.gif‘,//图标文件 text: ‘普通EMP日常管理‘, expanded:true //展开显示 } ); //创建第一个根节点的第一个子节点 var a1 = new Ext.tree.TreeNode ( { id:‘a1‘, icon: ‘/ExtImg/Images/write.gif‘,//图标文件 text: ‘新增EMP信息‘, listeners: { ‘click‘:function(){ AddEmpInfo(); } } } ); //创建第一个根节点的第三个子节点 var a2 = new Ext.tree.TreeNode ( { id:‘a2‘, icon: ‘/ExtImg/Images/select.gif‘,//图标文件 text: ‘删除EMP信息‘, listeners: { ‘click‘: function (){ DelEmpInfo(); } } } ); //创建第一个根节点的第三个子节点 var a3 = new Ext.tree.TreeNode ( { id: ‘a3‘, icon: ‘/ExtImg/Images/select.gif‘,//图标文件 text: ‘编辑EMP信息‘, listeners: { ‘click‘: function () { EditEmpInfo(); } } } ); //添加子节点到第一个根节点 a.appendChild(a1); a.appendChild(a2); a.appendChild(a3); root.appendChild(a); var tree = new Ext.tree.TreePanel ( { renderTo:"tree1",//页面id为tree1的div root:root, //对应的根节点 animate:true, //动态显示 enableDD:false, //支持拖放 border:false, lines:true, //虚线 rootVisible:false, //显示根节点 containerScroll: true } ); });Main.Js
GridMain.Js是Emp表格数据的js代码:
//主界面的Grid//获得输入的字符串//var message = ""; //storeMain为数据来源var storeMain=new Ext.data.Store( { //表示从哪里获得数据 proxy:new Ext.data.HttpProxy ( { url:‘/Ajax/getEmpList.ashx‘ } ), //解析Json reader: new Ext.data.JsonReader ( { root: ‘data‘, //主键 id: ‘JSON_empno‘, //表格显示字段列 fields: [ ‘JSON_empno‘, ‘JSON_ename‘, ‘JSON_job‘, ‘JSON_sal‘, ‘JSON_mgr‘, ‘JSON_hiredate‘, ‘JSON_comm‘, ‘JSON_deptno‘ ] } ), remoteSort:true });var grid;Ext.onReady( function() { var colModel = new Ext.grid.ColumnModel ( [ { header: "empno", width: 100, dataIndex: ‘JSON_empno‘ }, { header: "ename", width: 100, dataIndex: ‘JSON_ename‘ }, { header: "job", width: 110, dataIndex: ‘JSON_job‘ }, { header: "sal", width: 120, renderer: getColor, dataIndex: ‘JSON_sal‘ }, { header: "mgr", width: 120, dataIndex: ‘JSON_mgr‘ }, { header: "hiredate", width: 125, renderer: formatterdate, dataIndex: ‘JSON_hiredate‘ }, { header: "comm", width: 120, dataIndex: ‘JSON_comm‘ }, { header: "deptno", width: 120, dataIndex: ‘JSON_deptno‘ } ] ); //设置金额颜色 function getColor(val) { if (val != "") { var value = parseInt(val); if(value>2000){ return ‘<span style="color:red;">‘ + ‘$‘ + val + ‘</span>‘; } return ‘<span style="color:green;">‘+ ‘$‘ + val + ‘</span>‘; } } function formatterdate(val, row) { if (val != null) { var date = new Date(val); return date.getFullYear() + ‘-‘ + (date.getMonth() + 1) + ‘-‘ + date.getDate(); } } grid = new Ext.grid.GridPanel ( { renderTo:‘grid‘, height:500, width:1005, cm:colModel, //行列 store:storeMain, //数据源 trackMouseOver:true, //鼠标特效 loadMask: true, autoShow : true, autoScroll: true, //头部 tbar: [ ‘empNo查询‘, {xtype:‘textfield‘,width:170,id:‘title‘,name:‘title‘}, {text:‘搜索‘,iconCls:‘search‘,handler:SerachGrid},{xtype:‘tbseparator‘} ] } ) //加载数据 storeMain.load(); });function SerachGrid(){ var message = Ext.get(‘title‘).dom.value; storeMain.reload ( { params:{msg:message} } )}GridMain.Js
左边为菜单栏,有三个子菜单分别演示用于对Emp表格数据的增删改:
//添加普通员工function AddEmpInfo(){ Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = ‘side‘; //编写一个作为window窗体 的item var addUser = new Ext.FormPanel ( { labelWidth:75, frame : true, title : ‘请仔细填写表单‘, width : 300, waitMsgTarget : true, items: [ { xtype:‘textfield‘, fieldLabel: ‘ Empno‘, labelStyle: ‘width:80px‘, width:150, name: ‘Empno‘, allowBlank:false, blankText: ‘请输入Empno‘ //validator:CheckUserId,//指定验证的方法 //invalidText:‘用户名已存在!‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Ename‘, labelStyle: ‘width:80px‘, width: 150, name: ‘Ename‘, allowBlank: false, blankText: ‘请输入Ename‘ //validator:CheckUserId,//指定验证的方法 //invalidText:‘用户名已存在!‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Job‘, labelStyle: ‘width:80px‘, width: 150, name: ‘Job‘, allowBlank: false, blankText: ‘请输入Job‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Mgr‘, labelStyle: ‘width:80px‘, width: 150, name: ‘Mgr‘, allowBlank: false, blankText: ‘请输入Mgr‘ }, { xtype:‘textfield‘, fieldLabel: ‘ Hiredate‘, labelStyle: ‘width:80px‘, width:150, name: ‘Hiredate‘, allowBlank:false, blankText: ‘请输入Hiredate‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Sal‘, labelStyle: ‘width:80px‘, width: 150, name: ‘Sal‘, allowBlank: false, blankText: ‘请输入Sal‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Comm‘, labelStyle: ‘width:80px‘, width: 150, name: ‘Comm‘, allowBlank: false, blankText: ‘请输入Comm‘ }, { xtype:‘textfield‘, fieldLabel: ‘ Deptno‘, labelStyle: ‘width:80px‘, width:150, name: ‘Deptno‘, allowBlank:false, blankText: ‘请输入Deptno‘ } ], buttons: [ { id:‘btnOk‘, text:‘确 定‘, handler:function() { //如果验证合法 if (addUser.form.isValid()) { //弹出效果 Ext.MessageBox.show ( { msg: ‘正在保存,请稍等...‘, progressText: ‘Saving...‘, width:300, wait:true, waitConfig: {interval:200}, icon:‘download‘, animEl: ‘saving‘ } ); setTimeout(function(){}, 10000); //提交到服务器 addUser.form.submit ( { url:‘/Ajax/addEmpInfo.ashx‘, //提交的页面路径 method:‘post‘,//提交方式为post //提交成功的回调函数 success:function(form,action) { var flage = action.result.success; //如果服务器端传过来的数据为true则表示登录成功 if (flage == true) { Ext.MessageBox.alert(‘恭喜‘,‘添加员工成功!‘); newWin.hide(); } }, //提交失败的回调函数 failure:function() { Ext.Msg.alert(‘错误‘,‘服务器出现错误请稍后再试!‘); } } ); } } }, { text:‘取 消‘, handler:function() { newWin.hide(); } } ] } ); //定义窗体 newWin = new Ext.Window ( { layout:‘fit‘, width:350, height:350, collapsible:true, //允许缩放条 closeAction : ‘hide‘, plain : true, modal: ‘true‘, //启用遮罩 title : ‘添加EMP员工‘, items : addUser } ); //显示窗体 newWin.show(); }//Ajax验证是否已存在EmpNo//var isok=false;//function CheckUserId()//{// var UserId = Ext.get(‘LoginName‘).dom.value;// //ajax提交// Ext.Ajax.request// (// {// url:‘/HotelUI/Form/CheckUserId.aspx‘,// params:{name:UserId},// success: function(response, options)// {// // var check = Ext.util.JSON.decode(response.responseText);// if(check.success == true) //已被注册// {// SetValue(false);// }// else// {// SetValue(true);// }// }// }// );// //给变量赋值// function SetValue(b)// {// isok = b;// }// return isok;//}AddEmpInfo
function DelEmpInfo() { var selected = grid.getSelectionModel().getSelections(); if (selected != null) { var ids = ""; Ext.each(selected, function () { var id = this.get(‘JSON_empno‘); ids = ids + id + ","; }) ids = ids.substring(0, ids.length - 1); //Ext.Msg.alert(‘提示‘, ids); Ext.MessageBox.confirm("提示", "是否要删除", function (yes) { if (yes == ‘yes‘) { //Ext.Msg.alert(‘提示‘, ids); //$.post("", { "action": "del", id: ids }, function (data) { // Ext.Msg.alert(‘提示‘, data); //}); Ext.Ajax.request({ url: ‘/Ajax/delEmpInfo.ashx‘, params: { "action": "del", ids: ids }, method: ‘POST‘, success: function (response, options) { Ext.MessageBox.alert(‘删除成功‘, response.responseText); storeMain.reload(); }, failure: function (response, options) { Ext.MessageBox.alert(‘删除失败‘, ‘请求超时或网络故障,错误编号:‘ + response.status); } }); } }) } else { Ext.Msg.alert(‘提示‘, ‘您还没有选中一行数,请选中在删除!‘); }}DelEmpInfo
function EditEmpInfo() { var selected = grid.getSelectionModel().getSelections(); if (selected != null) { var id = ""; Ext.each(selected, function () { id = this.get(‘JSON_empno‘); }) Ext.QuickTips.init(); Ext.form.Field.prototype.msgTarget = ‘side‘; var reader = new Ext.data.JsonReader({}, [ { name: ‘Empno‘, type: ‘string‘ }, { name: ‘Ename‘, type: ‘string‘ }, { name: ‘Job‘, type: ‘string‘ }, { name: ‘Mgr‘, type: ‘int‘ }, { name: ‘Hiredate‘, type: ‘string‘, dateFormat: ‘Y-m-d H:i:s‘ }, { name: ‘Sal‘, type: ‘float‘ }, { name: ‘Comm‘, type: ‘float‘ }, { name: ‘Deptno‘, type: ‘int‘ } ]); var updateEmp = new Ext.FormPanel({ labelAlign: ‘right‘, title: ‘编辑Emp‘, labelWidth: 50, frame: true, url: ‘/Ajax/EditEmpInfo.ashx‘, width: 280, reader: reader, items: [ { layout: ‘column‘, border: false, items: [ { columnWidth: .5, layout: ‘form‘, border: false, items: [ { xtype: ‘textfield‘, fieldLabel: ‘ Empno‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Empno‘, allowBlank: false, blankText: ‘请输入Empno‘, hidden: true, hideLabel: true, }, { xtype: ‘textfield‘, fieldLabel: ‘ Ename‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Ename‘, allowBlank: false, blankText: ‘请输入Ename‘ } ] }, { columnWidth: .5, layout: ‘form‘, border: false, items: [ { xtype: ‘textfield‘, fieldLabel: ‘ Job‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Job‘, allowBlank: false, blankText: ‘请输入Job‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Mgr‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Mgr‘, allowBlank: false, blankText: ‘请输入Mgr‘ } ] } ] }, { xtype: ‘textfield‘, fieldLabel: ‘ Hiredate‘, labelStyle: ‘width:100px‘, width: 150, name: ‘Hiredate‘, allowBlank: false, blankText: ‘请输入Hiredate‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Sal‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Sal‘, allowBlank: false, blankText: ‘请输入Sal‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Comm‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Comm‘, allowBlank: false, blankText: ‘请输入Comm‘ }, { xtype: ‘textfield‘, fieldLabel: ‘ Deptno‘, labelStyle: ‘width:100px‘, width: 80, name: ‘Deptno‘, allowBlank: false, blankText: ‘请输入Deptno‘ } ], buttons: [{ text: ‘提交‘, handler: function () { //如果验证合法 if (updateEmp.form.isValid()) { //弹出效果 Ext.MessageBox.show ( { msg: ‘正在保存,请稍等...‘, progressText: ‘Saving...‘, width: 300, wait: true, waitConfig: { interval: 200 }, icon: ‘download‘, animEl: ‘saving‘ } ); setTimeout(function () { }, 10000); //提交到服务器 updateEmp.form.submit ( { url: ‘/Ajax/EditEmpInfo.ashx‘, //提交的页面路径 method: ‘post‘,//提交方式为post //提交成功的回调函数 success: function (form, action) { var flage = action.result.success; //如果服务器端传过来的数据为true则表示登录成功 if (flage == true) { Ext.MessageBox.alert(‘恭喜‘, ‘修改成功!‘ var cpro_id = "u6292429";小编还为您整理了以下内容,可能对您也有帮助:
数据库系统包括哪些?
问题一:数据库系统包括什么? 通常由软件、数据库和数据管理员组成。
问题二:请问数据库有哪些种类呢? 根据存储模型划分,数据库类型主要可分为:网状数据库(Network Database)、关系数据库(Relational Database)、树状数据库(Hierarchical Database)、面向对象数据库(Object-oriented Database)等。商业应用中主要是关系数据库,比如Oracle、DB2、Sybase、MS SQL Server、Informax、MySQL等。全部罗列出来是没有意义的,数据库太多了,你不说你的工作是涉及哪方面,恐怕很难提供更适合你的数据库。
初级应用一般是ACCESS 配合的脚本程序一般是 ASP ASP.NET JSPMICROSOFT SQL 比较复杂点 不过功能强大很多 配合的脚本和ACCESS的一样MYSQL和PHP的组合是比较完美的如果你需要处理1000W条数据以上级别的数据,那以上的都不合适,一般用的比较多的是ORACLE 这个入门难度非常大如果想学的话就先学MICROSOFT SQL吧,这个网上教学比较多,ASP.NET 2.0,应用的是非常广泛的。
问题三:sql数据类型有哪些 一、 整数数据类型
整数数据类型是最常用的数据类型之一。
1、INT (INTEGER)
INT (或INTEGER)数据类型存储从-2的31次方 (-2 ,147 ,483 ,648) 到2的31次方-1 (2 ,147 ,483,647) 之间的所有正负整数。每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
2、SMALLINT
SMALLINT 数据类型存储从-2的15次方( -32, 768) 到2的15次方-1( 32 ,767 )之间的所有正负整数。每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
3、TINYINT
TINYINT数据类型存储从0 到255 之间的所有正整数。每个TINYINT类型的数据占用1 个字节的存储空间。
4、BIGINT
BIGINT 数据类型存储从-2^63 (-9 ,223, 372, 036, 854, 775, 807) 到2^63-1( 9, 223, 372, 036 ,854 ,775, 807) 之间的所有正负整数。每个BIGINT 类型的数据占用8个字节的存储空间。
二、 浮点数据类型
浮点数据类型用于存储十进制小数。浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行2 位和12位舍入,结果为3.15 和3.141592653590。
1、REAL 数据类型
REAL数据类型可精确到第7 位小数,其范围为从-3.40E -38 到3.40E +38。 每个REAL类型的数据占用4 个字节的存储空间。
2、FLOAT
FLOAT数据类型可精确到第15 位小数,其范围为从-1.79E -308 到1.79E +308。 每个FLOAT 类型的数据占用8 个字节的存储空间。 FLOAT数据类型可写为FLOAT[ n ]的形式。n 指定FLOAT 数据的精度。n 为1到15 之间的整数值。当n 取1 到7 时,实际上是定义了一个REAL 类型的数据,系统用4 个字节存储它;当n 取8 到15 时,系统认为其是FLOAT 类型,用8 个字节存储它。
3、DECIMAL
DECIMAL数据类型可以提供小数所需要的实际存储空间,但也有一定的,您可以用2 到17 个字节来存储从-10的38次方-1 到10的38次方-1 之间的数值。可将其写为DECIMAL[ p [s] ]的形式,p 和s 确定了精确的比例和数位。其中p 表示可供存储的值的总位数(不包括小数点),缺省值为18; s 表示小数点后的位数,缺省值为0。 例如:decimal (15 5),表示共有15 位数,其中整数10 位,小数5。 位表4-3 列出了各精确度所需的字节数之间的关系。
4、NUMERIC
NUMERIC数据类型与DECIMAL数据类型完全相同。
注意:SQL Server 为了和前端的开发工具配合,其所支持的数据精度默认最大为28位。
三、 二进制数据类型
1、BINARY
BINARY 数据类型用于存储二进制数据。其定义形式为BINARY( n), n 表示数据的长度,取值为1 到......>>
问题四:常用数据库有哪些? 1. IBM 的DB2
作为关系数据库领域的开拓者和领航人,IBM在1997年完成了System R系统的原型,1980年开始提供集成的数据库服务器―― System/38,随后是SQL/DSforVSE和VM,其初始版本与SystemR研究原型密切相关。DB2 forMVSV1 在1983年推出。该版本的目标是提供这一新方案所承诺的简单性,数据不相关性和用户生产率。1988年DB2 for MVS 提供了强大的在线事务处理(OLTP)支持,1989 年和1993 年分别以远程工作单元和分布式工作单元实现了分布式数据库支持。最近推出的DB2 Universal Database 6.1则是通用数据库的典范,是第一个具备网上功能的多媒体关系数据库管理系统,支持包括Linux在内的一系列平台。
2. Oracle
Oracle 前身叫SDL,由Larry Ellison 和另两个编程人员在1977创办,他们开发了自己的拳头产品,在市场上大量销售,1979 年,Oracle公司引入了第一个商用SQL 关系数据库管理系统。Oracle公司是最早开发关系数据库的厂商之一,其产品支持最广泛的操作系统平台。目前Oracle关系数据库产品的市场占有率名列前茅。
3. Informix
Informix在1980年成立,目的是为Unix等开放操作系统提供专业的关系型数据库产品。公司的名称Informix便是取自Information 和Unix的结合。Informix第一个真正支持SQL语言的关系数据库产品是Informix SE(StandardEngine)。InformixSE是在当时的微机Unix环境下主要的数据库产品。它也是第一个被移植到Linux上的商业数据库产品。
4. Sybase
Sybase公司成立于1984年,公司名称“Sybase”取自“system”和 “database” 相结合的含义。Sybase公司的创始人之一Bob Epstein 是Ingres 大学版(与System/R同时期的关系数据库模型产品)的主要设计人员。公司的第一个关系数据库产品是1987年5月推出的Sybase SQLServer1.0。Sybase首先提出Client/Server 数据库体系结构的思想,并率先在Sybase SQLServer 中实现。
5. SQL Server
1987 年,微软和 IBM合作开发完成OS/2,IBM 在其销售的OS/2 ExtendedEdition 系统中绑定了OS/2Database Manager,而微软产品线中尚缺少数据库产品。为此,微软将目光投向Sybase,同Sybase 签订了合作协议,使用Sybase的技术开发基于OS/2平台的关系型数据库。1989年,微软发布了SQL Server 1.0 版。
6. PostgreSQL
PostgreSQL 是一种特性非常齐全的自由软件的对象――关系性数据库管理系统(ORDBMS),它的很多特性是当今许多商业数据库的前身。PostgreSQL最早开始于BSD的Ingres项目。PostgreSQL 的特性覆盖了SQL-2/SQL-92和SQL-3。首先,它包括了可以说是目前世界上最丰富的数据类型的支持;其次,目前PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统.
......>>
问题五:数据库的对象有哪些 Funciton:函数
Procere:存储过程
Package:代码包,一个包里面,定义多个存储过程、函数、类型、常量等
Type:自定义数据类型
Trigger:触发器
Job:数据库作业 (定期执行的)
Table:表
Index:索引
Constraint:约束,各数据项应满足哪些限阀条件
View:视图
Materialized View:物化视图
Sequence:序列
User:叫 用户
Synonym:同义词
Database link:数据库链接(ORACLE有,别的数据库不熟,想必也应该有,可能不叫这个名字)
TableSpace:表空间(ORACLE叫这个名字,别的数据库不熟)
CURSOR:游标
常用的大致这些,可能会有遗漏,但也应该不会差太多。
问题六:常用数据库有哪些?他们有什么区别 开源的Mysql顶;PostgreSQL即开放源码的
商业的Oracle/SQL Server/DB2即收费的
问题七:查看数据库中有哪些表空间 可以用S罚L语句 SELECT ** FROM v$tablespace
也可以用oracle enterprise manger console 直接在可视化窗口上查看
问题八:常见的数据库应用系统有哪些? 现在极大多的企业级软件都是基于数据库的。
比如:
ERP: 企业资源管理计划
CRM: 客户关系管理
OA: 办公自动化。
12306铁道部的网上订票系统。
。。。
问题九:如何看mysql都有哪些数据库 第一步:首先是查看mysql数据库的端口号,使用命令show
第二步:查看有哪些数据库,
第三步:查看mysql数据库所有用户,
第四步:查看某个数据库中所有的表
问题十:数据库系统包括什么? 通常由软件、数据库和数据管理员组成。
ASP.Net(C#)中如何连接Oracle数据库?
using System.Data.OracleClient;
using System.Data;
//在窗体上添加一个按钮,叫Button1,双击Button1,输入以下代码
private void Button1_Click(object sender, System.EventArgs e)
{
string ConnectionString="Data Source=sky;user=system;password=manager;"; //写连接串
OracleConnection conn=new OracleConnection(ConnectionString); //创建一个新连接
try
{
conn.Open();
OracleCommand cmd=conn.CreateCommand();
cmd.CommandText="select * from MyTable"; //在这儿写sql语句
OracleDataReader odr=cmd.ExecuteReader(); //创建一个OracleDateReader对象
while(odr.Read()) //读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了
{
Response.Write(odr.GetOracleString(1).ToString()); //输出字段1,这个数是字段索引,具体怎么使用字段名还有待研究
}
odr.Close();
}
catch(Exception ee)
{
Response.Write(ee.Message); //如果有错误,输出错误信息
}
finally
{
conn.Close(); //关闭连接
}
}ASP.Net(C#)中如何连接Oracle数据库?
using System.Data.OracleClient;
using System.Data;
//在窗体上添加一个按钮,叫Button1,双击Button1,输入以下代码
private void Button1_Click(object sender, System.EventArgs e)
{
string ConnectionString="Data Source=sky;user=system;password=manager;"; //写连接串
OracleConnection conn=new OracleConnection(ConnectionString); //创建一个新连接
try
{
conn.Open();
OracleCommand cmd=conn.CreateCommand();
cmd.CommandText="select * from MyTable"; //在这儿写sql语句
OracleDataReader odr=cmd.ExecuteReader(); //创建一个OracleDateReader对象
while(odr.Read()) //读取数据,如果odr.Read()返回为false的话,就说明到记录集的尾部了
{
Response.Write(odr.GetOracleString(1).ToString()); //输出字段1,这个数是字段索引,具体怎么使用字段名还有待研究
}
odr.Close();
}
catch(Exception ee)
{
Response.Write(ee.Message); //如果有错误,输出错误信息
}
finally
{
conn.Close(); //关闭连接
}
}c#可以开发哪些类型的应用程序?
谈到C#,不得不提.Net,Microsoft.NETFramework是微软的一套框架。x0dx0ax0dx0a从XP的1.0版,到Win7的3.5版,到了Win8和Win8.1已经4.5和4.5.1版本了,win10是4.6版本的。x0dx0ax0dx0a.NETFramework引入了"基于证据的安全"的概念。x0dx0a.NETFramework的目的就是要让建立WebServices以及因特网应用程序的工作变的简单。x0dx0a.NETFramework包括了三大部分:x0dx0a①是CommonLanguageRuntime(CLR,所有.NET程序语言公用的执行时期组件),x0dx0a②是共享对象类别库(提供所有.NET程序语言所需要的基本对象),x0dx0a③是重新以组件的方式写成的(旧版本则是以asp.dll提供ASP网页所需要的对象)。x0dx0ax0dx0a.Net平台上,可以供很多语言进行开发C++、C#、VB??(C#只是该环境下的高级编程语言之一)x0dx0ax0dx0aC#能编写什么样的程序类型呢?x0dx0a①Windows桌面应用程序,用.Net提供的WPF模块很便捷的就能生成桌面应用x0dx0a②WindowsStore应用程序,这是Win8以上系统针对触摸屏出的设计,通常全屏运行的x0dx0a③Web应用程序,通过webForms创建的ASP.NET应用程序x0dx0a④WCF服务,比较高级,是一种灵活创建各种分布式应用程序的方式,可通过局域网或互联网交互几乎各种数据
构建ASP.NET网站十大必备工具
构建ASP NET网站十大必备工具
最近使用ASP NET为公司构建了一个简单的公共网站(该网站的地址) 在这个过程中 我们使用了数量很多的免费工具 如果把构建ASP NET网站的必备工具总结一下 将会是一件十分有趣的事情 这些工具既支持ASP NET Web Forms又支持ASP NET MVC
性能工具
读了两本关于网站的前端性能的书(这两本优秀的图书分别是 《High Performance Web Sites》 和 《Even Faster Web Sites》 作者是Steve Souders)以后 我对网站的前端性能十分敏感 根据Steve Souders的性能黄金法则
“首先应该对前端性能进行优化 终端用户的响应时间有 %或更多花费在这方面了 ”你可以使用下面这些工具来减少ASP NET应用程序使用的图像的尺寸 以及JavaScript文件 CSS文件的体积
Sprite and Image Optimization Framework
在A List Apart的一篇文章中(这篇文章的题目是 CSS sprites Image Slicing’s Kiss of Death 具体可以参考) 首次提到了CSS sprites 当你使用sprites的时候 你需要把一个网站使用的多个图像合并成为一个单一的图像 然后 在一个Web页面中 使用CSS trickery来显示特定的“子图像”
sprites的主要优势是 显示一个Web页面的时候 它可以有效地减少请求的次数 请求一个大图像比请求多个小图像快得多 一般来说 通过网线传输的资源(图像 JavaScript文件 CSS文件)越多 你的网站就越慢
但是 大多数人都不愿意使用sprites 因为使用sprites需要做很多的工作 你必须要合并所有的图像 然后编写合适的CSS规则来显示子 图像 微软的 Sprite and Image Optimization Framework 可以让我们省去这些繁琐的工作 这个框架可以自动地为你合并图像 此外 这个框架还包含一个ASP NET Web Forms control 和一个ASP NET MVC helper 它们可以让显示子图像变得更加容易 你可以从CodePlex下载 Sprite and Image Optimization Framework
Sprite and Image Optimization Framework是 Man McClean 编写的 在微软 他的办公室和我的办公室紧挨着 Man是一个十分聪明的人 他是加拿大的实习生 当他构建这个框架的时候 我们一起讨论了那个框 架 (据我所知 他还在继续开发这个框架 )
Man给这个框架添加了一些高级的功能 例如 Sprite and Image Optimization Framework支持“image inlining” 当你使用“image inlining”的时候 真正的图像被存储在CSS文件中 这是一个“image inlining”的例子
Home_StephenWalther_ *** all jpg { width: px; height: px; background: url(data:image/png;base iVBORw KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB lpeAAAAB GdBTUEAALGOfPtRkwAAACBjSFJNAACHDwAAjA AAP SAACBQAAAfXkAAOmLAAA QAAGcxzPIV AAAKL s+zNfREAAAAASUVORK CYII=) no repeat % %; }
真正的图像(在这个例子中 是一个显示在Superexpert 网站主页上的图片)被存储在这个CSS文件中 如果你浏览一下 Superexpert 网站 你会发现几乎没有几个独立的图像可以被下载 在下面这张截图中 所有带红框的图像都是使用CSS sprites的
不幸的是 使用 Sprite and Image Optimization Framework 的时候 有一些“陷阱”需要注意一下 为了绕开这些“陷阱” 还有一些周边的工作需要做 在我以后的文章中 我会详细讲述这些“陷阱”都是什么 以及如何 绕开这些“陷阱”
Microsoft Ajax Minifier
无论何时 你都应该通过“far future header”来合并 最小化(minify) 压缩和缓存所有的JavaScript文件和CSS文件 Microsoft Ajax Minifier可以让最小化JavaScript文件和CSS文件变得更加容易
请不要把最小化和压缩搞混了 这两个工作你都需要做 根据Souders的观点 在你压缩了一个JavaScript文件以后 你还可以通过最小化来减少 %(平均)的体积
当你最小化一个JavaScript文件 或者一个CSS文件的时候 你可以使用各种技巧在压缩那个文件以前尽可能地减少那个文件的尺寸 例如 你 可以通过用短的JavaScript变量名替换长的JavaScript变量名的方式 和移除非必需的空白和注释的方式来最小化一个 JavaScript 你可以通过同样的方式来最小化CSS文件 例如 用短的color名(#fff)替换长的color名(#fffff)
Microsoft Ajax Minifier是微软的员工 Ron Logan 开发的 在内部 几个大型的微软网站都使用了这个工具 在ASP NET团队中 我们也使用这个工具 我认为Ron可以把这个工具发布到CodePlex 上 让世界上的所有人都可以使用这个优秀的工具 你可以从ASP NET Ajax站点下载这个工具
这个工具的文档可以参考
我为Microsoft Ajax Minifier创建了一个安装程序 当创建那个安装程序的时候 我还创建了一个Visual Studio生成任务 当你在Visual Studio中自动地进行生成的时候 它可以让最小化JavaScript文件和CSS文件变得更加容易 你可以通过《Ajax Minifier Quick Start》来学习如何配制这个生成任务 (关于《Ajax Minifier Quick Start》 具体可以参考)
ySlow
ySlow这个工具是Yahoo提供的 它是一个免费的Firefox扩展 它可以让你测试你的网站的前端
ySlow的
这是“Superexpert ”网站当前的测试结果
“Superexpert ”网站的总体得分是“B”(不是很完美 但是也不错了) ySlow这个工具并不是尽善尽美的 例如 虽然 Superexpert 网站使用了支JavaScript库(例如 jQuery)的Microsoft Ajax Content Delivery Neork(关于Microsoft Ajax Content Delivery Neork 具体可以参考) 但是还是因为没有使用Content Delivery Neork而得到了“F”
正常运行时间
当一个网站发布以后 你肯定希望你的网站不会遇到任何问题 一直处在正常运行状态之中 现在 我使用下面这些工具来监控“Superexpert ”网站 确保它一直处在正常运行状态之中
ELMAH
ELMAH 是 Error Logging Moles and Handlers for ASP NET 的缩写 ELMAH可以让你记录下你的网站发生的任何一个错误 在将来 你可以重新检查这些错误 你可以从ELMAH项目的官方网站免费下载ELMAH
ELMAH既支持ASP NET Web Forms 又支持 ASP NET MVC 你可以对ELMAH进行配置来存储各种不同的错误(XML文件 事件日志 Access数据库 SQL数据库 Oracle数据库 或者计算机 RAM )你还可以让ELMAH在错误发生的时候 把错误信息email给你
在默认情况下 在一个已经安装ELMAH的网站中 你可以通过请求的elmah axd页面的方式来访问ELMAH 这是“Superexpert ”网站的elmah页面的外观(这个页面是密码保护的 因为在一个错误信息中 可能会泄露出一些应该保密的信息 )
如果你点击某个错误信息 你可以看到原始的ASP NET的黄屏错误信息(虽然这个错误信息永远不会显示给真正的用户)
我使用全新的ASP NET软件包管理器 NuGet(过去叫做NuPack)来安装ELMAH 关于NuGet 你可以参考Scott Guthrie的博客 你可以从CodePlex下载 NuGet
Pingdom
我使用Pingdom来验证Superexpert 网站是否总是处在正常运行状态之中 你可以通过浏览“Pingdom ”的方式来注册Pingdom 你可以使用Pingdom来免费监控一个网站
在Pingdom网站上 你可以配置ping你的网站的频率 我每 分钟验证一次Superexpert 网站是否总是处在正常运行状态之中 我使用Pingdom服务来验证它是否可以从那个网站的主页上检索到字符串“Contact Us”
如果你的网站宕机了 你可以对Pingdom进行配置 让它通过email Twitter SMS 或 iPhone来发送一个警报 我使用这个Pingdom的iPhone应用程序
Host Tracker
如果你的网站宕机了 你需要一些方式来判断这是本地网络的问题 还是对每个人来说 你的网站都宕机了 我使用一个叫做“Host Tracker ”的网站来检查一个网站宕机的程度
这是“Superexpert ”网站从世界各地都可以ping通的时候 Host Tracker显示的结果
注意 Host Tracker从 个地点(其中包括 Roux France and Scranton PA等)来ping “Superexpert ”网站
调试
我这里提到的“调试”的意义十分广泛 当构建一个网站的时候 我使用下面这些工具来验证我并没有犯错误
HTML Spell Checker
为什么Visual Studio没有内置一个拼写检查器?不知道——我觉得这有点不可思议 但是 幸运的是 ASP NET团队的前成员编写了一个免费的拼写检查器 你可以在ASP NET页面上使用这个拼写检查器
我发现一个拼写检查器是必不可少的 认为你自己的拼写能力绝对是完美的 只是自欺欺人而已 当我真正地运行拼写检查工具 发现我的所有拼写错误的时候 我恨不得找个地缝钻进去
把HTML Spell Checker扩展添加到Visual Studio中的最快方法是在Visual Studio中选择“Tools”菜单项 然后点击“Extension Manager” 点击“Online Gallery” 然后索搜“HTML Spell Checker”
IIS SEO Toolkit
如果人们无法通过Google找到你的网站 那么还不如不构建这个网站 微软提供了一个优秀的IIS扩展 叫做“IIS Search Engine Optimization Toolkit ”(关于IIS Search Engine Optimization Toolkit 具体可以参考) 你可以使用它来检测出可能会影响页面排名的问题 你也可以使用它快速地为你的网站创建一个sitemap 你可以把这个sitemap提交给Google或Bing 你甚至可以为一个ASP NET MVC网站生成一个sitemap
这是“Superexpert ”网站的分析报告的概述
注意 “Sueprexpert ”网站存在很多的问题 例如 有 个页面的超链接已经失效了 你可以进一步查看这些问题的详细信息 找出这些问题发生的地点和具体的页面
LinqPad
如果你的ASP NET网站需要访问一个数据库 那么你应该使用LINQ to Entities这个实体框架 使用LINQ 会把一些用C#编写的神奇的查询转换成SQL查询 如果你在编写LINQ查询的时候不小心谨慎一些的话 你 很可能会在无意之间构建出一个性能十分糟糕的网站
LinqPad(LinqPad的官方站点)是一个免费的工具 它可以让你实验你的LINQ查询 它甚至支持Microsoft SQL CE 和 Azure
你可以使用LinqPad来执行一个LINQ to Entities查询 然后看看结果 你也可以使用它来查看对那个数据库执行的SQL语句
NET Reflector
我每天都使用 NET Reflector NET Reflector这个工具可以让你把一个程序集反汇编成C#或VB NET代码 当你没有真正的源代码的时候 你可以使用 NET Reflector来查看一个程序集的“源代码” 你可以从Redgate的网站下载 NET Reflector的免费版本
我主要使用 NET Reflector来帮助我搞清楚代码在内部是如何工作的 例如 为了更好的理解MVC Image helper是如何工作的 我使用 NET Reflector对the Sprite and Image Optimization Framework进行了反汇编 这是Image helper类的一部分反汇编代码
总结
lishixin/Article/program/net/201311/14298
构建ASP.NET网站十大必备工具
构建ASP NET网站十大必备工具
最近使用ASP NET为公司构建了一个简单的公共网站(该网站的地址) 在这个过程中 我们使用了数量很多的免费工具 如果把构建ASP NET网站的必备工具总结一下 将会是一件十分有趣的事情 这些工具既支持ASP NET Web Forms又支持ASP NET MVC
性能工具
读了两本关于网站的前端性能的书(这两本优秀的图书分别是 《High Performance Web Sites》 和 《Even Faster Web Sites》 作者是Steve Souders)以后 我对网站的前端性能十分敏感 根据Steve Souders的性能黄金法则
“首先应该对前端性能进行优化 终端用户的响应时间有 %或更多花费在这方面了 ”你可以使用下面这些工具来减少ASP NET应用程序使用的图像的尺寸 以及JavaScript文件 CSS文件的体积
Sprite and Image Optimization Framework
在A List Apart的一篇文章中(这篇文章的题目是 CSS sprites Image Slicing’s Kiss of Death 具体可以参考) 首次提到了CSS sprites 当你使用sprites的时候 你需要把一个网站使用的多个图像合并成为一个单一的图像 然后 在一个Web页面中 使用CSS trickery来显示特定的“子图像”
sprites的主要优势是 显示一个Web页面的时候 它可以有效地减少请求的次数 请求一个大图像比请求多个小图像快得多 一般来说 通过网线传输的资源(图像 JavaScript文件 CSS文件)越多 你的网站就越慢
但是 大多数人都不愿意使用sprites 因为使用sprites需要做很多的工作 你必须要合并所有的图像 然后编写合适的CSS规则来显示子 图像 微软的 Sprite and Image Optimization Framework 可以让我们省去这些繁琐的工作 这个框架可以自动地为你合并图像 此外 这个框架还包含一个ASP NET Web Forms control 和一个ASP NET MVC helper 它们可以让显示子图像变得更加容易 你可以从CodePlex下载 Sprite and Image Optimization Framework
Sprite and Image Optimization Framework是 Man McClean 编写的 在微软 他的办公室和我的办公室紧挨着 Man是一个十分聪明的人 他是加拿大的实习生 当他构建这个框架的时候 我们一起讨论了那个框 架 (据我所知 他还在继续开发这个框架 )
Man给这个框架添加了一些高级的功能 例如 Sprite and Image Optimization Framework支持“image inlining” 当你使用“image inlining”的时候 真正的图像被存储在CSS文件中 这是一个“image inlining”的例子
Home_StephenWalther_ *** all jpg { width: px; height: px; background: url(data:image/png;base iVBORw KGgoAAAANSUhEUgAAAEsAAABkCAIAAABB lpeAAAAB GdBTUEAALGOfPtRkwAAACBjSFJNAACHDwAAjA AAP SAACBQAAAfXkAAOmLAAA QAAGcxzPIV AAAKL s+zNfREAAAAASUVORK CYII=) no repeat % %; }
真正的图像(在这个例子中 是一个显示在Superexpert 网站主页上的图片)被存储在这个CSS文件中 如果你浏览一下 Superexpert 网站 你会发现几乎没有几个独立的图像可以被下载 在下面这张截图中 所有带红框的图像都是使用CSS sprites的
不幸的是 使用 Sprite and Image Optimization Framework 的时候 有一些“陷阱”需要注意一下 为了绕开这些“陷阱” 还有一些周边的工作需要做 在我以后的文章中 我会详细讲述这些“陷阱”都是什么 以及如何 绕开这些“陷阱”
Microsoft Ajax Minifier
无论何时 你都应该通过“far future header”来合并 最小化(minify) 压缩和缓存所有的JavaScript文件和CSS文件 Microsoft Ajax Minifier可以让最小化JavaScript文件和CSS文件变得更加容易
请不要把最小化和压缩搞混了 这两个工作你都需要做 根据Souders的观点 在你压缩了一个JavaScript文件以后 你还可以通过最小化来减少 %(平均)的体积
当你最小化一个JavaScript文件 或者一个CSS文件的时候 你可以使用各种技巧在压缩那个文件以前尽可能地减少那个文件的尺寸 例如 你 可以通过用短的JavaScript变量名替换长的JavaScript变量名的方式 和移除非必需的空白和注释的方式来最小化一个 JavaScript 你可以通过同样的方式来最小化CSS文件 例如 用短的color名(#fff)替换长的color名(#fffff)
Microsoft Ajax Minifier是微软的员工 Ron Logan 开发的 在内部 几个大型的微软网站都使用了这个工具 在ASP NET团队中 我们也使用这个工具 我认为Ron可以把这个工具发布到CodePlex 上 让世界上的所有人都可以使用这个优秀的工具 你可以从ASP NET Ajax站点下载这个工具
这个工具的文档可以参考
我为Microsoft Ajax Minifier创建了一个安装程序 当创建那个安装程序的时候 我还创建了一个Visual Studio生成任务 当你在Visual Studio中自动地进行生成的时候 它可以让最小化JavaScript文件和CSS文件变得更加容易 你可以通过《Ajax Minifier Quick Start》来学习如何配制这个生成任务 (关于《Ajax Minifier Quick Start》 具体可以参考)
ySlow
ySlow这个工具是Yahoo提供的 它是一个免费的Firefox扩展 它可以让你测试你的网站的前端
ySlow的
这是“Superexpert ”网站当前的测试结果
“Superexpert ”网站的总体得分是“B”(不是很完美 但是也不错了) ySlow这个工具并不是尽善尽美的 例如 虽然 Superexpert 网站使用了支JavaScript库(例如 jQuery)的Microsoft Ajax Content Delivery Neork(关于Microsoft Ajax Content Delivery Neork 具体可以参考) 但是还是因为没有使用Content Delivery Neork而得到了“F”
正常运行时间
当一个网站发布以后 你肯定希望你的网站不会遇到任何问题 一直处在正常运行状态之中 现在 我使用下面这些工具来监控“Superexpert ”网站 确保它一直处在正常运行状态之中
ELMAH
ELMAH 是 Error Logging Moles and Handlers for ASP NET 的缩写 ELMAH可以让你记录下你的网站发生的任何一个错误 在将来 你可以重新检查这些错误 你可以从ELMAH项目的官方网站免费下载ELMAH
ELMAH既支持ASP NET Web Forms 又支持 ASP NET MVC 你可以对ELMAH进行配置来存储各种不同的错误(XML文件 事件日志 Access数据库 SQL数据库 Oracle数据库 或者计算机 RAM )你还可以让ELMAH在错误发生的时候 把错误信息email给你
在默认情况下 在一个已经安装ELMAH的网站中 你可以通过请求的elmah axd页面的方式来访问ELMAH 这是“Superexpert ”网站的elmah页面的外观(这个页面是密码保护的 因为在一个错误信息中 可能会泄露出一些应该保密的信息 )
如果你点击某个错误信息 你可以看到原始的ASP NET的黄屏错误信息(虽然这个错误信息永远不会显示给真正的用户)
我使用全新的ASP NET软件包管理器 NuGet(过去叫做NuPack)来安装ELMAH 关于NuGet 你可以参考Scott Guthrie的博客 你可以从CodePlex下载 NuGet
Pingdom
我使用Pingdom来验证Superexpert 网站是否总是处在正常运行状态之中 你可以通过浏览“Pingdom ”的方式来注册Pingdom 你可以使用Pingdom来免费监控一个网站
在Pingdom网站上 你可以配置ping你的网站的频率 我每 分钟验证一次Superexpert 网站是否总是处在正常运行状态之中 我使用Pingdom服务来验证它是否可以从那个网站的主页上检索到字符串“Contact Us”
如果你的网站宕机了 你可以对Pingdom进行配置 让它通过email Twitter SMS 或 iPhone来发送一个警报 我使用这个Pingdom的iPhone应用程序
Host Tracker
如果你的网站宕机了 你需要一些方式来判断这是本地网络的问题 还是对每个人来说 你的网站都宕机了 我使用一个叫做“Host Tracker ”的网站来检查一个网站宕机的程度
这是“Superexpert ”网站从世界各地都可以ping通的时候 Host Tracker显示的结果
注意 Host Tracker从 个地点(其中包括 Roux France and Scranton PA等)来ping “Superexpert ”网站
调试
我这里提到的“调试”的意义十分广泛 当构建一个网站的时候 我使用下面这些工具来验证我并没有犯错误
HTML Spell Checker
为什么Visual Studio没有内置一个拼写检查器?不知道——我觉得这有点不可思议 但是 幸运的是 ASP NET团队的前成员编写了一个免费的拼写检查器 你可以在ASP NET页面上使用这个拼写检查器
我发现一个拼写检查器是必不可少的 认为你自己的拼写能力绝对是完美的 只是自欺欺人而已 当我真正地运行拼写检查工具 发现我的所有拼写错误的时候 我恨不得找个地缝钻进去
把HTML Spell Checker扩展添加到Visual Studio中的最快方法是在Visual Studio中选择“Tools”菜单项 然后点击“Extension Manager” 点击“Online Gallery” 然后索搜“HTML Spell Checker”
IIS SEO Toolkit
如果人们无法通过Google找到你的网站 那么还不如不构建这个网站 微软提供了一个优秀的IIS扩展 叫做“IIS Search Engine Optimization Toolkit ”(关于IIS Search Engine Optimization Toolkit 具体可以参考) 你可以使用它来检测出可能会影响页面排名的问题 你也可以使用它快速地为你的网站创建一个sitemap 你可以把这个sitemap提交给Google或Bing 你甚至可以为一个ASP NET MVC网站生成一个sitemap
这是“Superexpert ”网站的分析报告的概述
注意 “Sueprexpert ”网站存在很多的问题 例如 有 个页面的超链接已经失效了 你可以进一步查看这些问题的详细信息 找出这些问题发生的地点和具体的页面
LinqPad
如果你的ASP NET网站需要访问一个数据库 那么你应该使用LINQ to Entities这个实体框架 使用LINQ 会把一些用C#编写的神奇的查询转换成SQL查询 如果你在编写LINQ查询的时候不小心谨慎一些的话 你 很可能会在无意之间构建出一个性能十分糟糕的网站
LinqPad(LinqPad的官方站点)是一个免费的工具 它可以让你实验你的LINQ查询 它甚至支持Microsoft SQL CE 和 Azure
你可以使用LinqPad来执行一个LINQ to Entities查询 然后看看结果 你也可以使用它来查看对那个数据库执行的SQL语句
NET Reflector
我每天都使用 NET Reflector NET Reflector这个工具可以让你把一个程序集反汇编成C#或VB NET代码 当你没有真正的源代码的时候 你可以使用 NET Reflector来查看一个程序集的“源代码” 你可以从Redgate的网站下载 NET Reflector的免费版本
我主要使用 NET Reflector来帮助我搞清楚代码在内部是如何工作的 例如 为了更好的理解MVC Image helper是如何工作的 我使用 NET Reflector对the Sprite and Image Optimization Framework进行了反汇编 这是Image helper类的一部分反汇编代码
总结
lishixin/Article/program/net/201311/14298门户网站用什么后台系统好
传送门系统哪个最好用?
推荐火鸟门户系统。十多年专业门户开发经验,每月更新发布,及时售后响应。
火鸟门户系统真正做到了数据五端同步,PCWAP移动H5微信微信小程序APP客户端开源代码APP苹果/安卓全套项目源代码。
目前也是首批功能最全的门户网站之一。
功能信息、二手信息、房产门户、职位招聘、贴吧社区、网上商城、美食外卖、团购秒杀、视频直播、同城活动、养老机构、教育培训、旅游频道、婚庆频道、家政服务、汽车、装修、拖拽话题、互动交友、电子报刊、自助网站、便捷黄页、投票活动、积分商城、VR全景等。
目前为止最好的PHP开源门户系统是火鸟综合本地门户系统!
希望对你有帮助。系统选型要考虑功能、界面、售后服务、技术实力。代码必须支持二次开发。
net开源的cms系统哪个好?易上手,扩展强?
汇总了一些asp.net开源cms,希望对学习ASP.NET的人员带来帮助:
国内
1.SiteServerCMS
SiteServerCMS网站内容管理系统是定位于中高端市场的CMS内容管理系统,能够以最低的成本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大的网站平台。
SiteServerCMS是基于微软.NET平台开发的网站内容管理系统,它集成了内容发布管理、多站点管理、定时内容采集、定时生成、多服务器发布、搜索引擎优化、流量统计等多项强大功能,独创的STL模板语言,通过Dreamweaver可视化插件能够任意编辑页面显示样式,生成纯静态页面。
经历了七年的发展、众多项目的应用以及市场的检验,SiteServerCMS不断吸收来自各方面的发展建议和成功经验,其功能不断完善和发展,系统目前已经具有成熟稳定、运行速度快等特点,适合门户、、学校、企业以及其他各种资讯
类网站使用。
下载地址:http://www.siteserver.cn
2.NetCMS
NetCMS是基于ASP.NET2.0开发的网站内容管理系统,程序完全开源,没有任何文件加密,不需要注册任何组件,完全开
源方便您二次开发。
全新“网站模板与网站程序完全分离”的概念,具有强大的标签加样式的个性化组合,自定义标签、自定义表单、JS管
理加JS模型(自定义JS,系统JS)的灵活应用,支持不同频道、栏目、内容页、专题等应用不同的模板,随时能编辑、修改
和更换网站界面,系统集成类同MacromediaDreamweaver一样简单的可视模板编辑方式,可批量设置属性,模板标签全面支持目前最受欢迎的DIV+CSS格式,支持批量绑定模板,完全做到轻松换肤。
下载地址:http://www.aspxcms.com/
3.ROYCMS
ROYcms!NT内容管理系统是国内CMS市场的新秀、也是国内少有的采用微软的ASP.NET2.0+SQL2000/2005技术框架开发的CMS,充分利用ASP.NET架构的优势,突破传统ASP类CMS的局限性,采用更稳定执行速度更高效的面向对象语言C#设计,沿续PETshop的代码框架,全新的模板引擎机制,全新的静态生成方案,这些功能和技术上的革新塑造了一个基础结构稳定功能创新和执行高效的CMS。
功能特色:
模板自由组合定制
静态生成HTML
资源无限级分类
插件形式易于扩展
命名规范适合二次开发
下载地址:http://www.roycms.cn/index.html
4.网奇-Iwms系统
网奇Iwms网站管理系统是由国内知名ASP.NET工程师木鸟开发的一套安全易用的网站管理系统,本系统采用ASP.NET内核制作,本系统最大的特点是;后台管理功能强大,网站运行速度快,支持静态输出,网站安全性极高,对搜索引擎的支持性好,24小
时自动循环新闻采集,网站界面可任意定制各类精美页面!
网奇iwms官网:http://iwms.wangqi.com
5.思想内容管理系统--SXCMS
主要功能如下:
支持会员、非会员在线投稿
支持文章生成静态页,可自定义文章链接地址,支持URL跳转功能
支持无限量添加文章、无限级分配栏目
支持分栏目设置不同模板、不同参数、不同阅读权限
支持定义栏目名称、栏目路径规则
支持栏目URL跳转
支持自定义某栏目生成内容页面扩展名
支持分栏目设置keyword和description
内置三种图片图片调用方式,可灵活调配前台显示页面
支持动态调用文章点击数、评论数及其它各项参数
评论采用Ajax页面无刷新技术
支持专题功能
支持前台模糊搜索功能
支持文章分栏目分对象进行采集、采集后自动发布
支持计划任务,自定义时间、周期进行更新、采集任务,支持自定义计划任务
支持RSS信息订阅
内置网页防篡改功能
支持动态或静态页面输出
下载地址:http://www.sxcms.com
6.将博CMS--JUMBOTCMS
是一套个人开发的内容管理系统,其前身为jbsitecms采用WEB2.0设计理念、无刷新更新页面,前台模板自定义
.NET版本:VS2005+MSSQL2000
1、基本模块还是文章、图片和下载(增加了视频模块)。
2、将评论、公告、统计、友情链接、顶客等作为扩展插件,可灵活启用或关闭。
3、增加了用户留言模块(插件形式)。
4、部分标签发生了变化。
5、其他小功能的更新很多,这里不一一陈述。以上是功能上的更新,在技术上比较v2008以WebControls为主,而v2009融入了更多的前台技术??
下载地址:http://jumbotcms.net
7.DotNetNuke(ASP.NET2.0)
DotNetNuke是一个Web应用框架的理想,为创建和部署的项目,如商业网站,企业内联网和外联网,在网上出版门户,并定制垂直应用软件。方便用户-DotNetNuke旨在使用户可以更轻松地管理所有方面的项目。
下载网址:http://www.dotnetnuke.com
8.内容管理系统DianCMS
内容管理系统SQL版(DianCMS.SQL)是基于微软ASP.NET2.0、AJAX1.0技术、采用MSSQL2000/2005存储过程进行多层架构开发的内容管理管理。其功能设计主要面向中大型企业、各个行业、事业单位以及机关等复杂功能站点。系统已建立文章系统、图片系统、下载系统、个人求职、企业招聘、房产系统、音乐系统、网上商店。使用自定义模型、自定义字段、自定义表单、自定义录入界面、会员系统等功能,您还可以轻松、灵活的建立适合自身需求的任何系统功能,最大化满足每个用户任何时候的不同需求。更多功能详见官方网站.
9.Zoomla!逐浪CMS
Zoomla!逐浪CMS是功能强大的网站内核与管理系统,集成内容管理OASNS项目管理采集邮件订阅等强大功能,基于c#语言.net架构开发,是目前中国唯一同步支持MSSQL与Oracle两大数据库的高端CMS,用于快速构建高效门户网站,中国首家公开提供门户站群系统的高端CMS研发厂商。
演示地址:http://demo.zoomla.cn/index.html
下载地址:http://www.zoomla.cn/index.shtml
10.网站快车.NET网站管理系统
网站快车.NET是集本公司八年CMS系统开发经验之大成,投入了巨大心血和精力开发的功能强大、运行速度快、安全可靠的新一代网站管理系统(CMS)。本系统采用MSSQL和存储过程,系统运行速度快,安全性非常好,创新的可视化标签系统和数据模型功能,让你用本系统可以建立几乎所有类型的网站,开发任何风格的网站风格。系统不但拥有丰富的模板,同时还提供相当丰富的定务,我们可以为你定制您心目中理想的网站。
快车系统高性能的网站管理系统,经测试200万数据,5千栏目的条件下,系统运转如飞,速度和静态页相当.海量数据网站当
然要用快车系统.
快车系统是扩展性最好网站管理系统,数据模型(挂接表)功能,令网站可以无限扩展功能.
快车系统是最好用,最酷的网站管理系统系统采用WEBOS的后台,和WINDOWS的操作方式相似,令从未从事网站管理的人,轻易上手,多窗口操作,各种工作可同时进行,国内尚无第二家使用此技术.
快车系统是模板设计最灵活的网站系统,所有标签可视化设计,无需导入模板,修改标签参数后,直接刷新页面就可以看到
效果.无需记忆标签参数含义.
高质量、高服务,高质量的后台系统,还有高质量的服务,我们的系统一次购买,终身享有技术支持和免费升级,无需每年支付使用费。
下载地址:http://www.zydn.net
11.风讯dotNETCMS
dotNETCMSv1.0是一款具有强大的功能的基于ASP.NET+MSSQL构架的内容管理软件,国内领先的第一款开源的、集成web2.0元素的、模块化的CMS建站系统。dotNETCMSv1.0版功能:SQL数据库+内容管理+频道管理+发布管理+会员中心+插件管理(广告系统+采集系统+问卷调查+友情链接+统计系统+整合接口+文件对比+自定义字段+自定义表单+数据库维护)
程序特点:
1.全部生成静态页面/动态页面
2.完全人性化的操作方式
3.系统内置标签和自由标签管理,可以生成任何页面需要的任何元素和样式
4.集成了新闻采集系统
5.会员管理系统,并与流行论坛高度整合
6.自由化的权限分配管理
7.全个性化模板生成,模板由用户自由定义
8.投稿,投票,广告管理
9.面向高级技术人员的自由化SQL扩展标签
10.自动生成图片水印
11.后台操作自由灵活
12.其他一些功能...
下载地址:http://www.foosun.net
12.动易?SiteFactory
动易SiteFactory是一套基于微软.NET平台、采用最新的ASP.NET2.0技术、基于WEB应用的B/S架构分层开发的内容管理系统,专门面向需要构建企业信息门户平台的大中型企业而开发;具有强大的资讯信息管理功能、图片展示功能、人才招聘管理功能*、在线客户服系统*、问答系统、问卷调查管理、广告管理、手机短信发送、信息采集、自定义表单管理等系列功能,并且内置了包括文章、图片、软件、商品、flash、视频、音乐等在内的可开箱即用的标准化内容模型,以力助各中大型企业以最经济的成本和最便捷的方式构建起无限强大的企业信息门户!其中,人才招聘管理功能可助企业便捷进行在线人才招聘和管理;在线客户服务系统可助企业构建起强大的在线客户服务中心,以给客户提供更为专业的售后服务;多用户博客系统可供企业开设企业博客进行博客营销;而问答系统可助企业搭建起开放式的客服中心或行业垂直型的专业问答平台。
在SiteFactory3.0版本中,系统又特别新增了全文检索系统*、多用户博客系统*、会员注册推广、模板标签库升级工具等系列功能,为企业信息门户在用户体验、网站互动、营销推广等方面进行了更好的完善和改进。全文检索系统可对企业网站大量的各类资讯文章进行高速的检索,多用户博客系统可供企业开设企业博客进行博客营销,而模板标签库升级工具可让企业网站在升级时轻松沿用原来的网站模板。
下载地址:http://www.powereasy.net
13.拓文网站内容管理系统
同时支持Access数据库和MSSqlserver数据库,同时支持静态页面和动态页面。
文章采集、会员管理、广告管理、软件下载,新闻文章,留言本,调查投票,友情链接,在线文件管理,公告发布,数据库管理。界面友好、功能完善、简单易用、管理方便。它能帮助您建立高效率的站点。
下载地址:http://www.mytopwin.com
国外CMS:1、LudicoLudico是C#编写的居于ASP.NET2.0的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一
国外CMS:
1、Ludico
Ludico是C#编写的居于ASP.NET2.0的Portal/CMS系统。它的模块化设计是你可以按照你希望的使用或开发网站功能。它里面有高级的用户管理,一个所见即所的(WYSIWYG)的编辑器等。
下载地址:http://sourceforge.net/projects/ludico
2、umbraco
Umbraco是一款在.net平台下C#开发的开源内容管理系统,该系统效率,灵活,用户界面都不错。
下载地址:http://umbraco.org
3、mojoPortal
mojoPortal是一款C#开发的面相对象网站框架,它可以运行于Windows的ASP.NET和GNU/Linux或MacOSX的Mono的平台上。
下载地址:http://www.mojoportal.com
4、KodaiCMS
KodaiCMS是.NET平台下的一款功能齐全的内容管理系统。
下载地址:http://www.gotdotnet.com/workspaces/workspace.aspx?id=070f30c3-6089-4a75-b84c-fac654a7ec08
5、nkCMS
NkCMS是使用ASP.net和Sqlserver2000开发的内容管理系统。
下载地址:http://nkcms.sourceforge.net
6、Go.Kryo
Go.Kryo是一个用ASP.NET(C#).NET实现的简单的内容管理系统,后台数据库使用MicrosoftSQLServer。
下载地址:http://sourceforge.net/projects/gokryo
7、Amplefile
Amplefile是一款内容管理系统,是.Net环境下的windows应用程序,使用了.Netremoting.
下载地址:http://sourceforge.net/projects/amplefile
8、ndCMS
ndCMS是ASP.net(C#)下的一个内容管理系统。它提供了用户管理,文件管理,一个WYSIWYG编辑器,模板管理,拼写检查和内置的http压缩。ndCMS的目标是提供一个简单而快速的方式部署.Net站点
下载地址:http://ndcms-net.sourceforge.net
9、Cuyahoga
Cuyahoga是C#开发的灵活的CMS/Portal解决方案。它可以运行于Microsoft.NET和Mono平台,支持SQLServer,PostgreSQL或MySQL作为底层数据库。
下载地址:http://www.cuyahoga-project.org
10、Rainbow
Rainbow项目是一款使用Microsoft'sASP.NET和C#技术开发的有丰富功能的开源内容管理系统。
http://community.rainbowportal.net
门户网站的技术架构怎样设计方案?
我参与设计过一个行业门户网站,感觉解决大型网站面临的高并发访问、海量数据处理、高可靠运行等一系列问题与挑战,在实践中提出了许多解决方案,以实现网站高性能、高可用、易伸缩、可扩展、安全等各种技术架构目标。这些解决方案又被更多网站重复使用,从而逐渐形成大型网站架构模式。下面我主要从分布式的设计谈下:
1、分布式应用和服务:将分层和分割后的应用和服务模块分布式部署,除了可以改善网站性能和并发性、加快开发和发布速度、减少数据库连接资源消耗外;还可以使不同应用复用共同的服务,便于业务功能扩展。
2、分布式静态资源:网站的静态资源如JS,CSS,Logo图片等资源分布式部署,并采用的域名,即人们常说的动静分离。静态资源分布式部署可以减轻应用服务器的负载压力;通过使用域名加快浏览器并发加载的速度;由负责用户体验的团队进行开发维护有利于网站分工合作,使不同技术工种术业有专攻。
3、分布式数据和存储:大型网站需要处理以P为单位的海量数据,单台计算机无法提供如此大的存储空间,这些数据需要分布式存储。除了对传统的关系数据库进行分布式部署外,为网站应用而生的各种NoSQL产品几乎都是分布式的。
4、分布式计算:严格说来,应用、服务、实时数据处理都是计算,网站除了要处理这些在线业务,还有很大一部分用户没有直观感受的后台业务要处理,包括搜索引擎的索引构建、数据仓库的数据分析统计等。这些业务的计算规模非常庞大,目前网站普遍使用Hadoop及其MapRece分布式计算框架进行此类批处理计算,其特点是移动计算而不是移动数据,将计算程序分发到数据所在的位置以加速计算和分布式计算。
总之分布式设计思路比较多,还有可以支持网站线上服务器配置实时更新的分布式配置;分布式环境下实现并发和协同的分布式锁;支持云存储的分布式文件系统等。
如何制作免费网站如何制作免费网站链接
如何免费做一个网站
免费做网站主要有以下几种方式:1.在相关的网络制作平台上做一个网站。在众多网络制作平台中选择一个,按照循序渐进的方法制作网站。这种方法的优点是方便,缺点是制作出来的网站效果单一。
2.寻求相关行业朋友的帮助。如果你有从事相关行业的朋友,可以请他们帮你做一个网站。这种方法的优点是做出来的网站质量高,缺点是容易引起朋友的反感。
3.去相关网站出品的公司或企业咨询求助。找一家知名的专业制作网站的公司进行咨询,可以获得有效的制作方法,不仅方便,制作出来的网站质量也高。
制作自己的网站有以下功能:
1.有利于自己企业或公司的发展,各方面都能有所展现。
2.通过自制网站,可以收到网友的反馈,更好地改善存在的问题。
3.可以产生良好的营销效果,起到更好的宣传作用。
总的来说,建立一个自己的网站不是一件简单的事情,但同时也不会太复杂。只要找到合适的方法,就能顺利的做好自己的网站。
我想做个小网站,请问有什么好的免费域名申请吗?
CN域名只要1块钱。那些免费的2级域名不好用。网站空间也很便宜,100M的双线全能空间才卖42块。1G的才卖120块。
给你推荐下我在用的:
老牛网络
无iis/cpu/流量,支持web+wap,支持HTM/ASP/ASP.NET/PHP,开通子目录,BGP双线机房。