我正在開發一個應用程序的一部分,名爲A.我要插入我的DLL的應用程序,稱爲應用程序B在vb 6中,而我的代碼在vb.net中。 (應用程序B將及時轉換爲vb.net)我的主要問題是,我如何組織我的代碼(應用程序A)的最佳方式?分層組織應用程序
我想將應用程序A分爲多個層(服務,業務,數據訪問),因此當B轉換爲vb.net時,將應用程序A集成到B中將很容易。我也想了解所有的主題,如分層架構,模式,依賴性反轉,實體框架等等。儘管我的應用程序(A)很小,但我想以最佳方式組織我的代碼。
我正在使用的應用程序(A)正在使用Web服務對用戶進行身份驗證並將架構發送給組織。應用程序B的用戶正在應用程序B中選擇一個菜單點,然後調用我的應用程序A中的一些功能。
在應用程序A中,我有一個來自xsd模式的自動生成的模式類。我用數據填充這個模式對象並將對象序列化到一個內存字符串(這是使用內存字符串的一個很好的解決方案,我不必保存數據),將xml包裝在一個CDATA塊中並返回CDATA塊作爲字符串並將CDATA塊分配給Web服務的字符串屬性。
我也使用實體框架進行數據庫通信(瞭解如何在未來使用應用程序B進行這項工作)。我在.edmx,User和Payer中有兩個實體。 我也想使用存儲庫模式(這是一個不錯的選擇?)在DAL和BLL之間建立一個立面。
我的應用程序有GeneratingSchema(填充數據架構對象),GetSchemaContent,GetSchemaInformation,GenerateCDATABlock,WriteToTextFile,MemoryStreamToString,EncryptData和使用Web服務,如SendShema,的authenticateUser,GetAvalibelServises等一些功能的功能。
我不知道我應該把它放在哪裏? 我想我必須有一些接口,如IRepository,ISchema(自動生成模式類的契約,我該如何做到這一點?)ICryptoManager,IFileManager等,以及實現接口的類。
我的DAL將是實體框架。我希望在我的BLL(IRepository,UserRepository,PayerRepository)和用於管理的類(如上面提到的類)中擁有存儲庫外觀,如WriteToFile,EncryptData ...等等。
這是一個很好的解決方案嗎?需要一個服務層,我的所有GUI都在應用程序B中)以及如何在Visual Studio中組織我的圖層,接口和類功能?
在此先感謝。
你提的問題很好,但有一個非常大的範圍。它有點要求完整的應用程序設計作爲答案。我會upvote任何建設性的答案,你會得到:-) – kroonwijk