• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

Final Heaven

أعضاء الشرف
  • عدد المشاركات

    163
  • تاريخ الانضمام

  • تاريخ اخر زياره

السمعه بالموقع

4 عادي

عن Final Heaven

  • الرتبة
    عضو شرف

طرق الإتصال

معلومات الملف الشخصي

  • الجنس ذكر

أحدث الزائرين لملفلك الشخصي

5,506 زياره للملف الشخصي
  1. كيف تصمّم Dynamic Menu

    كيف نقوم بتصميم Dynamic Menu و التي تعتمد على Database أولا علينا تصميم الDatabase المطلوبة عن طريق هذا الكود الخاص ب SQL Server 2008 CREATE TABLE [dbo].[Menu]( [id] [int] IDENTITY(1,1) NOT NULL, [name] [nvarchar](50) NOT NULL, [description] [nvarchar](255) NULL, [link] [nvarchar](100) NULL, [menuId] [int] NULL, CONSTRAINT [PK_Menu] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO CREATE PROCEDURE [dbo].[MenuSelectAll] -- Add the parameters for the stored procedure here AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here DECLARE @Err Int SELECT * FROM Menu SET @Err = @@ERROR return @Err END GO /****** Object: ForeignKey [FK_Menu_Menu] Script Date: 03/25/2011 20:00:10 ******/ ALTER TABLE [dbo].[Menu] WITH CHECK ADD CONSTRAINT [FK_Menu_Menu] FOREIGN KEY([menuId]) REFERENCES [dbo].[Menu] ([id]) GO ALTER TABLE [dbo].[Menu] CHECK CONSTRAINT [FK_Menu_Menu] GO و الذي نتيجته هذا Diagram و كما نرى قمنا بتصميم جدول من أجل معلومات ال Menu و علاقة SelfJoin التي نراها في الصورة هي من أجل Category -> SubCategory للقائمة التي نريد تصميمها و نرى هذا من المدخلات للقائمة و التي هي تعبئة عشوائية فقط من أجل الدرس: و نرى هنا NEWS لها أولاد و هم Local و International حيث نرى هذا من خلال MenuId و التي هي ForeignKey للعلاقة التي بين ID و MENUID (التي تشكل أب و أولاد) و نراها في النتيجة النهائية: حيث نجد News و يصدر عنها Local و International و الآن لدينا Stored Procedure داخل الكود الذي في الأعلى لإحضار المعلومات من ال Table و نأتي الآن لكود ASP.Net و الذي أستخدم فيه لغة CSharp علينا الآن كتابة Method لإحضار المعلومات و إستخدام Store Procedure التي كتبت في الأعلى و ها هو كود ال Method private DataSet menuDataSelectAll() { DataSet data = null; using (SqlConnection connection = new SqlConnection()) { try { connection.ConnectionString = ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString; using (SqlCommand command = new SqlCommand("MenuSelectAll", connection)) { command.CommandType = CommandType.StoredProcedure; using (SqlDataAdapter adapter = new SqlDataAdapter(command)) { connection.Open(); data = new DataSet(); adapter.Fill(data); data.Relations.Add(new DataRelation("MenuFK", data.Tables[0].Columns["id"], data.Tables[0].Columns["menuId"], false)); } } } catch (Exception ex) { Response.Write(ex.ToString()); } finally { if (connection != null) { connection.Close(); } } } return data; } و الأهم هنا هو تحديدنا DataRelation في ال DataSet data.Relations.Add(new DataRelation("MenuFK", data.Tables[0].Columns["id"], data.Tables[0].Columns["menuId"], false)); و تأتي أهمية هذا الكود لإحضار أولاد كل Category رئيسية مثل News التي تأتينا بLocal و International و الآن كود تعبئة ال Menu private void fillMenu(DataSet data) { foreach (DataRow dr in data.Tables[0].Rows) { if (dr["MenuId"] == DBNull.Value) { fillMenuItem(dr, null); } } } private void fillMenuItem(DataRow dr, MenuItem mi) { MenuItem child = new MenuItem(dr["name"].ToString(), null, null, dr["link"] == DBNull.Value ? null : dr["link"].ToString()); if (mi == null) { mainMenu.Items.Add(child); } else { mi.ChildItems.Add(child); } foreach (DataRow drChild in dr.GetChildRows("MenuFK")) { fillMenuItem(drChild, child); } } و هنا في هذا الكود نقوم بأخذ كل Category من نوع Parent أي أب و التي تكون من دون أب لها و نرى هذا عندما تكون MenuId فارغة أي NULL ثم ننادي ال Method الثاني التي تأتي بالأولاد و تعبئهم في MenuItem الخاص بالأب و نرى النتيجة النهائية هنا: ملفات المشروع بإستخدام Microsoft Visual Web Developer 2010 Express DynamicMenu.7z
  2. المتصفح الشهير Firefox و الذي لاقى نجاحا مبهراً و فيه الكثير الكثير من المميزات و لكن مشكلة الناس أنهم لا يعلمون مميزاته و تعوّدوا على Internet Explorer بالرغم من جميع مساوئه و خاصة الحماية فيه للحصول على Firefox من هنا من هنا و لمركز الإضافات من هنا و كل ما عليك هو وضع إسم الإضافة من هنا سنتعرّف على إضافات رائعة على Firefox Personas إضافة جميلة تسمح لك بتغيير شكل ال Firefox عير مجموعة كبيــــــــــــــــــــــــــــــــــــرة جدا من الصور الرائعة Adblock plus تعمل على منع أي شئ تريده من الظهور داخل الصفحة من صورة إلى فلاش و غيره AniWeather إضافة تسمح لك برؤية حرارة الطقس في بلدك و أمور أخرى متعلّقة بالطقس FastDial إضافة تسمح لك بوضع مجموعة من المواقع على شكل صورة و تختار الموقع الذي تريد الدخول إليه بالضغط على صورته و هي شبيهة بالميزة الموجودة في Google Chrome Fireshot إضافة رائعة تمكّنك من تحويل اي موقع إلى صورة و التعديل عليها و إضافة اي تعليق تريده FlagFox إضافه تريك اي بلد يوجد فيها سيرفر الموقع Foxtab إضافة جميلة للتنقل بين المواقع التي تتصفحها بالإضافة إلى ميزة إختيار الموقع عبر صورته IE Tab Plus هل تحتاج غلى التنقل بين Internet Explorer و Firefox هذه الإضافة تسمح لك و بفتح اي موقع عبر internet Explorer من داخل Firefox و عبر ضغطت زر ضغيرة يتحوّل النظام الذي يتحكّم بالصفحة من Firefox إلى Internet Explorer دون الحاجة إلى الخروج من Firefox KeyScrambler إضافة رائعة و تحميك من أي وجود إلى كيلوغر (متتبع الكيبورد) لمعرفة ما تقوم بالضغط عليه و تظهر لل كيلوغر KeyLoger ارقام و أحرف عشوائية Minimize To tray revived إضافة جميلة تعطيك ميزة تنزيل ال Firefox إلى شريط المهام System Tray Icons NoScript من أروع إضافات الحماية، و هي تلغي ال javaScript من جميل الموقع و تقوم أنت بتحديد المواقع المضمونة بكل سهولة حتى تضمن عدم وجود أكواد خبيثة في الموقع Less Spam please إضافة جميلة تساعدك خلال تصفحك في المواقع التي تحتاج إلى عمل تسجيل فيها عبر إنشاء بيرد وهمي لك بدل من ان تضع بريدك الشخصي Pixlr grabber إضافة جميل تمكّنك من التعديل على أي صورة تجدها في أي موقع دون تخزينها على الجهاز و فتحها ببرنامج معين للتعديل Pray Times إضافة لمواقيت الصلاة في الإسلام و تدعم عدّة مذاهب WOT إضافة تعتدم على تقييم المواقع من الناس، و كل ما تقعله هو ان تظهر لك دائرة و تعلم تقييم الموقع من لونه و تقدر على ان تقوم بتقييم المواقع التي تزورها بضغطة زر كي يستفيد منك الآخرون ايضا
  3. انا أيضا إقتنعت بعدم جوازها، و الحمد لله جهازي عليه برامج إما أصلية مثل Windows 7 Ultimate و Norton 360 v4 أو مجانية إن أردت العمل على نظم برمجة مفتوحة المصدر مثل جافا و PHP هناك Netbeans و Eclipse للعمل و Dotnet فلديك Visual Studio Express و فعلا البرامج المجانية رائعة و تكفي الحاجات المطلوبة منها و إليكم هذه مجموعة من الفتاوي حول الموضوع في ملف PDF من تجميع أحد الأشخاص على الإنترنت حكم البرامج المنسوخة في الإسلام.pdf
  4. عمل إحصائيات عن زوار موقعك

    أعلم أختي العزيزة البرنامج مكتوب ب DotNet و المقصد ليس البرنامج بحد ذاته و لكن المقصد بكود البرنامج عند تحميل البرنامج فأنت تحصلين على ASP.Net Code و تقدرين على الإستفادة الكود و التطوير عليه للإستفادة منها في مشاريعك و من يود شيئا سريعا فليستخدم البرنامج كما هو و عن ما يمتلكه البرنامج من إحصائيات تقدرين على تحميله و رؤية ما فيه أنا عن نفسي إستفدت من الكود و قمت بتصميم نظام إحصائيات خاص بي عدد الزوار - عدد مستخدمي Xp, Vista, 7, Linux, ...إلخ - عدد مستخدمي Firefox, Opera, Internet Explorer ... إلخ - كل صفحة كم عدد زوارها و هذا كله موجود في البرنامج الذي في الأعلى و أضفت الكثير من ما أحتاجه في المواقع التي أعمل عليها: مثلا كم شخصا دخل الموقع مباشرة و كم شخصا من خلال غوغل و غيرها من الإحصائيات المهمّة لأصحاب المواقع و الله ولي التوفيق
  5. لعمل إحصائيات عن زوار موقعك تستطيع الإستفادة من هذا الموقع عن طريق البرنامج المجاني الذي يقدّمه SiteStatisticsLite
  6. أحببت المشاركة في هذا المثال الذي قمت به من أجل أحد الأفراد المشروع صنع بإستخدام Visual Studio.Net Express 2010 و الداتابيز Sql 2008 R2 Express و لكن Generated Sql Script متوافق مع Sql Server 2000 و المشروع عبارة عن مثال يفسر كيفيك إستخدام GridView و تصميم صفحة تقوم باليحث عن معلومات من مخزن المعلومات Grid+Search.7z
  7. هل تفكيري Oop صحيح

    ألف شكر لكم يا إخوتي على الردود و أعتذر عن عدم تواجدي في المنتدى و سأحاول جاهدا العودة للنشاط من جديد
  8. هل تفكيري Oop صحيح

    مغزى السؤال هو كيف السعي إلى أفضل تصميم OOP و إليكم أسلوب تفكيري من خلال هذا التصميم: public class DBManager { private static Connection connection; public static <T extends DBCommon>List<T> getList(Class<T> c, String sql) { List<T> list = null; try { ResultSet resultSet = connection.prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY).executeQuery(); resultSet.last(); list = new ArrayList<T>(resultSet.getRow()); resultSet.beforeFirst(); while (resultSet.next()) { T object = c.newInstance(); object.fill(resultSet); list.add(object); object = null; } resultSet = null; } catch (InstantiationException ex) { Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE, null, ex); } catch (SQLException ex) { Logger.getLogger(DBManager.class.getName()).log(Level.SEVERE, null, ex); } return list; } } public abstract class DBCommon { protected Connection connection; protected Long id; protected PreparedStatement preparedDelete; protected PreparedStatement preparedInsert; protected PreparedStatement preparedSelect; protected PreparedStatement preparedUpdate; //~--- constructors ------------------------------------------------------- public DBCommon() { connection = DBManager.getConnection(); createStatements(); } //~--- methods ------------------------------------------------------------ public abstract void fill(ResultSet result); public void fullFill(ResultSet result) { fill(result); setRelated(); } public boolean insertToDB() { return executeInsert(); } public boolean deleteFromDB() { return deleteFromDB(id); } public boolean updateToDB() { return executeUpdate(); } protected boolean executeUpdate() { try { setPreparedUpdate(); preparedUpdate.executeUpdate(); preparedUpdate.clearParameters(); return true; } catch (SQLException ex) { Logger.getLogger(DBCommon.class.getName()).log(Level.SEVERE, null, ex); } return false; } protected boolean executeInsert() { id = -1l; try { setPreparedInsert(); preparedInsert.executeUpdate(); ResultSet generatedID = preparedInsert.getGeneratedKeys(); if (generatedID.next()) { id = generatedID.getLong(1); generatedID = null; preparedInsert.clearParameters(); } } catch (SQLException ex) { Logger.getLogger(DBCommon.class.getName()).log(Level.SEVERE, null, ex); id = -1l; } return id != -1; } public boolean selectFromDB(long id) { try { preparedSelect.setLong(1, id); ResultSet result = preparedSelect.executeQuery(); if (result.next()) { fill(result); } result = null; preparedSelect.clearParameters(); return true; } catch (SQLException ex) { Logger.getLogger(DBCommon.class.getName()).log(Level.SEVERE, null, ex); } return false; } public void fullSelectFromDB(long id) { selectFromDB(id); setRelated(); } protected abstract void createStatements(); protected void createPreparedStatements(String insert, String update, String delete, String select) { try { preparedInsert = connection.prepareStatement(insert, PreparedStatement.RETURN_GENERATED_KEYS); preparedUpdate = connection.prepareStatement(update); preparedDelete = connection.prepareStatement(delete); preparedSelect = connection.prepareStatement(select); } catch (SQLException ex) { Logger.getLogger(DBCommon.class.getName()).log(Level.SEVERE, null, ex); } } protected boolean deleteFromDB(long id) { try { preparedDelete.setLong(1, id); preparedDelete.executeUpdate(); preparedDelete.clearParameters(); return true; } catch (SQLException ex) { Logger.getLogger(DBCommon.class.getName()).log(Level.SEVERE, null, ex); } return false; } //~--- get methods -------------------------------------------------------- public Long getId() { return id; } //~--- set methods -------------------------------------------------------- public void setId(Long id) { this.id = id; } protected abstract void setPreparedUpdate() throws SQLException; protected abstract void setPreparedInsert() throws SQLException; protected abstract void setRelated(); } public class Region extends DBCommon implements Serializable { private static final long serialVersionUID = 1L; //~--- fields ------------------------------------------------------------- private String name; private List<FatehStudent> fatehStudentList; //~--- constructors ------------------------------------------------------- public Region() {} public Region(Long id) { this.id = id; } public Region(Long id, String name) { this.id = id; this.name = name; } //~--- methods ------------------------------------------------------------ @Override public int hashCode() { int hash = 0; hash += ((id != null) ? id.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { // TODO: Warning - this method won't work in the case the id fields are not set if (!(object instanceof Region)) { return false; } Region other = (Region) object; if (((this.id == null) && (other.id != null)) || ((this.id != null) &&!this.id.equals(other.id))) { return false; } return true; } @Override public String toString() { return name; } @Override public void fill(ResultSet result) { try { id = result.getLong(1); name = result.getString(2); } catch (SQLException ex) { Logger.getLogger(Region.class.getName()).log(Level.SEVERE, null, ex); } } @Override protected void createStatements() { String insertSql = "INSERT INTO REGION(NAME) VALUES(?)"; String updateSql = "UPDATE REGION SET NAME = ? WHERE ID = ?"; String deleteSql = "DELETE FROM REGION WHERE ID = ?"; String selectSql = "SELECT * FROM REGION WHERE ID = ?"; createPreparedStatements(insertSql, updateSql, deleteSql, selectSql); } //~--- get methods -------------------------------------------------------- public String getName() { return name; } public List<FatehStudent> getFatehStudentList() { return fatehStudentList; } public static List<Region> getRegions() { return DBManager.getList(Region.class, "SELECT * FROM REGION"); } //~--- set methods -------------------------------------------------------- public void setName(String name) { this.name = name; } public void setFatehStudentList(List<FatehStudent> fatehStudentCollection) { this.fatehStudentList = fatehStudentCollection; } @Override protected void setPreparedUpdate() throws SQLException { preparedUpdate.setString(1, name); preparedUpdate.setLong(2, id); } @Override protected void setPreparedInsert() throws SQLException { preparedInsert.setString(1, name); } @Override protected void setRelated() { throw new UnsupportedOperationException("Not supported yet."); } } و هنا getRegions هي التي أريد تصميمها ك Common Behavior و عن طريق تسميتها getList عوضا عن : getRegions - getEmployees - getStudents و لكن كيف يكون تصميمي OOP صحيح: فبإعتمادي على أسلوب static أخسر ميزة CommonBehavior و بأسلوب Commonbehavior و الذي هو بالإعتماد على abstract DBCommon يجب علي أن أنشئ أبوجكت جديد في كل مرة أريد إستخدام getList و التي هي getRegions كل ما كتب في الأعلى هو من تصميمي أتمنى أي تعديل ترونه مناسبا أو فكرة تحسين أكون شاكرا و أرجو أن أستفيد من الخبرة الموجودة لإيجاد الحل الأنسب للتصميم الذي أسعى إليه و الله ولي التوفيق
  9. هل تفكيري Oop صحيح

    السلام عليكم عندما نقوم بتصميم Objects ل database tables كمثال جدول الموظفين و جدول المنطقة public abstract class Common{ protected int id; public int getId(){ return id; } public void setId(int id){ this.id = id; } public boolean insertToDb(); public boolean updateToDb(); public boolean deleteFromDb(); } public class Employee extends Common{ private String name; private int age; public Employee(int id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public int getAge(){ return age; } public void setAge(int age){ this.age=age; } //******************************************************************************** *********************************** public static List<Employee> getList(){ // you code to get a list of employees here } //******************************************************************************** ************************************ public boolean insertToDb(){} public boolean updateToDb(){} public boolean deleteFromDb(){} } public class Region extends Common{ private String name; public Region(int id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ this.name = name; } //******************************************************************************** *********************************** public static List<Region> getList(){ // you code is here } //******************************************************************************** *********************************** public boolean insertToDb(){} public boolean updateToDb(){} public boolean deleteFromDb(){} } و هنا هل تفكيري صحيح بالنسبة لوضع getList في الشيئين Employee و Region أوَ ليْسَتْ Common Behavior و لكنها لا تعتمد على Object Employee لأنها ليست مثل insertToDb و غيرها تحتاج Object لتفعيلها لإعتمادها على variables و أما getList فإنها تستقل عن Object Employee و عندما تكون static لا أقدر على وضعها في Object Common لتصبح Common Behavior و لكن هل أحتاج لدى كل نداء لها لإنشاء object جديد كي اتمكن من وضعها ك Common Behavior //Which is Right and Better? //1- Static Use: Employee.getList(); //2- Behavior use: Employee e= new Employee(); e.getList() و لذا و كما ترون كي أصمم getList ك Common Behavior لأنني أمنع لدى إستخدامي ل static علي أن أنشئ object جديد لدي كل إستخدام فهل الحل الوحيد كي تكون Common Behavior أن أقوم بإنشاء object جديد في كل مرة؟
  10. Java Desktop Application

    إبحث عن كتاب إسمه Program Development In Java تأليف Barbara Liskov with John Guttag
  11. The Ts Organizer

    هذه النسخة الجديدة من البرنامج و رقم النسخة: 1.85 حصلت تعديلات كبيرة على الكود الخاص بالبرنامج و مميزات التعديلات الجديدة: Much Much Better Object Oriented Code Design Many Bug Fixes Code Optimized and easier to understand New Look and Feels Better control for date and time - New Swing Control used instead of TextField Search Report Control Now Generates Search Queries in a new way Two Files: --------------- DBManager and DBCommon: are very important classes that can be integrated into any application and makes dealing with database a lot easier. i hope it would be useful for many developers. (check my generic method and how i've used it in the program) those two classes are not perfect but very helpful. تقدرون على تحميل النسخة الجديدة من الموقع الموجود في أول مشاركة أو من خلال موقعي و هذه الصور الجديدة:
  12. الدرس الأول Graphics In C++ Using OpenGL

    Bouncing Ball Ball_Bounce_Exe.zip Ball_Bounce_SRC.zip
  13. اود مساعدة لتعلم الجافا

    تجد هنا مجموعة من الكتب المفيدة: قائمة الكتب و المواضيع - البوصلة التقنية
  14. Uml Tutorial

    السلام عليكم لدي هذا الشرح ل UML و أتمنى أن يستفيد منه الكثير: umlTutorial.zip و الله وليّ التوفيق
  15. اود مساعدة لتعلم الجافا

    وجدت عندي هذا الكتاب القديم، أتمنى أن يفيدك Arabic_Java_Book.pdf