Archive

Archive for the ‘.NET’ Category

WCF : Create test Certificate

فبراير 7th, 2009 admin No comments

تحية طيبة ،

أحد المشاريع التي استوجب ان اشتغل على https ، بطبيعة الحال في فترة الديفيلومنت ، كنت احتاج سيرتفيكت للتجربة ، وعشان اقدر اقوم بهالعمل ، بحثت في الانترنت عن أداة تساعدني في إنشاء سيرتفيكت ، وكانت مايكروسوفت كالعادة الحل ..!

Certificate Creation Tool (Makecert.exe)

makecert -sk XYZ -n “CN=XYZ Company” testXYZ.cer

مثال بسيط ، سيقوم الأمر بإنشاء سيرتفيكيت باسم textXYZ.cer وسيكون الـ CN = XYZ Company
بعد الانشاء قم بتشغيل السيرتفيكيت وسيضيف السيرتفيكيت في الجهاز في certificate store هنا نحتاج شئ اضافي وبسيط وهو القيام بعمل assign للسيرتفيكيت على ال Default web site في الـ IIS

بطبيعة الحال لا بد يكون هناك رابط للـ MSDN يبين جميع الخيارات التي ممكن تضيفها على Certificate حتى لو كانت مثلا تاريخ انتهاء certificate مثلا ..!  ( اضغط هنا ) ..

شكرا .! :)

Categories: .NET, WCF Tags:

.NET Best Practice : Enterprise Library , Database Component

فبراير 2nd, 2009 admin No comments

تختلف نوعية البرامج التي نقوم ببرمجتها بمختلف أفكاره وأهدافها ، برامج مرتبطة بالصوت ، بالصورة ، بالرسم ، بالتحليل وانواع وأنواع ومن ضمن تلك البرامج ، البرامج المرتبطة بقواعد البيانات ولأن نوعية البرمجة على قواعد البيانات على رغم بساطتها إلا أنها تدخل في تفاصيل مهمة جدا ، تصبح بصورة أو أخرى مهمة جدا ، خصوصا مع نوعية البرامج .

عادة مايكروسوفت تدعم المشاريع المقدمة من خبراء البرمجة ولعل codeplex.com أكبر دليل على ذلك ..
عموما من ضمن المشاريع المقدمة من هؤلاء الخبراء ، توزيعة Enterprise library وهو توزيعة تجمع أكثر من مكونة منها cache , security , database وخلافه ، المهم بالنسبة لي هنا هو Database Component .

الهدف الحقيقي والفعلي في تقديم Database Component هو عمل مكتبة برمجية من الممكن تحتوي الجميع بأفضل حل وأفضل طريقة أيضا .. وهذا فعلا ما حققته DC ..

الفكرة ، نحن نستخدم sql server ماذا لو استخدمنا غدا Oracle ، MYSQL  ؟ الواجهة الفعلية التي تكتب فيها أكوادك نفسها لن تتغير .. كل ما تحتاجه تغيير في الـ Base ليتعامل مع مختلف أنواع الداتابيس ..

public UserInfo GetUserInfo(string username)
{
       try
       {
           //DataBase Name On Configration File
           Database db = DatabaseFactory.CreateDatabase("DefaultDB");

           UserInfo user = null;
           // usp_GetUserByUsername is SP Name
           using (DbCommand dbSPCommand = db.GetStoredProcCommand("usp_GetUserByUsername"))
           {
               // add in parameter value
               db.AddInParameter(dbSPCommand, "p_username", DbType.String, username);
               // Execute
               IDataReader dr = db.ExecuteReader(dbSPCommand);

               // start reading , because we know the result will be one record. we use if.
               // otherwise use while(dr.Read())
               if (dr.Read())
               {
                    user = new UserInfo();
                    user.Name = (string)dr["USERNAME"];
                    user.DateOfBirth = (DateTime)dr["DATE_OF_BIRTH"];
               }
               return user;
           }
        }
        catch (Exception ex)
        {
            // add the error details on the event viewer
            DALException.Publish(ex);
            // translate the exception base on type of error.
            // here we have to check the type of error to make it more generic for sql server , oracle or mysql
            throw DALException.Translate(ex);
        }
}
Categories: .NET, عام Tags: