Станислав Макаров: В какой то момент я решил что это больше антипаттерн, и что от него стоит избавиться, по крайней мере временно...
Были времена когда репозиторий передавался через конструктор, после чего уже использовался внутри класса, но от этого я отказался по моему потому что архитектура моделей строится на нескольких уровнях наследования и композиции. В результате базовый класс содержит у себя поле для репозитория, которое инициируется через конструктор. В результате все наследники имели у себя аргумент для передачи репозитория после чего он уже кидался в конструктор родителя. Не могу полноценно сейчас объяснить к сожалению, так как данная ситуация была довольно давно. После того случая я и ввёл IoC контейнер.
Про DI читал, как в общем и про другие паттерны. Но сделать выводов о том как действовать лучше не могу, всё время двоякое чувство что я опять на говнокодил. Из за этого топчусь много на месте, бывает переписываю одно и тоже по нескольку раз. Репозиторий вообще до этого получал из IoC контейнера, потом убрал... Спасибо за помощь.
Да забыл и такой вариант был, в конструкторе к примеру передовался ID, на основе которого же и поиск данных и последующая инициализация, либо Exception... Ну вообще довод довольно справедливый, спасибо Вам.
Ушёл от использования COM, и вызываю WPF приложение из Access'a простым Shell'ом. И легче, и думаю правильнее, ибо теперь WPF приложение живёт в отдельном процессе, а не вместе с Access'ом. Ну и как итог можно обойтись без WinForm оболочки для WPF.
Ошибся, компилируется всё нормально, и моя сборка подписывается строгим именем, но при попытках зарегистрировать её в системе имею
RegAsm : error RA0000 : Невозможно загрузить файл или сборку "GSAccessClient, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b299ee3d666afc1f" или один из зависимых от них компонентов. Сбой при проверке правильности строгого имени. (Исключение из HRESULT: 0x8013141A)
Подозреваю как раз из за того что чужие сборки на которые я ссылаюсь, не подписаны
К сожалению не помогло, офис 32 битный, сборка 32 битная, попытался зарегистрировать regasm'ом под 2 net, не помогло, сборка в net 3.5.
Помогает если я сборку подпишу строгим именем через VS, а при регистрации добавлю параметр /codebase.
Но в своей библиотеке я этого сделать не могу, так как в reference'ах у меня ещё несколько библиотек, которые судя по всему не подписаны строгим именем, в результате чего, я и свою библиотек не могу скомпилировать со строгим именем. К тому же VS ведь как то регистрирует сборку и без строгого имени, так что бы она работала...
Дмитрий Гавриленко: Речь о том как часто создаются процессы обрабатываемые таймерами? Ну планируется что часто. Ряд пользователей работает с сайтом, скажем от 100-300 человек, и каждому пользователю регулярно надо выполнять его расчёты и получать результаты, так как расчёты бывают довольно долгими и ввёл прогресс бары.
Поэтому вообщем один из критерием в том что бы потоки вызывались из пула CLR потоков, так как в теории их будет довольно много, и работать они могут от пары секунд до десятка минут.
Я бы хотел так сделать, но начальство зажало денег на свитч, а роутер был... к тому же он wifi, а в том кабинете как раз работают люди с ноутбуками. Но теперь мне не даёт спать эта проблема. По сути же не сложно...
Нашёл инфу о том что транк можно поднять на бридже например через vconfig, но раз бридж становится транком, как быть с другими виртуалками, которым нужны access порты?
Касательно широковещательного трафика, как то препод помню рассказывал, что когда только подключаешь коммутатор, он формирует таблицу и его порты беспрерывно мигают, потому что происходит широковещательная рассылка.
Вариант с l2 петлей: бриджинг не использовался, но некоторые пользователи вместо LAN зачем то намеренно включали WLAN, в итоге могли работать через оба интерфейса... то есть для каждого dhcp выделял по адресу(забавно учитывая с чего началась история). Но я думал что винда использует один из них, делая предпочтение в строну того интерфейса который быстрее, то есть LAN. Или же она умудрялась использовать их оба?
Вариант с пере нагрузкой проца на маршрутизаторе, мне изначально казался самым вероятным.
К сожалению логов не осталось(
Вот в этом и вопрос, сейчас они используются. На TP link'е стоит DNS, DHCP, и прокинута VPN до провайдера. А Asus работает просто как точка доступа. И сейчас те же 20 устройств отлично работают.
случайно заметил сегодня что при загрузке про мелькает сообщение что для gui надо больше ram))) дал ему больше ram, и установщик запустился в gui.... я плакаль
Во общем не совсем то что я хотел, но иначе не получилось, поставил centos, он автоматически сделал разбивку моего LVM тома, и установил систему, после чего я подключил второй LVM том, разбил его с помощью fdisk так как мне нужно было, скопировал содержимое с 1 тома на 2, отредактировал grub, fstab и теперь просто загружаю систему с 2 тома, и я имею то что хотел, пара виртуальную машину с centos 6.5 minimal.