воскресенье, 27 октября 2019 г.
понедельник, 21 октября 2019 г.
soa
В сервисной архитектуре сложность поддержки растёт экспоненциально с количеством сервисов. Я дам вам инструмент, который позволит значительно замедлить рост этой сложности. Мы поговорим, что можно считать платформой для межсервисного взаимодействия, как она может уже сейчас помочь вам решить проблемы с «наблюдаемостью» сервисов и увеличить надёжность системы, уменьшить объем рутины и снизить Time To Market.
Обсудим плюсы и минусы актуальных протоколов прикладного уровня. Расскажу, почему gRPC — «не вариант», и с какими проблемами вы столкнётесь, если начнёте его использовать.
Доклад будет интересен как тем, кто только начинает свой путь в SOA, так и тем, кто уже хорошо знаком с инструментами OpenAPI, Swagger, gRPC, protobuf. Авторизация запросов, трассировка и логирование, A/B-тестирование, сегментация фич — как получить всё то, что так легко давалось нам в монолите?
Обсудим плюсы и минусы актуальных протоколов прикладного уровня. Расскажу, почему gRPC — «не вариант», и с какими проблемами вы столкнётесь, если начнёте его использовать.
Доклад будет интересен как тем, кто только начинает свой путь в SOA, так и тем, кто уже хорошо знаком с инструментами OpenAPI, Swagger, gRPC, protobuf. Авторизация запросов, трассировка и логирование, A/B-тестирование, сегментация фич — как получить всё то, что так легко давалось нам в монолите?
четверг, 17 октября 2019 г.
Predicate
https://stackoverflow.com/questions/14297633/c-sharp-pass-lambda-expression-as-method-parameter
public static void Method(Expression<Func<int, bool>> predicate) {
int[] number={1,2,3,4,5,6,7,8,9,10};
var newList = from x in number
.Where(predicate.Compile()) //here compile your clausuly
select x;
newList.ToList();//return a new list
}
Calling method
Method(v => v.Equals(1));
public List<IJob> getJobs(/* i want to pass the lambda expr in here */) {
using (SqlConnection connection = new SqlConnection(getConnectionString())) {
connection.Open();
return connection.Query<FullTimeJob, Student, FullTimeJob>(sql,
(job, student) => {
job.Student = student;
job.StudentId = student.Id;
return job;
},
splitOn: "user_id",
param: parameters).ToList<IJob>();
}
public string Name {get;set;}
public static List<Class> GetList(Expression<Func<Class, bool>> predicate)
{
List<Class> c = new List<Class>();
c.Add(new Class("name1"));
c.Add(new Class("name2"));
var f = from g in c.
Where (predicate.Compile())
select g;
f.ToList();
return f;
}
Calling method
Class.GetList(c=>c.Name=="yourname");
понедельник, 14 октября 2019 г.
Serialization/DeSerialization List
https://stackoverflow.com/questions/608110/is-it-possible-to-deserialize-xml-into-listt
https://docs.microsoft.com/ru-ru/dotnet/standard/serialization/controlling-xml-serialization-using-attributes
private void Serialize<T>(XDocument doc, List<T> paramList)
{
var serializer = new System.Xml.Serialization.XmlSerializer(paramList.GetType());
var writer = doc.CreateWriter();
serializer.Serialize(writer, paramList);
writer.Close();
}
private List<T> Deserialize<T>(XDocument doc)
{
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(List<T>));
var reader = doc.CreateReader();
var result = (List<T>)serializer.Deserialize(reader);
reader.Close();
return result;
}
https://docs.microsoft.com/ru-ru/dotnet/standard/serialization/examples-of-xml-serialization
https://docs.microsoft.com/ru-ru/dotnet/standard/serialization/controlling-xml-serialization-using-attributes
private void Serialize<T>(XDocument doc, List<T> paramList)
{
var serializer = new System.Xml.Serialization.XmlSerializer(paramList.GetType());
var writer = doc.CreateWriter();
serializer.Serialize(writer, paramList);
writer.Close();
}
private List<T> Deserialize<T>(XDocument doc)
{
var serializer = new System.Xml.Serialization.XmlSerializer(typeof(List<T>));
var reader = doc.CreateReader();
var result = (List<T>)serializer.Deserialize(reader);
reader.Close();
return result;
}
https://docs.microsoft.com/ru-ru/dotnet/standard/serialization/examples-of-xml-serialization
Подписаться на:
Сообщения (Atom)