ASP.NET Core: Створення серверних служб для мобільних додатків

Представляємо другу частину серії статей, присвячених розробці на ASP.NET Core. У цьому навчальному матеріалі ви дізнаєтеся, як створювати серверні служби за допомогою ASP.NET Core MVC для підтримки мобільних додатків.

Читати далі →

Готуємо ORM не відходячи від плити. Генеруємо SQL — запит на основі бінарних дерев виразів

image

Стаття є продовженням першої частини. У пості розглянемо побудова SQL — запиту за об'єктної моделі типу, у вигляді бінарного дерева виразів та супутні теми параметризації SQL — запитів, оптимізації рефлексії. Теми цієї статті самі по собі вельми обособленны, тому можна читати особливо не звертаючи увагу на першу частину. Ще раз зазначу, дане рішення, є «справа була ввечері, робити було нічого» і не претендує на лаври промислового продукту.

Читати далі →

Пошук витоку GDI об'єктів: Як загнати мастодонта

Строго кажучи саме це оригінальний текст статті, а в блог вже переклад. Тут стаття публікується трохи пізніше і тільки тому отримує бирку переклад.

В 2016 році, коли більшість програм виконуються в пісочницях, з яких навіть самий некомпетентний розробник не зможе нашкодити системі, дивно стикатися з проблемою, про яку далі піде мова. Якщо чесно, я сподівався, що вона пішла в далеке минуле разом з Win32Api, але недавно я з нею зіткнувся. До цього я лише чув страшні байки старих більш досвідчених розробників, що таке може бути.

Проблема
Витік або використання занадто великої кількості GDI об'єктів.

Симптоми:
  • Task Manager на вкладці Details колонка GDI objects показує загрозливі 10000(Якщо цієї колонки немає, її можна додати, натиснувши на заголовку таблиці правою кнопкою миші і вибравши пункт Select Columns)
  • При розробці на C# або іншою мовою виконуваному CLR полетить виняток, далеко не нова конкретикою:
    Message: A generic error occurred in GDI+.
    Source: System.Drawing
    TargetSite: IntPtr GetHbitmap(System.Drawing.Color)
    Type:System.Runtime.InteropServices.ExternalException
    Також при певних налаштуваннях або версії системи виключення може і не бути, але Ваш додаток не зможе намалювати жодного об'єкта.
  • При розробці на З/З++ всі методи GDI начебто Create%SOME_GDI_OBJECT% стали повертати NULL

Читати далі →

Всі конференції JUG.ru Group: підсумок 2016-го і плани на 2017-й



2016-й став для JUG.ru Group роком бурхливого зростання: відразу кілька конференцій ми провели вперше, а вже відомі стали більше. Більш того, на 2017-й вже заплановано підкорення нових рубежів. Перед Новим роком ми вирішили згадати все конференції, які провели у році, що минає, і поговорити про те, які проведемо в наступному — так що під катом можна дізнатися про всіх відразу і знайти найбільш підходящу вам.




Читати далі →

20 шкідливих порад по розробці ігор на Unity



Геймдев — заняття по справжньому захоплююче, особливо коли в команді є як досвідчені програмісти, так і новачки. На відміну від таких движків як Unreal і CryEngine, в Unity досить низький поріг входження, і найчастіше ветерани .NET і новачки починають з'ясовувати стосунки, які закінчуються бійкою з застосуванням офісних меблів.
У цій статті я спробував зібрати поради, які допоможуть вам і вашій команді нарешті домовитися про те, як треба писати код, і, сподіваюся, добре посміятися. І так, поїхали!

1. Пиши на UnityScript

Одна мова в проекті — це нудно. Можна урізноманітнити життя своїх колег, нехай вчаться бути поліглотами. C# — це microsoft, і взагалі сувора типізація це не твоє.

2. Не використовуй var

Самі Unity забороняють* це робити, та й взагалі незрозуміло, якого типу змінна. Коли тобі скажуть про підказки IntelliSense — влаштовувати очі, microsoft головного мозку! Твій Notepad++ цього не вміє.

3. Змішуй стилі

Ну а що? Самі Unity порушують C# Style Guide і фігачать camelCase в пропертях, чим ти гірший? Якщо використовуєш MonoDevelop, не забувай періодично міняти таби на прогалини і назад. При цьому говори всім, що в MonoDevelop «налаштування злетіли» — про цей баг всі знають!

Читати далі →

щось не те з тестуванням .NET (Java і т. д.)

Всі хочуть писати тести, але мало хто це робить. На мій погляд причина в існуючих рекомендаціях і практиках. Більшість зусиль при тестуванні бізнес-додатків прикладається до роботи з базою даних, це важлива частина системи, яка дуже тісно пов'язана з основним кодом. Є два принципово різних підходи: абстрагувати логіку від бази даних або готувати реальну базу для кожного тесту.

Читати далі →

ASP.NET Core, Angular 2, SignalR для чайників

Всім привіт! Хочу поділитися своїм досвідом використання ASP.Net Core і Angular 2 з використанням SignalR.

Будучи програмістом 1С, часто доводиться вирішувати завдання, які на 1С вирішити складно або неможливо. Дуже допомагає знання .Net. Але ось, що стосується клієнтської частини сайтів, то тут багато тонкощів (JavaScript, CSS, JQuery ітд), які швидко забуваються, якщо ними не користуватися.

Angular 2 дозволяє значно спростити створення клієнтської частини. Так TypeScript значно ближче до C# (і головне дозволяє використовувати Руслиш), а з шаблонами нескладно розібратися знаючи Razor і Xaml.

Головне, що ви працюєте з даними, за аналогією з WPF. При цьому є купа контролів.

Хочу поділитися з такими ж бідолахами як я, або хто тільки починає вивчення Angular 2, ASP.Net Core, так як витратив багато часу на пошуки матеріалів для вивчення.

Для тренування на кішках був обраний мій проект 1C Messenger для відправки повідомлень, файлів і обміну даними між користувачами 1С, веб сторінки, мобільними додатками а ля Skype, WhatsApp. Исходники Тут

Поки не вийшов. Net Core 1.2 і NetStandard 2, зараз немає підтримки клієнта для SignalR під .Net Core

Отже, почнемо. Для роботи нам знадобиться:

1. ASP.NET Core + Angular 2 шаблон для Visual Studio
2. Посібник ASP.NET Core
3. Керівництво по Angular 2
4. Керівництво по TypeScript
5. Компоненти від PrimeNG
6. Компоненти Bootstrap

Читати далі →