Задать вопрос
  • Что Вы делаете со старым железом?

    Jeer
    @Jeer
    уверенный пользователь
    Промывай на золото и делай скипетр власти. Хотя, говорят, это незаконно )
    Ответ написан
    Комментировать
  • Первая работа в IT. Стоит ли принимать такое решение?

    Jeer
    @Jeer
    уверенный пользователь
    Соглашусь с высказанными мнениями, добавлю так же, что для профессионального развития гораздо лучше работать в команде. Вы будете намного быстрее расти, если будет возможность смотреть как делают более опытные товарищи и они будут присматривать за тем, что вы делаете. Эта практика называется код ревью. При устройстве на работу спрашивайте сколько людей в команде и внедрена ли такая практика. Разобраться можно во всех направлениях и это все прекрасно разложится в голове по полочкам, но на это нужно очень много времени. Сейчас от вас будут требовать всё сразу и одновременно, поэтому у вас не будет времени хорошо разобраться во всех тонкостях и вы будете делать кое-как, лишь бы работало. И вся ваша работа превратится в постоянный стресс и насилие над организмом.
    Ответ написан
    Комментировать
  • Как передать значение последнего добавленного id в другую таблицу?

    Jeer
    @Jeer
    уверенный пользователь
    Если ты работаешь через Entity Framework, то вначале добавляешь первую сущность в базу, жмешь сохранить изменения и у тебя в этой сущности изменяется айдишник на созданный в базе, который далее используешь. Это самый топорный вариант. Так же работает, если ты добавляешь вторую сущность в связь с первой, должно корректно создаться.

    Если тебя интересует именно sql код, который ты вызываешь из ADO (когда отправляешь команду типа string из кода c#), либо пишешь хранимую процедуру в sql с кодом и вызываешь хранимку так же через ADO.net, то тебе нужно что-то типа такого:

    string queryString =
                            String.Format(@"
                            insert into UserProfile (vk_id, DialogQuestId, UserName,Race, access_token) values ({0}, 1 ,N'{1}',{2}, '{3}') 
                            SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY]"
                            , vk_id, name, race, access_token);
    
                var dt = await GetDataAsync(queryString);
                if (dt == null || dt.Rows.Count == 0) return 0;
                int id = int.Parse(dt.Rows[0]["SCOPE_IDENTITY"].ToString());
                await SetDataAsync($"insert into UserMoney (UserId, Cr) values ({id},50)");


    GetDataAsync и SetDataAsync - работа через ADO.net, вынесенная в отдельные функции
    var result = new DataTable();
    using (var connection = new SqlConnection(myConnString))
                    using (var command = new SqlCommand(query, connection))
                    {
                        await command.Connection.OpenAsync().ConfigureAwait(false);
                        var da = new SqlDataAdapter(command);
                        da.Fill(result);
                    }
    return result;


    Код немного корявый, но, думаю, выдернешь что тебе нужно
    Ответ написан
    Комментировать
  • Как отслеживать статус загрузки файлов на сервер в angular 5?

    Jeer
    @Jeer
    уверенный пользователь
    https://angular.io/guide/http - вот тут поищите слово tracking

    или гуглите
    angular 5 http progress
    angular 5 http tracking
    angular http interceptor upload tracking
    Ответ написан
    Комментировать
  • Как подружить C# и Java?

    Jeer
    @Jeer
    уверенный пользователь
    Поднимаете на c# wcf сервис, на java вызываете нужные методы сервиса и вуаля
    Ответ написан
    Комментировать
  • Как грузить шрифты с webpack конфига?

    Jeer
    @Jeer
    уверенный пользователь
    Вот мой webpack.config.vendor.js - созданный по умолчанию в проекте angular + .net core
    я подключил шрифт font-awesome, установив его предварительно через npm. Если у вас закачанный пакет, то нужен корректный адрес в вашу папку, соответственно. Надеюсь, поможет.

    const path = require('path');
    const webpack = require('webpack');
    const ExtractTextPlugin = require('extract-text-webpack-plugin');
    const merge = require('webpack-merge');
    const treeShakableModules = [
        '@angular/animations',
        '@angular/common',
        '@angular/compiler',
        '@angular/core',
        '@angular/forms',
        '@angular/http',
        '@angular/platform-browser',
        '@angular/platform-browser-dynamic',
        '@angular/router',
        'zone.js'
    ];
    const nonTreeShakableModules = [
        'bootstrap',
        'bootstrap/dist/css/bootstrap.css',
        'es6-promise',
        'es6-shim',
        'event-source-polyfill',
        'jquery',
        'devextreme/dist/css/dx.common.css',
        //'devextreme/dist/css/dx.light.css'
       <b> 'font-awesome/css/font-awesome.css'</b>
    ];
    const allModules = treeShakableModules.concat(nonTreeShakableModules);
    
    module.exports = (env) => {
        const extractCSS = new ExtractTextPlugin('vendor.css');
        const isDevBuild = !(env && env.prod);
        const sharedConfig = {
            stats: { modules: false },
            resolve: {
                extensions: ['.js', '.json']
            },
            module: {
                rules: [
                   <b> { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, use: 'url-loader?limit=100000' },</b>
                    {
                        test: /\.json$/,
                        loader: 'json-loader'
                    }
                ]
            },
            output: {
                publicPath: 'dist/',
                filename: '[name].js',
                library: '[name]_[hash]'
            },
            plugins: [
                new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery' }), // Maps these identifiers to the jQuery package (because Bootstrap expects it to be a global variable)
                new webpack.ContextReplacementPlugin(/\@angular\b.*\b(bundles|linker)/, path.join(__dirname, './ClientApp')), // Workaround for https://github.com/angular/angular/issues/11580
                new webpack.ContextReplacementPlugin(/angular(\\|\/)core(\\|\/)@angular/, path.join(__dirname, './ClientApp')), // Workaround for https://github.com/angular/angular/issues/14898
                new webpack.IgnorePlugin(/^vertx$/) // Workaround for https://github.com/stefanpenner/es6-promise/issues/100
            ]
        };
    
        const clientBundleConfig = merge(sharedConfig, {
            //browser: { "fs": false },
            entry: {
                // To keep development builds fast, include all vendor dependencies in the vendor bundle.
                // But for production builds, leave the tree-shakable ones out so the AOT compiler can produce a smaller bundle.
                vendor: isDevBuild ? allModules : nonTreeShakableModules
            },
            output: { path: path.join(__dirname, 'wwwroot', 'dist') },
            module: {
                rules: [
                    { test: /\.css(\?|$)/, use: extractCSS.extract({ use: isDevBuild ? 'css-loader' : 'css-loader?minimize' }) }
                ]
            },
            plugins: [
                extractCSS,
                new webpack.DllPlugin({
                    path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'),
                    name: '[name]_[hash]'
                })
            ].concat(isDevBuild ? [] : [
                new webpack.optimize.UglifyJsPlugin()
            ])
        });
    
        const serverBundleConfig = merge(sharedConfig, {
            target: 'node',
            resolve: { mainFields: ['main'] },
            entry: { vendor: allModules.concat(['aspnet-prerendering']) },
            output: {
                path: path.join(__dirname, 'ClientApp', 'dist'),
                libraryTarget: 'commonjs2',
            },
            module: {
                rules: [{ test: /\.css(\?|$)/, use: ['to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize'] }]
            },
            plugins: [
                new webpack.DllPlugin({
                    path: path.join(__dirname, 'ClientApp', 'dist', '[name]-manifest.json'),
                    name: '[name]_[hash]'
                })
            ]
        });
    
        return [clientBundleConfig, serverBundleConfig];
    }
    Ответ написан
  • А как вы проектируете новый сайт\сервис визуально?

    Jeer
    @Jeer
    уверенный пользователь
    Есть три уровня:
    Простой - блокнот и карандаш
    Средний - неспециализированные проги (пэйнт, фотошоп, кто во что горазд)
    Сложный - специализированные проги, например, Adobe XD (требует немного умений)

    Позволяет делать прекрасные вещи, когда необходимы какие-нибудь многошаговые мастеры, у которых много шагов/ветвлений, где-то переплетаются и т.д. Например, создание пропуска - много условий, много ветвлений (пешеход/машина, лично/доверенное лицо) у которых свои ветки. Позволяет программисту разжевать сложный алгоритм лучше, чем блок схемы.
    Подойдёт так же для создания макетов страниц с переходами, насколько я понял - ваш случай.
    Ответ написан
    Комментировать
  • Как отправлять email-сообщенияc html шаблоном из asp.net core?

    Jeer
    @Jeer
    уверенный пользователь
    Если asp.net core, то вы можете хранить шаблоны в cshtml с передачей типизированных моделей для писем и всем сопутствующим.
    Если дёргать прям вручную, то нужно что-то типа:
    var path = "...";
    var text = File.ReadAllText(path);
    var param = new Dictionary<string, string>
    {
     param1 = "koko"
    };
    
    var templateService = new TemplateService();//RazorEngine.Templating
    var emailHtmlBody = templateService.Parse(templateText, param, null, null);


    Хотя говорят, что TemplateService устарел, нужно юзать что-то от RazorEngineService
    Ответ написан
    Комментировать
  • Как это работает "без интернета"?

    Jeer
    @Jeer
    уверенный пользователь
    К примеру, в ржд есть своя, отдельная от интернета, огромная локальная сеть. Фактически, рядом с путями висит оптоволокно. А железная дорога у нас, чёрт побери, на всю огромную страну. Такие здоровенные локальные сети называются интранетом. Ранее, когда интернет был дорогим и медленным, такими сетями покрывались отдельные многоквартирные дома. Затем целые районы. Это чтобы не ходить в компьютерные клубы )
    Ответ написан
    Комментировать
  • Есть ли сайт идей, где можно приложить свои умения в области web программирования?

    Jeer
    @Jeer
    уверенный пользователь
    Есть сервис от ФРИИ называется CofoundIt, посмотрите. Смысл в том, что там можно зарегистрироваться как разработчик, тогда будут присылаться приглашения от основателей стартапов, которым нужны ваши умения. То, что вас интересует
    https://edu.iidf.ru/cofoundit/
    Ответ написан
    Комментировать
  • В чём можно подготовить документацию перед разработкой проекта?

    Jeer
    @Jeer
    уверенный пользователь
    Привет!
    Насколько я понимаю, вас интересует не просто текстовая документация (соответственно, ворд не подходит), вас интересует в чем делается либо проектирование, либо моделирование информационных систем. Для разных уровней есть свои программные средства, к примеру, в институте проектированием баз данных мы занимались в программе ERWin. Аналогов масса. Но если брать уже какие-либо общие модели, то, так же в институте, мы работали с Rational Rose. А вот недавно я познакомился с SAP Power Designer. Как по мне - не очень удобно, но свои задачи решает. Собственно, там можно запроектировать БД - сразу же сделать скрипт для генерации базы. Затем можно составить структуру проекта с добавлением классов/интерфейсов, определения у них методов и т.д. Поддерживаются различные языки программирования (с ограничениями, например, поддерживается c# версии 2.0, хотя уже текущая версия 6), можно заливать как из программного кода в модель, так и из модели делать прегенерацию кода, но довольно-таки корявенько. Есть там, кажется, 9 видов моделей, как это варить читайте в интернетах. Мне для моделирования достаточно моделей базы данных, структуры программы с проектировкой интерфейсов.
    Ответ написан
    Комментировать
  • Как изменить кодировку?

    Jeer
    @Jeer
    уверенный пользователь
    через "Сохранить как" каждый файл
    Ответ написан
    Комментировать
  • Как развиваться .NET разработчику?

    Jeer
    @Jeer
    уверенный пользователь
    Для фулл стека в принципе должно хватать и разнообразия и чего читать/учить обычно вопросов не встаёт, всегда есть белые пятна. Как по мне, смена работы даёт максимальный прирост профессионального развития. Перейдите в другой проект и сразу найдутся ваши пробелы и закроется вопрос что читать и что учить.
    Ответ написан
    Комментировать
  • Полезные ресурсы, а лучше книги про Паттерны?

    Jeer
    @Jeer
    уверенный пользователь
    https://refactoring.guru/ru - отличный сайт, раскладывает по полочкам. Примеры на java
    Ответ написан
    Комментировать
  • Что читать по моделированию информационных систем?

    Jeer
    @Jeer
    уверенный пользователь
    Хорошая программа Sap Power Designer - попробуй поработать с ней, ну и посмотри под неё курсы
    Ответ написан
    Комментировать
  • В сторону какого ЯП для web смотреть с дальнейшей перспективой?

    Jeer
    @Jeer
    уверенный пользователь
    Приведу субъективное сравнение php и c#.
    Первое, это высокоуровневые языки и если брать разработку одну и ту же задачу можно сделать как на одном, так и на другом языке.
    Второе, как уже говорилось, на php написано большее количество сайтов (для стран СНГ), существует бОльшее сообщество и больше специалистов. Не надо думать, что это хорошо, из-за этого цена на специалиста ниже. Это хорошо для заказчиков, и именно из-за этого факта появляется куча заказов на фрилансе для php, так как нужно именно дёшево. Такие проекты обычно трепят уйму нервов и дают мало денег. Справедливости ради стоит сказать, что некоторые люди могут быть фрилансерами. Многие пробуют, но вот именно хорошо получается далеко не у всех.
    Про документацию было сказано, она уже давно избыточна для обоих языков (русскоязычная в том числе), на это даже не нужно смотреть.
    Если рассматривать какие-то корпоративные разработки. Когда тебя нанимает большая компания, ну или просто в офисе, то работы хватает всем. Вот сколько раз я менял работу, у меня никогда не возникало трудностей, специалистов не хватает. Так вот, по сути, ты будешь делать одну и ту же работу, что на php, что на c# (в разных конторах), но за эту работу на c# ты будешь получать больше денег.
    Вот мой аргумент в форме вопроса: "зачем делать одинаковую работу и получать за неё меньше денег"? Пиши на c#.
    Ответ написан
    Комментировать
  • Как запускать функцию после того как она отработала?

    Jeer
    @Jeer
    уверенный пользователь
    В конце функции помести
    setTimeout(createFruit, 1000);
    Ответ написан
    Комментировать
  • Есть какие-нибудь сайты, где люди с идеей объединяются/ищут "за бесплатно" людей для реализации проекта?

    Jeer
    @Jeer
    уверенный пользователь
    https://edu.iidf.ru сайт, на котором регистрируются основатели стартапов для создания команды. Например, можно зарегистрироваться как разработчик и тогда периодически будут приходить предложения от разных основателей, можно пообщаться и прибиться к кому-то в команду
    Ответ написан
    Комментировать
  • Порядок изучения C#?

    Jeer
    @Jeer
    уверенный пользователь
    Чтобы научиться программировать - нужно программировать :) Одними книгами сыт не будешь. Если у вас получается читать справочник Шилдта - это замечательно. Но обязательно при этом что-то делать своими руками. Например, есть пошаговые краткие руководства на метаните. Там пошагово представлены все требуемые темы, помимо самого шарпа у вас возникнет много непонятных областей, например про асинхронность или linq или про базу (база может быть написана на c#, либо созданные таблицы должны быть замапплены в c# классы, собственно, есть подход code first или db first). По таким небольшим вопросам обычно не здоровенные справочники, а мягкая обложка на 200-300 страниц, которые вполне проясняют многие непонятные моменты. Конечно, по базам и какому-нибудь wcf существуют тяжелые трактаты, но можно начать и без этого
    Ответ написан
    1 комментарий