9.0版本:

1.1 ISP和VS不要同时生成,代码写在override方法之下,不然生成之后会覆盖;正常情况下,ISP可以写代码,只不过没有快捷提示,一般我们先注释一下字段(如://sdsfdsfd),然后VS查找到再重写代码。
1.2 新建一个项目,NewApp--> 新建一个应运程序池(一般一个项目对应一个应运程序池)-->应运程序池设置(基本设置选择Framework版本、以及高级设置标识选择LocalSystem,权限设置)-->选择项目(双击身份验证,选择匿名身份验证,点击编辑,选择应运程序 池标识)-->以及ASP启用父路径
1.3 ISP数据库同步:
DataBase菜单:下面是数据库中的表,表下面对应的是字段;数据库中新增加一个表(或者对表做修改),需要在DataBase菜单点击第二项是查询数据库所有的改变,可以看到表是灰色的,需要选择表右击选择Include Application,第一项是同步数据库结构的改变;
选择表右击的第一项是查询数据库的改变,第二项是同步表结构。说明一下灰色的表是没有Include Application;
注意:时间字段是date类型并以XXtime结尾的,时间格式默认会以时分秒展示。date类型生成以年月日展示出来。
1.4 ISP操作说明:
操作主菜单:Tools--》Menu Wizard(12.2 Configure Menu)--》 或者 找到Menu Panels文件 --》Menu.ascx右击Configure Menu
创建新的页面: Tools--》application wizard应用程序向导 或者 找个表右击选择New Page From Template (Ctrl + T)
人员权限的配置:Tools--》application security wizard
1.5 如果ISP编辑不通过,报错,那么会出错的,不能正常浏览,需要处理ISP编译的问题。

1、如何做级联? 例如:二级做一级的级联,点击二级的字段名称,选择Data Sources,点击Edit进行添加条件或者删除条件从新添加。Where条件书写规范(暂时想法):选择当前数据库、主键,书写条件(当前表明.字段名(一级名称相似的) = 当前Control.一级名称.SelectValue );

2、全选按钮删了再拖就不好用了,9.0.1的版本有这个问题,解决方式:将该按钮属性勾上:AutoPostBack:true

2.1小技巧(排错):
1、在页面中选中文本框,右击选择检查,可以查看该部分的代码;或者F12,去点击左上角的箭头,然后点击所需部分,查看代码。

3、问题1:添加页面,编辑页面,展示列表页面,三个页面中添加页面工单状态下拉框值保存无效:
是因为该字段在Databases中多一个Default value默认值。

4、问题2* 在编辑页面时,数据无法保存/下拉框的值没有保存:

5、问题3:字段获取当前联系人、修改人、创建时间、更新时间:
(1)获取当前联系人:选择字段属性类型改成:Literal;代码先注释再VS查找重写,并且需要将该字段的X=formulas下的database勾选:else中:SecurityControls.GetCurrentUserID();
创建时间 并格式化:选择字段属性类型改成:Literal;并且需要将该字段的X=formulas下的database勾选: else中: DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
修改人:set下代码全部删除,写:SecurityControls.GetCurrentUserID();其中创建时间需要从新格式化一下:this.DataSource.Format(CustomerTable.CreationTime, @"yy/MM/dd HH:mm:ss");
更新时间:set下代码全部删除,写:DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
(2)在DataBases中进行字段配置:例如Creator 增加记录配置:UserId() ;
CreateTime :增加记录配置:Now();
ModifyUser 增加记录配置:UserId(),更新记录配置:UserId();
ModifyTime 增加记录配置:Now(),更新记录配置:Now()。

5.1页面重定向问题、以及返回上级的操作:
按钮实现:Response.Redirect(@"../InboundServiceRequest/EditInboundServiceRequest2.aspx?InboundServiceRequest={PK}"); //参数必须是表名做主键
this.Page.Response.Redirect("../InboundServiceRequestTechSupport/ShowInboundServiceRequestTechSupportTable.aspx",false);
//都可以:sevt.URLTOGO = string.Format(@"..//INBOUNDSERVICEREQUESTZTC/EditINBOUNDSERVICEREQUESTZTC.aspx?INBOUNDSERVICEREQUESTZTC={0}",this.DataSource.OID);
//都可以:sevt.URLTOGO = "..//INBOUNDSERVICEREQUESTZTC/EditINBOUNDSERVICEREQUESTZTC.aspx?INBOUNDSERVICEREQUESTZTC=" + this.DataSource.OID;
返回上级:this.RedirectBack();

5.2 Tab标题的修改:
选中后缀Panel以及后缀Control,修改属性Title,就OK了。

5.3 数据库的字段值的修改:一般属性外观(Text)是显示的字段。
A、一般情况下选择DataBase下的表,然后选择字段,修改Label text的值,把值全删了,修改成自己的需要,就OK;
B、如果按A,实现不了,那就看看Default value是不是存在值,不要勾选;
C、在show界面,如果还是不行,修改属性值,修改成 Literal,外观Text修改成所需名称。

6、Tab页面创建(两个Tab页):
1、首先先拖两个表(在控件Reports&Forms第二项Report for...下选择表,选择创建类型:basic),再选中该控件右击选择Insert以及Tabs,就OK了。
2、如果在创建两个Tab页后,又添加第三个Tab页,那么怎么合并:选中整个表格整体Remove Tab页,然后再整体insert Tab页。

7、代码写在.asp.cs还是.Controls.cs中:
控件写在以Control结尾域中,代码写在.Controls.cs中修改,必须被重写override;如果是其它就写在.asp.cs中。

8、 Sql Server
(1)(一般采用主外键实现):一个页面的一个字段要获取另一个表中的字段:注:一般在编辑、添加页面
选中该按钮属性类型改成(DropDownList),然后修改查询条件,ID+表明(;例如:Select:userID From:UserTable) 或者直接Select所需字段也行,以及修改属性数据库选择属性ustom Properties,修改第三个属性(PopulateDisplayAs)成自己想要的字段。
如果在Show页面展示的是数字的时候,那么可以调试一下,DataBases下选中字段,勾选DisPlay as .当前字段。

(2)ISP中主外键作用:二、主键、外键和索引的区别:(当前表直接添加关系的话,当前表作为外键,选择主键): 如果过程中出现问题,显示数字或者别的问题,全部删了字段,重新生成,这样试试。
A、单独表作为一条记录添加主外键:主键表Rank(字段:Oid(主键) Name,外键表UserTable(字段:外键:Rank(整型));
B、一个表作为多条记录添加主外键:主键表TypeList(字段:Oid(主键) CustomerType,外键表Customer(字段:外键:Typelist(整型));
在条件修改中,XXshow页面中Filters 和 Fields的条件是保持一致的,修改一处,另一处也变,一般是把需展示的字段(外键),作为选择条件。
添加页面的话,字段的选择就是选择Id,或者配置 看问题 4 的描述。

8.1 主外键关联报错:已成功保存“TypeList_2”表“TypeList”表- 无法创建关系“FK_TypeList_TypeList_2”。 ALTER TABLE 语句与 FOREIGN KEY 约束"FK_TypeList_TypeList_2"冲突。该冲突发生于数据库"iCRMCoreGongSi",表"dbo.TypeList_2", column 'Oid'。
是因为关联的字段值为空。是因为数据表中的记录不是一一对应的,经过清空或者删除不对应的数据记录,建立了关系。

9、写JS位置,选择页面最上层,点击属性Page Directives: 例:<script language="javascript"> </script>

10、

11、Sql Server数据库数据转型MySql数据库:打开Navicat Premium,新建一个同名的数据库,然后在表上点击“导入向导”。并选择“ODBC”;Sql Server 10.0,;填写链接属性(测试连接);全选表;下一步;导入(finished successfly)。

12、IIS 开启父路径的目的:
开启父路径后可以用../来表示上一层目录;如果网站程序中使用了../,不开启则网站程序里有../就会报错。

13、ASP.net 4.5尚未在web服务器上注册,您需要手动将web服务器配置为使用asp.net 4.5,找到.net 4.5路径,有个注册路径命令;注册就行了。

14、编译报错1:
在项目重新加载之后,VS编译时报错Business:XXX文件未能加载,路径问题,将AiCRM2011.Business下的Business Layer文件删除以及My Project文件下的报错文件删除。

15、项目在ISP中Build之后,报错(未将对象引入程序中...),需要在ISP中工具栏View中选择Refresh(更新)一下,可以解决一下。那是因为web.config文件中数据库连接做过更改。
ISP生成提示:“未将对象添加到实例中”:重新打开一下ISP,打开项目生成。

16、在选择时间的时候不出现时分秒;前提是时间类型是:datetime;解决方案是:
更换模板页(master page):Page-->Display-->Browse-->HorizontalMenu.master 可以解决该问题。

17、获取当前手机号,查询出客户历史工单:
1、AiCRM2011.UI.EditInboundServiceRequest2 parentPage = (AiCRM2011.UI.EditInboundServiceRequest2)this.Page;//获取整个页面的元素
string oani = parentPage.InboundServiceRequestRecordControl.Ani.Text;//取值
wc.iAND("Ani='" + oani+"'");//拼接成:Ani=oani;
2、 INBOUNDSERVICEREQUESTZTCRecordControl ibRecord = (INBOUNDSERVICEREQUESTZTCRecordControl)this.Page.FindControlRecursively("INBOUNDSERVICEREQUESTZTCRecordControl");
if (!string.IsNullOrEmpty(ibRecord.ANI.Text))
{
wc.iAND("ANI = '" + ibRecord.ANI.Text + "'");
}

18、关于时间类型字段:字段名称以time结尾的话,在选择时间的时候会展示不同的样式,所以解决方式:1、字段不以time结尾;2、ISP修改属性:Date selector Type = None

19、如果VS删除代码之后,ISP生成之后还能复原删除的代码,那么就是需要将VS下对应的XML文件对应的字段代码删除,就不会在复原了。

20、点击保存按钮关闭窗口:this.CloseWindow(true);

21、给页面赋值时,被赋值类型最好不是下拉框,不然值不好赋或者赋值前刷新下拉框的值,下拉框的值加载:PopulateCOMPANYDropDownList(Oid, 2);

12版本:

1.1 团队资源管理器:

1.2 ISP每个方法都有注释,具体看注释说明去使用方法;ISP十个方法介绍,全是被重写的,位置在.Controls.cs下:
CreateOrderBy ():初始化排序;添加自己的排序顺序,或者在查询向导中修改它。
CreateWhereClause():用于加载数据;增加Where条件查询;
DataBind():绑定界面控件的值;
Init():设置的过滤和搜索,初始化数据。
Load():页面加载,/设置分页事件/设置排序事件/设置按钮事件/为其他人设置事件
LoadData():从数据库读数据,页面数据加载。
PreRender():加载DataBind()和LoadData()方法;在页面显示PreRender事件,如有必要,重新加载数据并更新网页。
SavaData():保存数据。
Validate():控件添加自定义验证;
GetUIData():从用户界面检索更新后的值,/控制到数据库记录中以准备保存或更新。
1、主菜单配置:
在ISP中添加完页面后后,需要在数据库表RolePageTable中添加权限看到,例如:其他:工单列表。

2、在ISP中添加完页面之后,Show页面没有列表展示:
选中Show页面,点击最上级.aspx,将属性 hide until searched修改成false.

3、二级关联关系,在编辑页面出现问题:一级选择之后,二级选择上的还是之前的值,没有改变。
不可行:修改二级的方法Populate(),修改位置 // 4. Set the selected value (insert if not already present). 外加 if (!this.Page.IsPostBack){ 现有代码放在其中}
一二级:AutoPostBack 设置成True.

4、ISP12.2如何添加Tab页面:
1、首先两张表是主外键关系,然后在创建添加主页面的时候,可以选择子表,会自动生成Tab页。
2、如果在添加主页面的时候,没有选择子表,那么在最顶级 .aspx 页面下,拖控件,控件选择Panels下的表,创建类型选择Edit table,就OK了。

5、在add、edit、show三个页面做二级关联以及下拉框的值放在TypeList列表,操作:说明一下(1)一张表中的多个字段可以同一张表建立主外键关系;(2)控件属性Populate from database:调整选择表中那个字段值,例如:=InboundServiceType.Name。
1、二级关联:两个字段分别和一级二级表建立主外键关系,然后在一级表InboundServiceType维护数据(name字段下)以及TypeA(条件查询);在表InboundServiceTypeDetail二级维护数据(name字段下),InboundServiceType字段下是一级对应的数据Oid;
二级条件展示:InboundServiceTypeDetail.InboundServiceType = CustomerRecordControl.JianLiDaQuu.SelectedValue(简便写法:在条件:Formula里面右击:UI Control 直接选择JianLiDaQuu,条件自动生成) ; 最后注意的一点,在ISP中,DataBases需要将这两个字段的Display as勾上,不然show页面展示数字。
2、(1)下拉框的值可以在ISP中,DataBases中写死,格式:'','','' ;(2)建议使用,给字段建立主外键关系,然后在表InboundServiceType维护数据(name字段下)以及TypeA(条件查询),最后注意的一点,在ISP中,DataBases需要将字段的Display as勾上,.Name ,不然show页面展示数字。
3、

6、文件重命名的时候在ISP中重命名,文件下的字段也会更改,在VS中重命名会出错;但是VS创建的文件,可以在VS重命名。

7、在Show页面的Filters过滤部分,在拖下拉框的时候,会生成三个按钮,将过滤按钮删除,将属性AutoPostBack的值改为False,这样就可以筛选了。

8、在页面或者字段权限配置时,将Show only roles in 勾去掉,点击查询,显示所有角色。不然看不到角色显示。

9、编辑按钮(EditRowButton),路径操作,URL parameter name(参数名称)写成表名,下拉框选择,Clicked Row。

10、创建页面之前,最好将主键设置好,主键递增,不然遇到在创建Add页面之后,保存报错:“提示主键不能显式保存”;参看数据库操作3问题。

11、ISP文件在VS中覆盖方式:
首先add页面先覆盖,再在Business Layer文件下找相关文件覆盖,然后再在Data Access Layer文件下找相关文件覆盖,最后清理解决方案,刷新项目,重新生成就OK了。

12、客户快速查询功能,引入:App_Themes--》Diablo--》Styles.css(BaseStyles.css使用旧的) 联系人添加方式功能,样式引入:StartPage--》MainFrame.js

13、父页面的后台调用父页面的JS,然后再有子页面的后台调用子页面的JS.

14、Fields创建时间焦点自动搜索:在.aspx.cs下Page_Load方法下找到方法this.SetPageFocus();下面的代码注释掉,就ok了.

14.1 操作之后,获取焦点在指定位置:
在方法PreReader()下,增加代码: Name.Focus(); base.Control_PreRender(sender,e); Name控件名称。Focus()为控件设置输入焦点。

15、复制的代码覆盖本地代码,本地没有主外键关系,复制的代码有主外键,会出现大错误的,需要加上主外键。

16、模糊查询配置,Filter 下的Filter operator设置成:Contains。

17、分页按钮,位置调整不好的时候,从别的地方复制一个过来(整行复制)。

18、控件DropDownList,属性Populate from static list配置下拉框的值,可以设置顺序;弊端就是客户不能在数据库中维护,是写死的,不利于维护,和在ISP数据库中,字段值写死一样的。

19、if (!IsPostBack)//判断是不是第一次加载:只要不刷新页面,就执行一次
表示第一次访问页面时要执行的程序,有点像初始化页面,当你点击了当前页面的一些按钮后,将不会再执行这些程序。

20、预约回呼时间逻辑:美康销售受理单编辑页面,写在SavaData()方法中,代码参考,已备份的。
实现思想:

21、Show页面,按照Oid排序或者按照某一个条件查询出数据:
回到.aspx层级,找到Sql语句,添加Order By条件,Desc降序;或者增加Where条件去查询数据。

22、写备注:拖一个控件label,改变字体颜色就Ok。

23、页面加载时需要做判断,思想是在.aspx.cs中加代码:
注册一个事件生成方法:例如:this.Load += AddCustomerContain_Load;然后在生成的方法中做逻辑判断。

24、父页面按钮-》跳转新建页面--》新建页面信息保存在父页面--》最后保存数据,实现思想。
按钮属性:OnClientClick:return NewCustomer("Add");页面写JS方法及逻辑判断;

25、给按钮赋予管理员权限,当点击按钮的时候改变其它控件的属性值:
Click()方法下修改: Status.Enabled = true;

26、获取当前登录人所有的记录:补充:每张表都有XXXRecord类 和 XXXTable类。
UserTableRecord ag = (UserTableRecord)SecurityControls.GetUserRecord();

27、(1)下拉框初始值,字段在ISP数据库,第二项填写上去,例如:"待处理";
(2) 选择下拉框的值,自动进行搜索,属性:AotuPostBack:true;
(3)下拉框值的填写:ISP Date属性:permitted values '待处理','已提交','结案'

28、弹出提示框:
this.RegisterAlertRed("提示", "ex.Message", true); .aspx.cs弹窗//
this.RegisterAlert("提示", "受理单已结案!", true);
this.Page.RegisterAlert("提示", "请先绑定申告ID", true); //controls.cs
BaseClasses.Utils.MiscUtils.RegisterJScriptAlert(this, "BUTTON_CLICK_MESSAGE", ex.Message); JS窗口弹窗//

29、右击检查,取属性的ID,进行样式(css)的设置。

30、JS中 $"parent.NewTablePs('新建受理单','{url}','{System.Guid.NewGuid().ToString()}')"; parent.xxx方法在MainFrame中。
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "", script, true);//执行JS代码。

31、路径传递参数以及获取前台传递参数:
string url = @"../InboundServiceRequestTechSupport/AddInboundServiceRequestTechSupport.aspx?Oid=" + this.Oid.Text;
xxxControls.cs获取参数:if (Page.Request.Params["Oid"] != null) xxxaspx.cs获取: if (Request.Params["Oid"] != "")

32、protected override void Control_PreRender(object sender, System.EventArgs e)
{ base.Control_PreRender(sender, e); 其它逻辑 其它代码删除 }//解析:会先走Control_PreRender方法,再走逻辑。不然只走逻辑代码。 base.LoadData(sender, e);同理

this.Load += AddInboundServiceRequestTechSupport_Load;//注册一个方法:其它代码会走,该方法也会走。

33、InboundServiceRequestSalesRecordControl.PersonName.Text = person.ConnectionPerson ?? "";//
C#中两个问号的作用是判断??左边的对象是否为null,如果不为null则使用??左边的对象,如果为null则使用??右边的对象。

34、上传附件步骤:新建一个图片字段,一个字段存储图片名字,例:AttachFileName。
新增页面:拖该控件(属性control type:FileUpload,File name field:选择AttachFileName);
编辑页面展示:前边图片名字字段,后边拖两个附件按钮,一个上传,一个下载;属性:File name field:选择AttachFileName。

35、Tab页建立主外键关系:
选择Tab页,增加Where条件,选择Join with :Related panel on page 直接下一步,Finish的。

36、ISP在导入数据的时候(Excel表类型:后缀 .xlsx),提示:"外部表不是预期的格式"
将后缀改成:.xls可以使用。

37、Master Pages文件夹:存放模板页

38、路径传递两个参数写法:url="A.asp?file="+ File + "&path=" + Path;

39、 GetRadWindow().BrowserWindow.ReturnCustA(Oid);调用父页面的JS;

40、点击该按钮字段修改属性(触发页面的验证项):CausesValidation

41、电脑系统是否安装IIS:浏览器输入:http://127.0.0.1/或者Localhost查看

42、Try{}Catch(){}增加代码:选中代码,右击选择外侧代码,选择Try

43、字段数据在TypeList里存储,给该字段赋值,美康工单 选择其他按钮:
CustomerRecord cust = BaseCustomerTable.GetRecord(oid, false);
if (cust.CustomerGradeSpecified)
{
TypeListRecord istr = BaseTypeListTable.GetRecord(cust.CustomerGrade.ToString(), false);
InboundServiceRequestSalesRecordControl.CustomerGrade.Text = istr.Name;
}
44、项目更新:
在项目生成之后,bin目录下会生成三个新的.dll文件替换,前台页面只替换.aspx文件或.html文件,css文件以及.js文件直接替换,JS文件更新之后需要清缓存看效果。
主菜单更新:文件Menu Panels下的Menu.sitemap是主菜单的配置项,生成之后更新;

45、 //回访录音显示(首先判断是否生成录音ID和是否是回访的录音)
wc.iAND("CallOid is not null and CallType ='正常外呼' and Task is not null");

46、封装日之类:DebugHelper.cs:
JS输出日志:是MyLog
其它类:MyLog_UserID
输出错误日志:DebugHelper.MyLog_Error_UserID

47、页面数据保存
DbUtils.StartTransaction();
this.InboundServiceRequestTechSupportRecordControl.SaveData();
DbUtils.CommitTransaction();
DbUtils.EndTransaction();
this.RegisterAlert("提示", "保存成功!", true);

48、部门间数据分离:将工单的条件写在文件Business下的,InboundServiceRequestJysTable.cs文件中,做页面条件加载处理。实例代码:

49、调试实现快速监视操作。Shift+F9快捷键,方便查看值

50、(1)xxxSpecified:判断该字段是否为空
(2)判断字段是否是空:if (!string.IsNullOrEmpty(phone)){} //不是空执行
(3)获取当前时间并赋值给字段:this.LastCallTime.Text = DateTime.Now.ToString();
(4).ToString()将int转换成string类型。
(5) if (this.DataSource.IsAnyValueChanged) { //this.DataSource用法以及数据值发生变化做出判断
this.DataSource.Save();
Boolean bAddCallbackEevent = false;
if (this.DataSource.IsValueChanged(INBOUNDSERVICEREQUESTZTCTable.CALLBACKTIME))
{
bAddCallbackEevent = true;
}

51、报表:将几张表制作成视图(利用SQL数据库创建视图,拖拽字段),然后将该视图按条件进行视图制作;复制一个现有的报表进行二次开发。

52、Sap接口:模板页

52.1 DAV报表(DevExpress):
创建视图,拖需要的表和字段,创建语句自动生成,从而创建视图;

53、ISP在同步表结构时,提示:给定关键字不在字典中:
删除文件:Data文件下:office_QAItem1.xml,存在相同的表。

54、登录界面页面,Security/MySignIn.aspx

55、ISP创建对象:SMSSendTableRecord sms = new SMSSendTableRecord();

56、序列化和反序列化:
主要用于存储对象状态为另一种通用格式,比如存储为二进制、xml、json等等,把对象转换成这种格式就叫序列化,而反序列化通常是从这种格式转换回来。

57、IE浏览器切换不同版本,浏览项目:F12开发人员工具--》仿真--》文档模式--》选择IE版本

58、跳转页面并给该页面赋值:代码写在Load()方法,就是重写方法:Control_Load() 或者写在预加载方法下PreRender()。

59、测试网络稳定:ping www.baidu.com -t ctrl + c 结束

60、页面刷新Avaya项目:ShowCallListTable.Controls.cs:
((CallListTableControl)MiscUtils.GetParentControlObject(this, "CallListTableControl")).DataChanged = true;
((CallListTableControl)MiscUtils.GetParentControlObject(this, "CallListTableControl")).ResetData = true;

61、字符串去除空格,字符串下的方法trim():String str = " a bcdef "; str = str.trim();
this.CustomerJysRecordControl.CusName.Text.Trim()

62、字符串截取: string cusOid = "";
if (formattedValue !="" && formattedValue.Length >=6)
{
cusOid = formattedValue.Substring(0, 6);
}
CustomerJysRecord jysCus = CustomerJysTable.GetRecord($"CusCode ='{cusOid}'");

63、自动登录:Web.Config文件:<add key="SecurityDisabled" value="False" />,原因是ISP中点击了,Live Preview(实时显示)

64、微信日志:Log/MediaMiddleware; IVR日志:Log/IvrAPI

65、系统登录超时退出:在Web.config中配置1小时:<sessionState timeout="60"/>;以及在IIS高级设置中,设置连接限制,连接超时为0.永不间断。

Iron Speed Designer设计工具开发总结的更多相关文章

  1. 移动APP开发使用什么样的原型设计工具比较合适?

    原型设计工具有Axure,Balsamiq Mockups,JustinMind,iClap原型工具,等其他原型工具.其中JustinMind比较适合APP开发使用. JustinMind可以输出Ht ...

  2. Web开发人员不要错过的60款用户界面设计工具(中)

    21. Dojo Dojo是一个用javascript语言实现的开源DHTML UI工具包,可实现高性能的桌面和移动应用程序开发,在国内亦有大量忠实用户. 22. Fivesecondtest Fiv ...

  3. Web开发人员不要错过的60款用户界面设计工具(上)

    Web开发大师们,干货再次来袭!小编为大家盘点了60款功能丰富类型各异的用户界面设计工具,本系列将以上中下三篇分别为大家呈现.今天盘点的这20款工具囊括了大量界面原型设计工具,有免费的在线原型工具,有 ...

  4. 系统设计与架构笔记:ETL工具开发和设计的建议

    最近项目组里想做一个ETL数据抽取工具,这是一个研发项目,但是感觉公司并不是特别重视,不重视不是代表它不重要,而是可能不会对这个项目要求太高,能满足我们公司的小需求就行,想从这个项目里衍生出更多的东西 ...

  5. 使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件

    使用 PySide2 开发 Maya 插件系列一:QT Designer 设计GUI, pyside-uic 把 .ui 文件转为 .py 文件 前期准备: 安装 python:https://www ...

  6. 8个很实用的在线工具来提高你的Web设计和开发能力

    近期在网上看到一张帖子感觉不错.只是是英文版的今天闲着没事锻炼一下英语能力分享给大家看看! 原文地址:http://webdesignledger.com/tools/8-useful-online- ...

  7. 15个最好的Bootstrap设计工具推荐

    摘要:Bootstrap不单单是一个框架,更确切的说,它改变了整个游戏规则.该框架使得许多应用和网站的设计开发变得简便许多,而且它将大量的HTML框架普及成了产品. Bootstrap是由前Twitt ...

  8. 12 款最好的 Bootstrap 设计工具

    作为一位设计师,会经常追寻新鲜有趣的设计工具,这些工具会提高工作的效率,使得工作更有效, 最重要的是使工作变得更方便.非常肯定的说,随着日益增长的工具和应用的数量,设计和开发变得越来越简单了. 其中最 ...

  9. 9款原型设计工具与Sketch的强强组合,轻松构建交互原型!

    原型设计的发展历史经历了纸上原型.静态线框设计.到现在的可交互式原型.作为设计过程中最初始的阶段,设计师们对原型设计的要求也越来越高.因此,如今的原型设计工具格局也发生了很大的变化. Sketch对于 ...

随机推荐

  1. T440安装Win7系统

    于T440自带的是Win8系统,硬盘格式为GPT分区格式,而Win7必须要MRP格式,所以必须要将硬盘格式从GPT修改为MRP,方法如下: 准备工作,下载”电脑店U盘启动盘制作工具“(百度一下,去官网 ...

  2. golang第三方库goconfig的使用

    参考地址:​http://studygolang.com/articles/818 详细的解析可以看上面链接,这里只做一点简单介绍 先安装好包,然后导入 import (    "githu ...

  3. 对于高并发短连接造成Cannot assign requested address解决方法

    https://www.cnblogs.com/dadonggg/p/8778318.html 感谢这篇文章给予的启发 在tcp四次挥手断开连接时,主动释放连接的一方最后会进入TIME_WAIT状态, ...

  4. 【转】 android中的文件操作详解以及内部存储和外部存储

    摘要 其实安卓文件的操作和Java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者 ...

  5. jenkins + sonar 安装配置

    最近把snoar 添加上了 [root@snoar data]#   wget https://sonarsource.bintray.com/Distribution/sonarqube/sonar ...

  6. virtualbox+vagrant学习-2(command cli)-16-vagrant snapshot命令

    Snapshot快照 这是用于管理客户机器快照的命令.快照记录客户计算机的时间点状态.然后可以快速恢复到此环境.这可以让你进行试验和尝试,并迅速恢复到以前的状态. 快照并不是每个provider都支持 ...

  7. PAT乙级1021

    1021 个位数统计 (15 分)   给定一个 k 位整数 N=d​k−1​​10​k−1​​+⋯+d​1​​10​1​​+d​0​​ (0≤d​i​​≤9, i=0,⋯,k−1, d​k−1​​& ...

  8. P2327 [SCOI2005]扫雷

    题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一列中雷的摆放方案数. 输入输出样例 输 ...

  9. Hive HBase Integration 集成

    官方文档:https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration 1.在hive/lib目录下找到hive-hbase-ha ...

  10. 底部带突出按钮的tabbar

    #import "ViewController.h" #import "FirstViewController.h" #import "SecondV ...