var container = new UnityContainer();
container.RegisterType<ISomeService, SomeService>(new PerRequestLifetimeManager()); container.RegisterType<ISomeBusiness, SomeBusiness>(new PerRequestLifetimeManager()); container.RegisterType<ISomeController, SomeController>(new PerRequestLifetimeManager());
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
var someService=(ISomeService)DependencyResolver.Current.GetService(typeof(ISomeService)); var data=someService.GetData();
در لایه سرویس یک کلاس Service Factory داریم که قرار است همه سرویسها، برای برقراری ارتباط با یکدیگر از آن استفاده کنند.این کلاس معمولا در لایه سرویس به اشکال گوناگونی پیاده سازی میشود که کارش وهه سازی از Interfaceهای درخواستی است. اما برای یکپارچه کردن آن با Unity من آنرا به شکل زیر پیاده سازی کرده ام
public class ServiceFactory : MarshalByRefObject { static IUnityContainer uContainer = new UnityContainer(); public static Type DataContextType { get; set; } public static void Initialise(IUnityContainer unityContainer, Type dbContextType) { uContainer = unityContainer; DataContextType = dbContextType; uContainer.RegisterType(typeof(BaseDataContext), DataContextType, new HierarchicalLifetimeManager()); } public static T Create<T>() { return (T)Activator.CreateInstance<T>(); } public static T Create<T>(string fullTypeName) { return (T)System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(fullTypeName); } public static T Create<T>(Type entityType) { return (T)Activator.CreateInstance(entityType); } public static dynamic Create(Type entityType) { return Activator.CreateInstance(entityType); } public static T Get<T>() { return uContainer.Resolve<T>(); } public static object Get(Type type) { return uContainer.Resolve(type); } }
در این کلاس ما بجای ایجاد داینامیک آبجکتها، از Unity استفاده کردهایم. در همان ابتدا که برنامهی وب ما برای اولین بار اجرا میشود و بعد از Register کردن کلاسها، میتوانیم container را به صورت پارامتر سازنده به کلاس Service Factory ارسال کنیم. به این ترتیب برای استفاده از سرویسها در لایه Business از Unity بهره میبریم.
البته استفاده از Unity برای DataContext خیلی منطقی نیست و بهتر است نوع DataContext را در ابتدا بگیریم و هرجا نیاز داشتیم با استفاده از متد Create از آن وهله سازی بکنیم.
size | filename |
922kb | oci.dll |
1,386kb | Oracle.DataAccess.dll |
1,256kb | orannzsbb11.dll |
127,196kb | oraociei11.dll |
344kb | OraOps11w.dll |
Dim oradb As String = "Data Source=(DESCRIPTION=(ADDRESS_LIST=" _ + "(ADDRESS=(PROTOCOL=TCP)(HOST=YourServer)(PORT=YourPort)))" _ + "(CONNECT_DATA=(SERVER=DEDICATED)(SID=ORCL)));" _ + "User Id=UserName;Password=Password;" Dim conn As New OracleConnection(oradb) Try conn.Open() Catch ex As Exception Throw End Try
موفق باشید
در ابتدای کار نیاز است تا repository خود را ایجاد کنیم. بدین منظور از طریق محیط command prompt به آدرس پوشه مورد نظر رفته و دستور git init را اجرا میکنیم. این کار سبب میشود تا پوشه git. در داخل فولدر جاری ایجاد شود. این پوشه در واقع همان repository و پوشه جاری، همان working tree ما خواهند بود. حال با استفاده از یک ادیتور نظیر notepad یک فایل متنی جدید را با نام readme1.txt در پوشه ایجاد کنید (توجه کنید در working tree، نه در پوشه git.؛ محتویات این پوشه جز در مورد برخی فایلها نباید توسط کاربر تغییر کند)
اکنون دستور زیر را اجرا کنید:
git status
برای آنکه این فایل را در repository ذخیره کنیم همانطور که قبلا گفته شد باید ابتدا آنرا به index اضافه کنیم این کار با استفاده از دستور زیر انجام میشود:
git add readme1.txt
git commit
git commit -m “commit descriptions”
git add .
git add -u
git log
git log --until [date] git log --since [date] git log -[number]
چگونگی حذف فایلها:
تا اینجا با نحوه چگونگی ایجاد فایلهای جدید و یا ویرایش فایلهای قدیمی آشنا شدید. برای حذف یک فایل میتوان به دو صورت عمل کرد:
1) ابتدا فایل را را مستقیما حذف نموده، سپس با استفاده از دستور زیر ابتدا فایل حذف شده را به stage آورده و سپس آن را commit میکنیم:
git rm [filename]
چگونگی تغییر نام و یا جابجایی یک فایل:
برای تغییر نام و جابجایی یک فایل نیز مانند حذف، دو روش وجود دارد:
۱) ابتدا فایل مورد نظر را تغییر نام داده و یا جابجا میکنیم. در این حالت اگر status بگیریم خواهیم دید که git به ما میگوید فایلی با نام قبلی حذف شده و فایلی با نام جدید اضافه شده است. یعنی git تشخیص نمیدهد که این دو فایل یکی هستند و تنها تغییر نام داده شده است. اما به محض آنکه فایل اول را با دستور rm حذف و فایل دوم را با دستور add اضافه کنیم، git متوجه میشود که این دو فایل در واقع یک فایل تغییر نام یافته هستند. البته در صورتیکه حداقل ۵۰ درصد فایل دوم با فایل اول شباهت داشته باشد، بعد از انجام عملیات فوق از دستور commit استفاده میکنیم.
۲) در این روش از دستور زیر استفاده کرده و سپس commit را انجام میدهیم:
git mv [firstname][secondname]
روش اول :
یک قانون مهم در موفقیت استارتاپ ها
توسعه سیستم مدیریت محتوای DNTCms - قسمت اول
SequentialGuidGenerator.NewSequentialGuid()