Диаграмма классов как логическое представление структуры разрабатываемой системы. Понятие класса в контексте объектно-ориентированного анализа и проектирования. Синтаксис записи атрибутов и операций классов в нотации языка UML 2. Понятие интерфейса и его графическое изображение. Основные отношения на диаграмме классов и их графическая нотация. Ассоциация и ее специальные формы. Примеры построения диаграмм классов в проектах UML 2.
A União Europeia está preocupada com o impacto da inteligência artificial no mercado de trabalho. Estudos mostram que muitos empregos podem ser automatizados nos próximos anos, mas também que novos empregos serão criados. A UE está trabalhando em novas políticas para garantir que os benefícios da IA sejam compartilhados amplamente e que os trabalhadores possam se adaptar às mudanças tecnológicas.
1) Uma mãe leva seu filho de 3 anos para visitar sua irmã recém-nascida na UTI neonatal, contra as regras do hospital.
2) Quando o menino canta para a irmã, a saúde dela começa a melhorar de forma surpreendente.
3) No dia seguinte, a bebê já estava se recuperando e recebeu alta da UTI em poucos dias, sendo considerado um "milagre".
Este documento expresa el orgullo y apego de los residentes de Gualeguaychu por su ciudad y su deseo de continuar viviendo allí, disfrutando de las actividades y espacios que ofrece como tomar mate en el parque, jugar en la playa, pescar, caminar en la naturaleza, entre otras. También destaca la importancia de defender la tierra y la cultura local ante posibles amenazas para preservar el derecho de los residentes a vivir de acuerdo a sus costumbres.
El documento discute varios temas relacionados con el medio ambiente incluyendo la globalización, el consumismo, las acciones empresariales y las tecnologías y su impacto en el deterioro del medio ambiente. También aborda la educación ambiental, la protección de parques y reservas, y la necesidad de lograr un desarrollo más sustentable y una sociedad más responsable con el medio ambiente.
Este documento expresa el orgullo y apego de los residentes de Gualeguaychu por su ciudad y su deseo de continuar viviendo allí, disfrutando de las actividades y espacios que ofrece como tomar mate en el parque, caminar por las calles, jugar en la playa, pescar, y cuidar la naturaleza. También destaca la importancia de defender la tierra que aman y los derechos de la gente a vivir de la manera que quieren.
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
Наша команда в DevExpress недавно выпустила Preview версию нового продукта, RTF web-редактора – ASPxRichEdit.
Продукт требует высокой отзывчивости на действия пользователя и максимальной производительности. Поэтому клиент получился «толстым» в отличие от «тонких клиентов» большинства бизнес-приложений.
В составе продукта два полнофункциональных компонента - клиентский и серверный текстовые процессоры. Оба компонента работают независимо друг от друга. Клиентская часть создавалась как оптимизированная версия серверного компонента, переписанного с .NET на TypeScript.
Клиентская часть не уступает в сложности серверной. Кроме того, возникают дополнительные проблемы синхронизации состояний моделей на клиенте и сервере и глубокого тестирования клиент-серверного взаимодействия.
В этом докладе вы узнаете, как мы разрабатывали этот продукт, какие проблемы встретили и какие методики тестирования использовали.
Диаграмма классов как логическое представление структуры разрабатываемой системы. Понятие класса в контексте объектно-ориентированного анализа и проектирования. Синтаксис записи атрибутов и операций классов в нотации языка UML 2. Понятие интерфейса и его графическое изображение. Основные отношения на диаграмме классов и их графическая нотация. Ассоциация и ее специальные формы. Примеры построения диаграмм классов в проектах UML 2.
A União Europeia está preocupada com o impacto da inteligência artificial no mercado de trabalho. Estudos mostram que muitos empregos podem ser automatizados nos próximos anos, mas também que novos empregos serão criados. A UE está trabalhando em novas políticas para garantir que os benefícios da IA sejam compartilhados amplamente e que os trabalhadores possam se adaptar às mudanças tecnológicas.
1) Uma mãe leva seu filho de 3 anos para visitar sua irmã recém-nascida na UTI neonatal, contra as regras do hospital.
2) Quando o menino canta para a irmã, a saúde dela começa a melhorar de forma surpreendente.
3) No dia seguinte, a bebê já estava se recuperando e recebeu alta da UTI em poucos dias, sendo considerado um "milagre".
Este documento expresa el orgullo y apego de los residentes de Gualeguaychu por su ciudad y su deseo de continuar viviendo allí, disfrutando de las actividades y espacios que ofrece como tomar mate en el parque, jugar en la playa, pescar, caminar en la naturaleza, entre otras. También destaca la importancia de defender la tierra y la cultura local ante posibles amenazas para preservar el derecho de los residentes a vivir de acuerdo a sus costumbres.
El documento discute varios temas relacionados con el medio ambiente incluyendo la globalización, el consumismo, las acciones empresariales y las tecnologías y su impacto en el deterioro del medio ambiente. También aborda la educación ambiental, la protección de parques y reservas, y la necesidad de lograr un desarrollo más sustentable y una sociedad más responsable con el medio ambiente.
Este documento expresa el orgullo y apego de los residentes de Gualeguaychu por su ciudad y su deseo de continuar viviendo allí, disfrutando de las actividades y espacios que ofrece como tomar mate en el parque, caminar por las calles, jugar en la playa, pescar, y cuidar la naturaleza. También destaca la importancia de defender la tierra que aman y los derechos de la gente a vivir de la manera que quieren.
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NETGoSharp
Наша команда в DevExpress недавно выпустила Preview версию нового продукта, RTF web-редактора – ASPxRichEdit.
Продукт требует высокой отзывчивости на действия пользователя и максимальной производительности. Поэтому клиент получился «толстым» в отличие от «тонких клиентов» большинства бизнес-приложений.
В составе продукта два полнофункциональных компонента - клиентский и серверный текстовые процессоры. Оба компонента работают независимо друг от друга. Клиентская часть создавалась как оптимизированная версия серверного компонента, переписанного с .NET на TypeScript.
Клиентская часть не уступает в сложности серверной. Кроме того, возникают дополнительные проблемы синхронизации состояний моделей на клиенте и сервере и глубокого тестирования клиент-серверного взаимодействия.
В этом докладе вы узнаете, как мы разрабатывали этот продукт, какие проблемы встретили и какие методики тестирования использовали.
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеAlexander Byndyu
В докладе рассматривается использование популярных фреймворков в разработке ASP.NET MVC приложения, как сделать его наиболее гибким. Будет затронута тема минимизации дублирования и повторное использование кода, применение методов метапрограммирования отображений; уменьшение логики в контроллерах; применение принципов SOLID и GRASP для разработки доменной модели приложения.
По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Asp_net_mvc_kak_postroit_gibkoe_web_prilozenie
GraphQL API: Patterns | Андрей Чиж | Zlit TechZlit
Это некий список шаблонов, подходов и рекомендаций при разработке API (включая опыт, ошибки из реальной жизни, как не упустить задел на будущее etc), который можно рассматривать как определенный "code style" для API.
Любая команда в любой компании открывает этот доклад / репозиторий в гитхаб и проектирует крутой API без детских ошибок, с легкой возможностью раcширять функционал и в котором учтены потребности бекенда и фронтенда.
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2496.html
В своем выступлении я расскажу про то, как библиотека бумажных книг в нашей компании переехала в онлайн и причем тут react native. Погружаясь в архитектуру этой технологии я постараюсь дать представление о том, что можно выжать из нее и где заканчиваются ее возможности. Разберем потоки в приложении, возможные проблемы и все это на таких простых примерах как ActivityIndicator.
Если у вас еще не дошли руки до react native, но всегда хотели разобраться - приходите обязательно! Из моего доклада вы сможете, как минимум, получить представление об этой технологии.
19.10 - WebPromo SEO Day - "SEO-автоматизатор: кто он?" - Владислав МоргунVladislav Morgun
19 октября я выступил с докладом на онлайн-конференции SEO day, которую организовала Академия Интернет-маркетинга Webpromoexperts.
В своем докладе я рассказал о том, кто такой SEO-автоматизатор и как им стать. Поговорили о том зачем он нужен в продуктовой команде, какие навыки нужны и как их получить. А также об идеях автоматизации и примерах их реализации.
Уменьшение влияния человеческого фактора при разработке бизнес приложенийngrebnev
В этом докладе мы постараемся рассказать о принципах разработки инструментов для написания бизнес-логики, позволяющих сократить количество ошибок. Речь пойдет о нескольких практиках, принятых в отделе технологического развития нашей компании. Принципы будут проиллюстрированы на примере инструментария компании для платформы Microsoft .NET.
Максимум статических проверок. Под статическими проверками мы понимаем проверки времени компиляции. Этот принцип является важным, но, к сожалению, зачастую недооценивается разработчиками инструментария разработки. Проверки времени компиляции могут отлавливать большой спектр ошибок. Есть и другая особенность – это удобство. Ошибки времени исполнения сложнее воспринимаются, труднее найти причину ошибки.
Разнообразие и декларативность проверок. Проверки общего назначения удобно задавать в декларативном виде. При этом сами проверки должен осуществлять фреймворк. За счет уменьшения дублирования и декларативности снижается вероятность ошибок. Проверки должны быть, как техническими, так и уровня доменной модели. Мы будем говорить о проверках уровня доменной модели.
Возможность анализа декларативных проверок. Любые ограничения порождают некоторую модель. Эту модель (проверки) можно формально верифицировать. Вообще, проблема доказательства большинства свойств программы невозможна. Этот вопрос выходит далеко за рамки нашего доклада. Но существует возможность верификации более слабых (менее выразительных моделей).
Во второй части мы обсудим функционал, который мы называем "состояния". Эти "состояния" образуют что-то вроде автомата, или структуру Крипке. Так вот, существуют алгоритмы проверки выполнимости темпоральных логик на таких структурах.
Презентация мастер-класса "Создание динамических пользовательских интерфейсов и AJAX-приложений промышленного класса с помощью Dojo Toolkit и Zend Framework"
Расширяем идею статического анализа от проверки кода до других процессов разр...Andrey Karpov
Давайте расширим восприятие методологии статического анализа до других процессов, помимо проверки исходного кода программ. Идею статического анализа, можно использовать не только поиск ошибок, запахов или некорректного форматирования. Взглянем на это с точки зрения фиксации уже имеющиеся знаний команды по уже решенным задачам. Например, можно фиксировать опыт подготовки статей для публикации, написания разделов документации. Кстати, здесь есть повод поговорить и об машинном обучении, которое может само выявить определённые закономерности.
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиковMskDotNet Community
2017-12-16 MskDotNet Субботник
Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. Мы расскажем, как.NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на.NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.
Фофанов Илья - Лучшие практики проектирования и реализации API на C#Elias Fofanov
C# – мощный и красивый объектно-ориентированный язык. Но мощь сама по себе не гарантирует, что всё написанное вами на C# будет эталоном. "Кривой" код встречается даже у опытных программистов, особенно если они пришли с других языков и платформ . И ладно бы некрасивости были связаны с реальными сложностями. Нет же! Кривизна возникает и в таких простых вещах, как именование элементов в соответствии со спецификацией языка C#. Многие не умеют выбрать между структурой и классом, не отличают команду от запроса и так далее. Если хотите, чтобы коллеги любили ваш код – этот вебинар для вас! Мы разберем:
- Принципы именования классов, переменных и т.д.
- Как выбрать между классом и структурой.
- Как выбрать между абстрактным классом и интерфейсом.
- Как выбрать между методом и свойством.
- Чего не стоит делать в конструкторе.
- Когда фабрика лучше конструктора.
- Как реализовать паттерн Dispose.
- Признак «одержимости примитивами».
- Скрытые зависимости.
- Нарушения закона Деметры.
- ВременнАя связанность.
- Когда хорош Switch-Case.
В первую очередь вебинар будет полезен:
– начинающим со знанием основ C# (без минимального знакомства с языком не все будет понятно),
– тем, кто переходит на C# с другого языка.
В некоторых разделах даже middle-девелоперы могут найти для себя что-то новое.
ASP.NET MVC - как построить по-настоящему гибкое веб-приложениеAlexander Byndyu
В докладе рассматривается использование популярных фреймворков в разработке ASP.NET MVC приложения, как сделать его наиболее гибким. Будет затронута тема минимизации дублирования и повторное использование кода, применение методов метапрограммирования отображений; уменьшение логики в контроллерах; применение принципов SOLID и GRASP для разработки доменной модели приложения.
По материалам конференции .NET разработчиков http://www.dotnetconf.ru/Materialy/Asp_net_mvc_kak_postroit_gibkoe_web_prilozenie
GraphQL API: Patterns | Андрей Чиж | Zlit TechZlit
Это некий список шаблонов, подходов и рекомендаций при разработке API (включая опыт, ошибки из реальной жизни, как не упустить задел на будущее etc), который можно рассматривать как определенный "code style" для API.
Любая команда в любой компании открывает этот доклад / репозиторий в гитхаб и проектирует крутой API без детских ошибок, с легкой возможностью раcширять функционал и в котором учтены потребности бекенда и фронтенда.
Где кончается react native? / Павел Кондратенко (Rambler&Co)Ontico
РИТ++ 2017, Frontend Сonf
Зал Мумбаи, 5 июня, 11:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2496.html
В своем выступлении я расскажу про то, как библиотека бумажных книг в нашей компании переехала в онлайн и причем тут react native. Погружаясь в архитектуру этой технологии я постараюсь дать представление о том, что можно выжать из нее и где заканчиваются ее возможности. Разберем потоки в приложении, возможные проблемы и все это на таких простых примерах как ActivityIndicator.
Если у вас еще не дошли руки до react native, но всегда хотели разобраться - приходите обязательно! Из моего доклада вы сможете, как минимум, получить представление об этой технологии.
19.10 - WebPromo SEO Day - "SEO-автоматизатор: кто он?" - Владислав МоргунVladislav Morgun
19 октября я выступил с докладом на онлайн-конференции SEO day, которую организовала Академия Интернет-маркетинга Webpromoexperts.
В своем докладе я рассказал о том, кто такой SEO-автоматизатор и как им стать. Поговорили о том зачем он нужен в продуктовой команде, какие навыки нужны и как их получить. А также об идеях автоматизации и примерах их реализации.
Уменьшение влияния человеческого фактора при разработке бизнес приложенийngrebnev
В этом докладе мы постараемся рассказать о принципах разработки инструментов для написания бизнес-логики, позволяющих сократить количество ошибок. Речь пойдет о нескольких практиках, принятых в отделе технологического развития нашей компании. Принципы будут проиллюстрированы на примере инструментария компании для платформы Microsoft .NET.
Максимум статических проверок. Под статическими проверками мы понимаем проверки времени компиляции. Этот принцип является важным, но, к сожалению, зачастую недооценивается разработчиками инструментария разработки. Проверки времени компиляции могут отлавливать большой спектр ошибок. Есть и другая особенность – это удобство. Ошибки времени исполнения сложнее воспринимаются, труднее найти причину ошибки.
Разнообразие и декларативность проверок. Проверки общего назначения удобно задавать в декларативном виде. При этом сами проверки должен осуществлять фреймворк. За счет уменьшения дублирования и декларативности снижается вероятность ошибок. Проверки должны быть, как техническими, так и уровня доменной модели. Мы будем говорить о проверках уровня доменной модели.
Возможность анализа декларативных проверок. Любые ограничения порождают некоторую модель. Эту модель (проверки) можно формально верифицировать. Вообще, проблема доказательства большинства свойств программы невозможна. Этот вопрос выходит далеко за рамки нашего доклада. Но существует возможность верификации более слабых (менее выразительных моделей).
Во второй части мы обсудим функционал, который мы называем "состояния". Эти "состояния" образуют что-то вроде автомата, или структуру Крипке. Так вот, существуют алгоритмы проверки выполнимости темпоральных логик на таких структурах.
Презентация мастер-класса "Создание динамических пользовательских интерфейсов и AJAX-приложений промышленного класса с помощью Dojo Toolkit и Zend Framework"
Расширяем идею статического анализа от проверки кода до других процессов разр...Andrey Karpov
Давайте расширим восприятие методологии статического анализа до других процессов, помимо проверки исходного кода программ. Идею статического анализа, можно использовать не только поиск ошибок, запахов или некорректного форматирования. Взглянем на это с точки зрения фиксации уже имеющиеся знаний команды по уже решенным задачам. Например, можно фиксировать опыт подготовки статей для публикации, написания разделов документации. Кстати, здесь есть повод поговорить и об машинном обучении, которое может само выявить определённые закономерности.
Нещодавно відбувся Online TechTalk “Flutter Mobile Development”!
Під час заходу спікери розібрали, що таке Flutter, та навіщо використовувати саме його. Також поговорили про основні принципи та підходи до розробки на Flutter, його перспективи та найпопулярніші аплікації зроблені на ньому.
Деталі та відео заходу: https://bit.ly/3mKszBR
Дмитрий Сошников Искусственный интеллект и нейросети для .NET-разработчиковMskDotNet Community
2017-12-16 MskDotNet Субботник
Искусственный интеллект сейчас является одной из самых обсуждаемых тем и главным двигателем цифровой трансформации бизнеса. Стратегия Microsoft в области ИИ включает в себя демократизацию ИИ для разработчиков, т.е. предоставление простых в использовании фреймворков и сервисов для решения интеллектуальных задач. Мы расскажем, как.NET-разработчики могут использовать возможности ИИ в своих проектах: начиная от готовых когнитивных сервисов, работающих в облаке, заканчивая обучением нейросетей на.NET-языках и запуском сложных нейросетевых моделей на компактных устройствах типа Raspberry Pi.
Фофанов Илья - Лучшие практики проектирования и реализации API на C#Elias Fofanov
C# – мощный и красивый объектно-ориентированный язык. Но мощь сама по себе не гарантирует, что всё написанное вами на C# будет эталоном. "Кривой" код встречается даже у опытных программистов, особенно если они пришли с других языков и платформ . И ладно бы некрасивости были связаны с реальными сложностями. Нет же! Кривизна возникает и в таких простых вещах, как именование элементов в соответствии со спецификацией языка C#. Многие не умеют выбрать между структурой и классом, не отличают команду от запроса и так далее. Если хотите, чтобы коллеги любили ваш код – этот вебинар для вас! Мы разберем:
- Принципы именования классов, переменных и т.д.
- Как выбрать между классом и структурой.
- Как выбрать между абстрактным классом и интерфейсом.
- Как выбрать между методом и свойством.
- Чего не стоит делать в конструкторе.
- Когда фабрика лучше конструктора.
- Как реализовать паттерн Dispose.
- Признак «одержимости примитивами».
- Скрытые зависимости.
- Нарушения закона Деметры.
- ВременнАя связанность.
- Когда хорош Switch-Case.
В первую очередь вебинар будет полезен:
– начинающим со знанием основ C# (без минимального знакомства с языком не все будет понятно),
– тем, кто переходит на C# с другого языка.
В некоторых разделах даже middle-девелоперы могут найти для себя что-то новое.
This document discusses optimizing SQL queries. It provides examples of optimizing query structure and syntax for improved performance, including using indexes, joins, views and functions. Key topics covered include schema normalization, query planning, and parameterization. Recommended books and online resources on SQL optimization are also listed.
The document discusses the capabilities and evolution of the Silverlight web application framework. It provides a history of Silverlight from versions 1.0 through 2.0, outlining new features and capabilities added at each stage such as support for additional controls, layouts, data binding, media playback and networking. It also covers the development, deployment and user experiences provided by Silverlight and compares it to other technologies throughout different eras of web and application development.
21. User Experience в ПО, как выйти на новый уровень ? Преимущества для пользователя Интерактивность Оптимизация под форм факторы Читабельность Производительность – GPU Красота - эмоциональность Преимущества для разработчика Простота разработки Универсальность работы с графикой & Media Богатство возможностей платформы Инструментарий Windows Vista Office 2007 Эффект UX Мотивация Продуктивность Удовлетворенность Положительные эмоции Повторное использование
31. Property Engine Input / Eventing System .NET Framework 2.0 Desktop Windows Manager Media Integration Layer DirectX Windows Vista Display Driver (LDDM) Windows Media Foundation Composition Engine Print Spooler Managed Unmanaged Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES Packaging Services XPS Documents Animation 2D 3D Audio Imaging Text Video Effects Composition Engine MEDIA INTEGRATION LAYER Controls Layout Windows Presentation Foundation XPS Viewer
32. Архитектура WPF Application Services Deployment Services Databinding USER INTERFACE SERVICES XAML Accessibility Property System Input & Eventing BASE SERVICES DOCUMENT SERVICES Packaging Services XPS Documents Animation 2D 3D Audio Imaging Text Video Effects Composition Engine MEDIA INTEGRATION LAYER Controls Layout
33.
34.
35. WCF & WWF &CardSpace .NET 3.0 Part 2 Следующая пятница!
40. Language Integrated Query LINQ to Entities LINQ To SQL LINQ to XML C# VB.Net Others… LINQ To Dataset LINQ To Objects LINQ-enabled ADO.NET
41. Query Expressions var L = new List <Person> { new Person{ Name= "Vasya" , Age= 16 , Speciality= 1 }, new Person{ Name= "Petya" , Age= 20 , Speciality= 2 }, new Person{ Name= "Kolya" , Age= 20 , Speciality= 1 } }; var Spec = new List <Speciality> { new Speciality{Code= 1 , Title= "Math" }, new Speciality{Code= 2 , Title= "CS" } }; var res = from x in L where x.Age> 16 select x.Name; var res = from s in L join sp in Spec on s.Speciality equals sp.Code select new { s.Name, sp.Title }; var res2 = from s in L group s by s.Speciality into g select new { SpecCode=g.Key, NoOfStudents = g.Count(), Students = from x in g select x };
42. Query Expressions — синтаксис from id in source { from id in source | join id in source on expr equals expr [ into id ] | let id = expr | where condition | orderby ordering , ordering , … } select expr | group expr by key [ into id query ] Начинается с from 0 или более from , join , let , where или orderby Заканчивается select или group by into позволяет продолжить запрос
43. Операции Ограничение Where Проекция Select, SelectMany Упорядочивание OrderBy, ThenBy Группировка GroupBy Joins Join, GroupJoin Квантификация Any, All Разбиение Take, Skip, TakeWhile, SkipWhile Множественные Distinct, Union, Intersect, Except Выбор элементов First, Last, Single, ElementAt Агрегирование Count, Sum, Min, Max, Average Преобразование ToArray, ToList, ToDictionary Приведение типов OfType<T>, Cast<T>
44.
45. Доступ к реляционным данным var result = from x in students select { x.Name, AvgGrade = (int) ( from g in grades where g.STUD_ID == x.STUD_ID select g).Average(g=>g.GRADE) } var db = new StudDbDataContext(connStr); var students = db.GetTable <STUDENT> (); var grades = db.GetTable <GRADES> ();
46. Доступ к данным сегодня и завтра SqlConnection c = new SqlConnection(connStr); c.Open(); SqlCommand cmd = new SqlCommand( @ "SELECT s.Name, s.Group FROM Students s WHERE s.Speciality = @p0" ); cmd.Parameters.AddWithValue( "@p0" , “1“ ); DataReader dr = c.Execute(cmd); while (dr.Read()) { StudList.Add( new Student(dr.GetString(0), dr.GetInt(1))); } dr.Close(); var db = new StudDbDataContext(connStr); var students = db.GetTable <STUDENT> (); var StudList = from s in students where s.Speciality=1 select new Student(s.Name, s.Group);
47.
48.
49. Список всех студентов: сегодня var xdoc = new XmlDocument (); xdoc.Load( "students.xml" ); foreach ( XmlElement x in xdoc.SelectNodes( "//Students/Student" )) { int s=0, n=0; foreach ( XmlElement y in x.SelectNodes( "Grades/Grade" )) { n++; s += int.Parse(y.Attributes[ "Value" ].Value); } Console .WriteLine( "{0} -> {1}" , x.Attributes[ "Name" ].Value, s/n); }
50.
51. Генерация XML сегодня XmlDocument doc = new XmlDocument (); XmlElement students = doc.CreateElement( “students" ); foreach ( Student s in studentsList) { XmlElement e = doc.CreateElement( “student" ); XmlElement name = doc.CreateElement( "name" ); name.InnerText = s.Name; e.AppendChild(name); XmlElement group = doc.CreateElement( “group" ); group.InnerText = s.Group; e.AppendChild(group); students.AppendChild(e); } doc.AppendChild(students); <students> <student> <name>Petya</name> <group> 806 </group> </student> … </students> Императивная модель Ориентация на документ Нет встроенных запросов Требования к памяти
52. Генерация XML в XLinq var studs = new List <Student> { new Student {Name= "Vasya" , Age= 10 , Speciality= "CS" }, new Student {Name= "Petya" , Age= 1 6, Speciality= "Math" }}; var XDoc = new XDocument ( new XDeclaration ( "1.0" , "utf-8" , "yes" ), new XComment ( "Student List" ), new XElement ( "Students" , from x in studs select new XElement ( "Student" , new XAttribute ( "Name" , x.Name), new XAttribute ( "Age" , x.Age)))); Console .WriteLine(Xdoc); <!--Student List--> < Students > < Student Name= "Vasya" Age= "10" /> < Student Name= "Petya" Age= "16" /> </ Students >
53.
54.
55.
56.
57.
58. .NET 3.0 и LINQ Константин Кичинский [email_address] http://zelo-stroi.livejournal.com