Pull to refresh
10
Станислав@Diaver

User

8
Subscribers
Send message
Вы правы, но на мой взгляд, использование EF в проектах для которых нагрузка имеет критическое значение, не самая удачная идея.
EF6.
Ужаснитесь)
CompanyEmployees
	using (var ctx = new CompanyEmployees())
	{
		int minYear = ctx.OccupationHistories.Min(o => o.StartDate.Year);
		int maxYear = ctx.OccupationHistories.Max(o => o.EndDate.HasValue ? o.EndDate.Value.Year : DateTime.Now.Year);

		List<int> yearsList = Enumerable.Range(minYear, maxYear - minYear + 1).ToList();
		List<int> monthList = Enumerable.Range(1, 12).ToList();

		var qry1 = from y in yearsList
				   from m in monthList
				   select new DateTime(y, m, 1);
		var firstDays = qry1.ToList();

		var qry2 = from y in yearsList
				   from m in monthList
				   select new DateTime(y, m, DateTime.DaysInMonth(y, m));
		var lastDays = qry2.ToList();

		var qry = from s in
					  (
						  from o in ctx.OccupationHistories
						  join d in ctx.Divisions
							  on o.DivisionID equals d.Id
						  join p in ctx.Positions
							  on o.PositionID equals p.Id
						  from x in
							  (
								  from a in firstDays
								  join b in lastDays
									  on new { a.Year, a.Month } equals new { b.Year, b.Month }
								  select new
								  {
									  FirstDay = a,
									  LastDay = b
								  })
						  where DateTime.Compare(o.StartDate, x.LastDay) <= 0 &&
						  DateTime.Compare(o.EndDate.HasValue ? o.EndDate.Value : DateTime.Now, x.FirstDay) >= 0

						  orderby o.EmployeeID
						  select new
						  {
							  EmployeeId = o.EmployeeID,
							  Division = d.Name,
							  Position = p.Name,
							  Year = x.FirstDay.Year,
							  Month = x.LastDay.Month
						  })
				  group s by new { s.Division, s.Position, s.Year, s.Month } into g
				  orderby g.Key.Year, g.Key.Month, g.Key.Division, g.Key.Position
				  select new EmployeesCount
				  {
					  Division= g.Key.Division,
					  Position= g.Key.Position,
					  Year= g.Key.Year,
					  Month= g.Key.Month,
					  EmployeeCount = g.Count()
				  };

		return qry.ToList();

Вы правы, Intellitrace вещь полезная, но проблема в том что данная фича доступна только в самой дорогой версии Ultimate:
http://www.visualstudio.com/products/compare-visual-studio-products-vs
Совершенно верно, за основу был взят код от MiniProfiler.
Проект опубликован под Apache лицензией. Насколько я понял, с некоторыми оговорками лицензия разрешает использование кода в платных продуктах.
Мне вот непонятно, почему ни одна космическая держава не пришла к варианту с возвращаемой ступенью, по крайней мере в промышленном варианте?
Должны же быть какие-то причины для отказала использования возвращаемой ступени.
Может кто-то из разбирающихся в предмете прокомментировать?
Верно, только не все читатели Хабра живут в России )
Согласен, каждый сам для себя решает где ему лучше жить.
Спасибо за ответ.
Резюмирую:
1. Деньги на руки примерно 5000 USD для senior разработчика
2. Если я правильно понял, аренда жилья обходится примерно в 2000 usd.
3. Куча доп. расходов
В общем поехать отдохнуть туда можно, а перебираться большого смысла нет, особенно если есть семья, ребенок.
Спасибо за статью.
Возникло ряд вопросов:
Какие зарплаты у разработчиков?
Есть ли возможность перебраться с семьей?
Сможет ли супруга работать?
Председатель Совета при Президенте РФ по развитию гражданского общества попросил Валентину Матвиенко отклонить законопроект о блогерах и создать комиссию для его доработки http://www.president-sovet.ru/news/6001/
Спасибо за комментарий. Дополнил статью примером использования и обновил прикрепленный пример.
Проблема буферизации и полинга данных в данном конкретном примере не актуальна за отсутствием таковой:
1.Клиент создает подключение,
2. Передает данные,
3. Получает ответ и отключается.
Вот после каждой похожей новости я думаю что все, предел маразма и идиотизма нашей властью достигнут, но каждый раз такие новости меня убеждают в обратном(((((
Как выше отметили, в законе даже нет такого понятия как «денежный суррогат», да и само понятие какое-то странное, лично для смысл такого словосочетания не понятен. Соответственно, вся эта инициатива нашей доблестной прокуратуры бред сивой кобылы.
Ага, и опять все будем книжки читать и повышать рождаемость.
>Из конструктивного — WCF же.
WCF не всегда возможен / удобен, особенно если речь идет о разных платформах / языках программирования.

>Пула коннектов (с пересоединением для балансировки) не хватает.
Это правда, пример из статье не годится в промышленное применение или просто в проект с высокой нагрузкой.

>Половина статьи состоит из описания сериализатора. Далее вполне обычная работа с TcpClient/TcpListener, которая в msdn довольно подробно описана.
В свое время я потратил довольно прилично времени, чтобы это все написать и исправить все найденные ошибки, поэтому и решил написать статью с работающим примером, чтобы кто-то воспользовался результатами моей работы и сэкономил себе время.
Спасибо за комментарий, отвечу по пунктам:
>Заголовок статьи не соответствует содержимому.
На мой взгляд вполне соответствует.

>Я, посмотрев на заголовок и преамбулу, подумал, что речь пойдёт о своём сокетном велосипеде
Это и есть свой велосипед.

> В статье был изобретён свой RPC-велосипед
RPC — Remote Procudure Call, ничего такого у меня нет, просто отправка и прием команд с подробным описанием, хотя, возможно все таки описание не достаточно подробное.

>Кстати, я вот что-то не припомню, инты BinaryReader читает/пишет в big endian или little endian
Если я правильно помню, .net работает с little endian порядком. Если же вы хотите взаимодействовать с Java, то необходимо разворачивать порядок байт, я об этом упомянул в конце статьи.

>Замечание 3: Не понятно, почему вместо сериализации, нужно было руками байты вытаскивать. Команд может быть очень много, и в процессе их ручной сериализации вы очень быстро начнёте делать ошибки.
Вы правы, логичнее было бы сделать автоматический сериализатор, но я сделал именно так как сделал.

>Замечание 4: Допустим, я хакер. В процессе поиска дырочек, я перебираю все найденные порты, отправляя на них стандартный HTTP Get. Что произойдёт?
Это не понял, причем тут хакер и http get?

>Вот эта строка на нехорошие мысли наводит: CommandHeader commandHeader = CommandHeader.FromBytes(bytes);
Поясните, что именно смутило?
Да господи, никто ничего выявлять не будет.
Увидят политический пост, найдут автора, впаяют штраф на надцать тысяч рублей и потребуют прекратить безобразие.
А еще цензура явно запрещена конституцией, ага.
Буду благодарен за конструктивную критику, просто я немного сконфужен, с одной стороны в избранное добавляют, соответственно статья имеет право на жизнь, с другой, большое количество минусов.
Спасибо!
Я имел ввиду, что с такой установкой пожарная не даст разрешение на работу клубу.
Уверен, все помнят печальные события в «Хромой Лошади» и что они были вызваны именно представлением с пиротехникой.
Не пройдут по требованиям пожарной безопасности, хотя идея интересная.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity