随笔分类 - 架构类
Web架构或者是Windows架构类型
摘要:通过查找一些文章,得知,Task与Thread不可比。Task是为了利用多CPU多核的机制而将一个大任务不断分解成小任务,这些任务具体由哪一个线程或当前线程执行由OS来决定。如果你想自己控制由哪一个Thread执行,要么自己定议task的scheduling, 要么自己来创建Thread来执行代码。A "Task" is a piece of work that will execute, and complete at some point in the future.A "Thread" is how something gets executed.
阅读全文
摘要:在windows下除了有IIS外,还有几个常用的web server: IIS Express, Cassini or HttpListener. 今天有看到 一个开源的叫owin的。它是一个在asp.net小组中的人做的。不过它不仅仅是web server,还有middle ware层,host层。没有太仔细研究。有在本机按说明做了一个简单的测试,是可以工作的。待以后看是否能用得上吧。references:http://code-inside.de/blog-in/2012/06/12/owin-what-is-it-about-and-why-is-it-so-cool/http://ww
阅读全文
摘要:这一个dll至少目前知道里面包括了zipPackage,XpsDocument(XML Paper Specification (XPS)).等, 应该是微软提供对各种存储格式如Zip的文件进行处理的SDK。当然这个assembly中一定还有其这的内容,以后有机会再研究。那个可以不用sharpzip之类的,可以直接用.net framework中本身提供的这一功能。可参考:http://msdn.microsoft.com/en-us/library/system.io.packaging.package.aspxhttp://msdn.microsoft.com/en-us/library/
阅读全文
摘要:1. 用Native Office API. 即Microsoft.Office.Interop.Excel.这种方式是用Excel COM组件直接操作。实做的时候,要注意尽量减少COM方法的调用次数,以提高效率。比如向cell中写,可以用Rang的方式一次性地写入多笔,比单个cell写调 用的COM次数少很多。例如:excelSheet.get_Range("A1:H25", Type.Missing).Value2 = bidimensionalObjectArray; 一个好例子是:http://www.codeproject.com/Articles/21519/F
阅读全文
摘要:在公司同事做电子签核时,我们采用的方案是MS infopath + MS WF + SQL, MS Infopath采用的表单提交到MOSS,由MOSS存放原始表单,但业务系统,比如人资系统等要读取表单中的数据时,就要提供客制化的API供这些业务系统调用。在上线使用过程中,发现自己写的MOSS API即读取MOSS document不稳定,从log中可以看出偶尔会出现out of meory. 此问题在网上找了许久,终于发现是code不对,因为官方说法是SpWeb,SpSite这类对象虽然是.net中的可控对象,但实质上他们用的是COM对象,即spWeb,spSite只是COM的引用,真正的对
阅读全文
摘要:在评审的时候,以前一直不知道怎么指导这些SD如何写出一个正规标准的设计文档。今天在写AD编程过程有所体会,对于程序设计,应该要考虑1. 可靠性:指的是系统的稳定性。2. 可用性:指的程序本身逻辑的正确性3. 安全4. 可扩展性:指需求变化的时候,很容易升级并满足新需求,用最低的成本来满足外界的变化5. 延展性:指infra上面的扩展6. 高性能7. 可维护性:指系统部署后,升级和对系统问题追踪,以及服务以上7个方面来思考如何设计一个系统,一个模块
阅读全文
摘要:多语言实现.net本身就有提供很好的解决方案。在asp.net下有resourceManagerFactory, 它提供了globalize和localize实现。在win form上有直接提供在每个form中进行design time的多语言设计。我做了小程序,可以说明在win form中如何用标准方式实现多语言,和用独立资源工程实现多语言。/Files/sdikerdong/ResourceTest.zip
阅读全文
摘要:1. 系统架构是分层的,层的中间是核心圈2. 不管什么设计是围绕着寻址和算法展开的3. 编程都是转绕着寻址和转换这两个话题进行的。
阅读全文
摘要:花了2天在这个topic上面。有以下总结一,解决方案:目前有两种 1. DirectoryEntry.(ADSI). 这种就是直接用ldap的路径,对dn的object进行修改。如:entity = new DirectoryEntry("http://www.cnblogs.com/sdikerdong/admin/ldap://domain%20machine/CN=user,CN=Users,DC=test,DC=com", "administrator", "password"); //entity.Invoke("
阅读全文
摘要:做MOSS項目的過程中,感覺MOSS的根基是AD,這几天也在網上看了一些文章,關于AD,ADAM有一些了解,但并不理解其原理。 今天在看AD的原理的時候,順便稍微研究了一下Windows登錄的過程,現總結如下: 1. Windows啟動的時候用LSA(Local Security Authority)將SSP(Security Support Provider)調入內存,以例根據不同的設定使用不...
阅读全文
摘要:用戶希望我們做的應用程序不僅要控制另一個buy-in進來的系統,還要將這個buy-in進來的系統運行的結果(比如檢測畫面)自動截取并形成檢測報告存起來,以后想要就可以找到。這個要求合理,但挺過份。因為buy-in系統的檢測結果是不容易抓到的。好在以前有AutoKey的概念,最初的解決方案就是激好buy-in系統,然后發送CTRL+Print Scr組合鍵將當前應用系統作屏幕硬copy. 但是效果不...
阅读全文
摘要:在dot net里面有繼承了MFC的Trace機制。但在我們實際的開發中,發現有很少的開發人員養成在代碼里寫Debug和Trace語句的。這表明這些程序員缺乏基本功的培訓。事實上,當在開發web component的時候,用logging的方式可以很快找到程序的bug所在,甚至更好的機制是在用戶還未發現系統有錯誤的時候,系統本身就向管理員報告了錯誤,這會給用戶體會上大大加分,同時也提升了IT的Va...
阅读全文
摘要:做案子時﹐將WinInet.dll封裝﹐用C#調用﹐做了四個函數﹐分別是上傳﹐下載﹐刪除﹐清空文件夾。在開發環境中測試沒有任何問題﹐但拿到正式環境中卻出現"550 /c:/dh/MPF.dir/ABC"不存在的錯誤。但實際上的FTP Home 目錄是MPF.dir, 可是卻出現了/c:/dh/之類的東東。 經過排查﹐開發環境用的是IIS來做的FTP, 而正式環境用的是Server-U做FTP Se...
阅读全文
摘要:今天在向Production更新程式的時候,從Ticket系統載下來的源代碼,在Release Project中覆蓋,當P05.cs checkin到sourceSafe的時候,經過近2分鐘的時候(實際文件只有100K),彈出窗口"Out of memory", 經過几次重復試驗,都是一樣的錯誤,后來發現覆蓋后的P05.cs文件屬性為Readonly, 可能SourceSafe不允許被checki...
阅读全文
摘要:進行開發時,做了一個子報表,嵌在主表中,并且整個project是一個dll, 此dll會被plugin到一個host中去。在本機試都顯示沒有問題,但是將它移到另外一台機器就 顯示"Error: subreport cannot be shown"的錯誤。 首先這個錯誤信息太籠統了,必須找具體的錯誤信息。上網查過,出現這種錯誤只有三種可能性: 1. 找不到指定的subreport 2. 沒有給sub...
阅读全文
摘要:做項目要求報表為A4紙,而且需要橫向列印,找了半天都沒有發現localreport里面此設定,因為用的是winform的reportviewer, 所以不能以編程的方式來控制它,后來偶然發現只要在設計時將report的屬性中的width的值設定比height大,則reportviewer自動識另,并為橫向列印。比如: width=29.7cm, height=21cm. 沒有想到微軟會出此招數,無...
阅读全文
摘要:都希望在windows操作系統打開一個應用程式不需要登錄直接進入操作,這需要Windows為基礎的SSO,這的思想就是Windows已經確認當前用戶的身份是合法的,如果應該程式可以信任Windows提供的identity,則直接登錄。對于VSS2005要想做到打開就用當前windows的帳號登錄的話,只要在VSS admin畫面打開options. 然后在general頁上將User networ...
阅读全文
摘要:在做案子的過程中,用datagridview來顯示數據,也允許讓用戶修改并保存,當保存失敗的時候,可以在失敗行上顯示錯誤信息,在一個測試的工程中沒有問題,在正式的工程里卻在rowheader中怎么也顯示不出來,查找好辦法,發現有兩種情況下它不會顯示 1. 如果你不允許行頭resize(Rowheadersizemode=DisableResizing), 并且你設的row太短,比如小于41,則它不...
阅读全文
摘要:不論是做Exe還是DLL生成的文件都有兩個版本信息:一個叫Assembly version一個叫File Version. 在發布的時候,如何來控制他們呢?都知道在工程的屬性里有一個Application的頁,在其中有一個按鈕叫Assembly Information...,點擊它可以看到以上提到的兩個version. 你可以手工修改,但如果你想讓系統每次都自動升版該如何做呢?方法是將Filer ...
阅读全文
摘要:在做項目時,datagridview本來是設置datagridrow.selected=true就認為能自動下滾,但實際上是那行被選中了,但焦點卻在第一行的第一列上,這是為什么呢?找來找去,原來要讓滾動隨著被選中行滾動,除了寫datagridrow.selected=true,還要加上datagridview.selectecell=datagridview.selecterows[0].cell...
阅读全文