рд╕реНрдЯрд░реНрд▓рд┐рдВрдЧ NoSQL OODB рдПрдХ рд╣рд▓реНрдХрд╛ NoSQL рдСрдмреНрдЬреЗрдХреНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╣реИ рдЬрд┐рд╕реЗ .NET 4.0, рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ 4/5 рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди 7 рдкрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрд╡рд╕рд░реЛрдВ
- рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ (рдЕрдиреНрдп рд╕рд░рд▓ рдпрд╛ рдЬрдЯрд┐рд▓ рд╡рд╕реНрддреБрдУрдВ рд╕рд╣рд┐рдд, рдЬрд┐рд╕рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ рдЗрддрдиреЗ рдкрд░ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ)ред рджреЛрдиреЛрдВ рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╕рдВрд░рдЪрдирд╛рдПрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреА рд╣реИрдВред
- рджреЛрдиреЛрдВ рдХреНрд╖реЗрддреНрд░реЛрдВ рдФрд░ рдЧреБрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
- рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░, рд╕рдВрдкрддреНрддрд┐ рдпрд╛ рдлрд╝реАрд▓реНрдб рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдкрд░ рд░реЛрдХ рд▓рдЧрд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдкрд░рд┐рдкрддреНрд░ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪ рдХреНрд╖рдорддрд╛ред
- рдореЗрдореЛрд░реА рдореЗрдВ DB рдкреНрд░рдХрд╛рд░ред
- рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ-рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕реНрдерд╛рдиреАрдп рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреЗрдЯрд╛ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рд╕рд╛рдорд╛рдиреНрдп рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдордХреНрдЦреА рдкрд░ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
- рд╕рд░рд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди: рдЖрдк рдХреБрдВрдЬреА рдЖрд╡рдВрдЯрди рдХреЗ рд▓рд┐рдП рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рдХрд╛рд░, рдХреБрдВрдЬреА рдкреНрд░рдХрд╛рд░ рдФрд░ рд▓рдВрдмреЛ рдПрдХреНрд╕рдкреНрд░реЗрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ - рдФрд░ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рд╡рд┐рд╡рд░рдг рдореЗрдВ рдЙрдирдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЗрдВрдЯрд░рдлреЗрд╕ рдпрд╛ рдЕрдореВрд░реНрдд рд╡рд░реНрдЧреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╕рдордп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреА рдмрдЪрддред
- рдкреВрд░реНрдг рд╡рд┐рджреЗрд╢реА рдХреБрдВрдЬреА рд╕рдорд░реНрдерди - рдмрдЪреНрдЪреЗ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдПрдХ рдмрд╛рдЗрдирд░реА рд╕реАрд░рд┐рдпрд▓рд╛рдЗрдЬрд╝рд░ рдЬреЛ JSON, XML, рдФрд░ рдЗрд╕реА рддрд░рд╣ рд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
- рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╕рдорд░реНрдердиред
- рд╕рдВрдкреАрдбрд╝рди рд╕рдорд░реНрдердиред
- рд╕рднреА CRUD рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди: рд▓реЛрдбрд┐рдВрдЧ, рдмрдЪрдд (рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ), рд╡рд┐рд▓реЛрдкрди, рд╕рдВрд░реЗрдЦрдг рдФрд░ рдкреВрд░реНрдг рд╢реВрдиреНрдпрдХрд░рдгред
- рд╡рд┐рднрд╛рдЬрди рдФрд░ / рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐ рдЖрд╡реЗрджрди рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╕рдорд░реНрдерди: рдореВрд▓, рдЕрд╢рдХреНрдд, рддрд╛рд░, рдмрд╛рдЗрдЯ рд╕рд░рдгрд┐рдпрд╛рдБ, рдбреЗрдЯрд╛рдЗрдо, рдЯрд╛рдЗрдорд╕реНрдкреИрди, рдЧрд╛рдЗрдб, рдЧрдгрдирд╛ (рдПрдирдо), рджрд╢рдорд▓рд╡, рд╕реВрдЪрд┐рдпрд╛рдБ, рд╢рдмреНрджрдХреЛрд╢, рд╕рд░рдгрд┐рдпрд╛рдБ, WritableBitmapред
- рдХрд╕реНрдЯрдо рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд▓рд┐рдЦрдиреЗ рд╡рд╛рд▓реЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рдЕрдиреБрдХреНрд░рдорд┐рдд рдФрд░ рдХреБрдВрдЬрд┐рдпреЛрдВ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП Linq рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред
- рд╡рд┐рд▓рдВрдмрд┐рдд (рдЖрд▓рд╕реА) рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛ред
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреИрд╢рд┐рдВрдЧред
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмреИрдХрдЕрдк рдФрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐ред
- "рдмрдЪрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ", "рдмрдЪрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж" рдФрд░ "рд╣рдЯрд╛рдиреЗ" рдЬреИрд╕реА рдШрдЯрдирд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдХреБрдВрдЬреА рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдмрдВрдзреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред
- DLL рдХрд╛ рд╡рдЬрди 100 рдХреЗрдмреА рд╕реЗ рдХрдо рд╣реЛрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдорд╛рди рд▓реАрдЬрд┐рдП рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдЬрд╛рддрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ:
enum FeedingType {
Herbivore,
Carnivore,
Omnivore
}
class Feeding {
public FeedingType Type { get ; set ; }
public TimeSpan DefaultInterval { get ; set ; }
}
class Animal {
public Guid Key { get ; set ; }
public string Name { get ; set ; }
public TimeSpan LifeExpectancy { get ; set ; }
public Feeding Supply { get ; set ; }
}
* This source code was highlighted with Source Code Highlighter .
рддрджрдиреБрд╕рд╛рд░, рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╢реБ рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдВрдЧреЗред
рдЕрдм рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
class BiologyDatabaseInstance: BaseDatabaseInstance {
public const string INDEX_ANIMAL_NAME = "idx_animal_name" ;
public override string Name { get { return "BiologyDb" ; } }
protected override List <ITableDefinition> RegisterTables () {
// - .
return new List <ITableDefinition> {
CreateTableDefinition<Animal, Guid > (animal => animal.Key)
.WithIndex<Animal, string , Guid > (INDEX_ANIMAL_NAME, animal => animal.Name)
};
}
}
* This source code was highlighted with Source Code Highlighter .
рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЯреЗрдмрд▓ рд╣реЛрдЧреА рдЬрд┐рд╕рдореЗрдВ рдЯрд╛рдЗрдк рдЧрд╛рдЗрдб рдХреА рдХреБрдВрдЬреА рд╣реЛрдЧреА рдФрд░ рд╡реНрдпреВ рдХреЗ рдирд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдбреЗрдХреНрд╕ рд╣реЛрдЧрд╛ред
рдЕрдм рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
var engine = new SterlingEngine ();
engine.Activate();
var databaseInstance = engine.SterlingDatabase.RegisterDatabase<BiologyDatabaseInstance> (
new FileSystemDriver ( "C:/Temp/Animals/" ));
* This source code was highlighted with Source Code Highlighter .
рд╡рд╣ рд╕рдм рд╣реИред рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдХрд╛рд░реНрдп рдХреЙрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рдереЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
var catId = databaseInstance.Save ( new Animal {
Key = Guid .NewGuid (),
LifeExpectancy = TimeSpan .FromDays (365 * 15),
Name = "Cat" ,
Supply = new Feeding {
Type = FeedingType.Carnivore,
DefaultInterval = TimeSpan .FromHours (12)
}
});
var cat = databaseInstance.Load<Animal> (catId);
var orderedAnimals = databaseInstance
.Query<Animal, string , Guid > (BiologyDatabaseInstance.INDEX_ANIMAL_NAME)
.OrderBy (x => x.Index)
.Select (x => x.LazyValue.Value);
* This source code was highlighted with Source Code Highlighter .
рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЦрддреНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдкрдЯрд╛рди () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
рд╕реВрддреНрд░реЛрдВ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ