
- •1. Сборщик мусора и управление ресурсами
- •2. Жизненный цикл объектов
- •3. Неуправляемый код и указатели
- •4. Строки и строковый пул
- •5. Обобщенные типы, ограничения в параметрах обобщенных типов, типы допускающие null значение
- •6. Тип Type и пространство System.Reflection
- •7. Создание объектов с помощью рефлексии, вызов методов объектов средствами рефлексии
- •8. Атрибуты, жизненный цикл объекта атрибута
- •9. Специальные атрибуты net.Framework и ограничения пользовательских атрибутов
- •10. Метаданные сборок, структура сборок, домены приложений
- •11. Многопоточное программирование. Виды многопоточности, обеспечение многопоточности в net.Framework, виды блокировки
- •12. Класс Thread, логические и физические потоки выполнения, жизненный цикл потока выполнения
- •13. Класс монитора, конструкция lock()
- •14. Атомарная синхронизация и класс Interlocked
- •15. Класс ReaderWriterLock, пул потоков
- •16. Классы WaitHandle и производные от него: ManualResetEvent, AutoResetEvent, Mutex
- •17. Высокоуровневые средства распараллеливания задач, класс Task
- •18. Свойства и методы класса Task
- •19. Делегаты, цепочка вызова
- •Групповая адресация
- •20. Асинхронный вызов с помощью объекта делегата
- •IAsyncResult
- •21. События, обратный вызов, типовая схема реализации события
- •22. Лямбда-выражения, замыкание лямбда-выражений
- •23. Деревья выражений, типы деревьев. Создание деревьев выражений
- •24. Технология ado.Net, архитектура, модель с постоянным соединением и с рассоединением
- •Linq to DataSet
- •Linq to sql
- •Платформа ado.Net Entity Framework
- •Службы wcf Data Services
- •25)Понятие поставщика данных и его составные части в ado.Net. Класс соединения, итератора, команды.
- •26. Технология объектно-реляционного связывания, персистентные объекты, на примере одной из технологии (Linq to sql, Linq to Entities, nHibernate)
- •Entity Framework
- •27. Linq to Objects: архитектура технологии и возможности, понятие итератора, создание Linq запросов
- •28. Средства распараллеливания выполнения запросов plinq.
- •29. Основы wcf. Основные понятия, применение. Контракты данных, привязки. Архитектура сервис-ориентированных систем.
- •1) Библиотека с интерфейсом
- •2) Сервер – консольное приложение
- •3) Клиент – консольное приложение
- •30. Структура проекта с использованием wcf сервисов. Интерфейсы сервиса, атрибуты для обозначения методов сервиса и контрактов данных.
- •1) Библиотека с интерфейсом
- •2) Сервер – консольное приложение
- •3) Клиент – консольное приложение
- •31. Методы и свойства прокси-объекта на стороне клиента.
- •32. Развертывание wcf сервисов.
1) Библиотека с интерфейсом
namespace CommunicationInterface
{
[ServiceContract] // Говорим WCF что это интерфейс для запросов сервису
public interface IMyObject
{
[OperationContract] // Делегируемый метод.
string GetCommandString(int i);
}
}
2) Сервер – консольное приложение
namespace CommunicationInterface
{
public class MyObject : IMyObject
{
public string GetCommandString(int i)
{
switch (i)
{
case 1:// TODO: Реализация старта выполнения ваших команд
return "Начало обработки";
case 0:// TODO: Реализация остановки выполнения ваших команд
return "Конец обработки";
default:// TODO: Выполнение какой-либо вашей команды
return "Получил " + i.ToString();
}
}
}
}
namespace Server
{
class Program
{
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(MyObject), new Uri("http://localhost:1050/TestService"));
host.AddServiceEndpoint(typeof(IMyObject), new BasicHttpBinding(), "");
host.Open();
Console.WriteLine("Сервер запущен");
Console.ReadLine();
host.Close();
}
}
}
3) Клиент – консольное приложение
namespace Client
{
[ServiceContract]
public interface IMyObject
{
[OperationContract]
string GetCommandString(int i);
}
class Program
{
static void Main(string[] args)
{
Uri tcpUri = new Uri("http://localhost:1050/TestService");
EndpointAddress address = new EndpointAddress(tcpUri);
BasicHttpBinding binding = new BasicHttpBinding();
ChannelFactory<IMyObject> factory = new ChannelFactory<IMyObject>(binding, address);
IMyObject service = factory.CreateChannel();
Console.WriteLine("Вызываю метод сервиса...?");
}
}
}
Пример 2
[ServiceContract]
interface MyUserService
{
[OperationContract]
UserDetails GetUserDetails(int userId);
}
and then for the data:
[DataContract]
class UserDetails
{
[DataMember]
int userId { get; set; }
[DataMember]
string userName { get; set; }
}
30. Структура проекта с использованием wcf сервисов. Интерфейсы сервиса, атрибуты для обозначения методов сервиса и контрактов данных.
Пример 1
1) Библиотека с интерфейсом
namespace CommunicationInterface
{
[ServiceContract] // Говорим WCF что это интерфейс для запросов сервису
public interface IMyObject
{
[OperationContract] // Делегируемый метод.
string GetCommandString(int i);
}
}
2) Сервер – консольное приложение
namespace CommunicationInterface
{
public class MyObject : IMyObject
{
public string GetCommandString(int i)
{
switch (i)
{
case 1:// TODO: Реализация старта выполнения ваших команд
return "Начало обработки";
case 0:// TODO: Реализация остановки выполнения ваших команд
return "Конец обработки";
default:// TODO: Выполнение какой-либо вашей команды
return "Получил " + i.ToString();
}
}
}
}
namespace Server
{
class Program
{
static void Main(string[] args)
{
ServiceHost host = new ServiceHost(typeof(MyObject), new Uri("http://localhost:1050/TestService"));
host.AddServiceEndpoint(typeof(IMyObject), new BasicHttpBinding(), "");
host.Open();
Console.WriteLine("Сервер запущен");
Console.ReadLine();
host.Close();
}
}
}