Android - Application Components - بخش Broadcast Receivers

Broadcast Receivers simply respond to broadcast messages from other applications or from the system. For example, applications can also initiate broadcasts to let other applications know that some data has been downloaded to the device and is available for them to use, so this is broadcast receiver who will intercept this communication and will initiate appropriate action.

A broadcast receiver is implemented as a subclass of BroadcastReceiverclass and each message is broadcaster as an Intent object.

publicclassMyReceiverextendsBroadcastReceiver{
publicvoid onReceive(context,intent){

}
}




Android - Application Components - بخش Services

A service is a component that runs in the background to perform long-running operations. For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity.

publicclassMyServiceextendsService{

}

Services یک کامپوننت است که در پشت صحنه اجرا می گردد و وظیفه اجرا و مدیریت برنامه های پشت صحنه
را بر عهدا دارد و برای بوجود اوردن برنامه هایی مانند پخش موسیقی و یا ارسال داده به اینترنت استفاده می گردد.


Android - Application Components - بخش Activities

An activity represents a single screen with a user interface,in-short Activity performs actions on the screen. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. If an application has more than one activity, then one of them should be marked as the activity that is presented when the application is launched.

An activity is implemented as a subclass of Activity class as follows

public class MainActivity extends Activity {

}

 


 

اکتیویتی یک فایل جاوا می باشد که به صورت single page می باشد و به یک View مختص می باشد و اطلاعات خود را از View مرتبطش دریافت و ارسال می دارد.

 

Database Initialization Strategies in Code-First استراتژی های تنظیم کردن اولیه دیتابیس

به 4 روش متفاوت می توانیم دیتابیس را تنظیم اولبه و داده دهی نماییم.

There are four different database initialization strategies:

  1. CreateDatabaseIfNotExists: This is default initializer. As the name suggests, it will create the database if none exists as per the configuration. However, if you change the model class and then run the application with this initializer, then it will throw an exception.
  2. DropCreateDatabaseIfModelChanges: This initializer drops an existing database and creates a new database, if your model classes (entity classes) have been changed. So you don't have to worry about maintaining your database schema, when your model classes change.
  3. DropCreateDatabaseAlways: As the name suggests, this initializer drops an existing database every time you run the application, irrespective of whether your model classes have changed or not. This will be useful, when you want fresh database, every time you run the application, like while you are developing the application.
  4. Custom DB Initializer: You can also create your own custom initializer, if any of the above doesn't satisfy your requirements or you want to do some other process that initializes the database using the above initializer.

روش اول که بصورت پیش فرض بر روی خود Asp.Net MVC تنظیم است ولی باز می توانیم ان را دوباره نویسی کنیم که هیچ تفاوتی نمی کند و تنها در زمان داده دهی اولیه بهتر است استفاده گردد که این روش تنها یک بار انجام می گردد و دیگر اتفاق نمی افتد.

 

روش دوم در زمان هایی مورد استفاده قرار می گیرد که اگر دیتابیس اطلاعاتش تغییر یابد دوباره آن را از بین ببرد و مجددا با اطلاعات جدید ایجاد می کند.

 

و در روش سوم هم اصلن به ایجاد شدن تغییر در دیتابیس اهمیتی نمیدهد و به صورت همیشگی اطلاعات را دوباره نویسی میکند و اطلاعات حذف شده و یا اضافه و ویرایش شده را پاک میکند و اطلاعات اولیه جایگزین می گردد.

 

در روش اخر با توجه به نیاز های کاربر قابلیت تنظیم کردن به صورت شخصی بر روی دیتابیس مهیا شده است که البته روش های پیچیده تری نسبت به بقیه موارد را دارا می باشد.

 

تنظیمات Domain Classes در Code-First در Asp.Net MVC +5

تنظیمات Domain Classes در Code-First در Asp.Net MVC +5 به منظور تنظیم کردن و هماهنگ کردن اطلاعات مابین SQL Server و کد های نوشته شده در EF می باشد.

به 2 روش این کار امکان پذیر میباشد تا به این لحظه.

  1. DataAnnotations
  2. Fluent API

 

شماره 1 که بصورت تگ مانند در بالای پراپرتی ها قرار میگرد و می توانیم از آنها به عنوان معرفی نمودن و شناساندن اطلاعات به دیتابیس استفاده کنیم همچنین در بعضی مواقع در سمت MVC از این تگ ها به عنوان مجزا سازی برای Type های مختلف استفاده می گردد.

در زیر نمونه ای از کد ها و طرز استفاده از آنها آمده است.

[Table("StudentInfo")]
    public class Student
    {
        public Student() { }
        
        [Key]
        public int SID { get; set; }

        [Column("Name", TypeName="ntext")]
        [MaxLength(20)]
        public string StudentName { get; set; }

        [NotMapped]
        public int? Age { get; set; }
               
        public int StdId { get; set; }

        [ForeignKey("StdId")]
        public virtual Standard Standard { get; set; }
    }

 

 

شماره 2 به صورت دستی و کد نویسی پیاده سازی می گردد و امکانات بیشتری نسبت به شماره 1 ندارد در اصل با ترکیب این 2 حالت به بهترین حالت ممکن دست پیدا خواهیم کرد.

در زیر نمونه ای از کد ها و طرز استفاده از آنها آمده است.

public class SchoolDBContext: DbContext
{
        public SchoolDBContext(): base("SchoolDBConnectionString")
        {
        }

        public DbSet Students { get; set; }
        public DbSet Standards { get; set; }
        public DbSet StudentAddress { get; set; }
        
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //Configure domain classes using Fluent API here

            base.OnModelCreating(modelBuilder);
        }
}

 

مشخص کردن Seed Database in code-first

با استفاده از این حالت می توانیم اطلاعاتی را در زمان ایجاد دیتابیس به دیتابیس وارد کنیم.

این کار در زمان هایی بیشتر مورد نیاز است که مانیاز داریم یک سری اطلاعات به صورت پیش فرض در دیتابیس قرار داده شود مثل اطلاعات نام کاربری ادمین و در حالتی دیگر اگر بخواهیم همیشه دیتابیس در یک سری اطلاعات قرار داشته باشد و هیچ اطلاعات دیگری نتواند وارد کند که بیشتر می توانید در زمان تحویل پروژه از این روش استفاده کنید که بعد از گرفتن مبلغ قرار داداتان این حالت را از جای دیگر یا مثلا تنظیمات خاصی تغییر دهید و به مشتری سایت پروژه را تحویل بدهید از این روش استفاده های بسیار زیاد دیگر میتوان برد که از حوصله این مطلب خارج است....

 

در زیر نمونه کد های مثال بالا را میبینید

 public class SchoolDBInitializer : DropCreateDatabaseAlways
    {
        protected override void Seed(SchoolDBContext context)
        {
            IList defaultStandards = new List();

            defaultStandards.Add(new Standard() { StandardName = "Standard 1", Description = "First Standard" });
            defaultStandards.Add(new Standard() { StandardName = "Standard 2", Description = "Second Standard" });
            defaultStandards.Add(new Standard() { StandardName = "Standard 3", Description = "Third Standard" });

            foreach (Standard std in defaultStandards)
                context.Standards.Add(std);

            base.Seed(context);
        }
    }

 

و در اخر هم از طریق کد زیر استراتژی DB initializer را به اتمام می رسانیم.

public class SchoolContext: DbContext
    {
        
        public SchoolContext(): base("SchoolDBConnectionString")
        {
            Database.SetInitializer(new SchoolDBInitializer());

        }
        public DbSet Students { get; set; }
        public DbSet Standards { get; set; }
    }

اطلاعات مربوط به DataAnnotations در EF و ASP.net MVC +5

مشخص کردن DataAnnotations در ASP.net MVC +5

 

دیتا های مربوط به NameSpace :

System.ComponentModel.DataAnnotation

Key => مشخص کننده PK یا PrimaryKey بر روی فیلد مورد نظر

Requierd => مشخص کردن فیلدی که NotNull است.

MinLenght => مینمم طول رشته از یک آرایه یا استرینگ.

MaxLenght => بیشترین طول آرایه یا یک رشته.

StringLenght => مشخص کردن طول کم و زیاد یک رشته در MVC.

 

 

دیتا های مربوط به NameSpace :

System.ComponentModel.DataAnnotation.Schema

Table => مشخص کردن نام جدل مورد نظر بر روی نام کلاس.

Column => مشخص کردن نام ستون مورد نظر بر روی فیلد.

ForeignKey => مشخص کردن کلید خارجی بر روی فیلد.

DatabaseGenerated => مشخص کردن فیلدی بصورت identity در دیتابیس.

 

شروع به کار سایت ...

از اینکه این مدت وبلاگ ما را دنبال کردید ممنونیم و از این به بعد می توانید وبسایت ما را دنبال کنید و از تمامی قسمت های آن استفاده لازم را ببرید..

سلمان سمیعان

 

Pars Learn

۱/۷/۱۳۸۹

به زودی ...

به زودی وب سایت Pars Learn.ir شروع به کار خواهد کرد ... لطفا به دوستان خودتون هم ما رو معرفی کنید با خدمات متمایزی در خدمت شما خواهیم بود ...

 

www.ParsLearn.ir

قالب هاي اختصاصي براي دوستان علاقه مند به وبلاگ

يه خبر خوب براي دوستاني كه با ساخت قالب براي خودشون مشكل دارن و دوست دارند يك قالب اختصاصي داشته باشند ...

 

دوستان عزیز در قسمت نظرات درخواست خودشون را بدهند تا سريع به كارشون رسيدگي بشه ...

فقط در صورتي كه مايل بو ديد مشخصاتي هم قيد كنيد .