2012/05/17, 1:32 下午
经过零零散散的1个月的学习和开发,在摸索中终于将光明云媒(公司的应用)beta版发布商店了,中间遇到过很多问题,总结一下。
1、WMAppManifest.xml中的相关信息最好填写一下。
2、程序的弹出退出的窗口在App.xam.cs抛出一个异常。
private class QuitException : Exception { }
public static void Quit()
{
throw new QuitException();
}
程序中:
#region 重构返回按钮键盘
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
base.OnBackKeyPress(e);
MessageBoxResult result = MessageBox.Show("", "是否退出光明云媒吗?", MessageBoxButton.OKCancel);
if (result != MessageBoxResult.OK)
{
App.Quit();
}
}
#endregion
3、谨慎和合理使用IsolatedStorageSettings.ApplicationSettings。实现本地的存储。
4、对于java的webserivce接口特别是xfire的,最好转换一下,用WCF进行转换在从客户端调用。
5、所有的资源文件,PNG等在程序中用到了需要将他的属性中的生成操作修改为 内容
6、UI中如果需要用到控件的自动换行,WrapPanel效果是不错的。WrapPanel+HubTile
7、需要用开关按钮 使用 Microsoft.Phone.Controls.Toolkit的ToggleSwitchButton
8、建议程序大量使用系统自带的色彩。(SolidColorBrush)Application.Current.Resources["PhoneAccentBrush"];
默认的图标ICON最好是透明底。当然最重要是的是根据自己应用的特色。
9、解决WP7中html在WebBrowser中乱码的问题的方法:
public static string ConvertExtendedASCII(string HTML)
{
StringBuilder str = new StringBuilder();
char c;
for (int i = 0; i < HTML.Length; i++)
{
c = HTML[i];
if (Convert.ToInt32(c) > 127)
{
str.Append("&#" + Convert.ToInt32(c) + ";");
}
else
{
str.Append(c);
}
}
return str.ToString();
}
摸索学习中遇到很多问题一直没有解决。比如说hubtile的拖拽。微博分享等都没更多事件去深入研究。
2012/05/13, 11:21 上午
前沿:朋友写的PHP网站,最近几次后台大量数据被删除,URL地址经过变形处理的,绝对不是常见的后台URL地址,而且robots.txt中也增加了禁止爬虫访问规则:
User-agent: *
Disallow: /xxxxxxxx/
但是还是数据还是大量丢失,查看程序:
于是叫朋友写了一个日志记录。第二天电话告知我,删除又被删除了,发现了一个惊奇的现象
以下日志:
2012-05-12 19:37:52 DELETE – 220.181.94.229 – [220.181.94.229] – Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07) – /xxxxxxxx/managecategorydelete.php?smallclassid=47
是被爬虫删除的。
可是robots.txt中是禁止了爬虫的呀,而且还有cookie和session验证。
难道爬虫可以伪造cookie和session。
搜索引擎一搜索URL地址发现 后台的很多地址被URL地址被收录了。
搜索引起爬虫是一回事,但是程序上做了验证了的呀。
<?php
if($_COOKIE['login']=='' || $_session['adminlogin']==null){
//redirect to login page
}
?>
应该不会存在问题呀。而且后台删除的URL地址还做了 onclick="",是否删除的JS提示。
cookie可以伪造,但是session不可以伪造。
后来仔细发现程序判断有点问题。
经过这事事件发现,国内很多搜索引起很不遵守robots规则,不要太相信搜索引擎。
2012/05/08, 10:08 上午
前言:
研发基于spring3 mvc+hibernate开发的一套WEBAPP应用,开发环境是在tomcat,想要迁移到IBM的大型机上进行测试。在迁移过程中,除了遇到程序的版本问题和jdk的版本问题,还有很多关于程序的问题。
最大的问题就是包的冲突和缺少包,由于weblogic本身很多内置程序也使用spring框架,导致程序的jar和weblogic的jar冲突,导致程序无法正常启动。
问题:
1、无法加载spring hibernate的配置文件。
因为程序开发中为了方便一般都使用 classpath:*.xml。由于spring包的版本问题无法扫描。需要一个一个指定。
将所有需要加载的xml一个一个加载。如:/WEB_INF/class/springContext.xml;/WEB-INF/class/spring-servlet.xml等等
2、缺少joda-time-2.1包。
网上搜索一个,copy到lib下即可。
3、hibernate报错java.lang.NoSuchFieldError: org/springframework/web/context/ConfigurableWebApplicationContext.APPLICATION_CONTEXT_ID_PREFIX
程序的可能有多余的spring的jar包。删除sprin-web.jar
4、CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
在hibernate3中需要用到antlr.jar,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误,无 法找到在war或者ear中的hibernate3.jar。而出现这个错误之后,antlr会调用System.exit(),这样weblogic就 会中止服务。
解决方法:在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是 org.hibernate.hql.classic.ClassicQueryTranslatorFactory. 但是我用的是cfg.xml文件, 所以我就在hibernate.cfg.xml中的下面添加一条声明:
2012/04/15, 6:26 下午
1、在构造函数中声明触摸事件监听
Touch.FrameReported += new TouchFrameEventHandler(Touch_FrameReported);
2、Touch_FrameReported处理方法
#region 手势滑动处理事件
void Touch_FrameReported(object sender, TouchFrameEventArgs e)
{
StringBuilder sb = new StringBuilder();
// 传入null表明获取到的触控点信息是以屏幕左上角为原点的。
var primaryPoint = e.GetPrimaryTouchPoint(null);
if (primaryPoint != null)
{
if (primaryPoint.Action == TouchAction.Down)
{
this.startX = primaryPoint.Position.X;
//Debug.WriteLine("Position: X:" + primaryPoint.Position.X.ToString() + " Y:" + primaryPoint.Position.Y.ToString() + "\n");
}
if (primaryPoint.Action == TouchAction.Up)
{
this.endX = primaryPoint.Position.X;
Debug.WriteLine("thisselecttempid:" + thisselecttempid + " \n");
//Debug.WriteLine("Position: X:" + primaryPoint.Position.X.ToString() + " Y:" + primaryPoint.Position.Y.ToString() + "\n");
if (startX - endX > CloudMediaApp.SWIPE_MIN_DISTANCE)
{//向左滑动
// Debug.WriteLine("move to left \n");
}else if(endX-startX>CloudMediaApp.SWIPE_MIN_DISTANCE)
{//向右滑动
// Debug.WriteLine("move to right \n");
}
}
}
}
#endregion
2011/12/09, 3:57 下午
随着HTML5技术的普及和推广,Web开发社区逐渐开始尝试在RIA(富互联网应用)中使用HTML5,这种实践主要优势在于开发人员能够通过 HTML5的各种技术以一种前所未有的统一、简洁、无插件依赖的方式实现炫目、复杂的Web应用,HTML5的优越性已经得到了开发社区的普遍认可。不 过,就像其他Web技术诞生时的情况一样,作为新生儿的HTML5在各种Web浏览器中的实现程度或者说平台兼容性一直是Web开发人员的心病。本文将介 绍Web浏览器对HTML5技术的兼容性,希望能够帮助Web开发人员在应用HTML5技术时充分考虑到平台差异性。
从2006年WHATWG和W3C决定合作制定HTML5标准以来(预计2012年成为候选标准),浏览器厂商都不甘落后,一直在努力实现更多的 HTML5技术,不过由于各个厂商的步伐不一,导致HTML5在浏览器中的实现程度参差不齐。在这里我们将综合两种HTML5兼容性测试工具包 HTML5Test和Modernizr的测试结果来分析一下Web浏览器的支持程度。
考虑到HTML5标准的制定原则:新特性基于HTML、CSS、DOM 以及 JavaScript;减少对外部插件的需求(比如Flash);独立于设备等,我们选取了HTML 5的几项主要特性来评价浏览器系统。
-
视频播放标记video
-
音频播放标记audio
-
绘图标记canvas
-
表单控件标记url、email等
-
本地客户端存储
Continue reading ‘主流浏览器对HTML5的兼容性分析和总结’ »