Антон:
Согласен, спецов в данной отрасли по пальцам пересчитать и в основном таких хантят из других областей, например из обозначенной выше книге хантили из телекома.
Знание базовых алгоритмов их оптимизации, а также знание математики в таких областях обязательно.
Saboteur:
Просто не стал перечислять этапы работы, а так согласен, писать только код 8 часов подряд, причём монотонно - это уж слишком.
Для меня программирование - это как игра на музыкальном инструменте. Если представить, что во время импровизации музыкального произведения, автора будут прерывать разговорами или он сам постоянно будет себя чем-то отвлекать, то о качестве итогового произведения можно только мечтать. Муза она то есть, то её уже нет и настроиться на состояние потока сложнее, когда отвлекаешься.
Поэтому максимально возможная концентрация на процессе, особенно вначале карьеры, желательна. Конечно в рамках разумного, например: поесть, попить, перерыв чтобы глаза отдохнули и т.д. И все мы разные, поэтому, кто-то быстрее достигает результата, кто-то как улитка медленно ползёт к своей цели, а кто-то топчется на месте.
Согласен, если тебе проще изучать тонкости языка через изучения фреймворка, к тому же одного из популярнейших, значит это твой путь.
Кому-то проще изучить язык, читая толстые книги и воплощая упражнения на практике, кому-то через код ревью, кому-то через юнит тесты, а кто-то любит опен сорсные проекты ковырять.
Saboteur: Где-то читал, что Сталин и Берия тоже выстраивали рабочий процесс в масштабах всей страны, чтобы население работало по 4 часа в день, а в остальное время семья и саморазвитие, каждые 10 лет снова за парту, чтобы забытые знания восстановить.
Того же мнения придерживаются многие восточные гуру, которые называют продуктивное рабочее время с 10-00 до 14-00, т.е. те же 4 часа. И именно в этот период необходима максимальная концентрация на работе. Причём не отвлекаться на перерывы или разговоры, а работать головой. Говорят даже, что с таким подходом можно сделать намного больше и качественней, чем за 8 часов.
Но мне кажется, особенно в начале карьеры, трудно будет такого графика работы придерживаться. Тут как минимум годика 3 по 8 часов, а иногда и больше, поработать нужно. Причём сделать это для себя, постоянно прокачивая свои знания и впитывая всю информацию, как губка.
DarkByte2015 благодарю за критику, действительно не экономично, дополнил ответ. Стиль, с двумя from, обусловлен для наглядности, что откуда и куда. Твой вариант мне тоже понравился.
Валерий Абакумов тут не всё так однозначно. Соглашусь, для продакшена я бы лишний раз задумался, но уже сейчас можно найти примеры с использованием SignalR и EF7 с ASP.NET Core.
Сhatle - пример чата, полностью построен на ASP.NET Core с использованием MVC 6, SingleR, EF 7
MusicStore - пример MVC приложения c использованием Entity Framework, проект является частью ASP.NET Core.
BugTracker - ещё одно приложение также официально вошедшее в ASP.NET Core. Подход MVC с использованием SignalR для демонстрации работы в реальном времени.
По поводу MySql, начиная с марта 2016 ситуация поменялась, вначале вышел коннектор с одноимённым названием MySqlConnector от Бредли Грайнгера (Bradley Grainger). Лицензия MIT, что позволяет использовать коннектор в коммерческий проектах бесплатно, поддерживает асинхронную работу, быстрый, работает на Ubuntu, значит встанет и на Debian. Автор приводит список ORM, в том числе EF, которые совместимы и будут работать с данным коннектором, тут надо уточнить, что EF далеко не панацея.
Также есть коннектор от PomeloFoundation - Pomelo.Data.MySql, но у него нет полноценной асинхронной работы. Для использования EF, есть провайдер Pomelo.EntityFrameworkCore.MySql, именно его можно использовать совместно с MySqlConnector от Бредли Грайнгера.
MrDywar Pichugin не всё так просто, для примера посмотри, как реализован volfix.net. Чтобы тут не повторяться, схему проверки описал ниже в комментариях к другому ответу. Добавил твой скайп, как будет время маякни, пообщаемся.
Роман возможно, ты не нашёл описание привязки на сайте The Enigma Protector, установи демо и увидишь сам. Я же уже использую данный софт и именно поэтому хочу проверку железа на сервере.
Судя по твоим ответам, ты ещё не сталкивался с таким видом защиты. Тогда глянь volfix.net, установи демо, а после окончания срока действия, запроси демо на другой почтовый ящик с другими данными. Потом попробуй запустить софт с новым аккаунтом и только тогда ты поймёшь о чём я говорю.
Если продолжишь эксперимент, удалишь программу, почистишь реестр, переустановишь ОС или попробуешь запустить софт на виртуальной машине, то все попытки будут тщетны, до тех пор пока не приобретёшь платную лицензию или не установишь ПО на другой ПК, но опять-таки только с новым демо аккаунтом, если запустишь со старым, то ПК также попадёт в список и далее по той же схеме, ничего не поможет.
Повторюсь реализовывать всю бизнес логику на данном этапе не вариант, но реализовать вышеописанную мною защиту вполне реально и несложно, а вопрос задал для тех, кто уже сталкивался с подобными задачами и возможно поделиться опытом реализации или подскажет, как ещё можно реализовать демки по подписки, чтобы "скинуть пассажиров", которые привыкли до бесконечности продлять подписки демо.
Marina98 смс не приходили, т.к. возможно злоумышленники поменяли номер телефона на свой.
Когда зарегистрируешь новый почтовый ящик, максимально обезопась его, сделай привязку к телефону.
И последнее, если мои советы помогли, буду благодарен если отметишь мой вопрос, как ответ. Пусть другие тоже почитают, эта тема сейчас очень актуальна.
Роман уже видел готовые продукты, где реализована привязка к железу, несмотря на то, что даже бизнес логика, у этих продуктов, реализована на сервере. Это сделано только с одной целью, стимулировать платную подписку. Чтобы демо аккаунты не плодить и блокировать халявщиков. Я бы вообще с этим не заморачивался, если бы не предусматривалась возможность демо аккаунтов, для того, чтобы каждый смог попробовать полный функционал за ограниченный промежуток времени.
Пока программа не особо популярна, защита программы предложенным мною способом вполне работоспособна. Не переживаю, за взлом сетевого протокола, об этом пока рано говорить. Реализовывать бизнес логику на сервере не вариант, это увеличит сроки разработки, время запуска продукта, стоимость и обслуживание сервера. Т.к. это стартап и ещё не известно, выстрелит ли он, то смысла затрачивать ресурсы на серверную часть на данном этапе не вижу, это риск.
Есть коммерческий продукт The Enigma Protector, у них реализована возможность привязать софт к железу, но меня интересует, как получить данные программным способом. Порекомендуй готовые решения по сбору информации о железе программным способом.
Роман Если я правильно понимаю что такое "трехзвеньевая структура", то оставил комментарий выше у предыдущего ответчика MrDywar Pichugin и в конце указал на минусы, если отдавать данные через мой сервер, прочти и уточни что означает трехзвеньевая структура в твоём понимании? Приведи пример такой структуры.
Ещё раз подчеркну, в моём варианте важно подключение к серверу партнёра, т.к. все данные поступают именно от него.
К железу привязываться - звонки с жалобами, HDD/CPU/Motherboard заменил и программа не запускается. Отломают быстрее чем напишите.
Это не принципиально, для данного ПО - это абсолютно нормально и будет оговорено, например в публичной оферте.
Задача взята не от «балды», уже видел готовые решения!
Привязка к железу сделана с целью реализации демо режима с полным функционалом. Если отмести демо и реализовать только проверку по логину паролю, то большинство пользователей не смогут попробовать программу и принять решение. К тому же, данные о железе хранятся на сервере. Ни переустановка ОС, ни виртуальная машина не помогали запустить программу повторно, после окончания срока демо режима. А в случае, если зарегистрировать новый аккаунт демо, то это не помогало, т.к. на пк уже была запущена программа и характеристики железа хранились на сервере. Единственное, как можно было обойти программу, запустить её на другом ПК или ноутбуке, но только с новым логином и паролем.
Логин-пароль должно хватать, или думать что нить, но при росте популярности обойдут.
Если подключаться к серверу партнёра через свой сервер и ретранслировать данные, то не обойдут, в этом случая бизнес логика будет завязана на мой сервер и взлом клиента не поможет. Но этот вариант я пока не рассматриваю, т.к. предвижу затраты ресурсов сервера, на него ляжет большая нагрузка.
Хочется защиты - используйте виртуальные машины (~VMProtec), квалификация средняя и выше нужна для их взлома.
Уже использую обфускатор, шифровку сборки и привязку к железу на этапе начального взлома это работает нормально и отпугнёт большую часть обычных пользователей. Но решение платное и работает только на стороне клиента без исходного кода, именно поэтому мне необходимы какие-либо библиотеки для программного получения данных о "железе".
TheZzuzz: Тогда авторизация обязательна, без неё никак. С другой стороны, что тебе мешает запросить авторизацию через OAuth?
ВК и ОК бесполезно сравнивать, изначально два проекта развивались по-отдельности. Приложение ВК, например можно отлаживать локально, а ОК только на сайте ok.ru либо OAuth, а через него некоторая функциональность ограничена.
TheZzuzz: У тебя приложение на портале ok.ru будет или отдельное приложение (мобильное, сайт и т.д.)? Мои все работают нормально, выдаёт то что нужно, другого метода в апи не встречал, если найдёшь другой метод запроса к апи, напиши сюда, будь добр, возьму на заметку.
Согласен, спецов в данной отрасли по пальцам пересчитать и в основном таких хантят из других областей, например из обозначенной выше книге хантили из телекома.
Знание базовых алгоритмов их оптимизации, а также знание математики в таких областях обязательно.