Як відобразити 350 мільйонів рядків з бази даних на Web-формі

    Тема цієї статті — це коротке резюме того, що просив замовник. Я в цей час був у відпустці, а мій керівник, не вдаючись у деталі, дав добро на реалізацію. Добре відпочивши і вийшовши на роботу, я відчув себе в шкурі їжачка, який потрапив в туман в одному відомому мультфільмі. А ситуація вимагала Чарівника смарагдового міста.
 
Читати далі →

Цибулева архітектура. Частина 1

      Раніше, я кілька разів згадував про особливий тип архітектури, яку я називаю цибулевого (onion architecture). Ця архітектура ідеально підходить для додатків з тривалим життєвим циклом і складної бізнес логікою. Я вважаю, що її використання в подібних проектах призводить до чудовим результатами, в слідстві спочатку закладеного в архітектуру акценту на розділення різних аспектів додатки. В цибулевого архітектурі приділяється особлива увага до опису поведінки системи в термінах контрактного програмування і виносу інфраструктурного коду в зовнішні модулі. На діаграмі нижче, ви можете бачити графічне представлення традиційної "багатошарової" архітектури. Це дуже популярний підхід, що використовується в різних варіаціях в безлічі бачених мною проектів.
 
 image
 
Читати далі →

Покращуємо продуктивність: корисні поради та прийоми в .NET

    Ця стаття входить в серію статей щодо поліпшення продуктивності в .NET. Першу статтю можна знайти тут .
 
У цій статті, як і в минулій, будуть розглянуті неочевидні особливості в роботі платформи, і прийоми, за допомогою яких можна з цими особливостями мирно співіснувати. Простіше кажучи, тут будуть записані чергові всякі хакі з життя нашої лавки, які хоч трохи (або багато, як завжди все залежить від контексту), але економлять дорогоцінні ресурси в умовах високого навантаження. Хакі гранично прості і не впливають на кінцеву функціональність.
 
Відкриваючи чергову статтю про продуктивність, мабуть кожен резонно шукає відповідь на питання «а як це може допомогти в моїх проектах» і «кидати Чи все і чи починати терміново виправляти свій код як описано». Виправлю помилку минулої статті, відповім відразу і докладніше. На мій погляд, є сенс використовувати наші хакі в наступних випадках:
 
 
     
  • Ви пишете новий код і вирішили робити це відразу круто і з економією
  •  
  • Ви дійшли до етапу, коли почалися оптимізації та рефакторинг, тому переглядаєте і міняєте ділянки коду, які виконуються дуже часто
  •  
  • Ви пишете високопродуктивну систему і економите на сірниках
  •  
Я ні в якому разі не закликаю вас бігти і виправляти весь код в ваших проектах. Більш того, я закликаю вас не робити цього, тому що це прості хакі, і швидше за все вони будуть вноситися бездумно у велику кількість коду, а це може спричинити за собою появу нових помилок. Це не ті хакі, які скинуть бабу з воза вашої програми і змусять кобилу-сервак бігти в десять разів швидше. В кращому випадку вдасться вичавити відсотків десять. Але з миру по нитці — голому сорочка.
 
Читати далі →

Створення користувальницьких міграційних операцій в Entity Framework 6

Міграції в Entity Framework (EF) представляють собою строго типізований підхід для виконання поширених операцій, таких як створення, зміна та видалення таблиць, стовпців, індексів, і т.д. Однак реалізація базових операцій досить обмежена і не підтримує весь спектр параметрів, які підтримує та чи інша СУБД.
 
До EF 6, єдиним способом обходу даного обмеження було використання операції
Sql
, яка дозволяє виконати довільну команду SQL при виконанні міграції. В EF 6 також з'явилася можливість реалізації користувальницьких строго типізованих операцій.
 
Читати далі →

Reporting Services 2008 під Sharepoint 2010

В даній статті я хочу розповісти про мій досвід розгортання і використання SSRS 2008 в крупній компанії. Процес настройки і розгортання був 3 роки тому, а сама система Reporting Services використовується організацією вже 4 роки.
Читати далі →

ISO-3166 в .NET Framework

    В одному з проектів виникла потреба — за назвою країни англійською мовою отримати її двобуквений код.
Як відомо, дволітерні позначення для країн світу вказані в стандарті ISO 3166-1 .
Розчаруванням для мене стало те, що в .NET Framework немає прямої підтримки цього стандарту.
Довелося винайти свій велосипед.
 
Читати далі →

Оновлення для розробників під Windows

      Вранці 4-го серпня команда розробників Windows випустила три оновлення:
 
 
     
  • стало доступно Visual Studio 2013 Update 3, що забезпечує цілий ряд поліпшень в продуктивності для розробників під Windows;
  •  
  • так само став доступний оновлений емулятор для Windows Phone 8.1, що дозволяє тестувати програми на останньому версії образу мобільної ОС (прим. пер .: взагалі-то мова йшла про latest phone image , але я так розумію малося на увазі саме образ ОС );
  •  
  • і, нарешті, оновлення Windows Phone 8.1 GDR1. Цей пункт доступний для користувачів які встановили Windows Phone Preview Program for Developers , що дозволяє вам запускати додатки на реальних пристроях, з останнім оновленням на борту.
  •  
 
У цьому пості, я б хотів швидко пробігтися по цих оновлень і занурити вас в контекст того, що ці нові засоби додають в ваш інструментарій розробника.
 
 
Читати далі →