Tuesday, November 3, 2009

ჩვენი გემოვნებით შექმნილი ჯენერიკ-ტიპი

არაერთხელ მქონდა შემთხვევა, როდესაც დამჭირდა ისეთი სიის გამოყენება, სადაც მივუთითებდი ტიპს და გამოვიყენებდი ჩემი სურვილისამებრ.
ასეთებია მაგალითად: List, Dictionary, ... და კიდევ ბევრი
ნახვა შეგიძლიათ System.Collections.Generic_ში.
ზოგჯერ მქონდა ხოლმე ისეთი შემთხვევა, რომ სიაში ჩემს მიერ დამატებული ობიექტი(მნიშვნელობა) მეორდებოდა, რის საშუალებასაც Dictionary არ იძლევა, არა და დამერწმუნეთ ზოგჯერ დაჭირდება კაცს რომ სიაში დაამატოს 2 ტიპი როგორც Dictionary_ის აქვს - key და value. მაგრამ როდესაც განმეორებადი არ არის, მაგ შემთხვევაში გამომადგა ახალი ტიპის შექმნა და შემდეგ ამ ჩემი შექმნილი ტიპის გამოყენება List_ში.

აქ არის მაგალითიც:
/// შევქმნი ახალ ტიპს - Documents
/// სადაც შემიძლია დოკუმენტის სახელი ჩავწერო TKey_ში და თვითონ დოკუმენტი
/// კიდევ TValue_ში.
public class Documents
{
/// ავღწერე თვისებები გასაღებისთის
/// და მნიშვნელობისთვის
public TKey DocName { get; set; }
public TValue DocBytes { get; set; }
/// კონსტრუქტორი
public Documents() { }
/// მეორე კონსტრუქტორი, სადაც გადავეცი პარამეტრები
/// TKey და TValue, შემდეგ ამ პარამეტრებს ვანიჭებ ჩემს ზემოთ
/// აღწერილ გლობალურ თვისებებს
public Documents(TKey docName, TValue docBytes)
{
this.DocName = docName;
this.DocBytes = docBytes;
}
}

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

FileStream Read && Write

ამ ობიექტის დახმარებით ჩვენ შეგვიძლია ნებისმიერი ფაილი წავიკითხოთ, თუ გვინდა ბაზაში ჩავწეროთ და შემდეგ წავიკითხოთ, მე გავაკეთებ მაგალითს ღილაკზე დაწკაპების მეთოდზე:
private void btnDo_Click(object sender, EventArgs e)
{
/// ავღწერე დიალოგის ობიექტი
OpenFileDialog getDocument = new OpenFileDialog();
/// თვისებებს არ ვანიჭებ, თქვენთვის მომინდია
/// გამომაქვს დიალოგი ეკრანზე
if (getDocument.ShowDialog(this) == DialogResult.OK)
{
/************** დაწყება - ფაილის წაკითხვა ბაიტებად ***************/
/// ავღწერე ფაილის ინფორმაციის ობიექტი, იმიტომ რომ მინდა
/// ფაილის სახელი წავიკითხო
FileInfo fInfo = new FileInfo(getDocument.FileName);
/// ავღწეროთ FileStream ობიექტი და მივუთითოთ მონიშნული ფაილი
/// და მივუთითოთ ფაილის გახსნის ტიპი (ამ შემთხვევაში მხოლოდ წაკითხვა)
FileStream docStream = new FileStream(getDocument.FileName, FileMode.Open);
/// ავღწეროთ byte[] მასივი და მივანიჭოთ ფაილის სიგრძე
byte[] buffer = new byte[docStream.Length];
/// წავიკითხოთ docStream_ით მითითებული ფაილი და წაკითხული
/// ბაიტები შევინახოთ ზემოთ აღწერილ ბაიტების მასივში.
docStream.Read(buffer, 0, int.Parse(docStream.Length.ToString()));
/// დავხუროთ ფაილის კითხვის ობიექტი.
docStream.Close();
/************** დასრულება - ფაილის წაკითხვა ბაიტებად ***************/

/// აქ უკვე შემომაქვს ჯენერიკი
/// ავღწერ ჯენერიკის ობიექტს - ლისტს და ლისტში შემაქვს
/// ჩემი შექმნილი ახალი ტიპი - Document>
List> documents = new List>();
/// აღწერილ დოკუმენტებში(List>)
/// შევინახოთ ჩვენი ბაიტებად წაკითხული დოკუმენტი და ფაილის სახელი
documents.Add(new Documents(fInfo.Name, buffer));
/// გამოვიძახოთ მეთოდი, რომლითაც ბაიტებად წაკითხულ ფაილს
/// შევინახავთ დისკზე ისევ ფაილად :)
this.WriteDocument(documents);
}
}

///
/// ეს მეთოდი განარბენს აკეთებს დოკუმენტების სიაში და
/// წერს დოკუმენტებს დისკზე.
/// პარამეტრად გადმოეცემა ჯენერიკი
private void WriteDocument(List> documents)
{
/// ავღწეროთ ახალი დოკუმენტის ტიპი და გავირბინოთ დოკუმენტებში
foreach (Documents doc in documents)
{
/// ავღწეროთ ახალი FileStream ობიექტი და მივუთითოთ
/// შესაქმნელი ფაილის სახელი და შექმნის ტიპი
FileStream docCreator = new FileStream(doc.DocName, FileMode.Create);
/// წავიკითხოთ ფაილის ბაიტები და ჩავწეროთ ის დისკზე ახლად შექმნილ
/// ფაილში
docCreator.Write(doc.DocBytes, 0, doc.DocBytes.Length);
/// დავხუროთ დოკუმენტის ჩამწერი ობიექტი
docCreator.Close();
}
MessageBox.Show("Document Created Successfully.");
}
}

BDC და ADF SharePoint 2007–ში

ოკლედ გაგაცნობთ რა არის BDC(Business Data Catalog) და ADF (Application Definition File).
როგორ უნდა გამოვიყენოთ შეარპოინტში ჩვენთვის სასურველი SQL Server DB_ს ინფორმაცია და როგორ უნდა დავაკავშიროთ ბაზა შეარპოინტთან, რომ ხელმისაწვდომი გახდეს ჩვენთვის ველების, ბაზის ინფორმაციით შევსება.

1. პირველი ეტაპი არის SharePoint Server 2007 SDK (Software Development Kit)_ის დაყენება ჩვენს კომპზე. ეს კომპონენტები დააყენებს ერთ–ერთ ხელსაწყოს საინსტალოს, რომელიც არის – Application Definition Designer და მდებარეობს შემდეგ მისამართზე "C:\Program Files\2007 Office System Developer Resources\Tools\BDC Definition Editor". შემდეგ ამ საქაღალდეში მოვნახავთ ფაილს "setup.exe" და გავუშვებთ ინსტალს.
ინსტალაცია რომ დამთავრდება Start მენიუში გაჩნდება პროგრამა - ApplicationDefinitionDesigner.exe.
ვრთავთ პროგრამას და ვქმნით ახალ კავშირს ბაზასთან (Connection String).

MOSS 2007 და SQL 2008 RS Add-in Windows 7–ზე


ინსტრუქცია

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

ეტაპი 1: შეარპოინტის ინსტალაცია
ეტაპი 2: SQL Server 2008 Reporting Services ინსტალაცია და მითითება შეარტპოინტთან ინტეგრირების ტიპის.
ეტაპი 3: კონფიგურაცია რეპორტინგ სერვერის.
ეტაპი 4: ინსტალაცია Reporting Services Add-in კომპონენტისა (rsSharePoint.msi) და კონფიგურაცია
შეარპოინტის ინსტანსისა.
ეტაპი 5: უფლებების მიცემა და Reporting Services კონტენტის ტიპის დამატება