Вот некоторые основы, которые помогут вам начать работу. =) * * Тысяча одна
- Соглашения об именах .Net, стандарты программирования и лучшие практики ;
- Объектно-ориентированные концепции ;
- Объектно-ориентированный дизайн ;
- Руководство по стилю кодирования C # ;
- Организация файлов
- Код конвенции C # ;
- Руководство по разработке для разработчиков библиотек классов ;
Архитектура вашего решения может выглядеть следующим образом:
- Один проект для ваших классов (Один класс на файл);
- Один проект для доступа к вашим данным;
- Один проект для вашего GUI;
- Один проект для вашего уровня интеграции (например, NHibernate , EntityFramework и т. Д.)
Помните, что вы должны сделать каждый фрагмент кода максимально пригодным для повторного использования. Сделав это, записав свои бизнес-объекты (ваши классы) в независимый проект, вы сможете впоследствии ссылаться на этот проект в другом, поэтому вам не придется перекодировать всю вашу бизнес-логику (методы и т. Д.) И бизнес объекты (классы, перечисления, интерфейсы и т. д.)
Объектно-ориентированный дизайн пытается обобщить все практические аспекты объекта и вывести его на самый верхний класс для ваших бизнес-объектов. Например:
// File: Person.cs
public class Person {
public string Name { get; set; }
public string Number { get; set; }
// Some other general properties...
}
// File: Customer.cs
public class Customer : Person {
public Customer() {
Orders = new List<Order>();
}
public string CreditTerm { get; set; }
public IList<Order> Orders { get; }
}
// File: Contact.cs
public class Contact : Person {
public long PhoneNumber { get; set; }
public long FaxNumber { get; set; }
}
// File: Supplier.cs
public class Supplier : Person {
public Supplier() {
Salesperson = new Contact();
}
public Contact Salesperson { get; }
}
Также рекомендуется указать, что означает каждый из ваших проектов. Возьмем, к примеру, приложение для управления клиентами:
MyCompany.MyCustomerMgmtSoftware.Domain <= Этот проект должен содержать определения ваших бизнес-классов </p>
MyCompany.MyCustomerMgmtSoftware.Data <= Этот проект должен содержать классы для доступа к данным в вашей DBRM. </p>
MyCompany.MyCustomerMgmtSoftware <= Этот проект обычно содержит ваш графический интерфейс </p>
MyCompany.MyCustomerMgmtsoftware.Mappings <= Этот проект должен содержать файлы сопоставления (например, при использовании NHibernate. </p>
Помогает ли это?