“圣殿骑士”技术博客,书写自己对技术的理解。天道酬勤、坚持不懈!
圣殿骑士很荣幸入住博客园和51CTO写技术博客,目前主要在一家外资企业从事项目管理、技术架构及企业技术培训工作。由于工作和项目需要,所以对一些技术进行了较为深入的研究,之前在整个公司做过一些技术专场的培训,由于每次时间较短且人员较多的关系,没能讲得很透彻,所以挺对不住那些同事的。现在在园子里开一个博客,希望能把所学的微薄知识书写出来,以供大家参考。近期将针对这些培训专场推出“OO到设计模式”、“WCF基础到企业应用”、“WPF基础到企业应用及优化”、“Silverlight基础到企业应用及优化”、“Windows
Azure基础到企业应用”等系列博文,由于是自己对这些技术的使用总结和心得体会,错误之处在所难免,所以希望大家能够多多指点,这样也能纠正我的错误观点,以便和各位共同提高!
-
WPF 基础到企业应用系列索引 (注:正在不断完善中......)
-
云计算之旅系列
- 云计算之旅1—开篇有益
- 云计算之旅2—云计算总览
- 云计算之旅3—云计算提供商综合对比
- 云计算之旅4—Amazon云计算
- 云计算之旅5—Google云计算
- 云计算之旅6—SalesForce云计算
- 云计算之旅9—Windows Azure总览
-
云计算之旅5—实战第一个云程序
- 云计算之旅11—剖析Windows Azure程序内部原理
- 云计算之旅12—ASP.NET Web Role
- 云计算之旅13—ASP.NET MVC Web Role
- 云计算之旅14—WCF Service Web Role
- 云计算之旅15—Work Role
- 云计算之旅16—CGI Web Role
- 云计算之旅17—云存储之Blob
- 云计算之旅18—云存储之Table
- 云计算之旅19—云存储之Quee
- 云计算之旅20—云存储之Dive
- 云计算之旅21—SQL Azure 一(基本)
- 云计算之旅21—SQL Azure 二(RDBMS支持)
- 云计算之旅21—SQL Azure 三(安全和工具)
- 云计算之旅22— AppFabric 一(总览)
- 云计算之旅23— AppFabric 二(Service Bus)
- 云计算之旅24— AppFabric 三(Access Control Service)
- 云计算之旅25— 云平台安全问题
- 云计算之旅26—老技术兼容问题(如MSMQ、SSB等)
- 云计算之旅27— ASP.NET+SQL项目移植到云平台
- 云计算之旅28— WinForm/WPF项目移植到云平台(云/端模式)
- 云计算之旅29— ASP.NET+Silverlight项目移植到云平台
- 云计算之旅30— 云计算开发总结
-
基于.NET构建大型应用 (注:有时间就写......)
-
31 天重构学习笔记索引
-
OO到设计模式系列
-
Silverlight基础到企业应用及优化
-
WCF基础到企业应用
-
1. SOA架构介绍(什么是SOA、SOA的4个特性)
- 2. WCF简要介绍(什么是WCF、.Net Framework的四大体系架构、WCF体系框架)
- 3. WCF契约, 绑定, 宿主, 异常处理, 异步调用, 双向通讯
- 4. MTOM, 流数据传输, 序列化, 实例模型, 会话状态
-
5. 并发, 限流, 事务, 安全, 可靠性消息, 消息队列
- 6. WCF创建REST, AJAX调用WCF
- 7. Remoting、Web Service、WSE、MSMQ实例比较
-
MSIL&CLR
-
一些未归类的文章
-
(收藏)《博客园精华集》分类索引
(注:这个系列不是原创,感谢整理者和作者,收集只是便于学习)
<style><!--
<!
<!<!<!<!<!<!
#containerul
{
padding-right: 0px;
padding-left: 0px;
padding-bottom: 1px;
margin: 0px;
padding-top: 1px;
text-align: left;
}
#containerul UL
{
padding-right: 0px;
padding-left: 0px;
padding-bottom: 1px;
margin: 0px;
padding-top: 1px;
text-align: left;
}
#containerul LI
{
padding-right: 0px;
padding-left: 0px;
padding-bottom: 1px;
margin: 0px 0px 0px 10px;
padding-top: 1px;
list-style-type: none;
}
#containerul .symbols
{
background-position: 0px 70%;
float: left;
width: 20px;
background-repeat: no-repeat;
height: 1em;
cursor:pointer;
cursor: hand;
}
>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
> .style1
{
color: #FF3300;
font-weight: bold;
}
>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
--></style>
<script type="text/javascript">// <![CDATA[
var temp, temp2, cookieArray, cookieArray2, cookieCount;
function initiate() {
cookieCount = 0;
if (document.cookie) {
cookieArray = document.cookie.split(";");
cookieArray2 = new Array();
for (i in cookieArray) {
cookieArray2[cookieArray[i].split("=")[0].replace(/ /g, "")] = cookieArray[i].split("=")[1].replace(/ /g, "");
}
}
cookieArray = (document.cookie.indexOf("state=") >= 0) ? cookieArray2["state"].split(",") : new Array();
temp = document.getElementById("containerul");
objli = temp.getElementsByTagName("li");
for (var o = 0; o < objli.length; o++) {
if (objli[o].getElementsByTagName("ul").length > 0) {
temp2 = document.createElement("span");
temp2.className = "symbols";
temp2.style.backgroundImage = (cookieArray.length > 0) ? ((cookieArray[cookieCount] == "true") ? "url(http://pic002.cnblogs.com/img/zenghongliang/201007/2010071313433750.gif)" : "url(http://pic002.cnblogs.com/img/zenghongliang/201007/2010071313431847.gif)") : "url(http://pic002.cnblogs.com/img/zenghongliang/201007/2010071313431847.gif)";
temp2.onclick = function() {
showhide(this.parentNode);
writeCookie();
}
objli[o].insertBefore(temp2, objli[o].firstChild)
objli[o].getElementsByTagName("ul")[0].style.display = "none";
if (cookieArray[cookieCount] == "true") {
showhide(objli[o]);
}
cookieCount++;
}
else {
temp2 = document.createElement("span");
temp2.className = "symbols";
temp2.style.backgroundImage = "url(http://pic002.cnblogs.com/img/zenghongliang/201007/2010071313434893.gif)";
objli[o].insertBefore(temp2, objli[o].firstChild);
}
}
}
function showhide(el) {
el.getElementsByTagName("ul")[0].style.display = (el.getElementsByTagName("ul")[0].style.display == "block") ? "none" : "block";
el.getElementsByTagName("span")[0].style.backgroundImage = (el.getElementsByTagName("ul")[0].style.display == "block") ? "url(http://pic002.cnblogs.com/img/zenghongliang/201007/2010071313433750.gif)" : "url(http://pic002.cnblogs.com/img/zenghongliang/201007/2010071313431847.gif)";
}
function writeCookie() {
cookieArray = new Array()
objli = temp.getElementsByTagName("li");
for (var q = 0; q < objli.length; q++) {
if (objli[q].childNodes.length > 0) {
if (objli[q].childNodes[0].nodeName == "SPAN" && objli[q].getElementsByTagName("ul").length > 0) {
cookieArray[cookieArray.length] = (objli[q].getElementsByTagName("ul")[0].style.display == "block");
}
}
}
document.cookie = "state=" + cookieArray.join(",") + ";expires=" + new Date(new Date().getTime() + 365 * 24 * 60 * 60 * 1000).toGMTString();
}
// ]]></script><script type="text/javascript">// <![CDATA[
initiate();
// ]]></script>
<script type="text/javascript">// <![CDATA[
if ($ != jQuery) {
$ = jQuery.noConflict();
}
// ]]></script>
<script type="text/javascript"></script><script type="text/javascript">// <![CDATA[
var c_enable_dfp = true;
if (navigator.userAgent.indexOf("Chrome/6.0.401.1") > 0) {
c_enable_dfp = false;
}
if (c_enable_dfp) {
try {
GS_googleAddAdSenseService("ca-pub-4210569241504288");
GS_googleEnableAllServices();
}
catch (e) { }
}
// ]]></script><script type="text/javascript">// <![CDATA[
if (c_enable_dfp) {
try {
GA_googleAddSlot("ca-pub-4210569241504288", "cnblogs_blogpost_body");
GA_googleAddSlot("ca-pub-4210569241504288", "cnblogs_commentbox_up");
GA_googleAddSlot("ca-pub-4210569241504288", "cnblogs_blogpost_bottom");
GA_googleAddSlot("ca-pub-4210569241504288", "cnblogs_blogpost_bottom1");
}
catch (e) { }
}
// ]]></script><script type="text/javascript">// <![CDATA[
if (c_enable_dfp) {
try {
GA_googleFetchAds();
} catch (e) { }
}
// ]]></script><script type="text/javascript">// <![CDATA[
var blog_ad_has_shown = false;
var cb_c_u_id = '2ef316b0-1cf5-dd11-9e4d-001cf0cd104b';
var cb_blog_uid = '1953360b-63cf-dd11-9e4d-001cf0cd104b';
// ]]></script><script type="text/javascript">// <![CDATA[
GetFollowAction();
// ]]></script>
分享到:
相关推荐
2024职工群体户外交友拓展“躺进春天 趣野人生”活动策划方案ss.pptx
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
腾讯&阿里&携程面试题汇总(精华版)
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
列车车厢重排问题是经典的组合优化问题,也称为车厢调度问题或车厢排序问题。它的问题描述如下:有一列火车,列车由多节车厢组成,每个车厢上都有一个唯一的标识号。现在需要将这些车厢按照指定的顺序重新排列,使得满足一定的条件,例如车厢编号的升序或降序排列,或者满足某些车厢之间的关系等。
报告-《新范式 新时代 新机会》dr.pptx
xx集团数字化转型方案ss.pptx
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
Qlik Sense Desktop 是一个 Windows 应用程序,让个人用户有机会使用 Qlik Sense 并通过多个数据源以简便的拖放操作创建个性化、交互式数据可视化、报告和仪表板。个人和内部业务使用时免费。 您可以创建自己可以重复使用的 Qlik Sense 应用程序,并且可以修改和与他人共享,而不需要部署和管理大量的商业应用程序。 Qlik Sense是一个强大的可视化BI报表开发平台,Qlik Sense Desktop是Windows桌面版的客户端,通常还有Enterprise HUB云端版。
**Java项目源码_ssm_高校学生选课系统项目源码.rar** 本资源为一个基于Java技术栈的高校学生选课系统项目源码,采用了SSM(Spring、SpringMVC、MyBatis)框架进行开发。项目涵盖了学生选课、课程管理、教师管理、学生管理等功能模块,可以为高校教务管理提供有力支持。 项目结构清晰,模块化设计,便于二次开发和定制。主要包括以下几个模块: 1. 用户认证模块:包括用户登录、注册、权限验证等功能,支持多角色(学生、教师、管理员)登录和权限控制。 2. 学生选课模块:学生可以查看课程信息、选课、退课等操作,支持选课时间、人数限制等规则。 3. 课程管理模块:教师可以发布课程、编辑课程信息、上传课程资源等操作,支持课程分类、标签等功能。 4. 教师管理模块:管理员可以添加、编辑、删除教师信息,支持教师角色权限分配。 5. 学生管理模块:管理员可以添加、编辑、删除学生信息,支持学生角色权限分配。 6. 成绩管理模块:教师可以录入、编辑、查看学生成绩,支持成绩统计和导出功能。 7. 通知公告模块:管理员可以发布通知公告,支持公告分类、置顶等功能。 8. 系统设置模块:管理员可以配置系统参数、数据备份、日志查看等操作,保障系统稳定运行。 本项目源码可以为高校教务管理提供有力支持,同时也适用于企业内部培训、教育培训等场景。如有需要,可以根据实际需求进行二次开发和定制,以满足不同场景的需求。
asp代码ASP.NET+SQLBS模式的计算机等级考试管理系统的设计与实现(论文+源代码+开题报告)本资源系百度网盘分享地址
Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
星闪技术介绍
《情绪管理指南》培训课件ld.pptx
毕业设计,前端,前端毕业设计
课件-咨询IT规划方法dr.pptx
非暴力沟通生命的语言lg.pptx
nacos2.3.1改造适配postgresql配置文件,无需自己再去做数据库适配,导入数据库即可;
高级网络人才培训专家_X00070003 第30章 配置PPP
C#的基础知识文档.doc