我正在尝试通过开发一个小应用程序来学习VS / C#/ Sql Server。我有很多成功(和兴奋)得到我想要的结果,但在退回后我意识到我正在以更线性的方式编程(从我的大型机背景)并没有利用OOP。我也发现自己重复代码。
VS中的'解决方案'到目前为止由以下“项目”组成(我将每个项目创建为“控制台应用程序”以保持简单):
我目前的困境是双重的: 1)我不确定如何在我的解决方案中的不同项目之间共享代码 - 对于项目2到4,我正在征求公司ID和其他参数的用户输入。如何在项目中共享此代码?我会为“控制台输入”创建一个类并将其引用到每个类吗? 2)我不确定我是否在项目中正确地分配了我的任务。 - 因为这些都是独立运行的进程,设计它的唯一方法是将它们分开在不同的项目中......对吗?
任何有关在VS环境中组织的提示都将受到赞赏。
答案 0 :(得分:0)
您可以使用对象(实体)创建类库,并在应用程序中重用。例如:
1项目:Master_Datefile_Objects =实体和商业智能
1.1项目:Master_Datefile_Forms或任何其他(控制台,服务等);
在您的实体和控制您的实体的类中分隔文件夹。
例如:
文件夹:经理(在数据库中查找您的实体以及项目的所有逻辑)
//内部只能在当前项目中访问
internal class MyClass_Student_Manager
{
public MyClass_Student_Model returnStudent(int ID)
{
return (your_Query_In_YourDataBase(ID));
}
}
文件夹:型号
public class MyClass_Student_Model
{
public int ID {get; set;}
public string name {get; set;}
}
文件夹:facade
此课程将访问您的经理方法
public class myProject_Facade
{
public MyClass_Student_Model returnStudent(int ID)
{
return new MyClass_Student_Manager().returnStudent(ID);
}
}
在您的其他项目(Master_Datefile_Forms)中,您将调用Facade方法引用您的项目Master_Datefile_Objects。
这是一个例子。如果要重用MyClass_Student和逻辑,可以在其他解决方案中导入项目。
答案 1 :(得分:0)
我也在学习Visual Studio,C#和SQL。我发现我最喜欢的模式似乎是使用三层应用程序模式。
第一层由数据层组成。它所做的只是与您的数据库或其他数据源的接口,并使其上面的层可用和可用。第二层由服务层组成。它处理业务逻辑。第三层由表示层组成,唯一的目的是用户交互。
对我有用的是创建一个解决方案,其中包含每个层的一个项目。这有助于分离问题,并且由于每个项目都包含在同一解决方案中,因此它们可以相互引用。话虽如此,对于大型项目,我发现将相关代码分解为项目中的单独文件夹是有帮助的。
希望这有帮助,这是我的第一个Stack Overflow答案。