新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版用于讨论编程和软件设计的技巧
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 编程心得 』 → [转帖]C#高级应用开发心得 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 8130 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [转帖]C#高级应用开发心得 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     youxi226114 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:59
      门派:XML.ORG.CN
      注册:2009/9/5

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给youxi226114发送一个短消息 把youxi226114加入好友 查看youxi226114的个人资料 搜索youxi226114在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看youxi226114的博客楼主
    发贴心情 [转帖]C#高级应用开发心得


    我从今年4月开始学习C#,微软全面升级他的编程平台,微软的目的是统一整个windows下的编程标准,从而把更多的用户拉到windows编程上来.其中 C#比C++开发效率更高,更容易操作,同时也可以不太刻意去记复杂的windows API,不会出现像VB调用API时出现的类型转换等问题, 微软开发C#产品很明显就是抢占Java的市场,微软甚至有野性用C#来代替Java。
    下面介绍一段在wm上的编写代码,希望对大家的学习有帮助:
    手机系统必需维护的功能:收发信息,接打电话.这是现代对手机系统最基本的定义,其中信息又分为:短信和彩信,短信就不用多说了,介绍下彩信的链接方法:现在国内只有GPRS,但链接方式又分为CMNET和CMWAP.既然彩信是很常用的功能,使用频率又非常高.那么用GPRS链接CMNET或CMWAP就显得重要了,既要代码简单 易用性强,又要稳定 效率高.下面是在windows mobile中用C#实现的cmnet链接方法:主要的思路是:判断connInfo.guidDestNet = destGuid,导入cellcore.dll使用它的三个方法,最后异常处理Coredll.dll,GetLastError.
    下面是源代码:
    public bool Connectcmnetmethod(Guid destGuid, bool exclusive, bool mode)
            {
                {
                    connInfo.cbSize = (uint)Marshal.SizeOf(connInfo);
                    connInfo.dwParams = 0x1;//CONNMGR_PARAM_GUIDDESTNET;
                    connInfo.dwPriority = 0x08000;
                    connInfo.dwFlags = 0x1 | 0x2 | 0x4 | 0x8;//0;
                    connInfo.bExclusive = 0;// exclusive;
                    connInfo.bDisabled = 0;// false;
                    connInfo.guidDestNet = destGuid;
                    connInfo.hWnd = this.Handle;
                    if (mode == true)
                    {
                        result = ConnMgrEstablishConnectionSync(ref connInfo, ref hConnection, 10000, out dwStatus);
                        if (result != 0) MessageBox.Show(result.ToString("X"), dwStatus.ToString("X"));
                        return result == 0;
                    }
                    return false;
                }
            }
            public struct CONNMGR_CONNECTIONINFO
            {
                public uint cbSize;
                public uint dwParams;
                public uint dwFlags;
                public uint dwPriority;
                public int bExclusive;
                public int bDisabled;
                public Guid guidDestNet;
                public IntPtr hWnd;
                public uint uMsg;
                public uint lParam;
                public uint ulMaxCost;
                public uint ulMinRcvBw;
                public uint ulMaxConnLatency;
            }
            [DllImport("cellcore.dll", EntryPoint = "ConnMgrEstablishConnectionSync", SetLastError = true)]
            internal static extern int ConnMgrEstablishConnectionSync(ref CONNMGR_CONNECTIONINFO pConnInfo, ref IntPtr phConnection, int dwTimeout, out int dwStatus);

            [DllImport("cellcore.dll", EntryPoint = "ConnMgrEstablishConnection", SetLastError = true)]
            internal static extern int ConnMgrEstablishConnection(ref CONNMGR_CONNECTIONINFO pConnInfo, ref IntPtr phConnection);

            [DllImport("cellcore.dll", EntryPoint = "ConnMgrReleaseConnection", SetLastError = true)]
            internal static extern int ConnMgrReleaseConnection(IntPtr hConnection, int lCache);

            [DllImport("coredll.dll")]
            private static extern int CloseHandle(IntPtr hObject);

            [DllImport("Coredll.dll", EntryPoint = "GetLastError", SetLastError = true)]
            internal static extern int GetLastError();

    private void menuItem1_Click(object sender, EventArgs e)
            {
                MessageBox.Show(Connect(new Guid("7022E968-5A97-4051-BC1C-C578E2FBA5D9"), false, true).ToString());
            }

    做windows mobile C#程序员,就一定会接触到Framework了(和C/C++等程序设计语言不同,在使用C#语言开发应用程序时,编写的源代码首先被.NET编译成中间代码(MSIL),MSIL类似于过去的汇编语言,在运行应用程序时,中间代码又会被运行时环境(CLR)作即时编译(JIT),被即时编译成本地计算机执行的机器指令,以加快程序的运行速度,这样做的好处是无论是使用哪一种程序设计语言最终会编译成为统一的中间代码,而中间代码可以运行在不同操作系统平台上,只要这个操作系统平台有这个运行时环境;除此之外,作为一种代码重用性很高的面向对象程序设计语言,程序员不需要所有的元素都要自己编写,而是使用已经开发好的组件类。

    C#在windows mobile上的这种架构,可以说给手机移动平台指明了方向,,现在智能手机市场发展迅速,由于手机性能不断提高,成本越来越低,智能手机已经成为大众的主流,那智能手机系统平台,必然是市场的重点,所有的移动业务厂商都会把智能手机平台看作未来的发展方向,但是C#在windows mobile表现仍有很多问题,比如:手机资源消耗大,要安装移动版的Framework程序。
    从市场来看,windows mobile的占有率很低,撰写手机C#代码很难有很多的工作岗位,写的软件业不能有更多的销售可能。

    最近我了解了Android和Ophone OS平台的构架,发现这是一个全新的,完美的平台形式,新的3G平台->Android和Ophone OS平台中使用的语言是主流的JAVA,采用系统内核为:开源的Linux。但不同于以往的手机JAVA语言是,有JNI的强大支持,JNI可以方便的让java调用手机的底层功能,JNI则是用运行效率比java高很多的C++编写的,你只要使用C++写好调用手机底层功能的JNI就可能让你的java拥有C++程序一样的功能。感兴趣的话来这里了解一下Android系统平台http://www.android.com/。

    而且Ophone OS不但拥有和Android一样的系统优势,而且还是中国移动自己推出的系统平台,中国移动已经把Ophone OS作为他未来的发展基础,各大终端生产商,都会将它们的手机加入到Ophone OS阵营中来,前几天,美国DELL都被拉来制作Ophone OS手机了,中国移动为了给手机用户提供更好的软件增业务,开发了MMarket(软件下载商店)功能,这样中国移动5亿多用户都将可能下载使用你开发的手机软件,前些天看到新闻,说中国移动已经和6个个人软件开发者签约,分成7比3,个人拿7。也算是给自我创业,带来了些许机会。有兴趣可以去官方网站看看http://www.ophonesdn.com
      
    还有,多媒体和画面(现在手机系统不仅要关注实用性,还有注重美观和视觉性能的效果): Windows Mobile采用微软自家的DirectX,目前仅支持Native C++开发,基本可以达到DirectX6类库标准,并且不断升级,主要由硬件自身因素限制,同时提供了一个GAPI可以满足普通GDI绘制的不足.而Android和Ophone OS采用OpenGL ES开源图形处理引擎,在绘制效率和展示效果上都比较出色,在桌面平台上OpenGL显得很暗淡,但在移动3D开发中有着至关重要的地位,比如Sun JSR标准支持让非微软操作系统都兼容.


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/10/13 17:34:00
     
     稻飞虱D 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:30
      积分:197
      门派:XML.ORG.CN
      注册:2009/9/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给稻飞虱D发送一个短消息 把稻飞虱D加入好友 查看稻飞虱D的个人资料 搜索稻飞虱D在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看稻飞虱D的博客2
    发贴心情 
    很详细,能给初学者很好的指导
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/10/15 12:12:00
     
     小男孩123 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:9
      积分:86
      门派:XML.ORG.CN
      注册:2009/10/13

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给小男孩123发送一个短消息 把小男孩123加入好友 查看小男孩123的个人资料 搜索小男孩123在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看小男孩123的博客3
    发贴心情 
    看完了,我有个问题。.NET应用在安装实施阶段有好多隐患。主要因为.net &nbsp; framework没有经过长时间的检验,在98和windows &nbsp; me/2000 &nbsp; professional上运行不稳定。前段时间我们使用.net开发的一套政府办公应用,结果在安装之后,没有任何规律的出现错误:.NET框架不能运行给定的程序。时好时坏,真要命。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/10/16 15:20:00
     
     猪猪887 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:11
      积分:95
      门派:XML.ORG.CN
      注册:2009/10/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给猪猪887发送一个短消息 把猪猪887加入好友 查看猪猪887的个人资料 搜索猪猪887在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看猪猪887的博客4
    发贴心情 
    我有出现个问题.在使用原有COM的时候存中在bug,我们在开发过程中至少遇到三个。不信,你可以通过.NET来响应Excel的事件。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/10/19 18:15:00
     
     猪猪887 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:11
      积分:95
      门派:XML.ORG.CN
      注册:2009/10/19

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给猪猪887发送一个短消息 把猪猪887加入好友 查看猪猪887的个人资料 搜索猪猪887在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看猪猪887的博客5
    发贴心情 
    NET目前用来跟踪学习或者练练手是个不错的选择,但是如果要搞大型项目的话,还是三思吧。虽然我们刚刚完成的项目还算成功,可还是让我一身冷汗。&nbsp;
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/10/22 15:50:00
     
     稻飞虱D 帅哥哟,离线,有人找我吗?
      
      
      等级:大一(高数修炼中)
      文章:30
      积分:197
      门派:XML.ORG.CN
      注册:2009/9/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给稻飞虱D发送一个短消息 把稻飞虱D加入好友 查看稻飞虱D的个人资料 搜索稻飞虱D在『 编程心得 』 的所有贴子 引用回复这个贴子 回复这个贴子 查看稻飞虱D的博客6
    发贴心情 
    写UI一直是我头痛的问题,我也刚刚加入OPHONE开发..
    LZ提供的链接中有个BLOG: OPhone UI开发者指南,实在是太好了。对我很有帮助,一直缺少这方面的知识….
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2009/10/24 22:46:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 编程心得 』 的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 17:37:59

    本主题贴数6,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms