powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Linq2SQL (by Microsoft) vs BLToolkit
37 сообщений из 37, показаны все 2 страниц
Linq2SQL (by Microsoft) vs BLToolkit
    #38299691
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исторически сложилось, что в одной "большой" ИС используем свой набор классов, так сказать DAL, и родной велосипед для работы этих классов с БД.
Появилась идея выкинуть велосипед и ездить на порше )))
то есть юзать какой-нить ORM и наслаждаться возможностями LinqToSql.
Посмотрел видос http://www.techdays.ru/videos/4401.html
дяденька интересно рассказывал, в частности про BLToolKit, попробовал в "небольшом" проекте, оч понравилось.

Смотрю вот на "большой проект", и думаю что использовать. BLToolkit или LinqToSql которые делаются в Visual Studio.
Используем MS SQL сервер.
с одной стороны, порше от Microsoft блестит лучше, мэпинг через пару кликов, WCF служба соответствующая сгенерится, да и будущее BLToolkit сравнительно не совсем внятное, с 4.5 фреймворком пока не дружит.
с другой, классы у нас уже определены, и они активно юзаются... а с BLToolkit их достаточно атрибутами дополнить и все, больше контроля над "мелочами", исходники есть, чтоб в случае чего "докопаться" до гипотетической проблемы.

Что выбрать?
Кто-нибудь может поделиться аргументами за и против!?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299694
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оба варианта тухляк. Entity Framework наше всё.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299720
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
аргументы в студию плиз.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299730
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КифирчикМСУ, аргументы в студию плиз.
L2S сдох и не развивается, BLToolkit убогая сторонняя поделка (уж лучше мощнейший NHibernate) с сомнительным будущим.
EF проект от MS, который развивается и является рекомендуемым ORM.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299795
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ,
м... если глянуть видео (30 минута), там пример с Entity и показывают что он тянет всю таблицу, в не зависимости от полей которые нужны, это как-то реально не айс, если только за последний год ничего не поменялось.
+ два сотрудника на предыдущих местах наплевались с мержингом схем в SVN и вообще не хотят визуального дизайнера )))
ну это конечно субъективно
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299811
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КифирчикМСУ,
м... если глянуть видео (30 минута), там пример с Entity и показывают что он тянет всю таблицу, в не зависимости от полей которые нужны, это как-то реально не айс, если только за последний год ничего не поменялось.
Это просто демонстрация. Сколько данных тянуть с сервера, решает не ORM, а разработчик .
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299821
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видео просто шедеврально, сразу бросается в глаза, что чел даже со студией работать не может. Пол-часа писать Console.WriteLine... Про дефолтный сниппет "cw" я вообще даже молчу.

P.S. Автор, хватит смотреть пионерское видео ламов :)
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299851
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУ, окай кэп )))
исходя из Вашей позиции:
Код: plaintext
1.
2.
- L2Q(Microsoft)  -1
- BLToolkit       -1
- EntityFramework +1

Ещё есть мнения?
кто хочет защитить/поругать этих трех "поделок автопрома"? )))))
самое время выплеснуть все что накопилось )
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299861
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУEF проект от MS, который развивается и является рекомендуемымто, что сегодня рекомендуется майкрософтом, завтра может быть выброшено на свалку истории программизма :)
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299862
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EntityFramework +100
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299863
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечМСУEF проект от MS, который развивается и является рекомендуемымто, что сегодня рекомендуется майкрософтом, завтра может быть выброшено на свалку истории программизма :)Тоже +100 :)

Однако работать нужно сегодня, а не завтра.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299874
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечМСУEF проект от MS, который развивается и является рекомендуемымто, что сегодня рекомендуется майкрософтом, завтра может быть выброшено на свалку истории программизма :)
Редкие ляпы не в счёт :)
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299881
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Antonariy,

для полноценной работы с БД - NHibernate. Если надо дёрнуть 1-2 хранимки, какой-нибудь одноразовый запросик - то Dapper.

BLToolkit и L2S не рекомендую.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299888
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

ах да! Чуть не забыл. Еще можно посмотреть в сторону MongoDВ или RavenDB, и забыть про ORM как страшный сон.
Правда придётся немного поработать над своим отношением к БД, и изучить новые грабли.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299927
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУРедкие ляпы не в счёт :)

Загибаем пальцы. Один только Data Access - ADO, OLE DB, ODBC, DAO, RDO, ODS, ADO.NET.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299931
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorЕсли надо дёрнуть 1-2 хранимки, какой-нибудь одноразовый запросик - то Dapper.
по мне для одноразового запроса не лень и через SqlCommand его дергнуть ))))

SolYUtor... посмотреть в сторону MongoDВ или RavenDB...
в контексте моей задачи смена СУБД реально также как и то что кириосити сам оттолкнется от поверхности марса и вернется на землю )))

промежуточный результат...
Код: plaintext
1.
2.
3.
- L2Q(Microsoft)  -2
- BLToolkit       -2
- EntityFramework +2
- NHibernate      +1

я вот обратил внимание, практически все мэпят свои классы в таком виде
Код: c#
1.
2.
3.
4.
5.
6.
7.
    public class Product
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public string Category { get; set; }
        public bool Discontinued { get; set; }
    }


а где реализация INotifyPorpertyChanged?
как это все потом к визуальным контролам биндится?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299936
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучМСУРедкие ляпы не в счёт :)
Загибаем пальцы. Один только Data Access - ADO, OLE DB, ODBC, DAO, RDO, ODS, ADO.NET.
Продолжаем загибать: MS Office, Visual Studio, MS Biztalk Server, SQL Server, Windows, Azure, .NET.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299938
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299945
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчикя вот обратил внимание, практически все мэпят свои классы в таком виде
Код: c#
1.
2.
3.
4.
5.
6.
7.
    public class Product
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public string Category { get; set; }
        public bool Discontinued { get; set; }
    }


а где реализация INotifyPorpertyChanged?
как это все потом к визуальным контролам биндится?Вроде так:
Код: c#
1.
tbName.DataBindings.Add("Text", product, "Name");


Какую проблему Вы пытаетесь озвучить?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299960
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУПродолжаем загибать: MS Office, Visual Studio, MS Biztalk Server, SQL Server, Windows, Azure, .NET.
И какова связь? Я перечислил API и библиотеки доступа к данным (какие вспомнил), в то или иное время декларировавшиеся Microsoft как "передовые" и True Way. Где они сейчас?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299978
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч, простите, а Вы что для доступа к данным используете?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299980
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA...Какую проблему Вы пытаетесь озвучить?
если при таком описании свойств, в коде поменять значение, то оно по идее не отобразится в контроле (если не повторить биндинг или не вызвать какой-нить Refresh).

чтоб это происходило, поле должно "извещать" что его изменили, и делается это через реализацию интерфейса INotifyPropertyChanged

Код: c#
1.
2.
3.
4.
5.
6.
7.
        public virtual event PropertyChangedEventHandler PropertyChanged = delegate { };

        public virtual void NotifyPropertyChanged(string name)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }



а поле выглядит примерно так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        private string a;
        public string A
        {
            get
            {
                return a;
            }
            set
            {
                    a = value;
                    NotifyPropertyChanged("A");
            }
        }


Или я отстал от жизни?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299982
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попутно... NHiberanate умеет работать over WCF?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38299993
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorAntonariy,

для полноценной работы с БД - NHibernate. Если надо дёрнуть 1-2 хранимки, какой-нибудь одноразовый запросик - то Dapper. В баню.

У меня не бывает мук выбора инструментов.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300000
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КифирчикИли я отстал от жизни?
Да все правильно, но при чем здесь ORM?
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300023
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAНахлобуч, простите, а Вы что для доступа к данным используете?По ситуации. NHibernate, BLToolkit/LinqToDb
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300024
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КифирчикskyANA...Какую проблему Вы пытаетесь озвучить?
если при таком описании свойств, в коде поменять значение, то оно по идее не отобразится в контроле (если не повторить биндинг или не вызвать какой-нить Refresh).

чтоб это происходило, поле должно "извещать" что его изменили, и делается это через реализацию интерфейса INotifyPropertyChanged

Код: c#
1.
2.
3.
4.
5.
6.
7.
        public virtual event PropertyChangedEventHandler PropertyChanged = delegate { };

        public virtual void NotifyPropertyChanged(string name)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }



а поле выглядит примерно так
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        private string a;
        public string A
        {
            get
            {
                return a;
            }
            set
            {
                    a = value;
                    NotifyPropertyChanged("A");
            }
        }


Или я отстал от жизни?Нынче модно отделять View Model от Domain Model.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300031
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучskyANAНахлобуч, простите, а Вы что для доступа к данным используете?По ситуации. NHibernate, BLToolkit/LinqToDbТак это всё обёртки над ADO.NET.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300032
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD SAPOTSKI,
при том, что я буду ещё царапать мозг, как некоторые результаты прибиндить к таблицам

хотя брешу...
BLToolkit мэпит простые поля, но можно допилить руками
LinqToSql - аж три события вешает
Код: c#
1.
2.
3.
4.
5.
					this.OnPassType_GUIDChanging(value);
					this.SendPropertyChanging();
					this._PassType_GUID = value;
					this.SendPropertyChanged("PassType_GUID");
					this.OnPassType_GUIDChanged();


EntityFramework - простые поля
Код: c#
1.
public string Port_Name { get; set; }


также интересная табличка попалась.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method                               Duration 
Hand coded (using a SqlDataReader)   47ms
Dapper ExecuteMapperQuery<Post>	     49ms
ServiceStack.OrmLite (QueryById)     50ms
PetaPoco                             52ms
BLToolkit                            80ms
SubSonic CodingHorror               107ms
NHibernate SQL                      104ms
Linq 2 SQL ExecuteQuery             181ms
Entity framework ExecuteStoreQuery  631ms
https://code.google.com/p/dapper-dot-net/
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300102
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчика где реализация INotifyPorpertyChanged?
INPC руками - это долго и муторно. Автоматика рулит .
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300110
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВ баню.

У меня не бывает мук выбора инструментов.
Я бы не хвастал такой уверенностью. Умение выбирать подходящий инструмент для решение конкретной задачи всё еще полезно для нашей профессии. No silver bullet.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300129
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я вообще хочу вынести из БД сложную логику на уровень сервера приложения.
и там сравнительно сложный набор действий, у одного заказчика, туповатый сервер, оптимизировали только до 4х сек. Половина действий в ХП, то есть это быстрее чем "Hand coded".
Если с EntityFramewok это будет 4*11.... или нет, пусть даже 4*5 = 20 сек. Зачем мне такой ORM?
и не нужна мне тут ленивая подгрузка и фоновая синхронизация табличек сущностей ORM.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300131
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кифирчиктакже интересная табличка попалась.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Method                               Duration 
Hand coded (using a SqlDataReader)   47ms
Dapper ExecuteMapperQuery<Post>	     49ms
ServiceStack.OrmLite (QueryById)     50ms
PetaPoco                             52ms
BLToolkit                            80ms
SubSonic CodingHorror               107ms
NHibernate SQL                      104ms
Linq 2 SQL ExecuteQuery             181ms
Entity framework ExecuteStoreQuery  631ms
https://code.google.com/p/dapper-dot-net/

Преобразования из обычного SQL-запроса - редкая для ORM задача. Это именно стихия Dapper и PetaPoco. Не стоит по ней выбирать инструмент, если это не единственная требуемая операция.
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300138
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorAntonariyВ баню.

У меня не бывает мук выбора инструментов.
Я бы не хвастал такой уверенностью. Умение выбирать подходящий инструмент для решение конкретной задачи всё еще полезно для нашей профессии. No silver bullet.
отсутствие мук не означает отсутствия выбора
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300139
IApple
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA Выбор ORM-стратегии (.NET)
Неплохо написано. Япроцитирую некоторые утверждения.
авторORM предназначены решать эту проблему, добавляя слои различных абстракций поверх ADO.NET.
Таким образом ORM на самом деле "унутре" использують тот же ADO.NET, только сверху лисапед. Отсюда следствие: ORM - не может быть быстрее ADO.NET, если конечно ORM не использует полностью свои способы работы с базой данных.
авторORM предназначены решать эту проблему, добавляя слои различных абстракций поверх ADO.NET.
А нужны ли они ваабще ? Чем лучше объект имеющий, к примеру, 5 свойств, от объекта со свойством DataRow в котором эти же 5 свойств-полей ?
В комментариях среди всякого был неплохой вопрос:
авторПроблема не в изучении SQL и даже не в производительности. Я имею ввиду проблему архитектурного плана. Как максимально закрыть уже написанный код для изменений, иметь возможность добавлять новый функционал и расширять схему данных. Как избежать описания схемы дважды и более раз (в SQL виде и в определении классов) . И при всем этом не потерять в функциональности реляционного подхода. Если тупо втравлять SQL код в код ООП то получится спагетти. А точнее даже говнокод. ORM подход пытается решать эти проблемы.
Если тупо использовать типизированные датасеты студии, то там действительно весьма топорно реализовано. Определение типа таблицы запихнуто внутрь датасета, а адаптер к таблице хоть и отдельный, но при необходимости запихнуть одну и ту же таблицу в два различных датасета студия родит два описания одного и того же и создаст два разных адаптера об одном и том же.
Но это решаемо.
А вот о том, что авторORM подход пытается решать эти проблемы у меня сомнения. ORM их не решает, а просто прячет подальше под своим слоем, играя роль "интерпретатора" к слою данных и логике запросов там, где в ADO.NET был "компилятор".
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300196
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSolYUtorпропущено...

Я бы не хвастал такой уверенностью. Умение выбирать подходящий инструмент для решение конкретной задачи всё еще полезно для нашей профессии. No silver bullet.
отсутствие мук не означает отсутствия выбора+1

have silver ammunition belt
...
Рейтинг: 0 / 0
Linq2SQL (by Microsoft) vs BLToolkit
    #38300394
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAТак это всё обёртки над ADO.NET.ADO.NET -- единый (и единственный) API для доступа к данным в .NET. Все ORMы построены поверх этого API.
...
Рейтинг: 0 / 0
37 сообщений из 37, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Linq2SQL (by Microsoft) vs BLToolkit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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