Оптимизация LINQ-запроса

var sw = Stopwatch.StartNew();
      for (int i = 0; i  new { Id = c.Id, UploadedDate = c.UploadedDate })
          .Where(c => c.UploadedDate > this.monthAgo)
          .ToArray()
          .GroupBy(c => c.UploadedDate.Date)
          .Select(c => new { Date = c.Key, Count = c.Count() })
          .OrderByDescending(c => c.Date)
          .ToDictionary(c => c.Date, c => c.Count);  
      }
      
      sw.Stop();
      System.Diagnostics.Trace.WriteLine("SW1: " + sw.ElapsedMilliseconds.ToString());
      
      sw.Restart();
      for (int i = 0; i  c.UploadedDate > this.monthAgo)
          .ToArray()
          .GroupBy(c => c.UploadedDate.Date)
          .OrderByDescending(c => c.Key.Date)
          .ToDictionary(c => c.Key, c => c);  
      }
      sw.Stop();
      System.Diagnostics.Trace.WriteLine("SW2: " + sw.ElapsedMilliseconds.ToString());

Пример структуры сайта на ASP.Net

Базовый сервис

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example.Data.Services
{
    public abstract class BaseService : IDisposable
    {
        protected ExampleContext context;

        protected BaseService()
        {
            context = new ExampleContext();
        }

        public void Dispose()
        {
            context.Dispose();
        }
    }
}

Continue Reading →

Мегафункция для тегов

Задача: в базе хранятся теги и теги к контенту (связь тег-контент).
Пользователь вводит свои теги (String[] tagTitles) к контенту.
Среди введенных пользователем тегов могут быть как совсем новые, так и уже существующие в базе.
Новые теги необходимо добавить в таблицу тегов и в таблицу связи тег-контент.
У уже существующих тегов необходимо увеличить поле количества использований на 1.
Continue Reading →

Подборка ссылок

Поработаем с MongoDb
http://habrahabr.ru/post/127290/

Experimenting with MongoDB from C#
http://odetocode.com/Blogs/scott/archive/2009/10/13/experimenting-with-mongodb-from-c.aspx

The NoSQL Movement, LINQ, and MongoDB – Oh My!
The NoSQL Movement, LINQ, and MongoDB – Oh My!

NoSQL Data Modeling Techniques
NoSQL Data Modeling Techniques

Куда идет NoSQL с MongoDB
http://msdn.microsoft.com/ru-ru/magazine/ee310029.aspx

MongoDB vs. SQL Server 2008 Performance Showdown
MongoDB vs. SQL Server 2008 Performance Showdown

PTOM: The Dependency Inversion Principle
http://lostechies.com/jimmybogard/2008/03/31/ptom-the-dependency-inversion-principle/

StructureMap — краткий справочник для работы (1/3)
http://habrahabr.ru/post/125613/

Феерическая расстановка точек над DI/IOC (контейнерами)
http://www.codehelper.ru/questions/352/феерическая-расстановка-точек-над-diioc-контейнерами

История одного маппера
http://gandjustas.blogspot.com/2010/01/blog-post.html

Ajax отправка данных из формы
http://itfound.ru/45-ajax-otpravka-dannih-formi.html

Backbone.js для «чайников»
http://habrahabr.ru/post/127049/

Javascript for Bootstrap — tabs
http://twitter.github.com/bootstrap/javascript.html#tabs

Написание сложных интерфейсов с Backbone.js
http://habrahabr.ru/post/118782/

Backbone Tutorials
http://backbonetutorials.com/

Backbone Todos
http://documentcloud.github.com/backbone/#examples-todos

jQuery.post()
http://api.jquery.com/jQuery.post/

Tag Cloud in ASP.NET MVC using Clickable HTML 5 Canvas Elements
http://www.dotnetcurry.com/ShowArticle.aspx?ID=785

Creating tag cloud using ASP.NET MVC and Entity Framework
http://weblogs.asp.net/gunnarpeipman/archive/2011/04/28/creating-tag-cloud-using-asp-net-mvc-and-entity-framework.aspx

Creating a Tag Cloud using ASP.NET MVC and the Entity Framework
http://www.mikesdotnetting.com/Article/107/Creating-a-Tag-Cloud-using-ASP.NET-MVC-and-the-Entity-Framework

Визуализация графов. Метод связывания ребер
http://habrahabr.ru/post/116758/

Эксперимент с голографическим кодированием и декодированием информации
http://habrahabr.ru/post/120051/

Z̩̣̫̗̙͇̯̣̓̔̆ͭA̳͔̖̔̆͡L̨̤̖͖̃ͫͧ͂ͨ̿̚͢G͓̭̦̺̗̱̲͙ͪ́Ơ̤̝̣̜͕̖̇̄!̼͎̰͔̽ͦ̍ͩ̏̾

http://textozor.com/zalgo-text/

NumericUpDown

оформить попозже

Хочется чтобы в NumericUpDown контроле значения были не просто цифрами а с неким постфиксом напрмер 1.00 см, 5.67 см, и так далее…
Не могу найти решения. Сталкивался ли кто — нибудь с подобной проблемой?

http://www.gotdotnet.ru/forums/3/61436/296483/

Аналог MySQL оператора LIMIT в MS SQL

В MS SQL нет там такого оператора как LIMIT. Но, есть конечно же аналоги. Например, если вы хотите ограничить выборку до 10 строк, это будет выглядеть так:

SELECT TOP 10 * FROM some_table;

Запрос приведенный выше сделает тоже самое что и

SELET * FROM some_table LIMIT 10;

в MySQL

По такому же принципу можно организовать и LIMIT X, Y. Например, для постраничного вывода.

Собеседование программиста : вопросы и задачки

Вот такие вот задачки и вопросы спрашиваю я у соискателей работы на должность программист C#. Буду их здесь для себя хранить и постепенно пополнять. А если у кого есть на примете интересные алгоритмические задачки, пишите в комментах 🙂

Задача 1

В следующем коде изменить ОДИН знак так, чтобы напечаталось 20 звездочек:

int n = 20;

for ( int i = 0; i < n; i— ) printf( "*" );

придумать ТРИ варианта ответа
Ааа! Жара! Моя любимая задачка. Три решения не нашел еще никто :))))
Continue Reading →

TreeView — узнать узел, который проэкспандился

Когда-то мучилась с выводом дерева. Мучения заключались в отсутствии понимания, обработку каких событий проводить.
Суть в том, что при загрузке формы отображаются все родительские узлы в свернутом виде, и к ним же уже подгружены все узлы-потомки. При раскрытии узла-родителя необходимо подгружать потомков потомков (т.е. «внуков» раскрываемого узла).

Делается это в обработчике события BeforeExpand (в принципе можно и в AfterExpand, но как-то логически неверно), а узел, который «проэкспандился» можно получить из параметров обработчика события e.Node.
Continue Reading →

Рекурсивный обход элементов управления

Чтобы одновременно поменять какое-нить свойство всех элементов управления в заданном контейнере, можно использовать следующий код (в этом примере блокируются панели инструментов):
Continue Reading →