სატარიფო გეგმის ოსტატი majordomo-დან. კარგი ბონუსები ჰოსტინგის პროვაიდერისგან Majordomo

XML-თან მუშაობა .NET-ში

კომპიუტერული მეცნიერება, კიბერნეტიკა და პროგრამირება

ლექცია 8. XML-თან მუშაობა .NET გეგმაში 1. XML .NET-თან მუშაობის გაკვეთილები 2. Xml მონაცემთა ნაკადების კითხვა და წერა 2.1. XmlReader 2.2 კლასის გამოყენება. მონაცემთა წაკითხვის მეთოდები 2.3. მონაცემთა ტიპების კონტროლი XML დოკუმენტის კითხვისას 3. XML დოკუმენტის შექმნა ში Ვიზუალური სტუდია 1. კლასები XML .NET ბევრი

უკრაინული

ლექცია 8. XML-თან მუშაობა .NET-ში

Გეგმა

1. კლასები სამუშაოდ XML. NET

2.1. კლასის გამოყენებით XmlReader

2.2. მონაცემთა წაკითხვის მეთოდები

Xml დოკუმენტი

1. კლასები სამუშაოდ XML. NET

NET ტექნოლოგიის მრავალი კომპონენტი განუყოფლად არის დაკავშირებული XML-თან. ეს ნიშნავს, რომ XML კარგად არის მხარდაჭერილი Framework Class ბიბლიოთეკის მიერ. შემდეგი ტექნოლოგიები მხარდაჭერილია .NET-ში:

  1. XML 1.0
  2. XML სახელთა სივრცეები
  3. XSD სქემები
  4. XPath გამონათქვამები
  5. XSL გარდაქმნები
  6. DOM დონე 1 ბირთვი, DOM დონე 2 ბირთვი

ოთხშაბათი. NET Framework არა მხოლოდ საშუალებას გაძლევთ გამოიყენოთ XML-ში შექმნილი აპლიკაციები, მაგრამ ის ასევე იყენებს მას კონფიგურაციის ფაილებში, დოკუმენტაციაში საწყისი კოდიდა შეკრების მანიფესტში.

მაგალითი 1: შეკრების მანიფესტი

კლასები სამუშაოდ XML სახელთა სივრცეში შეგროვებულისისტემა. Xml . ეს სივრცე იტვირთება კლასებთან ერთად, რომლებიც შეიძლება გამოყენებულ იქნას მონაცემთა დასამუშავებლად XML.

ცხრილი 1. მონაცემთა წაკითხვისა და ჩაწერის ძირითადი კლასები XML

XmlReader

აბსტრაქტული კლასი, რომელიც ახორციელებს კითხვას და უზრუნველყოფს არაქეშირებული მონაცემების სწრაფ მიწოდებას XML . კლასი არის ცალმხრივი პარსერი

XmlWriter

აბსტრაქტული კლასი, რომელიც წერს მონაცემებს ნაკადის ან ფაილის სახით

XmlTextReader

აფართოებს კლასის შესაძლებლობებს XmlReader . უზრუნველყოფს ცალმხრივი ნაკადის წვდომას მონაცემებზე XML

XmlTextWtiter

აფართოებს კლასის შესაძლებლობებს Xml. დამწერი XML

ცხრილი 2. მონაცემთა დამუშავების ზოგიერთი კლასი XML

XmlNode

აბსტრაქტული კლასი, რომელიც წარმოადგენს ერთ კვანძს XML - დოკუმენტი. ძირითადი კლასი სხვა კლასებისთვის

Xmlდოკუმენტი

აფართოებს XmlNode კლასს . წარმოადგენს განხორციელებას DOM მიერ W 3 C . გთავაზობთ ხეების ხედს XML - დოკუმენტი მეხსიერებაში ნავიგაციისა და რედაქტირების შესაძლებლობებით

XmlNavigator

უზრუნველყოფს ნავიგაციას დოკუმენტში

XMLDataDocument

ემსახურება როგორც ხიდს მონაცემთა საწყობებსა და მათში შენახულ რელაციურ მონაცემებს შორისმონაცემთა ნაკრები

2. წაიკითხეთ და ჩაწერეთ მონაცემთა ნაკადები Xml

ოთხშაბათი. NET Framework მხარს უჭერს დამუშავების ორ მეთოდს XML -დოკუმენტები: ნაკადის შეყვანა/გამომავალი და DOM . აბსტრაქტული კლასები XmlReader, XmlWriter და მათგან მიღებული კლასები მხარს უჭერენ ნაკადის I/O მოდელს.

კლასები ეფუძნება XmlReader უზრუნველყოფს სწრაფად ცალმხრივი კურსორი, რომელიც აწყობს მონაცემთა ნაკადს XML დასამუშავებლად.

XmlReader-დან იქმნება შემდეგი კლასები:

XmlWriter-ის მიერ იქმნება შემდეგი კლასები:

XmlTextWriter

აფართოებს კლასის შესაძლებლობებს Xml. მწერალი . უზრუნველყოფს ცალმხრივი ძაფის სწრაფ გამომუშავებას XML

XmlQueryOutput

აფართოებს კლასის შესაძლებლობებს Xml. მწერალი, უზრუნველყოფს XSLT ტრანსფორმაციების შედეგების საჩვენებლად საჭირო ფუნქციონირება.

მონაცემებთან მუშაობისთვის, თითოეული კლასი უზრუნველყოფს საჭირო მეთოდებს.

2.1. კლასის გამოყენებით XmlReader

მონაცემთა წაკითხვის მაგალითი XML ფაილიდან. მონაცემები ინახება ფაილში"book2.xml" და წარმოადგენს წიგნის კატალოგის აღწერას:

მსოფლიოს ქვეყნები

Წიგნის კლუბი

ხარკოვი

380

$4.00

ვინდოუსში მუშაობის საიდუმლოებები

დევიდ მაკკორმიკი

ხარკოვი

300

$5.20

კომპიუტერის შერჩევა და განახლება

მიხაილ კუტუზოვი

პეტერბურგი - მოსკოვი

320

$6.30

3D მაქს

კალი მერდოკი

კიევი - მოსკოვი

1050

$10.95

სისტემა <span>პროგრამირება</span>დელფი

ვოლკოვი ანდრეი

მოსკოვი

800

$10.95

როგორ ავაშენოთ საკუთარი კომპიუტერი

ჯონ კასლი

მოსკოვი

300

$6.90

დფსდფდფსდფ

sdfsdf

ფივავაივა

234

$12.8

შევქმნათ ფორმა ორი ღილაკით და ტექსტური რედაქტორით (richTextBox1), რომელშიც განვათავსებთ წაკითხულ მონაცემებს.

როდესაც დააჭირეთ ღილაკს ReadXml კითხვა და ანალიზი მიმდინარეობს XML -ჩაწერეთ და გადაიტანეთ ტექსტის რედაქტორში. დამმუშავებელი ReadXML_Click ღილაკები:

პირადი void ReadXML_Click(ობიექტის გამგზავნი, EventArgs e)

// ფაილის წაკითხვა

RichTextBox1.Clear(); //რედაქტორის გასუფთავება

XmlReader rdr = XmlReader .Create("book2.xml" );//rdr ობიექტის შექმნა

while (rdr.Read())

if (rdr.NodeType == XmlNodeType .ტექსტი)

RichTextBox1.AppendText(rdr.Value +"\r\n");

XmlReader კლასი არის აბსტრაქტული, ანუ ასეთი კლასებისთვის თქვენ არ შეგიძლიათ შექმნათ ობიექტები ოპერატორის გამოყენებითახალი . იმისათვის, რომ ის იყოს გამოსაყენებელი, ის უნდა შეიცავდეს სტატიკური მეთოდებს.

ეს დამმუშავებელი იყენებს სტატიკურ მეთოდსᲨექმნა რომელიც აბრუნებს ობიექტს XmlReader. შემდგომი while მარყუჟში იკითხება ფაილის თითოეული ხაზი. როგორც კითხულობთ, ქონება შემოწმებულია NodeType . თუ კვანძი ტექსტური კვანძია, მისი შინაარსი ემატება ტექსტის რედაქტორს.

2.2. მონაცემთა წაკითხვის მეთოდები

კლასები სამუშაოდ XML გთავაზობთ გადაადგილების რამდენიმე გზას XML - დოკუმენტი. მაგალითად, მეთოდიწაკითხვა () გადადის შემდეგ კვანძზე. შემდეგ შეგიძლიათ შეამოწმოთ აქვს თუ არა ამ კვანძს შინაარსი ( HasValue()) ან ატრიბუტები (YasAttributes()).

დოკუმენტების ანალიზის ძირითადი მეთოდები წარმოდგენილია ქვემოთ მოცემულ ცხრილში.

წაკითხვა ()

კითხულობს შემდეგ ჩანაწერს და გადააქვს შემდეგ კვანძში

HasValue ()

აბრუნებს true false წინააღმდეგ შემთხვევაში

HasAttributes ()

ასკანირებს ელემენტს ატრიბუტებისთვის. ბრუნდებამართალია თუ ელემენტს აქვს შინაარსი,ყალბი წინააღმდეგ შემთხვევაში

ReadStartElement ()

ამოწმებს არის თუ არა კვანძი ძირეული კვანძი და შემდეგ გადადის შემდეგ კვანძზე. თუ კვანძი არ არის ფესვი, ჩნდება გამონაკლისი XmlException.

IsStartElement ()

მეთოდის მსგავსი ReadStartElement ()

ReadString ()

დოკუმენტის შემცველი ფაილიდან ერთი სტრიქონის კითხვა

ReadElementString()

ReadString მეთოდის მსგავსი () გარდა იმისა, რომ თქვენ შეგიძლიათ გადასცეთ მას ელემენტის სახელი. თუ შემდეგი შინაარსის კვანძი არ არის საწყისი სახელური ან თუ პარამეტრისახელი არ ემთხვევა მიმდინარე კვანძის პარამეტრს, ჩნდება გამონაკლისი

MoveToContent()

ნავიგაცია კვანძის შინაარსზე

მაგალითი 2: ცალკეული ელემენტების ჩვენება XML დოკუმენტი

განვიხილოთ მეთოდის გამოყენება ReadElementString () და სხვა მეთოდები, ასევე ფაილის ნაკადების გამოყენება (ფაილიდან კითხვა).

არ დაგავიწყდეთ დაკავშირება System.IO-ს გამოყენებით;

დაამატეთ ღილაკი ფორმასწაიკითხეთ ფაილიდან. დამმუშავებლის კოდი იქნება შემდეგი:

პირადი void btmReadXml2_Click(ობიექტის გამგზავნი, EventArgs e)

//წიგნების მხოლოდ სათაურის წაკითხვა (ელემენტი "TITLE"

RichTextBox1.Clear();

FileStream fs = new FileStream("book2.xml" , FileMode .Open);

XmlReader rdr = XmlReader .Create(fs);

ხოლო (!rdr.EOF)

//თუ შევხვდებით ელემენტის ტიპს, შეამოწმეთ და ჩატვირთეთ ფანჯარაში

RichTextBox1.AppendText(rdr.ReadElementString() +"\r\n");

სხვა

// წინააღმდეგ შემთხვევაში - გადადით შემდეგ ჩანაწერზე

Rdr.Read();

ამ მაგალითში მარყუჟშიხოლო MoveToContent() მეთოდი გამოიყენება ტიპის კვანძის მოსაძებნად XmlNodeType . ელემენტი წიგნის სათაურით rdr.სახელი =="TITLE")

if (rdr.MoveToContent() == XmlNodeType .ელემენტი && rdr.Name == "TITLE" )

სკანირება ხორციელდება ფაილის ბოლომდე (მარყუჟის მდგომარეობა

ხოლო (!rdr.EOF)

თუ კვანძის ტიპი არ არის ელემენტი ან მისი სახელი არ ემთხვევა"TITLE" , მაშინ მეთოდი ეწოდებაწაიკითხეთ () შემდეგ კვანძზე გადასასვლელად. თუ შემდეგი კვანძი"TITLE " ნაპოვნია, მისი შინაარსი ემატება გამომავალ ფანჯარას. ამ გზით გამოჩნდება მხოლოდ წიგნის სათაურები.

2.3. კითხვისას მონაცემთა ტიპების კონტროლი Xml დოკუმენტი

XmlReader კლასი ასევე საშუალებას გაძლევთ წაიკითხოთ მონაცემები ძლიერი ტიპის შემოწმებით. ამისთვის გამოყენებული მეთოდები ReadElementContentAs ... ReadElementContentAsDouble(), ReadElementContentAsBoolean () და სხვა. ქვემოთ მოცემულია, თუ როგორ შეგიძლიათ წაიკითხოთ მნიშვნელობა ათობითი ფორმატში და განახორციელოთ გამოთვლები. მაგალითში არჩეულია საანგარიშო ფასის ღირებულება, რომელიც გაზრდილია 25%-ით.

შევქმნათ კიდევ ერთი ღილაკი წარწერითახალი ფასი და მის დამმუშავებელში ჩავწერთ კოდს:

პირადი void btnNewPrice_Click(ობიექტის გამგზავნი, EventArgs e)

//NewPrice ღილაკის დამმუშავებელი - ტიპის კონტროლი

RichTextBox1.Clear();

XmlReader rdr = XmlReader .Create("book2.xml" ); !}

while (rdr.Read())

if (rdr.NodeType == XmlNodeType .Element)

if (rdr.Name == "PRICE")

ათობითი ფასი = rdr.ReadElementContentAsDecimal();

RichTextBox1.AppendText("მიმდინარე ფასი = " + ფასი+ "\r\n" );

ფასი += ფასი * (ათწილადი )0,25;

RichTextBox1.AppendText("ახალი ფასი = " + ფასი + "\r\n\r\n" );

else if (rdr.Name== "TITLE")

RichTextBox1.AppendText(rdr.ReadElementContentAsString()+"\r\n");

rdr.Close();

თუ ამ მნიშვნელობის საჭირო ტიპზე კონვერტაცია შეუძლებელია, ჩნდება გამონაკლისი FormatException.

ჩვენ ვაგროვებთ და ვიწყებთ ჩვენს პროექტს.

შედეგად, ჩვენ ვიღებთ შეცდომის შეტყობინებას. მიზეზი ელემენტის ტექსტი ასე გამოიყურება:

< PRICE >$10.95

ჩვენ დავაფიქსირებთ ყველა ელემენტს< PRICE > 10.95,

და შეინახეთ დოკუმენტი სახელის ქვეშ("წიგნი 3 .xml");

შედეგად ვიღებთ:

3. XML დოკუმენტის შექმნა Visual Studio-ში

Visual Studio-ში XML ფაილის შესაქმნელად აირჩიეთ ახალი -> ფაილი მენიუდან File . შექმნის ფანჯარაში აირჩიეთ Xml ფაილი

Xml გაიხსნება -რედაქტორი, რომელშიც შეგიძლიათ შეიყვანოთ ელემენტები Xml . რედაქტორი ავტომატურად ამოწმებს შეცდომებს და ათავსებს დახურვის ტეგებს. შექმნილი ფაილის შენახვა შესაძლებელია დისკზე სასურველ ადგილას ბრძანებით SaveXmlFile. xml როგორც...


ისევე როგორც სხვა ნამუშევრები, რომლებიც შეიძლება დაგაინტერესოთ

25682. წვრილი ნაწლავი 57.5 კბ
4-კვირიან ემბრიონში ნაწლავის ეპითელური უჯრედები არ არის დიფერენცირებული და ხასიათდება მაღალი პროლიფერაციული აქტივობით. ამ დროს ენდოკრინოციტებს შორის ჭარბობს გარდამავალი უჯრედები არადიფერენცირებული გრანულებით, G უჯრედები და S უჯრედები; ნაყოფის პერიოდში ჭარბობს EC უჯრედები, რომელთა უმეტესობა არ უკავშირდება კრიპტის სანათურს. დახურული ტიპის; ჩნდება გვიან ნაყოფის პერიოდში ღია ტიპისუჯრედები. კრიპტები შეიცავს კამბიალურ ეპითელურ ელემენტებს და მათგან განმასხვავებელ უჯრედებს.
25683. მარილის მეტაბოლიზმი. 44.5 კბ
გარდა ამისა, ეს ქსოვილები მონაწილეობენ წყალ-მარილის მეტაბოლიზმში. ხრტილოვანი ქსოვილი არის სასუნთქი სისტემის ორგანოების ნაწილი, სახსრები, მალთაშუა დისკები და ა.შ. ახალი ხრტილოვანი ქსოვილი შეიცავს დაახლოებით 7080 წყალს, 1015 ორგანულ ნივთიერებას და 47 მარილს.
25684. ემბრიოგენეზი 239.5 კბ
ამავდროულად, ჩნდება ისეთი თვისებები, რომლებიც განასხვავებს ადამიანის განვითარებას სხვა ხერხემლიანთა განვითარებისგან. ადამიანის ემბრიონის საშვილოსნოსშიდა განვითარების პროცესი საშუალოდ გრძელდება 280 დღე და 10 მთვარის თვე. ადამიანის ემბრიონის განვითარება ჩვეულებრივ იყოფა 3 პერიოდად: საწყისი 1 კვირა ემბრიონული მე-2 მე-8 კვირა ნაყოფი განვითარების მე-9 კვირიდან ბავშვის დაბადებამდე.
25685. ეპითელური ქსოვილები. ზედაპირული ეპითელია 36 კბ
ეპითელური უჯრედების კვება დიფუზურად ხორციელდება სარდაფის მემბრანის მეშვეობით ქვემდებარე შემაერთებელი ქსოვილის მხრიდან, რომელთანაც ეპითელიუმი მჭიდრო ურთიერთქმედებაშია. უჯრედების ფორმის მიხედვით, რომლებიც ქმნიან ერთშრიან ეპითელიუმს, ეს უკანასკნელი იყოფა ბრტყელ ბრტყელ კუბურ და პრიზმულ სვეტებად. 1 ერთშრიანი ეპითელიუმი შეიძლება იყოს ერთრიგიანი ან მრავალმწკრივი. ასეთ ეპითელიუმს იზომორფულსაც უწოდებენ.
25686. სათესლე ჯირკვლები 60 კბ
პოსტნატალურ პერიოდში გონოციტები მრავლდებიან თესლის წარმოქმნის მილაკებში და გენიტალური ტვინების ეპითელიუმი რჩება დამხმარე უჯრედებად. ბაზალური ფენა, შიდა ბოჭკოვანი შრე, რომელიც მდებარეობს სპერმატოგენური ეპითელიუმის ორ სარდაფურ მემბრანასა და მიოიდური უჯრედებს შორის, შედგება კოლაგენური ბოჭკოების ქსელისგან. მიოიდური ფენის პირდაპირ მიმდებარედ არის არაუჯრედული ფენა, რომელიც წარმოიქმნება მიოიდური უჯრედების და კოლაგენური ბოჭკოების სარდაფის მემბრანის მიერ. მათ უკან არის ფენა, რომელიც შედგება ფიბრობლასტის მსგავსი უჯრედებისგან, ბაზალური...
25687. საკვერცხეები 58.5 კბ
განვითარების მე-3 თვიდან ოოგონიის დაახლოებით ნახევარი იწყებს დიფერენცირებას პირველი რიგის ოოციტად, მცირე ზრდის პერიოდი, რომელიც მდებარეობს მეიოზის პროფაზაში. დაბადების მომენტისთვის ოოგონიის რაოდენობა თანდათან მცირდება და დაახლოებით 45-ს შეადგენს უმეტესობაუჯრედები განიცდიან ატრეზიას; ეტაპი 2 არის ზრდის პერიოდი, რომელიც ხდება ფუნქციონირებულ საკვერცხეში და შედგება პირველადი ფოლიკულის 1-ლი რიგის კვერცხუჯრედის ტრანსფორმაციისგან სექსუალურ ფოლიკულში 1-ლი რიგის კვერცხუჯრედში. ეტაპი 3...
25688. მამრობითი რეპროდუქციული უჯრედები 40 კბ
მათი მოძრაობის სიჩქარე ადამიანებში არის 3050 μm, მიზანმიმართულ მოძრაობას ხელს უწყობს ქიმიოტაქსის მოძრაობა ქიმიური სტიმულისკენ ან მოშორებით და რიოტაქსის მოძრაობა სითხის ნაკადის საწინააღმდეგოდ. მამაკაცის რეპროდუქციული უჯრედები, სპერმატოზოიდები ან სპერმატოზოიდები, 70 მიკრონი სიგრძისაა და აქვთ თავი და კუდი. ადამიანის სპერმის ბირთვი შეიცავს 23 ქრომოსომას, რომელთაგან ერთი არის სქესობრივი X ან Y, დანარჩენი არის აუტოსომები.
25689. სისხლის სისტემის კონცეფცია. სისხლის წითელი უჯრედები 47 კბ
სისხლის სისტემა მოიცავს სისხლს, ჰემატოპოეზურ ორგანოებს, წითელ ძვლის ტვინს, თიმუსს, ელენთას, ლიმფურ კვანძებს, ლიმფოიდურ ქსოვილს, არაჰემატოპოეზურ ორგანოებს. სისხლის სისტემის ელემენტებს აქვთ საერთო წარმოშობა მეზენქიმიდან და სტრუქტურული და ფუნქციური მახასიათებლები ექვემდებარება ნეიროჰუმორული რეგულირების ზოგად კანონებს და გაერთიანებულია ყველა რგოლის მჭიდრო ურთიერთქმედებით. ამრიგად, პერიფერიული სისხლის მუდმივი შემადგენლობა შენარჩუნებულია ჰემატოპოეზის ახალი ფორმირებისა და სისხლის უჯრედების განადგურების დაბალანსებული პროცესებით.
25690. ᲡᲐᲨᲐᲠᲓᲔ ᲡᲘᲡᲢᲔᲛᲐ 41 კბ
მისი მილაკების სიგრძე 50 მმ-მდეა და ყველა ნეფრონი საშუალოდ დაახლოებით 100 კმ-ია. დარჩენილი 15 ნეფრონი განლაგებულია თირკმელში ისე, რომ მათი შერეული პროქსიმალური და დისტალური თირკმლის კორპუსკულები დევს ქერქში მედულას საზღვარზე. ამრიგად, თირკმელების ქერქი და მედულა წარმოიქმნება სამი ტიპის ნეფრონის სხვადასხვა ნაწილისგან. ქერქი შედგება თირკმლის კორპუსკულებისგან, ყველა სახის ნეფრონის შერეული პროქსიმალური და დისტალური მილაკებისგან.

.NET ბლოგში პირველ სტატიაში, „XML-თან მუშაობა“, კომენტარებში ხალხი მოითხოვდა სტატიას LINQ to XML-ზე. მოდით, შევეცადოთ გამოვავლინოთ ამის მოქმედების პრინციპები ახალი ტექნოლოგია Microsoft-ისგან.

მოდით შევქმნათ საფუძველი აუდიოჩანაწერების კატალოგის შესანარჩუნებლად. მონაცემთა ბაზა შედგება ტრეკებისგან:

  • სახელი
  • შემსრულებელი
  • ალბომი
  • ხანგრძლივობა
ჩვენ ვისწავლით როგორ დავამატოთ, დაარედაქტიროთ, წაშალოთ და გავაკეთოთ სხვადასხვა არჩევანი ჩვენი მონაცემთა ბაზიდან.

ჯერ შევქმნათ კონსოლის აპლიკაცია(ჩემს პროექტებს ვწერ C#-ზე, მაგრამ არსი ზოგადად ყველასთვის გასაგები იქნება) და დააკავშირე საჭირო სახელთა სივრცე

System.Xml.Linq-ის გამოყენებით;

XML ფაილების გენერირება

შევქმნათ XML ფაილიჩვენი მონაცემთა ბაზა შეიცავს რამდენიმე ტესტის ჩანაწერს LINQ-ის გამოყენებით:

//დააყენეთ გზა ჩვენი სამუშაო XML ფაილის string fileName = "base.xml"; //მრიცხველი ტრეკის ნომრისთვის int trackId = 1; //შექმნა წყობილი კონსტრუქტორებით. XDocument doc = new XDocument(new XElement("library", new XElement("track", new XAttribute("id", trackId++), new XAttribute("ჟანრი", "Rap"), new XAttribute("დრო", " 3:24"), ახალი XElement ("სახელი", "Who We Be RMX (feat. 2Pac)"), ახალი XElement ("მხატვარი", "DMX"), ახალი XElement ("ალბომი", "")), ახალი XElement ("ტრეკი", ახალი XAttribute ("id", trackId++), ახალი XAttribute ("ჟანრი", "რეპი"), ახალი XAttribute ("დრო", "5:06"), ახალი XElement ("სახელი", "Angel (ft. Regina Bell)"), ახალი XElement ("მხატვარი", "DMX"), ახალი XElement ("ალბომი", "...And then There Was X")), ახალი XElement ("ტრეკი", ახალი XAttribute ("id", trackId++), ახალი XAttribute ("ჟანრი", "Break Beat"), ახალი XAttribute ("დრო", "6:16"), ახალი XElement ("სახელი", "Dreaming Your Dreams") , ახალი XElement ("მხატვარი", "ჰიბრიდი"), ახალი XElement ("ალბომი", "ფართო კუთხე")), ახალი XElement("ტრეკი", ახალი XAttribute("id", trackId++), ახალი XAttribute("ჟანრი" , "Break Beat"), ახალი XAttribute ("დრო", "9:38"), ახალი XElement ("სახელი", "დასრულებული სიმფონია"), ახალი XElement ("მხატვარი", "ჰიბრიდი"), ახალი XElement(" ალბომი", "ფართო კუთხე")))); //შენახვა ჩვენი დოკუმენტი doc.Save(fileName);

ახლა, გაშვების შემდეგ, ჩვენი პროგრამის საქაღალდეში გამოჩნდება შემდეგი შინაარსის XML ფაილი:
Who We Be RMX (feat. 2Pac) DMX Dogz Mixtape: ვინ არის შემდეგი?! ანგელოზი (ფრთ. რეგინა ბელი) DMX ...და მაშინ იყო X ოცნებობს შენი ოცნებები ჰიბრიდული ფართო კუთხე დასრულებული სიმფონია ჰიბრიდული ფართო კუთხე

XmlDocument-ის გამოყენებით ასეთი ფაილის შესაქმნელად, კოდი დაახლოებით 2-ჯერ მეტს მოითხოვდა. ზემოთ მოცემულ კოდში გამოვიყენეთ XDocument კლასის კონსტრუქტორი, რომელიც პარამეტრად იღებს შვილობილი ელემენტების სიას, რომლებითაც თავდაპირველად გვინდა დოკუმენტის ინიციალიზაცია. გამოყენებული XElement კონსტრუქტორი პარამეტრად იღებს იმ ელემენტის სახელს, რომელსაც ჩვენ ვქმნით, ასევე ინიციალიზაციის ელემენტების სიას. მოხერხებულად, ჩვენ შეგვიძლია დავაყენოთ როგორც ახალი XElement, ასევე XAttribute ამ ელემენტებში. ეს უკანასკნელი დამოუკიდებლად გადაიცემა ჩვენს ფაილში, როგორც ატრიბუტები. თუ არ მოგწონთ კონსტრუქტორების ასეთი ბუდეების გამოყენება და თვლით, რომ ასეთი კოდი რთულია, შეგიძლიათ გადაწეროთ იგი უფრო ტრადიციულ ვერსიაში. ქვემოთ მოცემული კოდი გამოსცემს მსგავს XML ფაილს:

XDocument doc = new XDocument(); XElement ბიბლიოთეკა = new XElement("ბიბლიოთეკა"); doc.Add(ბიბლიოთეკა); //შექმენით "ტრეკის" ელემენტი XElement track = new XElement("track"); //დაამატე საჭირო ატრიბუტები track.Add(new XAttribute("id", 1)); track.Add(new XAttribute("ჟანრი", "რეპი")); track.Add(new XAttribute("დრო", "3:24")); //ელემენტის შექმნა "სახელი" XElement name = new XElement("name"); name.Value = "Who We Be RMX (feat. 2Pac)"; track.Add(name); //создаем элемент "artist" XElement artist = new XElement("artist"); artist.Value = "DMX"; track.Add(artist); //Для разнообразия распарсим элемент "album" string albumData = "!} Dogz Mixtape: ვინ არის შემდეგი?!"; XElement ალბომი = XElement.Parse(albumData); track.Add(Album); doc.Root.Add(track); /* *დაამატე დარჩენილი ელემენტები იმავე გზით */ //შეინახეთ ჩვენი დოკუმენტი doc.Save( ფაილის სახელი);

ბუნებრივია, თქვენ უნდა აირჩიოთ საჭირო მეთოდი სიტუაციიდან გამომდინარე.

ფაილიდან მონაცემების წაკითხვა

//დააყენეთ გზა ჩვენი სამუშაო XML ფაილის string fileName = "base.xml"; //ფაილიდან მონაცემების წაკითხვა XDocument doc = XDocument.Load(fileName); //ჩვენ გავდივართ თითოეულ ელემენტს ახალ ბიბლიოთეკაში //(ეს ელემენტი დაუყოვნებლივ ხელმისაწვდომია doc.Root თვისებით) foreach (XElement el in doc.Root.Elements()) (//გამოიტანეთ ელემენტის სახელი და id ატრიბუტის მნიშვნელობა Console.WriteLine(" (0) (1)", el.Name, el.Attribute("id").Value Console.WriteLine(" Attributes:"); ატრიბუტები მარყუჟში, ამავდროულად იხილეთ, როგორ გარდაიქმნება ისინი სტრიქონში (XAttribute attr in el.Attributes()) Console.WriteLine(" (0)", Console.WriteLine("Elements:"); ; // ამობეჭდოთ ყველა შვილობილი ელემენტის სახელები და მათი მნიშვნელობები მარყუჟში (XElement ელემენტი) el.Elements()) კონსოლში.WriteLine(" (0): (1)", ელემენტი.სახელი, ელემენტი. ღირებულება)

აქ კოდში მგონი არაფერია რთული და კომენტარებია მოცემული. ჩვენი პროგრამის გაშვების შემდეგ, კონსოლში გამოჩნდება შემდეგი შედეგი:

ჩანაწერი 1 ატრიბუტები: id="1" ჟანრი="რეპ" დრო="3:24" ელემენტები: სახელი: Who We Be RMX (feat. 2Pac) შემსრულებელი: DMX ალბომი: The Dogz Mixtape: Who's Next?! 2 ატრიბუტები: id="2" ჟანრი="რეპ" დრო="5:06" ელემენტები: სახელი: ანგელოზი (ფტ. Regina Bell) შემსრულებელი: DMX ალბომი: ...And then There Was X სიმღერა 3 ატრიბუტები: id= "3" ჟანრი="Break Beat" time="6:16" ელემენტები: სახელი: Dreaming Your Dreams შემსრულებელი: ჰიბრიდული ალბომი: Wide Angle სიმღერა 4 ატრიბუტები: id="4" ჟანრი="Break Beat" time="9: 38" ელემენტები: სახელი: Finished Symphony შემსრულებელი: ჰიბრიდული ალბომი: Wide Angle

მონაცემების შეცვლა

შევეცადოთ გავიაროთ ბიბლიოთეკის ყველა კვანძი და გავზარდოთ ტრეკის ელემენტის Id ატრიბუტი 1-ით.
(მე არ დავწერ ფაილის გზის დეკლარაციას და კონსოლზე გამოსვლის შედეგს, რათა არ გადავტვირთოთ სტატია ზედმეტი ინფორმაციით, მე შევადგინე ყველაფერი, ყველაფერი მუშაობს :)):

//მიიღეთ პირველი შვილი კვანძი ბიბლიოთეკიდან XNode node = doc.Root.FirstNode; while (node ​​!= null) ( //შეამოწმეთ, რომ მიმდინარე კვანძი არის ელემენტი, თუ (node.NodeType == System.Xml.XmlNodeType.Element) (XElement el = (XElement)node; //მიიღეთ მნიშვნელობა id ატრიბუტი და გადაიყვანეთ Int32 int id = Int32.Parse(el.Attribute("id").მნიშვნელობა //გაზარდეთ მრიცხველი ერთით და მიანიჭეთ მნიშვნელობა უკან id++; მნიშვნელობა = id.ToString() ) //გადაადგილება შემდეგ კვანძში კვანძი = კვანძი.NextNode ) doc.Save(fileName);

ახლა შევეცადოთ გავაკეთოთ ეს უფრო სწორად ჩვენი ამოცანების შესასრულებლად:

Foreach (XElement el doc.Root.Elements("track")) ( int id = Int32.Parse(el.Attribute("id").Value); el.SetAttributeValue("id", --id); ) doc.Save(fileName);

როგორც ხედავთ, ეს მეთოდი უკეთესად გვერგებოდა.

ახალი ჩანაწერის დამატება

მოდით დავამატოთ ახალი ტრეკი ჩვენს ბიბლიოთეკაში და ამავდროულად გამოვთვალოთ ტრეკის შემდეგი უნიკალური ID LINQ-ის გამოყენებით:

Int maxId = doc.Root.Elements("track").Max(t => Int32.Parse(t.Attribute("id").Value)); XElement ტრეკი = ახალი XElement ("ტრეკი", ახალი XAttribute ("id", ++maxId), ახალი XAttribute ("ჟანრი", "Break Beat"), ახალი XAttribute ("დრო", "5:35"), ახალი XElement ("სახელი", "ცათამბჯენზე მაღალი"), ახალი XElement ("მხატვარი", "ჰიბრიდი"), ახალი XElement ("ალბომი", "დილის სამეცნიერო ფანტასტიკა")); doc.Root.Add(track); doc.Save(fileName);

ყველა ელემენტზე ასეთი ამაღლებული მოთხოვნით, გამოითვლება ტრეკების id ატრიბუტის მაქსიმალური მნიშვნელობა. დამატებისას ჩვენ ვზრდით მიღებულ მაქსიმალურ მნიშვნელობას. ელემენტის დამატება თავად მოდის დამატების მეთოდის გამოძახებამდე. გთხოვთ გაითვალისწინოთ, რომ ჩვენ ვამატებთ ელემენტებს Root-ში, რადგან წინააღმდეგ შემთხვევაში ჩვენ დავარღვევთ XML დოკუმენტის სტრუქტურას იქ 2 root ელემენტის გამოცხადებით. ასევე, არ დაგავიწყდეთ თქვენი დოკუმენტის დისკზე შენახვა, რადგან შენახვამდე ჩვენს XDocument-ში ცვლილებები არ აისახება XML ფაილში.

ნივთების ამოღება

შევეცადოთ წავშალოთ DMX შემსრულებლის ყველა ელემენტი:

IE უთვალავი tracks = doc.Root.Descendants("track").Where(t => t.Element("მხატვარი").Value == "DMX").ToList(); foreach (XElement t in tracks) t.Remove(); !}

ამ მაგალითში ჩვენ ჯერ შევარჩიეთ ყველა ჩანაწერი, რომლის ბავშვური ელემენტი artst აკმაყოფილებდა კრიტერიუმებს და შემდეგ წაშალეთ ეს ელემენტები ციკლში. შერჩევის ბოლოს გამოძახება ToList()-ზე მნიშვნელოვანია. ამით ჩვენ ცალკე მეხსიერების ზონაში ჩავწერთ ყველა ელემენტს, რომლის წაშლა გვინდა. თუ გადავწყვიტეთ წაშალოთ ჩანაწერების სიმრავლიდან, რომელსაც გავდივართ პირდაპირ ციკლში, მივიღებთ პირველი ელემენტის ამოღებას და შემდგომ NullReferenceException. ასე რომ, მნიშვნელოვანია გვახსოვდეს ეს.
xaoccps-ის რჩევით შეგიძლიათ მეტი წაშალოთ მარტივი გზით:
IE უთვალავი tracks = doc.Root.Descendants("track").Where(t => t.Element("მხატვარი").Value == "DMX"); tracks.Remove(); !}
ამ შემთხვევაში, არ არის საჭირო ჩვენი მიღებული შედეგის სიაში გადაყვანა ToList() ფუნქციის გამოძახებით. რატომ არ იყო ეს მეთოდი თავდაპირველად აღწერილი

შეფასება: 5

ნორმალური ჰოსტინგი / VPS, რატომ დაეწიოთ. კარგი, uptime რა თქმა უნდა არ არის დიდი, რაზეც მუშაობაა საჭირო, მაგრამ VPS-ს ყოველთვის აქვს უახლესი პროგრამული უზრუნველყოფა + ფასები საკმაოდ დაბალია ასეთი შესაძლებლობებისთვის, ასე რომ, მას შეუძლია საკმაოდ კარგად იმუშაოს. მაგრამ ისინი არ არიან შეურაცხყოფის საწინააღმდეგო და ეს არის ყველაზე დიდი მინუსი, რადგან აქ არაფერია ტორენტების, მუსიკის, პროგრამული უზრუნველყოფის გამოქვეყნება, რადგან მათ ბოროტად გამოიყენებენ და ეს ასეა... ასე რომ, VPS სწრაფია, ბევრი ადგილია ამისთვის. ასეთი ფული, მაგრამ მე მგონი ასეთი ფასები დაბალია იმის გამო, რომ არ არის ტყვიაგაუმტარი, მაგრამ იმდენი ადგილია არა ტორენტებისთვის და ა.შ. არც კი ვიცი რატომ არის საჭირო ასეთი სიმძლავრე... კარგი, იქნებ უბრალოდ დაწეროთ საინფორმაციო წიგნი ან სტატიის წიგნი WP-ზე და ეს აზრი აქვს :). ასე რომ, ღირს ყურადღების მიქცევა, თუ გაქვთ მსხვილი პროექტებიდა არ არღვევენ საავტორო უფლებებს, თორემ აქ ფულის გადახდას აზრი არ აქვს, ჯობია კიდევ უფრო იაფად იპოვო რამე, რადგან ჰოსტინგს არ ვცემ პატივს, VPS-ს ვიღებ ყოველთვის.

შეფასება: 5

ჩემი პერსონალური ვებსაიტის (მხატვრის თემა) შექმნისას, რამაც დიდი დრო დამჭირდა, ჩემი ტანჯვა არ დასრულებულა, უნდა დავრწმუნებულიყავი, რომ მხოლოდ მე არ ვიყავი მისი აღფრთოვანებული, არამედ სხვებსაც შეეძლოთ ჩემი გალერეის მონახულება.
მე მჭირდებოდა ადგილი, სადაც საიტი განთავსდებოდა, ბუნებრივია, ჩემს ჰობისთან შესაბამისობაში. მე ავირჩიე Majordomo.ru, რადგან ეს არის ერთ-ერთი ყველაზე იაფი ჰოსტინგის სერვისი წელიწადში. მხოლოდ 140 მანეთი, და თქვენ უკვე მაღლა დგახართ თქვენს კოლეგებზე, რომლებსაც ვებსაიტი არ აქვთ! ვფიქრობ, 140 მანეთი სულაც არ არის ფული, მით უმეტეს, თუ 365 დღე იყოფა დღიური გადასახადით, მაგრამ საიტი ლამაზად არის დაწერილი რუსეთის ფედერაციის ზონაში ზედმეტი უფასო მრავალდონიანი მისამართების გარეშე, რომლებიც არასოდეს გემახსოვრებათ და არც საძიებო დაბრუნების.
ხელშეკრულების გაფორმება შესაძლებელია ეკატერინბურგის ოფისში, თავაზიანმა კონსულტანტებმა შემომთავაზეს დომენის პარკინგის გამოყენება, მაგრამ ამ დროისთვის მე ვცდი, როგორც გალერეა.
მე ასევე მაქვს ელფოსტა, რომელიც ემთხვევა საიტის სახელს. Ძალიან კმაყოფილი! დიდი ხანია ვოცნებობდი მქონოდა ჩემი ვებგვერდი, ჩემი ხელით გაკეთებული და ხალხმა ნახოს იგი!

შეფასება: 4

ამ პროვაიდერის ფასები ცოტა მაღალია, მე ვიხდი დაახლოებით 200 რუბლს თვეში განთავსებაში და მხოლოდ იმიტომ, რომ გადავიხადე წლიური გამოწერა, თორემ ეს უფრო მასშტაბური იქნებოდა. მაგრამ პირობები ნორმალურია, ჩვენ გამოვყავით 10 GB სივრცე, SSD დისკი, საიტებზე და კუნთების მონაცემთა ბაზებზე ლიმიტი არ არის, მაგრამ თავიდან მომცეს საშუალება, 2 კვირა უფასოდ გამომეცადა, რომ გავიგო რა არის. მაშინ ყველაფერი კარგად იყო, ამიტომ დავრეგისტრირდი, ჯერჯერობით არ ვნანობ, გარდა იმისა, რომ ფასი ცოტა მაღალია, ობიექტურად ვიმსჯელებთ.
სერვერის მუშაობის დრო იდეალურთან ახლოსაა, თავად ვებსაიტები, ჰოსტინგზე განთავსებული, დაფრინავენ. მათაც აქვთ მოსახერხებელი პანელიმენეჯმენტი, არ არსებობს ტრაფიკის შეზღუდვები, სპამი შესანიშნავად იფილტრება ფოსტაში. ისინი ასევე გვთავაზობენ ხანდახან აქციებს და ფასდაკლებებს, მე ვიყიდე დომენი იქ 49 მანეთად, მე მაინც უნდა ვეძიო მსგავსი რამ. მაგრამ მისი გაფართოება ტარიფის შეცვლის გარეშე სრულიად წამგებიანია. იქ, 100 მბ-ისთვის, თქვენ უნდა გადაიხადოთ 30 რუბლი ყოველთვიურად, ასე რომ, ძალიან დიდი რესურსებისთვის, ფაქტი არ არის, რომ ის შესაფერისი იქნება. ზოგადად, ფასების პოლიტიკა ერთადერთია სისუსტე, მაგრამ ტექნოლოგიით ყველაფერი კარგადაა.

შეფასება: 5

3-ჯერ გამოვიყენე ეს ჰოსტინგი. პირველად გადავწყვიტე გამომეცადა, ავირჩიე იაფი ტარიფი, დატვირთა საიტი დღეში 800 ვიზიტორით. სამუშაოები. შემდეგ მინდოდა გაფართოება იგივე იაფი ტარიფით, მაგრამ შეზღუდვები შემექმნა, ტექნიკურმა მხარდაჭერამ მირჩია ტარიფის შეცვლა.
შედეგად დავრჩი ერთი ვებგვერდი, იაფი. კონტრაქტი დასრულდა, საიტი გადაიტანეს, მაგრამ ერთი წლის შემდეგ დაბრუნდა. ავიღე ტარიფი, რომელიც შემომთავაზეს, იმ დროისთვის გაფართოვდა და პირობები მომეწონა.
დაახლოებით იგივე დატვირთვით გადავიტანე 3 საიტი და საკმაოდ კარგად დავზოგე ფული. კონტრაქტის დასრულების შემდეგ რაღაც პერიოდი ერთ საიტზე გადავიტანე ყველაფერი, ერთი წლის წინ ისევ ავიღე მეორე ტარიფი, დავაყენე 4 საიტი, სულ ტრაფიკი არის 3000 ჰოსტი დღეში.
Დადებითი:
1. სტაბილურობა (ზოგჯერ საიტები ქრება, მაგრამ არა დიდი ხნით). Uptime საკმაოდ ტოლერანტულია.
2. პროგრამული უზრუნველყოფის პარამეტრებში არ არის ხარვეზები ან უცნაურობები. თქვენ გადარიცხავთ საიტს, აკეთებთ მინიმალურ კონფიგურაციას და ყველაფერი მუშაობს.
3. არანაირი პრობლემა მხარდაჭერასთან დაკავშირებით.
მინუსები:
1. ვირტუალური ჰოსტინგის ტარიფების ლიმიტები. ისინი ნაზად მიანიშნებენ, რომ მუდმივი დატვირთვით თქვენ გჭირდებათ VPS-ზე ცხოვრება. მაგრამ თითქმის ყველა ჰოსტერს აქვს ეს პოლიტიკა.

ჰოსტინგის ექსპერტი (3 წლიანი გამოცდილება) მთავარი სპეციალიზაციაა ჰოსტინგის პროვაიდერების მიმოხილვების შედგენა, რეიტინგების ფორმირება და ჰოსტინგის ბაზრის მარკეტინგული კვლევა. ძალიან ზედმიწევნითი ადამიანი, რომელიც სკრუპულოზურად ამოწმებს თითოეულ ჰოსტინგის სერვისს.

Პირველი შთაბეჭდილება

ვებგვერდი საკმაოდ მოსახერხებელი გამოიყურება, თუმცა გეგმების აღწერა არ არის სრულყოფილი. მაგალითად, არ არსებობს ხელმისაწვდომი ოპერაციული სისტემების სია VPS და გამოყოფილი სერვერებისთვის. ასევე არ არის ინფორმაცია სარეზერვო სისტემის შესახებ. უფრო მეტიც, ვებსაიტს აქვს მხოლოდ რუსული ვერსია, არა ინგლისური.

საერთო ჰოსტინგის პაკეტები იყოფა Basic და Enterprise. ისინი დიდად არ განსხვავდებიან ერთმანეთისგან, თუმცა Enterprise პაკეტები გაცილებით ძვირია და ცალკე სერვერზე უნდა იყოს განთავსებული. თუმცა, ამ სერვერის კონფიგურაცია არ არის მითითებული, ამიტომ ძნელია ვიმსჯელოთ, რამდენად უკეთესია Enterprise პაკეტები, ვიდრე Basic პაკეტები. ფასები ძირითადი პაკეტებისაერთო ჰოსტინგის დიაპაზონი 1,79$/თვედან 5,45$/თვეში, კორპორატიული - 11,93$/თვედან 14,92$/თვეში. ისეთი ფუნქციები, როგორიცაა დომენის სახელის გადამისამართება, ანტივირუსი და მავნე პროგრამის სკანერი, გადახდილია საერთო ჰოსტინგისთვის. Და ეს ძირითადი ფუნქციები, რომლებიც ჩვეულებრივ შედის პაკეტის ფასში.

VPS სერვერებიპატარა და იაფი. მაგალითად, ყველაზე ძვირადღირებული სერვერი აქვს შემდეგი კონფიგურაციები: 2 პროცესორის ბირთვი, 4 GB ოპერატიული მეხსიერება და 60 GB დისკის ადგილი მყარი დისკები SSD.

გამოყოფილი სერვერები საკმაოდ სუსტია. პროცესორები მოძველებულია და მყარი დისკებიმხოლოდ HDD. აქედან გამომდინარე, შეგვიძლია ვთქვათ, რომ ამ სერვერების ფასები აშკარად ძალიან მაღალია: $44/თვეში $99/თვეში.

ტესტის პერიოდი

კომპანია უზრუნველყოფს ტესტის პერიოდი 14 დღის განმავლობაში მხოლოდ საერთო ჰოსტინგისთვის. თქვენ ასევე შეგიძლიათ მიიღოთ თანხის დაბრუნება VPS სერვერზე შეძენიდან 10 დღის განმავლობაში.

ბილინგის ციკლი

გამოყოფილი სერვერის შეძენა შესაძლებელია 1, 2, 3, 6 ან 12 თვის განმავლობაში. ყველა სხვა ტიპის ჰოსტინგის შეძენა შესაძლებელია ერთი თვის ან ერთი წლის განმავლობაში.

Მართვის პანელი

Majordomo უზრუნველყოფს პანელს საკუთარი განვითარებაყველა საერთო ჰოსტინგის პაკეტისთვის. ის ისეთივე მოსახერხებელია, როგორც cPanel ან Plesk. თქვენ შეგიძლიათ დააინსტალიროთ ნებისმიერი მართვის პანელი VPS ან თავდადებული თვითმართვადი სერვერზე. ISPmanager დაინსტალირებულია მართულ VPS სერვერზე.

ლიმიტები

VPS და გამოყოფილი სერვერებისთვის სტანდარტული შეზღუდვებიდისკის ადგილი, პროცესორის ბირთვების რაოდენობა და ოპერატიული მეხსიერების რაოდენობა. ყველა Basic პაკეტს, გარდა Start-ისა, აქვს შეუზღუდავი რაოდენობის დომენი და მონაცემთა ბაზები და ადგილი დისკზემერყეობს 5 GB-დან 15 GB-მდე. უ კორპორატიული პაკეტებიდომენების რაოდენობა შეზღუდულია 1-დან 3-მდე, ხოლო დისკის ადგილი შეზღუდულია 10 გბ-დან 15 გბ-მდე.

Უსაფრთხოება

კომპანია უზრუნველყოფს დაცვას DDoS შეტევებისა და სპამისგან ყველა საერთო ჰოსტინგის გეგმისთვის. ანტივირუსული და მავნე პროგრამის სკანერი ფასიანია, 0,73$/თვეში და 1,48$/თვეში ერთი დომენისთვის, შესაბამისად. უზრუნველყოს უსაფრთხოება და პროდუქცია სარეზერვოთქვენ თავად უნდა შექმნათ ფაილები გამოყოფილი და VPS სერვერებისთვის.

OS

Ubuntu დაინსტალირებულია ვირტუალური ჰოსტინგის სერვერებზე. თქვენ შეგიძლიათ დააინსტალიროთ CentOS, Debian ან Ubuntu VPS სერვერზე ადმინისტრაციის გარეშე და მხოლოდ Debian VPS სერვერზე ადმინისტრირებასთან ერთად. თქვენ შეგიძლიათ დააინსტალიროთ ნებისმიერი Linux დისტრიბუცია სპეციალურ სერვერზე.

მხარდაჭერა

კომპანია უზრუნველყოფს 24/7 ბილეთების მხარდაჭერას. ისინი პასუხობენ წერტილს და არა დიდხანს, დაახლოებით 2 საათში ერთხელ. Majordomo ასევე გთავაზობთ VPS სერვერებს ადმინისტრაციით. ისინი უფრო ძვირია, მაგრამ ტექნიკური მხარდაჭერის ჯგუფს შეეძლება დაგეხმაროს სერვერის მართვასთან და კონფიგურაციასთან დაკავშირებულ ნებისმიერ შეკითხვასა თუ პრობლემაში. ცოდნის ბაზა სრულია და მოიცავს ყველა საჭირო თემას.

დასკვნა

ერთის მხრივ, საერთო ჰოსტინგი საკმაოდ იაფია, თუმცა ძირითადი ფუნქციები ფასიანია. ასევე, გამოყოფილი სერვერები ძვირია, რადგან აღჭურვილობა მოძველებულია და ხარისხი არ ემთხვევა ფასს. Მეორეს მხრივ, VPS ჰოსტინგიარ არის ცუდი მთლიანობაში - როგორც ფასები, ასევე მახასიათებლები. პრინციპში, შეგვიძლია ვთქვათ, რომ ღირს VPS ჰოსტინგი ამ კომპანიისგან.

დღევანდელი მიმოხილვა ყურადღებას გაამახვილებს ჰოსტინგის პროვაიდერ Majordomo-ზე. შევეცდებით ობიექტურად გავიგოთ ძირითადი მახასიათებლები, დადებითი და უარყოფითი მხარეები. ყოველივე ამის შემდეგ, არ არსებობს სრულყოფილი ჰოსტინგი. ან კიდევ ხდება?

მაიორდომოს შესახებ

Majordomo-ს საერთო ჰოსტინგის შესახებ

ვინაიდან საერთო ჰოსტინგი ყველაზე პოპულარულია და მასობრივი მომსახურებანებისმიერი პროვაიდერისგან - მოდით ვისაუბროთ ამაზე უფრო დეტალურად. რა შეიძლება შემოგვთავაზოს Majordomo?

ვირტუალური ჰოსტინგის ღირებულება Majordomo-დან მერყეობს 99-დან 749 რუბლამდე თვეში ( ყოველწლიურად გადახდისას).


ამავდროულად, ზემოთ მოყვანილი სურათის დათვალიერებისას, სწრაფად მიხვდებით, რომ „შეუზღუდავი“ ვირტუალური ჰოსტინგი ხელმისაწვდომია მხოლოდ „შეუზღუდავი“ და „შეუზღუდავი+“ ტარიფებით, ხოლო ყველაზე იაფ ტარიფზე „დაწყება“ კვლავ არსებობს გარკვეული შეზღუდვები. თუმცა, დამწყები ვებმასტერებისა და საერთო ჰოსტინგის მომხმარებლებისთვის ისინი საკმაოდ მისაღები იქნება.

კარგი ბონუსები ჰოსტინგის პროვაიდერისგან Majordomo

ჰოსტინგის პროვაიდერის Majordomo-ს მომხმარებლებისთვის მიწოდებული სასიამოვნო „სიკეთეების“ ჩამოთვლამდე, აღსანიშნავია, რომ ზოგიერთი მათგანი არ არის ხელმისაწვდომი „სტარტის“ ტარიფზე.

ასე რომ, ბონუსების შესახებ:

  • "შეუზღუდავი" ან "შეუზღუდავი +" სატარიფო გეგმებზე სამთვიანი მომსახურების ერთჯერადი გადახდით, Majordomo-ს ნებისმიერი მომხმარებელი იღებს უფასო დომენს .ru ან .рф ზონაში (არჩევით).
  • უფასო ფოსტა დომენისთვის "Mail.ru ბიზნესისთვის".
  • ისეთი პოპულარული CMS სისტემების ავტომატური ინსტალაცია, როგორიცაა WordPress და Joomla ( „შეუზღუდავი“ ან „შეუზღუდავი +“ ტარიფებზე).
  • უფასო SSL სერთიფიკატი.
  • უზრუნველყოფა Google პრომო კოდი AdWords 2000 რუბლის ოდენობით (ყველა ტარიფზე).
  • ვებსაიტის უფასო გადაცემა სხვა პროვაიდერისგან პლუს სამი თვის ჰოსტინგი საჩუქრად ( არ ვრცელდება „დაწყების“ სატარიფო გეგმაზე).
  • სპეციალური კორპორატიული სატარიფო გეგმები "ბიზნესი" და "ბიზნესი +". თვეში შესაბამისად 599 და 749 რუბლის ღირებულებით, ისინი მოიცავს პრიორიტეტს ტექნიკური მხარდაჭერა, ოპერატიული ლეგალური რჩევა, პროფესიული დახმარებავებსაიტების დაყენებაში და, რაც მთავარია, ცალკე გამოყოფილ სერვერებზე ჰოსტინგი.


ჰოსტინგის პროვაიდერის Majordomo-ს დამატებითი სერვისები და შესაძლებლობები

  • სრული სპექტრის მხარდაჭერა Comodo SSL სერთიფიკატებიდა მათი შეძენის შესაძლებლობა.
  • საიტის ყოვლისმომცველი SEO აუდიტის ჩატარების შესაძლებლობა.
  • საიტის დაცვა ჰაკერებისგან და საიტების მკურნალობა ვირუსებისგან ( Revisium-თან პარტნიორობით).
  • ყოვლისმომცველი მომსახურება" საიტი მეთვალყურეობის ქვეშ“, რომელიც მოიცავს ინფიცირებული საიტის დროულ მკურნალობას, მის დაცვას ჰაკერებისა და ბოტების მიერ ჰაკერებისგან, ასევე ვებ-საფრთხეების 24 საათის მონიტორინგს და წვდომის კონტროლს. სერვისი უზრუნველყოფილია Revisium-თან პარტნიორობით.
  • უზრუნველყოფის შესაძლებლობა დამატებითი დაცვასპამის და ელ.ფოსტის ვირუსებისგან.
  • ძირითადი ან პრემიუმ კონფიგურაცია კონტექსტური რეკლამა Yandex-ში.Direct და Google AdWords.

დასკვნის ნაცვლად

შეჯამებისთვის, თუ თქვენ ეძებთ ჰოსტინგს, მაშინ Majordomo ნამდვილად იმსახურებს თქვენს ყურადღებას. აუცილებლად ისარგებლეთ 14 დღიანი პერიოდით უფასო ტესტირება, რადგან ამ ჰოსტინგს ბევრი უპირატესობა აქვს და ნაკლოვანებებს შორის შეგვიძლია აღვნიშნოთ მხოლოდ რამდენიმე შეზღუდვა, რომელიც არსებობს სატარიფო გეგმა"დაწყება".



გაქვთ შეკითხვები?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: