当前位置:编程学习 > C#/ASP.NET >>

C#在新领域的应用开发心得



我是做.net开发的,因此对C#比较关注,最近发现C#在新的领域也很有发展前途,于是对C#在移动这个新领域的开发进行了一些研究,下面把一些心得将给大家。还送上一部分经典应用的代码分析,希望大家能顶我,别让我的帖子掉下去。
C#语言是微软.net计划中的重要利器, C#是微软为.net量身订做的开发语言,做.net开发几乎都离不开C#,现在网络经济的发展迅速,商务企业为了对付激烈的竞争威胁,开发者必须要在短时间开发出适应企业发展需要的软件,微软在设计C#的时候对效率的考虑是很非常重视的,所以C#从诞生起就是快速开发的代表,这种特性,让C#成为一流的网络编程工具。
C#是.net framework的开发语言,是微软为了抗衡Java而推出的产物,由于是基于framework的语言,在各个不同的平台上,只要安装了framework,就可以使用c#来进行开发,已经有的C#程序,也可以很方便的移植过来,因此也具备了Java的很多跨平台的特性。当今世界的软件业已经越来越注意手机应用的开发,由于智能手机的不断普及,手机的性能和功能已经越来越接近个人电脑,众多的手机用户必然不仅仅只是使用手机的电话功能,各种能给人带来方便和娱乐的手机软件都会被大家接受,因此,手机开发软件也是现在的一个热门。而具有快平台特征的C#语言也不会放弃手机这个广阔的发展平台。
由于微软的windows mobile手机平台已经被手机厂商所使用,C#在WM上的开发必然会越来越多,下面我就介绍我学习的一段C#手机应用程序,希望对大家的学习有帮助:
手机系统必需维护的功能:收发信息,接打电话.这是现代对手机系统最基本的定义,其中信息又分为:短信和彩信,短信就不用多说了,介绍下彩信的链接方法:现在国内只有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是中国移动自主推出的手机系统平台,Ophone OS不但拥有和Android一样的系统优势,并且兼容Android的所有应用,中国移动已经把Ophone OS作为未来的发展基础,各大终端生产商,都会将它们的手机加入到Ophone OS阵营中来,美国DELL都被拉来制作Ophone OS手机了,中国移动为了给手机用户提供更好的软件增业务,开发了MMarket(软件下载商店)功能,MMarket已经把Ophone手机作为最重要的推广平台,你为手机开发的游戏或应用软件,可以很容易的被中国移动5亿多用户在mmarket上轻易的下载使用,上个月中国移动有新闻,已经和6个个人软件开发者签约,分成7比3,个人拿7。很不错的分成比例,是个人创业的好机会。官方网站http://www.ophonesdn.com上有各方面详细的介绍,也是学习Ophone开发的好地方。
  
现在学习手机的开发真的是很好的机会,无论你现在是做C#、Java还是C++都可以在手机移动系统找到相应的系统平台,虽然现在Windows mobile系统平台在手机的普及率还不是很高,使用C#在手机上开发的机会还不多,但是未来还是很有前景,而且作为我们程序员,多了解手机的开发也是给自己未来制造更多的机会,技多不压身嘛。



--------------------编程问答-------------------- up --------------------编程问答-------------------- 很详细,能给初学者很好的指导 --------------------编程问答-------------------- 关心过一阵J2ME,但是感觉自己可能不能胜任

C#如果能更简单的支持移动通讯开发,那是最好了,我正好对这种东西有些想法 --------------------编程问答-------------------- 介绍下彩信的链接方法:现在国内只有GPRS,但链接方式又分为CMNET和CMWAP.既然彩信是很常用的功能,使用频率又非常高.那么用GPRS链接CMNET或CMWAP就显得重要了,既要代码简单 易用性强,又要稳定 效率高.下面是在windows mobile中用C#实现的cmnet链接方法:主要的思路是:判断connInfo.guidDestNet = destGuid,导入cellcore.dll使用它的三个方法,最后异常处理Coredll.dll,GetLastError. 
彩信的驱动不是要根据厂家来区分?WM没有统一接口,你的说法很模糊,之前研究过彩信一阵,由于这个因素,放弃了彩信相关的方案 --------------------编程问答-------------------- NET应用在安装实施阶段有好多隐患。主要因为.net   framework没有经过长时间的检验,在98和windows   me/2000   professional上运行不稳定。前段时间我们使用.net开发的一套政府办公应用,结果在安装之后,没有任何规律的出现错误:.NET框架不能运行给定的程序。时好时坏,真要命。 --------------------编程问答-------------------- 总以为看多的就习惯了,但是这次看了以后晕晕乎乎的~~ --------------------编程问答-------------------- 一小撮不明真相的群众路过 --------------------编程问答-------------------- 现在做PC的都跟MS一样,是固化的人。没胆尝试新领域,螃蟹他们是吃不到了。现在移动开发是最热的。 --------------------编程问答-------------------- 移动开发,趋势! --------------------编程问答-------------------- 我有出现个问题.在使用原有COM的时候存中在bug,我们在开发过程中至少遇到三个。不信,你可以通过.NET来响应Excel的事件。    --------------------编程问答-------------------- 山外之山楼外楼,原来还有时间高人在此。人生果然是学无止境的。。。。 --------------------编程问答-------------------- 绝对精华,只不过我不太懂行。 --------------------编程问答-------------------- 好. --------------------编程问答--------------------
引用楼主 wolailiao2511 的回复:
Ophone OS是中国移动自主推出的手机系统平台,Ophone OS不但拥有和Android一样的系统优势,并且兼容Android的所有应用

软文写的挺好...可是,这句话简直无耻到了极点...中移动也有五毛发? --------------------编程问答-------------------- 有一点建议,.NET目前用来跟踪学习或者练练手是个不错的选择,但是如果要搞大型项目的话,还是三思吧。虽然我们刚刚完成的项目还算成功,可还是让我一身冷汗。  --------------------编程问答-------------------- 移动开发~ --------------------编程问答-------------------- 大胆的去创新吧…… --------------------编程问答-------------------- 准备好了我 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 我是做WM C++开发的,写UI是个头痛的问题。
楼主给的链接的那个OPhone UI开发者指南的BLOG,不错,对我了解ophone技术体系很有帮助。
补充:.NET技术 ,  非技术区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,