Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Классы - помогите разобраться на примере / 14 сообщений из 14, страница 1 из 1
13.11.2014, 15:48
    #38805079
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
День добрый,

Помогите пожалуйста понять насколько правильно написаны классы Order/Orders и OrderDetail/OrderDetails в целом.

Хотелось бы услышать где что не так и как сделать правильно.

Заранее всем спасибо за коментарии.


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
Public Class Order

    Public Property OrderID As Integer

    Public Property Customer As Customer

    Public Property OrderDetails As List(Of OrderDetails)  '// это корректно ?


   '// Добавление, Редактирование, Удаление заказов в базе - оно должно быть здесь?
    
    Public Sub Add()

    End Sub

    Public Sub Edit()

    End Sub

    Public Sub Delete()

    End Sub

End Class

Public Class Orders

    Public Property OrdersList As List(Of Order)  '// это корректно?

    Public Function GetList() As ArrayList  '// получить список заказов с базы - это должно быть здесь?

    End Function

End Class

Public Class OrderDetail

    Public Property Product As Product

    Public Property Quantity As Integer

    Public Property Price As Decimal

End Class

Public Class OrderDetails

    Public Property OrderDetailsList As List(Of OrderDetail)  '// это корректно?

End Class

Public Class Customer

    Public Property CustomerID As Integer

    Public Property CustomerName As String

End Class

Public Class Product

    Public Property ProductID As Integer

    Public Property ProductName As String

End Class
...
Рейтинг: 0 / 0
13.11.2014, 17:51
    #38805317
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Артем G,
Я не спец в VB, могу что-то неправильно понять.

CRUD в записи - это Active Record. Имеет право на существование, но мало кто сейчас использует. Есть минусы - медленно сохраняет большое количество записей, нарушает принцип единой ответственности.

Чем ORM не устроили? Entity Framework тот же?
...
Рейтинг: 0 / 0
13.11.2014, 18:47
    #38805395
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Я не против Entity Framework. Да и чтоб ответить на мой вопрос не обязательно разбираться в VB.

Мой вопрос как бы состоит в следующем как правильно создать классы для таблиц в SQL Order и OrderDetails.

То как я создал это правильно? или Get|Add|Edit|Remove указаны не там? итд.


У меня просто почему-то каша по этому поводу в голове ) а хочется просветления.
...
Рейтинг: 0 / 0
14.11.2014, 11:22
    #38805952
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Артем GЯ не против Entity Framework. Да и чтоб ответить на мой вопрос не обязательно разбираться в VB.

Мой вопрос как бы состоит в следующем как правильно создать классы для таблиц в SQL Order и OrderDetails.

То как я создал это правильно? или Get|Add|Edit|Remove указаны не там? итд.


У меня просто почему-то каша по этому поводу в голове ) а хочется просветления.

Давайте включать логику. OrderDetail может существовать без Order? Нет. Так какого фига он сам себя должен сохранять? И вообще, как я уже говорил, перекладывание обязанности сохранять себя в БД самому бизнес-классу - не очень модная тенденция, скажем мягко. Делайте POCO-классы и отдавайте их какому-либо ORM (EF, Nhibernate, BLTooltik, рад других, но с ними незнаком).
...
Рейтинг: 0 / 0
14.11.2014, 13:20
    #38806247
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Спасибо за наводку. Почитал, нужно будет попробывать.
...
Рейтинг: 0 / 0
14.11.2014, 14:53
    #38806431
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Arm79,

Подскажите пожалуйста вот в этой статье рассказывается о том о чем говорите Вы?

http://www.codeproject.com/Articles/615499/Models-POCO-Entity-Framework-and-Data-Patterns
...
Рейтинг: 0 / 0
14.11.2014, 15:11
    #38806462
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Артем GArm79,

Подскажите пожалуйста вот в этой статье рассказывается о том о чем говорите Вы?

http://www.codeproject.com/Articles/615499/Models-POCO-Entity-Framework-and-Data-Patterns

Не люблю буржуйский, хотя в состоянии прочесть. Но зачем вам статья 2013 года? Вышел EF6, посмотрите прямо его документацию, и на хабре можно посмотреть, что народ пишет
...
Рейтинг: 0 / 0
14.11.2014, 15:53
    #38806545
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Arm79,

Спасибо за подсказку по поводу документации. Почему-то в голову не пришло начать с нее.


А пока прочел вот эту статейку http://rlacovara.blogspot.in/2009/03/what-is-difference-between-dto-and-poco.html

и вот эту в 3х частях. Тут вообще по моему сказка.
http://imar.spaanjaars.com/416/building-layered-web-applications-with-microsoft-aspnet-20-part-1
...
Рейтинг: 0 / 0
16.11.2014, 03:22
    #38807338
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
пожалуйста подскажите несколько принципиальных различий между DataSet и Entity Data Model.

пожалуйста подскажите почему нужно использовать / изучать Entity Data Model

что лучше / практичнее Code First или EF6x?

есть какие-то принципиальные отличия кроме визуализации?
...
Рейтинг: 0 / 0
16.11.2014, 05:39
    #38807347
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Артем Gпожалуйста подскажите несколько принципиальных различий между DataSet и Entity Data Model.

пожалуйста подскажите почему нужно использовать / изучать Entity Data Model

что лучше / практичнее Code First или EF6x?

есть какие-то принципиальные отличия кроме визуализации?

Вот!

http://metanit.com/sharp/entityframework/index.php

Всё па-руски! Посли прачтение етой дакументации, эти вапросы атпадут!
...
Рейтинг: 0 / 0
17.11.2014, 15:21
    #38808476
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
hVostt,

Огромное спасибо за ссылку! Наступило просветление. Какие ж убогие у меня вопросы были :)


Остается еще один вопрос открытым, который я задавал в самом начале.


В примере по ссылке видно что методы CRUD, создаются в форме и мой вопрос: Насколько это норма?

У меня всегда было понимание того что это должно быть создано как метод в классе.

и если я прав то подскажите как это должно выглядеть

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}


    class UserContext : DbContext
    {
        public UserContext()
            :base("DbConnection")
        { }
          
        public DbSet<User> Users { get; set; }
    }
...
Рейтинг: 0 / 0
19.11.2014, 09:24
    #38810333
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
неужели ни кто не сможет помочь?
...
Рейтинг: 0 / 0
19.11.2014, 09:54
    #38810362
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Артем Gнеужели ни кто не сможет помочь?
А вопрос то в чем? Делать ли в классах методы? Да, делать. Делать ли методы в классах для EF? Наверное, можно, но я бы делать не стал.

Посмотрите концепции MVVM, MVC, MVP. Логика из классов для DAL перенесена на промежуточный уровень
...
Рейтинг: 0 / 0
02.12.2014, 22:17
    #38823059
Артем G
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Классы - помогите разобраться на примере
Почитал, подумал, поделал, подумал, почитал и в голове сейчас следующее...

Мой вопрос на сколько это корректно?
Вы бы сделали так? и если нет то как?

1 Создаю Model
Order
OrderDetails
DataBaseContext
etc...

2 Паралельно создаю Interface'ы (интерфейсы создаю вперед :) )
IOrder
IOrderDetails

3 Создаю Interface'ы для репозиториев
IOrderRepository
IOrderDetailsRepository
IDataBaseContextDAL

4 Создаю сами репозитории
OrderRepository
OrderDetailsRepository
DataBaseContextDAL

5 В контроллере прописываю следующую петрушку

Private objOrder As IOrderRepository

Public Sub New()
Me.New(New DataBaseContextDAL())
End Sub

Public Sub New(context As IDataBaseContextDAL)
objOrder = context.Order
End Sub


Function Index() As ActionResult
Return View(objOrder.GetAll)
End Function
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Классы - помогите разобраться на примере / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]