上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 44 下一页
摘要: 今天我们来探讨一下在ClickOnce部署中如何严格控制应用程序的权限。演示应用为了在下文中能更好地演示,我们先要做一个测试项目。也为了显得简单易懂,我使用最常用且最常见的WinForm项目,这是地球上最丰富的物种。咱们做一个MD5的计算程序,这个应该够简单了吧?程序的功能是浏览打开一个文件,然后计算它的MD5,最后以字符串的形式输出。界面大致这样:其中用来输入文件名的文本框叫txtInput,用来显示计算结果的文本框叫txtOutput,为了方便输入文件名,我们在输入文本框的右侧放一个按钮,点击后通过OpenFileDialog来浏览文件。然后处理的代码如下:using System; …… 阅读全文
posted @ 2013-10-20 17:56 东邪独孤 阅读(2175) 评论(1) 推荐(2)
摘要: 有时候,我们可能会一次性发布多个安装包,当然在网页上多加几个链接让用户逐个安装也是可取的。不过,也可以弄得更方便些,即用户先安装一个,作为一个"引导程序",然后通过这个程序去下载安装其他应用程序。 我们还是说说真实的例子,这样好理解一点。假设我开发了两个应用程序,一个叫App1,另一个叫App2。我把这两个应用程序同时发布。 我们可以在IIS服务器的根目录下新建两子目录,我们分别把这两个应有程序发布到这两个文件夹下,如下面两张截图所示。 第一个应用第二个应用最后,重点是如何做这个"引导"安装包,即我们通过这个应用程序来下载前面两个应用来安装。 别急,在开 阅读全文
posted @ 2013-10-08 15:00 东邪独孤 阅读(1315) 评论(2) 推荐(2)
摘要: 在讲述证书的使用前,我们先来了解另外一个知识——发布网页。在前面所说的ClickOnce部署中,如果大家细心的话,应该会发现这么个问题。如上图,发布成功后,在"输出"窗口中提示无法查看发布网页。 好,我们先不管那是什么,现在我们不妨发布一个项目,但在"项目属性"窗口中的"发布"选项卡上,点击"选项"按钮,打开"发布选项"对话框。 在"说明"页中输入基本信息,产品名称和发布者。 然后进入到"部署"页,在部署网页处输入一个页面名称,最好用index.htm或d 阅读全文
posted @ 2013-10-07 16:52 东邪独孤 阅读(2540) 评论(4) 推荐(2)
摘要: 上次我们说了如何用最基本的方式用ClickOnce技术部署应用程序项目,本篇我们来认识一下如何让应用程序具备自动更新的功能。我们依然通过实例来学习。第一步,随便建一个应用程序项目,至于是控制台、WPF还是WinForm就随意吧,我们的重点发布应用程序。比如这样:为了更好的演示,我们可以在窗口上显示当前发布的版本号。我这里是一个WinForm项目,故我就用一个Label控件来显示当前发布版本。注意,这里的版本号是ClickOnce发布的版本号,不是程序集的版本号。所以要使用ApplicationDeployment类(位于System.Deployment.Application命名空间,在程序 阅读全文
posted @ 2013-10-06 11:21 东邪独孤 阅读(2151) 评论(1) 推荐(0)
摘要: ClickOnce是什么玩意儿,这个问题嘛,在21世纪的互联网严重发达的时代,估计也没有必要大费奏章去介绍了,弄不好的话,还有抄袭之嫌。因此,有关ClickOnce的介绍,各位朋友可以直接查找MSDN文档,或者看下面这里,这是百度百科上的,其实也是Ctrl + C版本。http://baike.baidu.com/view/1390498.htm如果你对这些理论的东西不感兴趣,没关系,上面所提及的内容你完全可以无视之。我们只要知道,ClickOnce是一种应用程序部署方式即可。那什么是部署呢? 我们不妨查一查词典,部署的释义为安排、布置等,而放到我们的应用程序来说,我们通俗的叫法就是安装。即把 阅读全文
posted @ 2013-10-04 17:10 东邪独孤 阅读(2059) 评论(12) 推荐(2)
摘要: 如何理解元数我们可以把元数据理解为随类型一起导出的附加信息。有时候我们会考虑,把元数据随类型一并导出,增加一些说明,使得我们在导入的时候,可以多一些筛选条件。默认的类型导出带有元数据吗上面的内容我说得比较简洁,也许您不是很理解,不要紧,在编程里面,很多东西我们都是写了代码后才理解的。所以,我的理论功底比较差,最不擅长的就是长篇大论,还是从代码中看吧。我们首先要弄清楚一下问题:在我没有手动去添加元数据的默认导出类型,是否带有元数据。为了使代码更简单,这里我直接把一个类导出,而不编写公共接口了。这里我们直接编写一个类,然后直接导入这个类型即可:示例代码定在当前程序集中,可以在AssemblyCat 阅读全文
posted @ 2013-09-16 16:50 东邪独孤 阅读(1773) 评论(1) 推荐(1)
摘要: 在前面的文章中,几乎每个示例我们都会接触到扩展类的搜索位置,我们也不妨想一下,既然是自动扩展,它肯定会有一个或者多人可供查找的位置,不然MEF框架怎么知道哪里有扩展组件呢?就像我们用导航系统去查找某个地方的所有旅店一样,正因为在该地的旅店已在数据库中注册了相关信息,我们的导航系统才能查找到它,如果某家旅店没有向导航数据库提供任何数据,那很显然导航系统是无法识别到它的详细地址的。MEF对扩展组件的查找范围通常有三个:AssemblyCatalog:从某个程序集中查找。ApplicationCatalog:在应用程序所在的目录下查找。DirectoryCatalog:在某个目录下查找,如D:\\L 阅读全文
posted @ 2013-09-04 17:29 东邪独孤 阅读(1712) 评论(3) 推荐(4)
摘要: 通过前面两篇文章的介绍,相信各位会明白MEF中有不少实用价值。上一文中我们也讨论了导入与导出,对于导出导入,今天我们再深入一点点,嗯,只是深入一点点而已,不会很难的,请大家务必放心,如果大家觉得看文章枯燥,不妨一边喝牛奶一边阅读。上一文中我们都是把整个类型(整个类)进行导出,不过有时候,我们可能会考虑只导出类的某些成员,比如某个属性或某个字段等。我们还是少说理论,免得大家喝不下牛奶,还是直接上菜吧。为了便于测试,以下示例把组件都写在当前程序集中,也就是在同一个项目,然后用AssemblyCatalog来查找。首先,定义一个公共接口IWork。然后分别用两个类来实现该接口。接着,我们再定义一个总 阅读全文
posted @ 2013-08-29 12:12 东邪独孤 阅读(1926) 评论(2) 推荐(1)
摘要: 上一文中,我们大致明白了,利用MEF框架实现自动扫描并组装扩展组件的思路。本文我们继续前进,从最初的定义公共接口开始,一步步学会如何使用MEF。在上一文中我们知道,对于每一个实现了公共规范的扩展组件,都需要进行导出,随后我们的主应用程序文件中会自动进行组装。这便产生了一个疑问:为什么需要导出?如果大家还记得,以前我们用VC++写.dll文件时,都会把需要提供给别人调用的函数标记为导出函数,这样别人才能调用我们编写的函数。就好比我们的家,我们一般会有客厅,既然叫客厅,当然是展现给客人看的。有客人来了,我们会在客厅接待,当然我们不愿意让客人进入我们的卧室,那是较为隐私的地方。因此,对于我们编写的扩 阅读全文
posted @ 2013-08-23 12:08 东邪独孤 阅读(2428) 评论(3) 推荐(4)
摘要: 在过去,我们完成一套应用程序后,如果后面对其功能进行了扩展或修整,往往需要重新编译代码生成新的应用程序,然后再覆盖原来的程序。这样的扩展方式对于较小的或者不经常扩展和更新的应用程序来说是可以接受的,而对于像ERP系统那样复杂而且常常需要扩展的应用程序,这种扩展方法就不够方便,因为每次都要修改源代码或重新引用组件。尤其是组件(许多dll),如果每编写一个新组件又要在主项目中引用一次,显然主项目就不得不经常重新生成。要是能有一种机制,可以在主项目应用程序不作任何修改就可以自动识别并扩展组件,就会很便捷,我们每次扩展只需要更新或者添加某些dll文件即可。MEF正是为了解决上述问题而诞生。MEF全称M 阅读全文
posted @ 2013-08-21 16:52 东邪独孤 阅读(2954) 评论(2) 推荐(2)
上一页 1 ··· 33 34 35 36 37 38 39 40 41 ··· 44 下一页