Ответы пользователя по тегу C#
  • Возможно ли создать наследуемый класс из статического метода класса-предка?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    как вариант юзать рефлексию через caller member name

    пример для INotifyPropertyCahnged inotifypropertychanged without the backing fields

    дока
    msdn
    Ответ написан
    Комментировать
  • Можно ли как то использовать cvs файл как базу данных в asp.net?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    А разве стандартный драйвер Oledb от Excel'я не подходит?
    Ответ написан
    1 комментарий
  • Открыть полное изображение щёлкнув по миниатюре в отчёте. Как?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    Это очень популярный вопрос, ума не приложу как вы не нашли ответ на него в гугле
    Ответ написан
    1 комментарий
  • Что должен знать junior С#?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    Джун должен точно знать что не все в работе программиста - это программирование. Если вы можете легко и связно изъяснятся, понимаете цикл разработки (описание-согласование,разработка, тестирование, интеграция) приложения и умеете читать(!! дада, многое что нужно действительно прочитать и сделать именно так), то у вас уже есть 50% успеха.
    По программированию, то что вы можете прям быстро-быстро освоить:
    asp.net webforms + EF5+jquery
    WebForms -действительно очень старая технология на данный момент, все просто фанатеют и бегают как угорелые за ASP.NET MVC. Но въехать сразу что куда там и как, джуну будет сложно (некоторые мидлы тяжко переваривают, хотя как по мне так все просто там, не зря ж модели основанные на MVC самые распространненные в мире : MVC, MVVM, MVP, MVT).
    С EF особо не извращайтесь (например с полной моделью дб). Возьми(те?) EF6 + code first, например, "хау ту" из гугла, и пройдитесь по мануалу. Создав приложение например, которое создает-отображает-модифицирует-удаляет записи из бд, открывайте Management Studio и смотрите что у вас получилось в бд. Напишите запросы на выборку данных соединенных из двух таблиц
    Если после проведенных действий вы уже можете написать запросы INSERT, SELECT, UPDATE, DELETE, то уже хорошо, никто не будет от вас ждать глубоких знаний SQL, но и теряться при виде хоть мало мальски сложно запроса нельзя. Плюс как сказал Станислав Макаров, нужно знать что такое транзакции и с чем их есть.
    У вас уже не должно вызывать ужас в глазах, приложение которое может это все делать и вы ориентируетесь в его коде. По asp.net'у научились использовать n-ое количество контролов: открываете список всех webforms контролов и прям по списку берете каждый и используете. Если вы будете представлять что есть такие-то и такие-то контролы, то вам будет легче не городить адовые конструкции из таблиц и всяких повторителей.
    По самому .NET: один из самых популярных вопросов "что появилось в .net версии %version%?" Поэтому чтобы не потерятся при ответе на такой вопрос, гуглите примерно так
    • Что появилось в .NET 2.0
    • Что появилось в .NET 3.0
    • Что появилось в .NET 4.0
    • Что появилось в .NET 4.5


    Еще очень популярная технология для шарпистов - это WCF. Если скилла написать простенький сервис не хватит, то хотя бы почитайте что это такое и с чем его едят.

    Из книжек, которые можно посоветовать одна из моих любимых это Троелсен. Достаточно качественно объясняет и легко чтобы сразу взять и въехать.

    Ну и плюс все что выше описали, достаточно хорошие советы. Походите по ссылкам, почитайте статьи, посмотрите курсы. И самое главное если вы еще не начали, то начинайте учить английский. Грамматика в первую очередь. Банально составлять предложения это ОЧЕНЬ ВАЖНО. Вас никто не поймет если вы будете писать по-русски английскими словами, а вы будете если не возьметесь за грамматику сразу, наравне с программированием.
    Ответ написан
    4 комментария
  • NLog возможна ли запись в один файл разными стилями?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    Да, указываете не minlevel, а levels в logger
    а в target конфигурируете layout

    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
                  layout="${longdate} ${uppercase:${level}} ${message}" />
    
        <logger name="*" levels="Debug" writeTo="f" />


    NLog wiki
    Layouts
    Layout renderers

    Ну еще куски NLog.xsd (из nuget'а можно поставить)
    <xs:attribute name="levels" type="NLogLevelList">
          <xs:annotation>
            <xs:documentation>Comma separated list of levels that this rule matches.</xs:documentation>
          </xs:annotation>
        </xs:attribute>
    
      <xs:simpleType name="NLogLevel">
        <xs:restriction base="xs:string">
          <xs:enumeration value="Off" />
          <xs:enumeration value="Trace" />
          <xs:enumeration value="Debug" />
          <xs:enumeration value="Info" />
          <xs:enumeration value="Warn" />
          <xs:enumeration value="Error" />
          <xs:enumeration value="Fatal" />
        </xs:restriction>
      </xs:simpleType>


    Минимальный пример:
    Пакеты в проекте:
    <packages>
      <package id="NLog" version="4.2.0" targetFramework="net452" />
      <package id="NLog.Config" version="4.2.0" targetFramework="net452" />
      <package id="NLog.Schema" version="4.0.0" targetFramework="net452" />
    </packages>


    Конфиг nlog:
    <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
          autoReload="true"
          throwExceptions="false"
          internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >
      <targets>
          <target xsi:type="File" name="debug" fileName="${basedir}/logs/${shortdate}.log" layout="DEBUG ${longdate} ${uppercase:${level}} ${message}" />
          <target xsi:type="File" name="info" fileName="${basedir}/logs/${shortdate}.log" layout="INFO ${longdate} ${uppercase:${level}} ${message}" />
          <target xsi:type="File" name="errors" fileName="${basedir}/logs/${shortdate}.log" layout="ERROR ${longdate} ${uppercase:${level}} ${message}" />
    
      </targets>
    
      <rules>
          <logger name="*" levels="Debug" writeTo="debug" />
          <logger name="*" levels="Info" writeTo="info" />
          <logger name="*" minlevel="Warn" writeTo="errors" />
      </rules>
    </nlog>


    Текст программы:

    using System;
    using NLog;
    
    namespace ConsoleSandboxApplication
    {
        class Program
        {
            private static readonly Logger _logger = LogManager.GetCurrentClassLogger();
    
            static void Main(string[] args)
            {
                try {
                    _logger.Debug("test debug message");
                    _logger.Info("some information about program in runtime");
                    throw new NotImplementedException("not implemented exception");
                }
                catch (Exception ex) {
                    _logger.Error(ex);
                }
            }
        }
    }


    Вывод в лог будет в этом случае таким:
    DEBUG 2015-11-10 09:49:55.7685 DEBUG test debug message
    INFO 2015-11-10 09:49:55.8275 INFO some information about program in runtime
    ERROR 2015-11-10 09:49:56.7916 ERROR System.NotImplementedException: not implemented exception
       at ConsoleSandboxApplication.Program.Main(String[] args) in S:\projects\other\ConsoleSandboxApplication\ConsoleSandboxApplication\Program.cs:line 20
    Ответ написан
  • Что почитать о том, как создать приложение клиент-сервер?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    Если вы хотите легкое и быстрое решение, то используйте WCF с типом привязки TCP binding. Если нужно не стандартное, то соединение на уровне сокетов.
    Ответ написан
    Комментировать
  • Могу ли я создать текстбоксы в зависимости от запроса?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик

    А в коде пишете:
    var query = yourAsQueryableObject;
    query.Select(t=>new TextBox(){Text=t.Name}).ToList().ForEach(TargetPanel.Contorls.Add);

    смысл примерно такой, реализация же у вас будет отличаться
    Ответ написан
    Комментировать
  • NHibernate или Entity Framework?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    Да простят меня адепты NHibernate, но, ИМХО, выгодно он ничем не отличается. Может разве провайдерами к БД. Если вы только начинаете использовать ORM то смело берите EF5 и выше. Инфы предостаточно, и проблем с использованием не будет никаких. Можно почитать сравнение ef6 и nh4 здесь.
    Ответ написан
    Комментировать
  • Как улучшить знания по .NET?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    По IIS для работы без головоной боли достаточно с карандашом пройтись по статье .
    Ответ написан
    Комментировать
  • Для типа «ИмяТипа» не определен конструктор при переопределении класса?

    IamKarlson
    @IamKarlson
    ASP(?).NET, SQL-разработчик
    MSDN дает четко понять что вы не можете обращаться к этим классам, и тем более наследоваться от них
    Ответ написан
    Комментировать