登录 注册| 免费发布职位

asp开发

[全行业]

7条工资| 15条面试| 753条招聘

asp开发简介

纠错

岗位职责

发展起源
ASP .NET的前身ASP技术,是在IIS2.上首次推出(Windows NT 3.51),当时与 ADO 1. 一起推出,在IIS 3. (Windows NT 4.)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了VisualInter Dev开发工具,在1994年到2年之间,ASP技术已经成为微软推展Windows NT 4.平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。不过ASP的缺点也逐渐的浮现出来:面向过程型的程序开发方法,让维护的难度提高很多,尤其是大型的ASP应用程序。 解释型的VBScript或JScript语言,让性能无法完全发挥。 扩展性由于其基础架构的不足而受限,虽然有COM元件可用,但开发一些特殊功能(如文件上传)时,没有来自内置的支持,需要寻求第三方控件商的控件。
1997年时,微软开始针对ASP的缺点(尤其是面向过程型的开发思想),开始了一个新的项目。当时ASP .NET的主要领导人Scott Guthrie刚从杜克大学毕业,他和IIS团队的Mark Anders经理一起合作两个月,开发出了下一代ASP技术的原型,这个原型在1997年的圣诞节时被发展出来,并给予一个名称:XSP,这个原型产品使用的是Java语言。不过它马上就被纳入当时还在开发中的CLR平台,Scott Guthrie事后也认为将这个技术移植到当时的CLR平台,确实有很大的风险(huge risk),但当时的XSP团队却是以CLR开发应用的第一个团队。.net
为了将XSP移植到CLR中,XSP团队将XSP的内核程序全部以C#语言进行了重构(在内部的项目代号是 Project Cool,但是当时对公开场合是保密的),并且改名为ASP+。而且为ASP开发人员提供了相应的迁移策略。ASP+首次的Beta版本以及应用在PDC 2中亮相,由Bill Gates主讲Keynote(即关键技术的概览),由富士通公司展示使用COBOL语言撰写ASP+应用程序,并且宣布它可以使用Visual Basic .NET、C#、Perl、Nemerle与Python语言(后两者由ActiveState公司开发的互通工具支持)来开发。
在2年第二季时,微软正式推动.NET策略,ASP+也顺理成章的改名为ASP .NET,经过四年的开发,第一个版本的ASP .NET在22年1月5日亮相(和.NET Framework1.),Scott Guthrie也成为ASP .NET的产品经理(后来Scott Gu主导开发了数个微软产品,如:ASP .NET AJAX、Silverlight、SignalR以及ASP .NET MVC)。
自.NET 1.之后的每次.NET Framework的新版本发布,都会给ASP .NET带来新的特性。
开发工具
ASP .NET的网站或应用程序通常使用 Microsoft(微软)公司的IDE(集成开发环境)产品Visual Studio进行开发。
在开发过程中可以进行WYSIWYG(What You See Is What You Get ,所见即为所得)的编辑。
其它开发工具:
》 Adobe Dreamweaver
》 SharpDevelop
》 MonoDevelop
》 Microsoft Expression Web
》 Microsoft WebMatrix
》 Notepad++
》 EditPlus
语言支持
ASP .NET开发的首选语言是C#及VB .NET,同时也支持多种语言的开发。
跨平台性
因为ASP .NET是基于通用语言的编译运行的程序,其实现完全依赖于虚拟机,所以它拥有跨平台性,ASP .NET构建的应用程序可以运行在几乎全部的平台上。
其中大致分为以微软.NET Framework为基础使用IIS做为Web 服务器承载的微软体系,以及使用Mono为基础框架运行在Windows或Linux上的开源体系。
简单易学
asp.net使运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。例如asp.net页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like运算。
可管理性
asp.net使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单。因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。这种被称为Zero Local Administration的哲学观念使asp.net的基于应用的开发更加具体和快捷。一个asp.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须的文件,不需要系统的重新启动,一切就是这么简单。多处理器环境的可靠性asp.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。即使你现在的asp.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP却做不到这一点。自定义性和可扩展性asp.net设计时考虑了让网站开发人员可以在自己的代码中自己定义plug-in的模块。这与原来的包含关系不同,asp.net可以加入自己定义的任何组件。网站程序的开发从来没有这么简单过。安全性基于Windows认证技术和每应用程序配置,你可以确保你的原程序是绝对安全的。asp.net的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。可以通过在现有 ASP 应用程序中逐渐添加asp.net功能,随时增强 ASP 应用程序的功能。asp.net是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与 .NET 兼容的语言(包括Visual Basic .NET、C# 和 JScript .NET.)创作应用程序。另外,任何asp.net应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。asp.net可以无缝地与 WYSIWYG HTML编辑器和其他编程工具(包括Microsoft Visual Studio .NET)一起工作。这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。 当创建asp.net应用程序时,开发人员可以使用 Web窗体或 XML Web services,或以他们认为合适的任何方式进行组合。每个功能都能得到同一结构的支持,使您能够使用身份验证方案,缓存经常使用的数据,或者对应用程序的配置进行自定义. 如果你从来没有开发过网站程序,那么这不适合你,你应该至少掌握一些HTML语言和简单的Web开发术语(不过我相信如果有兴趣的话是可以很快的掌握的)。你不需要先前的ASP开发经验(当然有经验更好),但是你必须了解交互式Web程序开发的概念,包含窗体,脚本,和数据接口的概念,如果你具备了这些条件的话,那么你就可以在asp.net的世界开始展翅高飞了。
Web服务器
ASP .NET不能只被看做是 Active Server Page (ASP) 的下一个版本,而且是一种建立在通用语言上的优秀程序构架,而且可以运行于多种平台的WebServer之上。
开发环境
Cassini/CassiniDev
Cassini 是一个开源项目。是一个独立的ASP .NET运行环境。
WebServer
Visual Studio 自带的Web Server也可以运行ASP .NET应用,Web Server是为了方便开发者快速启动及调试网站的产品,后期被IIS Express取代。
IIS Express
IIS Express被集成到了Visual Studio及WebMatrix之中,方便用户以“集成模式”来调试ASP .NET应用程序。
生产环境
IIS
IIS指 Internet Information Services(因特网信息服务)。IIS 是 Windows 系统的捆绑的免费组件。
Apache
经典的Web应用程序承载应用,可以通过在Windows下使用.NET或者在其它操作系统中使用Mono来使ASP .NET应用程序运行起来。
XSP 
XSP 是一个有着独立标准的 web server,它使用C# 编写,可以用来运行ASP .NET应用程序。XSP 可以在 Mono 以及 Microsoft .NET运行时之下正常工作。  
Nginx
Nginx是一个高性能的 HTTP 服务程序,它支持ASP .NET 以及 ASP .NET MVC Web 应用程序,通过FastCGI。
Jexus
Jexus是一款基于dotNET/Mono环境,直接支持ASP.NET的免费的WEB服务器系统。
处理架构
asp.net运行的架构分为几个阶段:
在 IIS 与 Web 服务器中的消息流动阶段。 在asp.net网页中的消息分派。 在asp.net网页中的消息处理。
消息流动
当装载(hosting)asp.net的 Web 服务器接收到 HTTP 要求时,HTTP 聆听程序 (HTTP Listener) 会将要求转交给 URL 指定的网站应用程序的工作流程 (Worker Process),asp.net的工作流程处理器 (aspnet_isapi.dll,若是 IIS 5. 时则是 aspnet_wp.exe) 会解析 URL,并激活位于 System.Web.Hosting 命名空间中的 ISAPIRuntime(视版本)对象,接收 HTTP 要求,并调用 HttpRuntime,运行 HttpRuntime.ProcessRequest(),在 ProcessRequest() 中使用 HttpApplicationFactory 建立新的 HttpApplication (或是指定的 IHttpHandler 处理器),再分派给 Page 中的 ProcessRequest() 或是 IHttpHandler 的 ProcessRequest() 方法,运行之后,再传回到 ISAPIRuntime,以及 aspnet_isapi.dll,最后交由 HTTP Listener 回传给用户端,因为运行程序有如管线般顺畅的运行,因此称为HTTP Pipeline Mode。
在asp.net内部的 HTTP 处理器有:
ISAPIRuntime:由 aspnet_isapi.dll 调用,初始化 HttpWorkerRequest 对象(会由IIS的版本决定要初始化的版本)。 HttpRuntime:提供要求队列 (Request Queue)、调用 HttpWorkerRequest 中的 ProcessRequest() 方法,以及后续的处理工作。 HttpWorkerRequest:产生 HttpApplication、HttpRequest、HttpResponse 等基础对象的 HTTP 要求对象,并将要求转送到要处理的对象(并调用它的 ProcessRequest() 方法)。 IHttpHandler 与 IHttpAsyncHandler:负责处理 HTTP 要求的单元,由 ProcessRequest() 来分派与运行要求。asp.net网页中的事件程序  当 HttpWorkerRequest 调用asp.net网页(System.Web.UI 命名空间的 Page 类) 的 Page.ProcessRequest() 方法时,它会依序的引发 Page 内的各个事件,并同时调用在 Page 中所有控件的相关事件,其引发顺序为:
PreInit 事件:运行预先初始化的工作,在asp.net2.中,若要动态调整主版页面 (Master Page)、布景主题 (Theme) 时,要在这个事件中调整。 Init 事件:运行初始化工作。 InitCompleted 事件:在完成初始化工作后引发。 Preload 事件:运行预先加载的工作。 Load 事件:运行加载的工作,大多数的网页都拥有 Page_Load 事件处理程序,用户控件 (user control) 中也有 Page_Load 事件例程,都会在此时调用。 控件的 PostBack 变更通知:当网页侦测到是 PostBack 要求时,会引发 PostBack 消息通知的事件。 控件的 PostBack 相关事件:当网页侦测到是 PostBack 要求时,会引发 PostBack 消息指定的控件的事件。 LoadCompleted 事件:运行加载完成后的工作。 PreRender 事件:处理在产生 HTML 结果前的工作。 SaveStateCompleted 事件:处理页面状态 (ViewState 与 ControlState) 储存完成后的事件。 Render 事件:处理产生 HTML 的工作。 Unload 事件:处理退出网页处理时的工作。 如果 HttpWorkerRequest 调用的是实现 IHttpHandler 界面的HTTP 处理程序时,它只会调用 IHttpHandler.ProcessRequest() 方法,由它来处理程序的输出,不像 Page.ProcessRequest() 会处理事件顺序,因此 HTTP Handler 很适合轻量级的数据处理,像是输出文件数据流或是图片数据流等。
事件模型
asp.net的原始设计构想,就是要让开发人员能够像 VB 开发工具那样,可以使用事件驱动式程序开发模式 (Event-Driven Programming Model) 的方法来开发网页与应用程序,若要以ASP技术来做到这件事的话,用必须要使用大量的辅助信息,像是查询字符串或是窗体字段数据来识别与判断对象的来源、事件流向以及调用的函数等等,需要撰写的代码量相当的多,但asp.net很巧妙利用窗体字段和JavaScript脚本把事件的传递模型隐藏起来了。
asp.net的事件模型是由以及数个 Hidden Field 组合而成,基于 HTTP 模型的限制,所有的网页程序在运行结果输出到用户端后,程序就会退出运行,为了维护在asp.net网页与控件的状态数据,因此在输出asp.net控件时,asp.net会将部份状态数据储存到网页的 Hidden Field 中,这类型的状态数据称为 ViewState(ID 为 __VIEWSTATE),在服务器端即会被解译出状态与事件数据。在大多数的内置 Web 控件中都有使用到这个机制,因此在使用大量asp.netWeb 控件的网页中,会有许多的 ViewState 会存放在网页中并随着 HTTP 数据流输出到用户端,ViewState 在输出时,会被加密为一组乱码字符串,其金钥值定义在计算机中,并且每一个对象都会被序列化 (serialize) 成字符串(因此若是自定义对象要放到 ViewState 时,则应要让它支持序列化),再输出到 __VIEWSTATE 字段中,在每次的网页来回时都会被传输,较大的 ViewState 会让网页大小膨胀,不利于快速的网络传输,不过asp.net本身有提供将 ViewState 关闭的功能,因此如果控件不需要状态保存时,可将它关闭以减少输出的大小。
为确保控件的事件能够确实被引发,让事件驱动能够被运行,因此控件事件引发命令时需要的参数,是交由 JavaScript 脚本在用户端引发时,填入另一个 Hidden Field(ID 为 __EVENTTARGET 以及 __EVENTARGUMENT),并且引发窗体的送出指示 (submit),传送到服务端后,服务端的 HttpApplication 中的工具函数会解析 __EVENTTARGET 和 __EVENTARGUMENT 字段中的信息,并且交由控件所实现的 RaisePostBackEvent() 来引发事件,并由 .NET Framework 内部的事件处理器接手处理(调用控件设置的事件处理程序)。
来回模式
在asp.net运行的时候,经常会有网页的来回动作 (round-trip),在asp.net中称为 PostBack,在传统的 ASP 技术上,判断网页的来回是需要由开发人员自行撰写,到了asp.net时,开发人员可以用 Page.IsPostBack 机能来判断是否为第一次运行 (当asp.net发现 HTTP POST 要求的数据是空值时),它可以保证asp.net的控件事件只会运行一次,但是它有个缺点(基于 HTTP POST 本身的缺陷),就是若用户使用浏览器的刷新功能 (按 F5 或刷新的按钮) 刷新网页时,最后一次运行的事件会再被运行一次,若要避免这个状况,必须要强迫浏览器清空高速缓存才可以。
asp.net2. 中有新增三个来回模式
Cross Page Postback:允许跨不同的网页运行 PostBack,服务端可使用 Page.IsCrossPostBack 来判断是否是跨网页型的来回。 Async Page Mode:允许网页使用异步的方式运行,服务端可用 Page.IsAsync 来判断。 Callback:asp.net2. 新增的由网页回呼用户端指令的功能,服务端可用 Page.IsCallback 来判断是否要求是来自 Callback。
来回模式不仅是asp.net运作时的内核
它也是asp.net应用程序的一个主要缺点,尤其是在设计复杂度高的页面时,在网页中隐藏的 ViewState 的大小会相当大,而在每次的来回动作中,都会传送 ViewState 在内的窗体信息,大量的 ViewState 会使得传送的时间拉长,而且每次来回动作都会让整个网页被刷新,而出现闪烁的情况(就算在本地端也一样),但在AJAX技术尚未成熟时,只能够忍受这种因底层限制所带来的问题,在asp.netAJAX技术发展出来后,通过UpdatePanel成功的缓解了这个问题(但 ViewState 传送的问题仍然未根本的解决,必须要使用像 Page Method 这样的方式才能彻底的解决)。
绘制技术
熟悉 ASP 技术的人都知道,代码都是混在 HTML 标签之间,以输出预期需要的 HTML 指令,这个技术在asp.net中,由各控件的绘制 (Render) 机制包装起来了,绘制机制装载了 HtmlTextWriter 对象,由它来产生 HTML 指令,它会输出至 HttpContext 的 Response 输出数据流中 (即 ASP 技术的 Response.Write())。
状态管理
状态管理 (state management) 在Web应用程序中,一向是很重要的课题,良好的状态管理可以帮助开发人员发展出具有状态持续能力的应用程序(像是工作流程型应用程序或是电子商务应用程序),但状态管理功能会视应用程序的部署状态以及信息的共用程度来选择,在asp.net中,分为服务器端状态管理以及用户端状态管理,用户端状态管理为ViewState以及Cookies,服务端状态管理则是Session与Application对象。它们的差异点在于:
ViewState 是加密的数据流,和 HTML 一起输出到用户端。 Cookies 是加密(也可不加密)的小型数据,和 HTML 不同,它可以高速缓存在用户端浏览器中。 Session 是服务器端的状态保存机制,每个用户端均有独立的空间(以浏览器运行个体来赋与唯一的SessionID值)。 Application 是服务器端的状态保存机制,但应用程序所有的用户端共用同一份状态数据。
层级对象
Application 对象会在应用程序的 Application_OnStart 事件中初始化,并使用名称来识别数据(它是一个 NameObjectCollectionBase 集合的实现品),它会储存在应用程序的范围内,所有的连接(用户)都可以使用,属于共用型的储存体,适合储存所有用户都可使用的数据,在多人使用的情况下,可以适当的使用 Lock/Unlock 的机制来确保应用程序状态的更新。
Application.Lock();Application[PageRequestCount] = ((int)Application[PageRequestCount])+1;Application.UnLock();
连接层级
连接层级的对象是 Session,以浏览器的运行个体为识别单位,数据依浏览器的运行个体来储存,在浏览器的运行个体第一次连到应用程序时,asp.net会设置一个 Session ID,并且使用它来识别 Session,每一个 Session 都是 ICollection 与 IEnumerate 的实现,用 key 来识别数据值,并且具有时间的限制 (timeout),若超出时限时服务器会自动清理掉,默认的 Session 时限为 2 分钟。Session ID 的算法是由 RNGCryptoServiceProvider (密码编译乱数产生器提供者)产生,并编码成一个 Session ID 字符串(例如 anf4vuup3xiqarjlqla2l55 这样的字符串)储存在服务器中,用以识别不同的 Session 个体。
为因应不同的用户端,asp.net设计了不同的 Session ID 存放机制,像是旧式的浏览器或是行动用户端这种不支持本地储存cookie的设备时,asp.net可以直接在 URL 中加上 Session ID 的识别,像是 http://www.acme.com.tw/(anf4vuup3xiqarjlqla2l55)/profile.aspx 这样的 URL,可以由开发人员自行设置,或是使用 AutoDetect 设置来让asp.net自行判断要使用的 Session ID 存放方式。
Session ID 的产生方法可以由程序开发人员自定义,借由改写 SessionIDManager 的 CreateSessionID() 方法来自定义。
usingSystem;usingSystem.Configuration;usingSystem.Web.Configuration;usingSystem.Web;usingSystem.Web.SessionState;namespaceSamples.AspNet.Session{publicclassGuidSessionIDManager:SessionIDManager{publicoverridestringCreateSessionID(HttpContextcontext){returnGuid.NewGuid().ToString();}publicoverrideboolValidate(stringid){try{GuidtestGuid=newGuid(id);if(id==testGuid.ToString())returntrue;}catch(Exceptionex){}finally{}returnfalse;}}}
 
跨机器
状态管理在单一服务器上,可以储存在服务器的存储器中,但若是在大型网站中,使用许多的 Web 服务器来实行负载平衡(Load Balancing)处理时,会有状态储存在哪个位置的问题,因此需要有一个可以在每个 Web 服务器之间做状态储存的媒介,像是独立的服务器或是数据库等等。在asp.net中支持了四种状态储存的媒介:
InProc:储存与asp.net相同的运行进程中 (in-procedure state),适合单一服务器的状态储存。 StateServer:储存在asp.net状态服务器 (state server) 中,适合跨服务器的状态储存,但因为它使用的通讯端口,因此在使用上需要注意防火墙的问题。 SQLServer:储存在独立的 SQL Server 数据库中,适合跨服务器的状态储存。 Custom:以自行实现的状态提供者 (state provider)。
部件
asp.net是开发 Web 应用程序的基础架构 (framework),除了它内部的运作方法外,对外也显露了许多的开发支持,让开发人员可以利用它来发展出许多强大的 Web 应用程序解决方案。
基础部件
asp.net最基础的底层为网页 (Page),网页由 System.Web.UI.Page 类来提供基础支持,包含了页面的事件以及对象绘制的引发点(Page 类本身是一个 HTTP Handler 的实现品)。asp.net网页在微软的官方名称中,称为 Web Form,除了是要和Windows Forms作分别以外,同时也明白的刻划出了它的主要功能:“让开发人员能够像开发 Windows Forms 一样的方法来发展 Web 网页”。因此asp.netPage 所要提供的功能就需要类似 Windows Forms 的窗体,每个 Web Form 都要有一个区块,所有的asp.net服务器控件都要放在这个区域中,这样才可以让 ViewState 等服务器控制能够顺畅的运作。
使用代码后置模式的设置时,可以让asp.net运行引擎在加载网页时,由代码后置参数取得对应的类信息,藉以使用 Reflection 的方式来运行后置的代码。
asp.net可以支持HTML和XHTML两种网页内容,但在Visual Studio.NET中,默认是使用 HTML,但在Visual Studio 25以后的版本,则一律都改用XHTML格式。
控件
asp net的控件分为内置和外置两种。asp net的内置控件分为两种:HTML 控件 (HTML control)和用户控件 (User control)。外置控件,在使用前,需要将其添加到Visual Studio .NET环境中。然后就可以通过启动一个新项目来使用新的控件。
HTML 控件 (HTML control)
直接在 HTML 标记中加上 runat=server,即可对应到asp net指定的 HTML 服务器控件类,像是: HtmlAnchor:表示 HTML 的 Web 控件 (Web control):由asp net提供,比 HTML 控件提供更多的功能,但操作与设置会比 HTML 控件要复杂许多,像是: LinkButton:一种外型为链接 HtmlButton:表示 HTML 的 。 HtmlImage:表示 HTML 的 。 HtmlGenericControl:表示没有对应到服务器控件的对象,都会被对应到这个类。 Web 控件 (Web control):由asp net提供,比 HTML 控件提供更多的功能,但操作与设置会比 HTML 控件要复杂许多,像是: LinkButton:一种外型为链接 (除了内置的控件之外,asp net也提供了可以自定义的控件架构,并且支持两种控件开发方法。
用户控件 (User control)
以 .ascx 为扩展名,可以让开发人员用最轻松的方式来开发控件,优点是开发速度很快,但缺点是无法转散布,且无法加入参考。 自定义控件 (Custom control),可转散布型的控件,是经过编译后的代码 (DLL),可单独转散布,并且可在其他的项目加入参考引用,自定义控件有三种开发模式: 基础控件 (General Control):由 System.Web.UI.Control 类继承而来,或是由现有的 Web 控件继承而来,像是由 Button 控件继承。 复合控件 (Composite Control):由 System.Web.UI.WebControls.CompositeControl 继承而来,可以用复合的方式来开发控件。 样板控件 (Template Control):可以在控件中使用样板 (template),并套用数据到样板中,支持数据绑定的表达式。在ASP.NET里,要创建自己的控件分为两类情况。一类是“从头实现”控件的底层功能,编写一个类继承自control,并实现INamingContainer接口,甚至重写控件的Render方法,控制控件生成的HTML代码,以及实现响应从浏览器传回数据(postback)的事件和处理传回的数据。这类控件名为“自定义控件”(custom control)或“复合控件”(composite control)。与此相对比较简单的是第二类“用户控件”(user control),它只需像创建一个ASP.NET页面一样在设计器里拖拉系统控件设计界面,然后为这些控件添加必需的事件代码。这两类控件,从面向对象编程的扩展新功能来说,前者应用的是继承(也可以在继承的控件类里组合现成的控件,但出发点是继承),后者则纯粹只是组合。 
外置控件部署
虽然有的时候,控件在开发机器上运行正常,但当程序被部署到终端用户机器上时,会出现问题。因为很多终端机器不允许安装外置控件,对于上述问题有简单实用的解决办法-“在服务器上部署 “fp_client” 文件夹”。
fp_client 文件夹包含所有ASPNET外置控件需要的脚本文件。 拿Spread控件为例,Web 页面上的 Spread 控件实例从服务器上的 fp_client 文件夹中读取前台格式化、样式和脚本功能。  fp_client 文件夹的默认安装路径是:C:Program FilesGrapeCitySpread.ASP.5.dotNet2v5..2015fp_clientfpspread5__2015_28HTC
我们需要在 web.config 文件中添加以下代码 fp_client 文件夹进行正确的加载:
<appSettings><addkey=fp_clientvalue=fp_client/></appSettings>
下面是两个有助于我们更加深入的去解决该问题问题的相关点:  1.上面的标签仅在你想要从程序根目录下载“fp_client”文件夹是需要 ,在这种情况下,你需要复制 fp_client 文件夹并且把它粘帖到程序的根目录下,或者创建一个映射到 fp_client 文件夹的虚拟路径。  2.在服务器上有很多网址运行 Spread for ASPNET,我们仅需要把 fp_client 文件夹 复制到服务器的根目录上即可(而不是程序的根目录)。在这种情形下, 上述 web.config 标签是不需要添加的,程序仍然可以完美运行。 
控件属性
1、ClientIDMode
渲染ASP NET控件时会自动生成一个ID
...[展开]

asp开发工资

所有工资由公司员工匿名提交+ 我来发条工资

各公司asp开发工资 最后更新  2018-04-15
职位 平均工资/月

最低最高

A.O.史密斯 资深ASP开发工程师(1条) ¥20000

¥20000 ¥20000

  • 最高工资 ¥20,000
  • 最低工资 ¥20,000
  • 靠谱 12
学科网 asp开发工程师(1条) ¥8000

¥8000 ¥8000

  • 最高工资 ¥8,000
  • 最低工资 ¥8,000
  • 靠谱 8
asp.net 资深ASP开发工程师(1条) ¥13000

¥13000 ¥13000

  • 最高工资 ¥13,000
  • 最低工资 ¥13,000
  • 靠谱 9
南京富岛科技 asp开发工程师(1条) ¥3500

¥3500 ¥3500

  • 最高工资 ¥3,500
  • 最低工资 ¥3,500
  • 靠谱 17
东软集团 资深ASP开发工程师(1条) ¥8000

¥8000 ¥8000

  • 最高工资 ¥8,000
  • 最低工资 ¥8,000
  • 靠谱 7

查看全部工资(共7条,7个公司)

asp开发面试

所有面试经历由面试过该职位的用户匿名提交+ 我来写条面经

匿名用户

面试浙江三维科技的资深ASP开发工程师

 -  南京

"毫无意义的面试,上来一套卷子,大概40题。"

面试未通过   面试感受:不好   面试难度:有难度

面试经历:

1.一套卷子大概40题、而且每题之间紧挨着,我真不知道还让人怎么答题;2.卷子写完,第一位面试官面试,问一些问题。半小时后,换第二位面试官,问同样的问题。我是复读机?3.第二位面试官,自认为很吊,拽得不行。

查看更多

有用(0|评论(0)|

 
匿名用户

面试南京酷软软件有限公司的资深ASP开发工程师

 -  南京

"毫无意义的面试,这家公司就是浪费大家时间。"

面试未通过   面试感受:不好   面试难度:巨难

面试经历:

1.先填一张表格,介绍各种信息。(其实这种效率很低,我也不一定来这工作,你要知道那么多信息干嘛?而且很多简历上已经有了,还要再写一遍)2.面试官来了,直接问:消息队列用过吗?支付宝、微信接口开发过吗?WebAPI用过吗?完全就是敢场子,没有一种启发面试,聊天的感觉。面试过程很压抑(反正我是一点兴趣没有了)3.公司很小,大概也就20个人,而且是缩在居民楼里面的感觉4.最搞笑的是问了一个:标量函数。我说没听过,解释一下。他直接回复:自己查。

查看更多

问题:
消息队列用过吗?
回答:
没用过

有用(0|评论(0)|

 

查看全部面试(共15条,15个公司)

asp开发就业趋势

查看完整

热搜职位

asp开发热门公司工资

 

asp开发热门公司面试

 

返回顶部
老鸟

输入手机号,下载看准APP

二维码

扫码下载看准APP
或各大应用商店搜索:看准

想知道你的同行每个月都拿多少薪水吗?登录/注册