LoveRead.info » Книги » Разная литература » Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен

Книгу Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

178 0 18:04, 26-08-2023
Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен
26 август 2023

Книга Язык программирования C#9 и платформа .NET5 - Эндрю Троелсен читать онлайн бесплатно без регистрации

В 10-м издании книги описаны новейшие возможности языка C# 9 и .NET 5 вместе с подробным "закулисным" обсуждением, призванным расширить навыки критического мышления разработчиков, когда речь идет об их ремесле. Книга охватывает ASP.NET Core, Entity Framework Core и многое другое наряду с последними обновлениями унифицированной платформы .NET, начиная с улучшений показателей производительности настольных приложений Windows в .NET 5 и обновления инструментария XAML и заканчивая расширенным рассмотрением файлов данных и способов обработки данных. Все примеры кода были переписаны с учетом возможностей последнего выпуска C# 9.

    1 ... 251 252 253 254 255 256 257 258 259 ... 407
    Перейти на страницу:
    N'Steve', N'Hagen')

    INSERT INTO [dbo].[Customers] ([Id], [FirstName], [LastName])

     VALUES (4, N'Pat', N'Walton')

    INSERT INTO [dbo].[Customers] ([Id], [FirstName], [LastName])

     VALUES (5, N'Bad', N'Customer')

    SET IDENTITY_INSERT [dbo].[Customers] OFF

    Добавление тестовых записей в таблицу Orders

    Теперь добавьте данные в таблицу Orders. Откройте окно нового запроса, введите следующую команду SQL и щелкните на кнопке Run (или нажмите <F5>):

    USE [AutoLot]

    GO

    SET IDENTITY_INSERT [dbo].[Orders] ON

    INSERT INTO [dbo].[Orders] ([Id], [CustomerId], [CarId]) VALUES (1, 1, 5)

    INSERT INTO [dbo].[Orders] ([Id], [CustomerId], [CarId]) VALUES (2, 2, 1)

    INSERT INTO [dbo].[Orders] ([Id], [CustomerId], [CarId]) VALUES (3, 3, 4)

    INSERT INTO [dbo].[Orders] ([Id], [CustomerId], [CarId]) VALUES (4, 4, 7)

    SET IDENTITY_INSERT [dbo].[Orders] OFF

    Добавление тестовых записей в таблицу CreditRisks

    Финальный шаг связан с добавлением данных в таблицу CreditRisks. Откройте окно нового запроса, введите следующую команду SQL и щелкните на кнопке Run (или нажмите <F5>):

    USE [AutoLot]

    GO

    SET IDENTITY_INSERT [dbo].[CreditRisks] ON

    INSERT INTO [dbo].[CreditRisks] ([Id], [FirstName], [LastName],

      [CustomerId]) VALUES (1,

    N'Bad', N'Customer', 5)

    SET IDENTITY_INSERT [dbo].[CreditRisks] OFF

    На этом создание базы данных AutoLot завершается. Конечно, она очень далека от базы данных реального приложения, но будет успешно удовлетворять всем нуждам текущей главы, а также добавляться в главах, посвященных Entity Framework Core. Располагая тестовой базой данных, можно приступить к погружению в детали, касающиеся модели фабрики поставщиков данных ADO.NET.

    Модель фабрики поставщиков данных ADO.NET

    Модель фабрики поставщиков данных .NET Core позволяет строить единую кодовую базу, используя обобщенные типы доступа к данным. Чтобы разобраться в реализации фабрики поставщиков данных, вспомните из табл. 21.1, что все классы внутри поставщика данных являются производными от тех же самых базовых классов, определенных внутри пространства имен System.Data.Common:

    • DbCommand — абстрактный базовый класс для всех классов команд;

    • DbConnection — абстрактный базовый класс для всех классов подключений;

    • DbDataAdapter — абстрактный базовый класс для всех классов адаптеров данных;

    • DbDataReader — абстрактный базовый класс для всех классов чтения данных;

    • DbParameter — абстрактный базовый класс для всех классов параметров;

    • DbTransaction — абстрактный базовый класс для всех классов транзакций.

    Каждый поставщик данных, совместимый с .NET Core, содержит класс, производный от System.Data.Common.DbProviderFactory. В этом базовом классе определено несколько методов, которые извлекают объекты данных, специфичные для поставщика. Вот члены класса DbProviderFactory:

    public abstract class DbProviderFactory

    {

      public virtual bool CanCreateDataAdapter { get;};

      public virtual bool CanCreateCommandBuilder { get;};

      public virtual DbCommand CreateCommand();

      public virtual DbCommandBuilder CreateCommandBuilder();

      public virtual DbConnection CreateConnection();

      public virtual DbConnectionStringBuilder CreateConnectionStringBuilder();

      public virtual DbDataAdapter CreateDataAdapter();

      public virtual DbParameter CreateParameter();

      public virtual DbDataSourceEnumerator CreateDataSourceEnumerator();

    }

    Чтобы получить производный от DbProviderFactory тип для вашего поставщика данных, каждый поставщик предоставляет статическое свойство, используемое для возвращения корректного типа. Для возвращения версии SQL Server поставщика DbProviderFactory применяйте следующий код:

    // Получить фабрику для поставщика данных SQL.

    DbProviderFactory sqlFactory =

        Microsoft.Data.SqlClient.SqlClientFactory.Instance;

    Чтобы сделать программу более универсальной, вы можете создать фабрику DbProviderFactory, которая возвращает конкретную разновидность DbProviderFactory на основе настройки в файле appsettings.json для приложения. Вскоре вы узнаете, как это делать, а пока после получения фабрики для поставщика данных можно получить связанные с ним объекты данных (например, объекты подключений, команд и чтения данных).

    Полный пример фабрики поставщиков данных

    В качестве завершенного примера создайте новый проект консольного приложения C# (по имени DataProviderFactory), которое выводит инвентарный список автомобилей из базы данных AutoLot. В начальном примере логика доступа к данным будет жестко закодирована прямо в сборке DataProviderFactory.exe (чтобы излишне не усложнять код). По мере изучения материалов настоящей главы вы узнаете более эффективные способы решения задачи.

    Начните с добавления нового элемента ItemGroup и пакетов Microsoft.Extensions.Configuration.Json, System.Data.Common, System.Data.Odbc, System.Data.OleDb и Microsoft.Data.SqlClient в файл проекта:

    dotnet add DataProviderFactory package Microsoft.Data.SqlClient

    dotnet add DataProviderFactory package System.Data.Common

    dotnet add DataProviderFactory package System.Data.Odbc

    dotnet add DataProviderFactory package System.Data.OleDb

    dotnet add DataProviderFactory package Microsoft.Extensions.Configuration.Json

    Определите символ условной компиляции PC (в случае применения Windows):

    <PropertyGroup>

      <DefineConstants>PC</DefineConstants>

    </PropertyGroup>

    Далее добавьте новый файл по имени DataProviderEnum.cs и модифицируйте его код, как показано ниже:

    namespace DataProviderFactory

    {

      // OleDb поддерживается только в Windows, но не в .NET Core.

      enum DataProviderEnum

      {

        SqlServer,

     #if PC

        OleDb,

    #endif

        Odbc

      }

    }

    Добавьте в проект новый файл JSON по имени appsettings.json и измените его содержимое следующим образом (обновите строки подключения в соответствии с имеющейся средой):

    {

      "ProviderName": "SqlServer",

      //"ProviderName": "OleDb",

      //"ProviderName": "Odbc",

      "SqlServer": {

        // Для localdb используйте @"Data Source=(localdb)

        // mssqllocaldb;Integrated Security=true;

         Initial Catalog=AutoLot"

         "ConnectionString": "Data Source=.,5433;User Id=sa;Password=P@ssw0rd;Initial

           Catalog=AutoLot"

      },

      "Odbc": {

        // Для localdb используйте @"Driver={ODBC Driver 17 for SQL Server};

        Server=(localdb)mssqllocaldb;Database=AutoLot;Trusted_Connection=Yes";

          "ConnectionString": "Driver={ODBC Driver 17 for SQL Server};

        Server=localhost,5433;

          Database=AutoLot;UId=sa;Pwd=P@ssw0rd;"

      },

      "OleDb": {

        // Для localdb используйте @"Provider=SQLNCLI11;

        // Data Source=(localdb)mssqllocaldb;Initial

         Catalog=AutoLot;Integrated Security=SSPI"),

         "ConnectionString": "Provider=SQLNCLI11;Data Source=.,5433;

           User Id=sa;Password=P@ssw0rd;

         Initial Catalog=AutoLot;"

      }

    }

    Сообщите MSBuild о необходимости копировать файл JSON в выходной каталог при каждой компиляции. Модифицируйте файл проекта, как показано ниже:

    <ItemGroup>

      <None Update="appsettings.json">

        <CopyToOutputDirectory>Always</CopyToOutputDirectory>

      </None>

    </ItemGroup>

    На заметку! Элемент CopyToOutputDirectory чувствителен к наличию пробельных символов. Убедитесь, что пробелы вокруг слова Always отсутствуют.

    Теперь, располагая подходящим

    1 ... 251 252 253 254 255 256 257 258 259 ... 407
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Людмила Хофман Людмила Хофман10 июнь 22:13 У меня перевернулся мир после прочтения ваших книг! Так приятно и чисто на душе, ведь по сути неважно кто с кем , а только любовь... Долгая игра - Рейчел Рид
    2. Анна Анна08 июнь 11:28 Спасибо за новую историю жизни и любви на сайте,прочитала с удовольствием .... Давай поженимся - Юлия Резник
    3. Елена Елена08 июнь 11:13 Прочла несколько романов этого, без сомнения, талантливого автора. Впечатление прекрасное, но хотелось бы когда-нибудь прочесть... Предатель. Ты врал мне годами - Арина Арская
    Все комметарии
    Новинки бесплатной онлайн библиотеки