OpenAPI (f.k.a Swagger) Specification code generator. Supports C#, Go, Java, Node.js, TypeScript, Python, Ruby and PHP.
AutoRest is an open source tool that generates client libraries for accessing RESTful web services.
Video Tutorial : https://azure.microsoft.com/en-us/resources/videos/inside-autorest-with-david-justice/
10 راهکار برای استفاده Bluetooth در Xamarin
Currently, I am helping my client to develop an SDK to communicate with Bluetooth le device. I developed three SDKs: one is Xamarin, iOS native with Objective-c and Java SDK for Android. Here are some tips I found when I was developing these SDKs. I hope these will save the time for firmware and mobile developers.
مفاهیم Compiling و Transpiling
عبارت Transpiler این روزها در دنیای مدرن برنامهنویسی زیاد استفاده میشود. عمل Transpiling در حقیقت تبدیل یک کد از یک زبان به یک زبان هم سطح دیگر است. این در حالی است که مفهوم Compiling یک مفهوم کلیتر است و به معنی تبدیل یک زبان به هر چیز دیگری (مثل یک زبان نزدیک به ماشین یا زبان همسطح) است. برای مثال عمل تبدیل یک کد TypeScript به JavaScript توسط یک Transpiler انجام میشود. زیرا این دو زبان از لحاظ سطح انتزاع شبیه هم هستند. ولی عمل تبدیل کد C# به IL یا تبدیل کد C++ به binary code و یا تبدیل Java به byte code یک کامپایل محسوب میشود. زیرا این تبدیل به یک زبان نزدیک به ماشین است.
معرفی Xamarin و مزیتهای استفاده از آن
توی Xamarin برنامه چند لحظه ای کندتر اجرا میشه ولی مشکل چندانی نداره و ارزشش رو داره ولی مشکل اصلی حجم برنامه بود که که میتونه خیلی بالاتر باشه. مثلا به ازای استفاده از Linq باید Dll مربوطه داخل برنامه کپی بشه که حجمش چیزی حدود یک مگابایت به برنامه اضافه میکنه و همینطور DLLهای دیگه. به همین علت ما Xamarin رو برای برنامه هایی که متعلق به مکانها خاصی مثل کارخانهها و شرکتها میشه ترجیح میدیم ولی عرضه عمومی روی مارکتها رو با جاوا ترجیح میدیم.
Public Class Employee Public Property ID As Integer Public Property Fname As String Public Property Bdate As DateTime End Class
Imports System.Data.Entity Public Class EmployeeDBContext : Inherits DBContext Public Property Employees As DbSet(Of Employee) End Class
Interface EmployeeRepository ReadOnly Property All As List(Of Employee) Function Find(id As Integer) As Employee Sub InsertOrUpdate(p As Employee) Sub Delete(id As Integer) Sub Save() End Interface
Public Class EmployeeClass : Implements EmployeeRepository Private DB As New EmployeeDBContext Public ReadOnly Property All As List(Of Employee) Implements EmployeeRepository.All Get Return DB.Employees.ToList() End Get End Property Public Sub Delete(id As Integer) Implements EmployeeRepository.Delete Dim query = DB.Employees.Single(Function(q) q.ID = id) DB.Employees.Remove(query) End Sub Public Function Find(id As Integer) As Employee Implements EmployeeRepository.Find Return DB.Employees.Where(Function(q) q.ID = id) End Function Public Sub InsertOrUpdate(p As Employee) Implements EmployeeRepository.InsertOrUpdate If p.ID = Nothing Then DB.Employees.Add(p) Else DB.Entry(p).State = Data.EntityState.Modified End If End Sub Public Sub Save() Implements EmployeeRepository.Save DB.SaveChanges() End Sub End Class
Dim cls As New EmployeeClass
Public Sub BindGrid() GridView1.DataSource = cls.All GridView1.DataBind() End Sub
مستند سازی Database
dbdescis a powerful tool to help you document your databases. It can produce detailed documents describing your databases
Currently dbdesc supports the following databases:
SQL Server 2000, 2005, 2008, 2008 R2, 2012, 2014
Microsoft Desktop Engine 2000 (MSDE) and SQL Server Express editions
MySQL 5.0
Oracle 9 and above
Microsoft Access 97 and above
Firebird
با استفاده از کوئری زیر نیز میتوانید نام و Description ستونها و دیتاتایپ و ... آنها را بدست آورید.
SELECT p.name ,p.value ,t.name AS TableName ,c.name AS ColumnName ,c.is_nullable ,c.max_length ,TYPE_NAME(c.system_type_id) FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id LEFT JOIN sys.extended_properties p ON p.major_id = t.object_id AND p.minor_id = c.column_id ORDER BY t.name DESC,c.name DESC
جهت بررسی بیشتر و آشنایی با Extended Properties in SQL Server به لینک Towards the Self-Documenting SQL Server Database مراجعه کنید.